... 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; } }