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}