📄 stationaryaglet.java
字号:
package examples.itinerary;
import com.ibm.aglet.*;
import com.ibm.aglet.event.MobilityEvent;
import com.ibm.aglet.event.MobilityListener;
import com.ibm.agletx.patterns.Meeting;
import java.io.PrintStream;
public final class StationaryAglet extends Aglet
implements MobilityListener
{
private Meeting meeting;
boolean dispatched;
public StationaryAglet()
{
meeting = null;
dispatched = false;
}
public boolean handleMessage(Message message)
{
if(message.sameKind("dispose"))
try
{
dispose();
return true;
}
catch(Exception exception)
{
exception.printStackTrace();
}
else
if(meeting != null && message.sameKind(meeting.getID()))
{
meet((AgletID)message.getArg());
message.sendReply(getAgletID());
dispose();
return true;
}
return false;
}
private void meet(AgletID agletid)
{
print("[" + getAgletID() + "] I met with VisitingAglet [id=" + agletid + "]");
}
public void onArrival(MobilityEvent mobilityevent)
{
print("on Arrival");
dispatched = true;
try
{
meeting.ready(this);
}
catch(Exception exception)
{
exception.printStackTrace();
}
}
public void onCreation(Object obj)
{
print("created!");
addMobilityListener(this);
meeting = (Meeting)obj;
}
public void onDispatching(MobilityEvent mobilityevent)
{
if(dispatched)
throw new SecurityException("Don't try to move me!!");
else
return;
}
public void onDisposing()
{
print("disposed!!");
}
public void onReverting(MobilityEvent mobilityevent)
{
throw new SecurityException();
}
private void print(String s)
{
System.out.println(">>>StationaryAglet:" + s);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -