001package gu.dtalk.client; 002 003import static gu.dtalk.CommonUtils.isAck; 004 005import com.alibaba.fastjson.JSONObject; 006import com.alibaba.fastjson.util.TypeUtils; 007import com.google.common.base.Predicate; 008 009import gu.dtalk.Ack; 010import gu.dtalk.Ack.Status; 011import gu.simplemq.exceptions.SmqUnsubscribeException; 012/** 013 * 管理端连接控制器简单实现 014 * @author guyadong 015 * 016 */ 017public class ConnectorAdapter extends TextMessageAdapter<JSONObject> { 018 private Predicate<String> onValidPwd; 019 @Override 020 public void onSubscribe(JSONObject resp) throws SmqUnsubscribeException { 021 super.onSubscribe(resp); 022 if(isAck(resp)){ 023 Ack<?> ack = TypeUtils.castToJavaBean(resp, Ack.class); 024 render.rendeAck(ack, false); 025 if(ack.getStatus() == Status.OK){ 026 if(onValidPwd !=null){ 027 onValidPwd.apply( (String) ack.getValue()); 028 } 029 } 030 } 031 } 032 033 public ConnectorAdapter() { 034 } 035 036 public ConnectorAdapter setOnValidPwd(Predicate<String> onValidPwd) { 037 this.onValidPwd = onValidPwd; 038 return this; 039 } 040}