亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? basicjessbehaviour.java

?? JADE(JAVA Agent開發框架)是一個完全由JAVA語言開發的軟件,它簡化了多Agent系統的實現。
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
            t1 = t1.substring(0, t1.length() - 1);
        }

        int len = t1.length();
        int i = 0;
        int j = 0;
        int k = 0;
        char[] val = new char[len];
        t1.getChars(0, len, val, 0); // put chars into val

        char[] buf = new char[len];

        boolean maybe = false;

        while (i < len) {
            if (maybe) {
                if (val[i] == '\"') {
                    j--;
                }

                buf[j] = val[i];
                maybe = false;
                i++;
                j++;
            } else {
                if (val[i] == '\\') {
                    maybe = true;
                }

                buf[j] = val[i];
                i++;
                j++;
            }
        }

        return new String(buf, 0, j);
    }

    /**
     * Insert the first and the last character of the string as a quotation mark
     * Replace all the quote characters into backslash quote.
     * It is used to convert an ACL message content into a Jess content.
     */
    private String quote(java.lang.String str) {
        //replace all chars " in \ "
        return "\"" + stringReplace(str, '"', "\\\"") + "\"";
    }

    /**
     * This method searches in the local cache for the full AID of the passed agentName.
     * If not found it creates a new AID where only the guid is set.
    **/
    public AID getAIDFromCache(String agentName) {
        AID result;
        result = (AID) AIDCache.get(agentName);

        if (result == null) {
            result = new AID(agentName);
        }

        return result;
    }

    /**
     * This method searches in the local cache for the full AID of the passed list of agent names.
     * @param context represents the Rete engine context needed to resolve the value of JESS variables
     * @param list is a ValueVector of agent names
     * @return a List of AID
     */
    public List getAIDListFromCache(Context context, ValueVector list) {
        ArrayList l = new ArrayList();

        for (int i = 0; i < list.size(); i++) {
            try {
                l.add(getAIDFromCache(list.get(i).stringValue(context)));
            } catch (JessException je) {
            }
        }

        return l;
    }

    /**
     * put a new AID in the local cache.
     * If one exists already with the same agentName, it is overwritten
     */
    public void putAIDInCache(AID aid) {
        AIDCache.put(aid.getName(), aid);
    }

    /** @return a String with the deftemplate command to be executed in Jess **/
    public String ACLJessTemplate() {
        return "(deftemplate ACLMessage (slot communicative-act) (slot sender) (multislot receiver) (slot reply-with) (slot in-reply-to) (slot envelope) (slot conversation-id) (slot protocol) (slot language) (slot ontology) (slot content) (slot encoding) (multislot reply-to) (slot reply-by))";
    }

    /**
     * @return the ACLMessage representing the passed Jess Fact. This message
     * will be then sent by the caller.
     */
    public ACLMessage JessFact2ACL(Context context, jess.ValueVector vv)
        throws jess.JessException {
        // System.err.println("JessFact2ACL "+vv.toString());
        int perf = ACLMessage.getInteger(vv.get(0).stringValue(context));
        ACLMessage msg = new ACLMessage(perf);
        System.out.println("******** Sender ********* " + vv.get(1).toString());

        if (vv.get(1).stringValue(context) != "nil") {
            msg.setSender(getAIDFromCache(vv.get(1).stringValue(context)));
        }

        if (vv.get(2).toString() != "nil") {
            List l = getAIDListFromCache(context, vv.get(2).listValue(context));

            for (int i = 0; i < l.size(); i++)
                msg.addReceiver((AID) l.get(i));
        }

        if (vv.get(3).stringValue(context) != "nil") {
            msg.setReplyWith(vv.get(3).stringValue(context));
        }

        if (vv.get(4).stringValue(context) != "nil") {
            msg.setInReplyTo(vv.get(4).stringValue(context));
        }

        //if (vv.get(5).stringValue(context) != "nil")
        //  msg.setEnvelope(vv.get(5).stringValue(context));
        if (vv.get(6).stringValue(context) != "nil") {
            msg.setConversationId(vv.get(6).stringValue(context));
        }

        if (vv.get(7).stringValue(context) != "nil") {
            msg.setProtocol(vv.get(7).stringValue(context));
        }

        if (vv.get(8).stringValue(context) != "nil") {
            msg.setLanguage(vv.get(8).stringValue(context));
        }

        if (vv.get(9).stringValue(context) != "nil") {
            msg.setOntology(vv.get(9).stringValue(context));
        }

        if (vv.get(10).stringValue(context) != "nil") {
            //FIXME undo replace chars of JessBehaviour.java. Needs to be done better
            msg.setContent(unquote(vv.get(10).stringValue(context)));
        }

        if (vv.get(11).stringValue(context) != "nil") {
            msg.setEncoding(vv.get(11).stringValue(context));
        }

        //System.err.println("JessFact2ACL type is "+vv.get(15).type());
        if (vv.get(12).toString() != "nil") {
            List l = getAIDListFromCache(context, vv.get(12).listValue(context));

            for (int i = 0; i < l.size(); i++)
                msg.addReplyTo((AID) l.get(i));
        }

        if (vv.get(13).stringValue(context) != "nil") {
            try {
                msg.setReplyByDate(new Date(Long.parseLong(vv.get(13)
                                                             .stringValue(context))));
            } catch (Exception e) { /* do not care */
            }
        }

        return msg;
    }

    /**
     * @return the String representing the facts (even more than one fact is
     * allowed, but this method just returns one fact)
     * to be asserted in Jess as a consequence of the receipt of
     * the passed ACL Message.
     * The messate content is quoted before asserting the Jess Fact.
     * It is unquoted by the JessFact2ACL function.
     */
    public String ACL2JessString(ACLMessage msg) {
        String fact;

        if (msg == null) {
            return "";
        }

        // I create a string that asserts the template fact
        fact = "(assert (ACLMessage (communicative-act " +
            ACLMessage.getPerformative(msg.getPerformative());

        if (msg.getSender() != null) {
            fact = fact + ") (sender " + msg.getSender().getName();
            putAIDInCache(msg.getSender());
        }

        Iterator i = msg.getAllReceiver();

        if (i.hasNext()) {
            fact = fact + ") (receiver ";

            while (i.hasNext()) {
                AID aid = (AID) i.next();
                putAIDInCache(aid);
                fact = fact + aid.getName();
            }
        }

        if (!isEmpty(msg.getReplyWith())) {
            fact = fact + ") (reply-with " + msg.getReplyWith();
        }

        if (!isEmpty(msg.getInReplyTo())) {
            fact = fact + ") (in-reply-to " + msg.getInReplyTo();
        }

        //if (!isEmpty(msg.getEnvelope()))     fact=fact+") (envelope " + msg.getEnvelope();
        if (!isEmpty(msg.getConversationId())) {
            fact = fact + ") (conversation-id " + msg.getConversationId();
        }

        if (!isEmpty(msg.getProtocol())) {
            fact = fact + ") (protocol " + msg.getProtocol();
        }

        if (!isEmpty(msg.getLanguage())) {
            fact = fact + ") (language " + msg.getLanguage();
        }

        if (!isEmpty(msg.getOntology())) {
            fact = fact + ") (ontology " + msg.getOntology();
        }

        if (msg.getContent() != null) {
            fact = fact + ") (content " + quote(msg.getContent());
        }

        if (!isEmpty(msg.getEncoding())) {
            fact = fact + ") (encoding " + msg.getEncoding();
        }

        i = msg.getAllReplyTo();

        if (i.hasNext()) {
            fact = fact + ") (reply-to ";

            while (i.hasNext()) {
                AID aid = (AID) i.next();
                putAIDInCache(aid);
                fact = fact + aid.getName();
            }
        }

        if (msg.getReplyByDate() != null) {
            fact = fact + ") (reply-by " + msg.getReplyByDate().getTime();
        }

        fact = fact + ")))";

        return fact;
    }

    /**
     * This class implements the Jess userfunction to send ACLMessages
     * directly from Jess.
     * It can be used by Jess by using the name <code>send</code>.
     */
    public class JessSend implements Userfunction {
        // data
        Agent my_agent;
        BasicJessBehaviour bjb;

        public JessSend(Agent a, BasicJessBehaviour b) {
            my_agent = a;
            bjb = b;
        }

        // The name method returns the name by which the function appears in Jess
        public String getName() {
            return ("send");
        }

        //Called when (send ...) is encountered
        public Value call(ValueVector vv, Context context)
            throws JessException {
            //for (int i=0; i<vv.size(); i++) {
            //  System.out.println(" parameter " + i + "=" + vv.get(i).toString() +
            //   " type=" + vv.get(i).type());
            //  }
            //////////////////////////////////
            // Case where JESS calls (send ?m)
            if (vv.get(1).type() == RU.VARIABLE) {
                // Uncomment for JESS 5.0 vv =  context.getEngine().findFactByID(vv.get(1).factIDValue(context));
                vv = context.getEngine().findFactByID(vv.get(1)
                                                        .factValue(context)
                                                        .getFactId()); //JESS6.0
            }
            //////////////////////////////////
            // Case where JESS calls (send (assert (ACLMessage ...)))
            else if (vv.get(1).type() == RU.FUNCALL) {
                Funcall fc = vv.get(1).funcallValue(context);
                vv = fc.get(1).factValue(context);
            }

            ACLMessage msg = bjb.JessFact2ACL(context, vv);
            my_agent.send(msg);

            return Funcall.TRUE;
        }
    } // end JessSend class
} // end JessBehaviour

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕制服丝袜成人av| 婷婷久久综合九色综合绿巨人| 国产精品一二一区| 粉嫩一区二区三区性色av| 国产99一区视频免费 | 国产 欧美在线| 国产尤物一区二区| 国产米奇在线777精品观看| 国产精品综合在线视频| 成人视屏免费看| 日本福利一区二区| 欧美性videosxxxxx| 日韩欧美在线网站| 欧美视频完全免费看| 懂色av一区二区三区免费看| 日产欧产美韩系列久久99| 亚洲激情欧美激情| 亚洲mv大片欧洲mv大片精品| 国产精品一区不卡| 色婷婷综合五月| 色系网站成人免费| 成人黄页在线观看| 国产91在线|亚洲| 国产自产v一区二区三区c| 日韩avvvv在线播放| 亚洲成人动漫精品| 五月婷婷综合在线| 午夜久久久久久久久久一区二区| 亚洲三级电影网站| 一个色妞综合视频在线观看| 中文字幕一区二区三区在线不卡 | 日韩美女一区二区三区四区| 欧美日本不卡视频| 欧美最猛黑人xxxxx猛交| 色老头久久综合| 欧美日韩国产综合一区二区三区| 色综合 综合色| 欧美日韩国产精品成人| 日韩精品最新网址| 国产精品丝袜久久久久久app| 亚洲免费观看高清完整版在线观看熊| 亚洲国产精品麻豆| 日产国产欧美视频一区精品| 经典一区二区三区| 91亚洲精品久久久蜜桃网站| 欧美午夜精品久久久| 欧美丰满一区二区免费视频| 精品国产乱码久久| 亚洲视频精选在线| 美女一区二区视频| 成人国产免费视频| 91精品在线观看入口| 国产精品久久久久久户外露出 | 国内精品伊人久久久久av一坑| av不卡在线播放| 欧美妇女性影城| 自拍偷拍亚洲欧美日韩| 免费观看在线综合| 欧美主播一区二区三区美女| 欧美一级理论片| 亚洲一区二区三区激情| 国产精品一线二线三线精华| 91麻豆精品国产自产在线观看一区| 91网址在线看| 国产精品美女久久久久久2018| 婷婷久久综合九色国产成人| 91丨porny丨最新| 国产日韩三级在线| 久久国产综合精品| 欧美日韩1区2区| 一区二区三区国产精华| 色综合久久中文综合久久97| 中文字幕av不卡| 欧美在线观看18| 中文字幕亚洲一区二区av在线| 亚洲一区二区三区三| 欧美日韩国产片| 免费在线欧美视频| 久久久久久久精| 成人动漫一区二区| 亚洲精品免费看| 欧美精品vⅰdeose4hd| 麻豆一区二区三| 国产午夜精品一区二区三区四区| 成人一区二区三区视频| 亚洲欧美日韩精品久久久久| 欧美伦理影视网| 久久99国内精品| 日韩毛片精品高清免费| 欧美探花视频资源| 国模一区二区三区白浆| 日韩毛片精品高清免费| 日本乱人伦一区| 日韩精品免费视频人成| 欧美一区二区视频在线观看| 激情小说亚洲一区| 国产精品美女久久久久aⅴ| av高清不卡在线| 亚洲免费观看高清| 欧美日韩成人综合在线一区二区| 秋霞电影网一区二区| 久久九九久久九九| 亚洲综合色在线| 欧美不卡一区二区三区四区| 成人精品视频.| 一区在线观看免费| 91精品福利在线一区二区三区 | www.av亚洲| 午夜精品久久久久久久99水蜜桃| 精品国产区一区| 色噜噜偷拍精品综合在线| 日本免费在线视频不卡一不卡二| 国产三级欧美三级| 欧美日韩国产首页在线观看| 国产麻豆午夜三级精品| 一区二区三区鲁丝不卡| 久久久久久久网| 欧美三级午夜理伦三级中视频| 黄页视频在线91| 亚洲成人免费av| 国产精品久久久爽爽爽麻豆色哟哟| 欧美亚洲动漫另类| 成人夜色视频网站在线观看| 欧美乱熟臀69xxxxxx| 97精品超碰一区二区三区| 精品一区二区三区欧美| 亚洲伊人色欲综合网| 中文字幕欧美一区| 亚洲精品在线免费观看视频| 在线影视一区二区三区| 成人毛片老司机大片| 午夜天堂影视香蕉久久| 亚洲人成网站色在线观看| 欧美精品一区二区三区高清aⅴ| 欧美日韩综合色| 日本韩国一区二区三区视频| caoporen国产精品视频| 欧美日韩国产乱码电影| 老司机精品视频线观看86 | 久久欧美一区二区| 精品少妇一区二区三区日产乱码| 欧美日韩国产综合一区二区| 色综合天天综合网国产成人综合天| 国产99久久久久| 国产精品一区二区男女羞羞无遮挡| 久久99精品久久久久久国产越南| 午夜激情一区二区三区| 性久久久久久久久| 首页综合国产亚洲丝袜| 五月天亚洲婷婷| 麻豆视频一区二区| 久久国产精品72免费观看| 激情综合色综合久久综合| 青娱乐精品视频在线| 国产精品影视在线观看| 国产精品亚洲一区二区三区在线 | 一区二区三区欧美激情| 亚洲午夜影视影院在线观看| 亚洲bdsm女犯bdsm网站| 亚洲成人第一页| 黄色精品一二区| 成人黄色电影在线 | 日韩欧美中文一区二区| 久久久久高清精品| 亚洲视频在线一区| 亚洲成a人v欧美综合天堂下载| 日韩激情视频在线观看| 久久97超碰国产精品超碰| a4yy欧美一区二区三区| 日本韩国视频一区二区| 日韩欧美电影在线| 国产精品美女久久久久久久| 亚洲影院在线观看| 国产一区美女在线| 在线影院国内精品| 精品国产伦理网| 亚洲欧洲无码一区二区三区| 午夜婷婷国产麻豆精品| 国产米奇在线777精品观看| 在线精品亚洲一区二区不卡| 日韩一区二区三区视频在线| 欧美激情在线观看视频免费| 亚洲国产精品久久久久秋霞影院 | 另类小说一区二区三区| 91麻豆自制传媒国产之光| 欧美一级理论片| 亚洲综合激情小说| 成人听书哪个软件好| 91精品国产91久久综合桃花| 亚洲手机成人高清视频| 国产高清不卡一区| 日韩午夜激情免费电影| 亚洲色图第一区| 国产 日韩 欧美大片| 精品盗摄一区二区三区| 亚洲成人tv网| 欧美在线看片a免费观看| 国产精品免费久久久久| 激情国产一区二区 | 欧美在线高清视频|