7.2.3.txt

[java]

private Filter outFilter = new outgoingLoggingFilter();

public Filter getCommandFilter(boolean direction) {
if (direction == OUTGOING) {
return outFilter;
}
else {
return null;
}
}

private class OutgoingLoggingFilter extends Filter {
public boolean accept (VerticalCommand cmd) {
if (cmd.getName().equals(MessagingSlice.SEND_MESSAGE) ) {
object[] params = cmd.getParams();
AID sender = (AID) params [0];
GenericMessage gMsg = (GenericMessage) params [1];
ACLMessage msg = gMsg.getACLMessage();
AID receiver = (AID) params [2];
System.out.println("Message from "+sender+" to "+receiver+:");
if (verbose) {
System.out.println (msg) ;
}
else {
System.out.println(ACLMessage.getPerformative(msg.getPerformative()));
}
}
// Never block a command
return true;
}
}
[/java]