package de.unimuenchen.informatik.mnm.masa.agent.voyagerproxyagent; import de.unimuenchen.informatik.mnm.masa.agentSystem.voyagerintegration.*; import de.unimuenchen.informatik.mnm.masa.agentSystem.*; import de.unimuenchen.informatik.mnm.masa.agent.*; import de.unimuenchen.informatik.mnm.masa.agent.voyagermasagateway.*; import CfMAF.*; import de.unimuenchen.informatik.mnm.masa.tools.Debug; import java.util.StringTokenizer; /** * Class to represent a Voyager agent in MASA */ public class VoyagerProxyAgentMobileAgent extends MobileAgent implements VoyagerProxyAgentOperations { /** * Name of the Voyager agent * (not supported) */ private String myname; /** * Mark if termination is executed by VoyagerAgentManager * or by AgentSystemApplet */ private boolean readyForTermination = false; public VoyagerProxyAgentMobileAgent(String myname){ Debug.debug("VoyagerProxyAgent.<init>"); this.myname = myname; } /** * To call for a clean temrination, i.e. if this method is not called before * VoyagerProxyMobileAgent is terminated then VoyagerProxyMobileAgent supposes that the Voyager Agent is not terminated!! */ public void setReadyForTermination(){ Debug.debug("VoyagerProxyAgent ready for termination"); readyForTermination = true; } /** * Is called during termination * @see Agent.cleanUp() */ public void cleanUp() throws Throwable { Debug.debug("VoyagerProxyAgentMobileAgent.cleanUp()"); // terminate Voyager Agent if(!readyForTermination) throw new Exception("VoyagerProxyAgent must not be terminated if voyager agent is still running"); } /** * @see Agent.checkSerialization() */ public void checkSerialization() throws CouldNotMigrate { Debug.debug("VoyagerVoyagerProxyAgentMobileAgent.checkSerialization()"); } /** * Modifies the _url: new _url shows Applet of the VoyagerMasaGatewayStationaryAgent * * @see Agent.run() */ public void run() { Debug.debug("VoyagerVoyagerProxyAgentMobileAgent.run()"); // Modify url Debug.debug("VoyagerVoyagerProxyAgentMobileAgent.run() - url:" + _url); StringTokenizer token = new StringTokenizer(_url,"/"); String result = "/"; String nextToken; while(token.hasMoreElements()){ nextToken = token.nextToken(); if(!token.hasMoreElements()) result = result + "VoyagerMasaGateway.html"; else result = result + nextToken + "/"; } _url = result; Debug.debug("VoyagerVoyagerProxyAgentMobileAgent.run() - url:" + _url); } }