📄 airline.java
字号:
/* AirLine.java * $Id: AirLine.java,v 2.4 1997-12-07 14:59:50+09 ht Exp $ * $Name: alpha5_1-release $ * */package com.ibm.acl.kqmlsample.travel;import com.ibm.acl.kqml.*;import com.ibm.acl.kqml.interpreter.*;import com.ibm.acl.util.*;import java.lang.*;import java.io.*;import java.net.*;import java.util.*;/** * AirLine Sample * * @version $Revision: 2.4 $ $Date: 1997-12-07 14:59:50+09 $ * @author Osamu Furusawa * @author Hajime Tsuchitani */abstract public class AirLine {private static final String rcsid = "$Id: AirLine.java,v 2.4 1997-12-07 14:59:50+09 ht Exp $ $Name: alpha5_1-release $"; /** * This agnet has the reference of KQMLManager, * this agnet is KQML-Speakable. */ protected KQMLManager kManager; /** * agent name */ protected String agentName; /** * local hostname (ktp format) */ protected String localHost; /** * facilitator address(ktp format) */ protected String facilitator; /** * receiver address of an agent that can be inserted (ktp format) */ protected String receiverAddr; /** * lifecycleID */ protected String lifecycleID; /** * yellowpageID */ protected String yellowpageID; /** * frame */ protected AirFrame frame; /** * port number */ protected int port; protected Vector flightTable = new Vector(); /** * Constructor * * @param port socket port number. */ public AirLine(){ anacl_travel.setFlightTable(flightTable); } public Vector getFlightTable() { return flightTable; } public KQMLManager getKQMLManager() { return kManager; } /** * Travel Broker register on LifeCycle * scenario (21) & (28) */ protected void setRegisterL() { KQML kqml = new KQML(); String rw = new String(kManager.getInitialID()); kqml.setPerformative("register"); kqml.setParameter(":name", agentName); kqml.setParameter(":sender", localHost); kqml.setParameter(":receiver", facilitator); kqml.setParameter(":reply-with", rw); kqml.setParameter(":language", "anACL"); kqml.setParameter(":ontology", "lifecycle"); kqml.setContent("(:class anacl_travel)"); Conversation conv = null; try { conv = (Conversation) kManager.sendMessage(kqml); } catch (SendFailedException ex) { ex.printStackTrace(); } catch (InvalidFormatException ex) { ex.printStackTrace(); } catch (InvalidMessageSequenceException ex) { ex.printStackTrace(); } catch (JKQMLException ex) { ex.printStackTrace(); } conv.getResult().waitFor(45000); Result res = conv.getResult(); if ( res.isAvailable()) { ReturnValue rtn = (ReturnValue)res.getResult(); if (rtn.isOK()) { lifecycleID = new String((String)rtn.getReturnValue()); print("register: " + lifecycleID); } else { System.err.println("setRegisterL() :Error in registered process"); System.err.println("setRegisterL() : " + (String)rtn.getReturnValue()); System.exit(-1); } } else { System.err.println("setRegisterL() :Error Result isn't available"); System.exit(-1); } } /** * AirLine recommend-one/Insert(yellowpage) * scenario (22) & (29) * */ public void setRecommendoneInsertY() { KQML kqml = new KQML(); String rw = new String(kManager.getInitialID()); kqml.setPerformative("recommend-one"); kqml.setParameter(":name", agentName); kqml.setParameter(":sender", localHost); kqml.setParameter(":receiver", facilitator); kqml.setParameter(":reply-with", rw); kqml.setParameter(":language", "KQML"); kqml.setParameter(":ontology", "kqml-ontology"); KQML kqml_i = new KQML(); kqml_i.setPerformative("insert"); kqml_i.setParameter(":sender", localHost); kqml_i.setParameter(":language", "anACL"); kqml_i.setParameter(":ontology", "yellowpages"); String content = new String( "(:category" +"\n"+ " :subCategory" +"\n"+ " :class" +"\n"+ " :name )" ); kqml_i.setContent(content); kqml.setContent(kqml_i); Conversation conv = null; try { conv = (Conversation) kManager.sendMessage(kqml); } catch (SendFailedException ex) { ex.printStackTrace(); } catch (InvalidFormatException ex) { ex.printStackTrace(); } catch (InvalidMessageSequenceException ex) { ex.printStackTrace(); } catch (JKQMLException ex) { ex.printStackTrace(); } conv.getResult().waitFor(45000); Result res = conv.getResult(); if ( res.isAvailable()) { ReturnValue rtn = (ReturnValue)res.getResult(); if ( rtn.isOK() ) { print("result value : " + rtn.getReturnValue().toString()); KQML kqml_result = null; try { kqml_result = new KQML(rtn.getReturnValue().toString()); } catch (NotListException ex) { ex.printStackTrace(); System.exit(1); } catch (MalformedSExpressionException ex) { ex.printStackTrace(); System.exit(1); } // reserve address of agent that can be inserted receiverAddr = new String(kqml_result.getParameter(":receiver")); } else { System.err.println("setRecommendoneInsertY() : scenario (22/29)"); System.err.println("setRecommendoneInsertY() : " + (String)rtn.getReturnValue()); System.exit(-1); } } else { System.err.println("setRecommendoneInsertY() :Error Result isn't available"); System.exit(-1); } } /** * AirLine advertise/ask-all(travel) * scenario (26) & (33) * */ public void setAdvertiseBrokerallAskallT() { KQML kqml = new KQML(); String rw = new String(kManager.getInitialID()); kqml.setPerformative("advertise"); kqml.setParameter(":name", agentName); kqml.setParameter(":sender", localHost); kqml.setParameter(":receiver", facilitator); kqml.setParameter(":reply-with", rw); kqml.setParameter(":language", "KQML"); kqml.setParameter(":ontology", "kqml-ontology"); KQML kqml_i = new KQML(); kqml_i.setPerformative("ask-all"); kqml_i.setParameter(":sender", facilitator); kqml_i.setParameter(":receiver", localHost); kqml_i.setParameter(":in-reply-to", rw); kqml_i.setParameter(":language", "anACL"); kqml_i.setParameter(":ontology", "travel"); String content = new String( "(:carrier" +" \n"+ " :flight" +" \n"+ " :departure" +" \n"+ " :arrival" +" \n"+ " :deptTime)" ); kqml_i.setContent(content); kqml.setContent(kqml_i); Conversation conv = null; try { conv = (Conversation) kManager.sendMessage(kqml); } catch (SendFailedException ex) { ex.printStackTrace(); } catch (InvalidFormatException ex) { ex.printStackTrace(); } catch (InvalidMessageSequenceException ex) { ex.printStackTrace(); } catch (JKQMLException ex) { ex.printStackTrace(); } conv.getResult().waitFor(0); } /** * AirLine advertise/subscribe/ask-all(travel) * scenario (27) & (34) * */ public void setAdvertiseSubAskallT() { KQML kqml = new KQML(); String rw = new String(kManager.getInitialID()); kqml.setPerformative("advertise"); kqml.setParameter(":name", agentName); kqml.setParameter(":sender", localHost); kqml.setParameter(":receiver", facilitator); kqml.setParameter(":reply-with", rw); kqml.setParameter(":language", "KQML"); kqml.setParameter(":ontology", "kqml-ontology"); KQML kqml_i = new KQML(); kqml_i.setPerformative("subscribe"); kqml_i.setParameter(":sender", facilitator); kqml_i.setParameter(":receiver", localHost); kqml_i.setParameter(":in-reply-to", rw); kqml_i.setParameter(":language", "KQML"); kqml_i.setParameter(":ontology", "kqml-ontology"); KQML kqml_ii = new KQML(); kqml_ii.setPerformative("ask-all"); kqml_ii.setParameter(":sender", facilitator); kqml_ii.setParameter(":receiver", localHost); kqml_ii.setParameter(":in-reply-to", rw); kqml_ii.setParameter(":language", "anACL"); kqml_ii.setParameter(":ontology", "travel"); String content = new String( "(:carrier" +" \n"+ " :flight" +" \n"+ " :departure" +" \n"+ " :arrival" +" \n"+ " :deptTime)" ); kqml_ii.setContent(content); kqml_i.setContent(kqml_ii); kqml.setContent(kqml_i); Conversation conv = null; try { conv = (Conversation) kManager.sendMessage(kqml); } catch (SendFailedException ex) { ex.printStackTrace(); } catch (InvalidFormatException ex) { ex.printStackTrace(); } catch (InvalidMessageSequenceException ex) { ex.printStackTrace(); } catch (JKQMLException ex) { ex.printStackTrace(); } conv.getResult().waitFor(0); } public void updateSchedule(FlightInfo flight) { KQML kqml = new KQML(); String rw = new String(kManager.getInitialID()); kqml.setPerformative("insert"); kqml.setParameter(":name", agentName); kqml.setParameter(":sender", localHost); kqml.setParameter(":receiver", localHost); kqml.setParameter(":reply-with", rw); kqml.setParameter(":language", "anACL"); kqml.setParameter(":ontology", "travel"); String content = new String("(:carrier " + flight.getCarrier() + "\n" + " :flight " + flight.getFlight() + "\n" + " :departure \"" + flight.getDeparture() +"\"\n"+ " :arrival \"" + flight.getArrival() + "\"\n" + " :deptTime \"" + flight.getDeptTime() +"\")"); kqml.setContent(content); Conversation conv = null; try { conv = (Conversation) kManager.sendMessage(kqml); } catch (SendFailedException ex) { ex.printStackTrace(); } catch (InvalidFormatException ex) { ex.printStackTrace(); } catch (InvalidMessageSequenceException ex) { ex.printStackTrace(); } catch (JKQMLException ex) { ex.printStackTrace(); } if (conv == null) System.err.println("AirLine.updateSched: send insert performative failed"); } /** * print for debug. * * @param msg print message */ private void print(String msg) { if (KQMLManager.debug) { System.err.println("AirLine." + msg); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -