// Path: agent-messaging/src/main/java/fr/irit/smac/libs/tooling/messaging/IDirectory.java
// public interface IDirectory<T> {
// 
//     /**
//      * Returns the agent ref from the given agent id.
//      *
//      * @param agentId the agent id
//      * @return the agent ref
//      */
//     public Ref<T> getAgentRef(String agentId);
// 
//     /**
//      * Returns the group ref from the given agent id.
//      *
//      * @param groupId the group id
//      * @return the group ref
//      */
//     public Ref<T> getGroupRef(String groupId);
// 
//     /**
//      * Returns all the agents inscribed in a group.
//      *
//      * @param groupRef the group ref
//      * @return the agents of group
//      */
//     public Set<Ref<T>> getAgentsOfGroup(Ref<T> groupRef);
// 
//     /**
//      * Returns all the agents inscribed in a group.
//      *
//      * @param groupId the group id
//      * @return the agents of group
//      */
//     public Set<Ref<T>> getAgentsOfGroup(String groupId);
// 
//     /**
//      * Returns all the agent refs inscribed in the directory.
//      *
//      * @return the groups ref
//      */
//     public List<Ref<T>> getGroupsRef();
// 
//     /**
//      * Returns all the groups refs inscribed in the directory.
//      *
//      * @return the agents ref
//      */
//     public List<Ref<T>> getAgentsRef();
// }
// 
// Path: agent-messaging/src/main/java/fr/irit/smac/libs/tooling/messaging/IMsgBox.java
// public interface IMsgBox<T> extends ISender<T>, IReceiver<T> {
// 
//     /**
//      * The ref of the agent using the message box.
//      *
//      * @return the ref
//      */
//     public Ref<T> getRef();
// 
//     /**
//      * Disable the message box and uninscrible it to all the previously
//      * subscribed groups.
//      */
//     public void dispose();
// }
// 
// Path: agent-messaging/src/main/java/fr/irit/smac/libs/tooling/messaging/IMsgService.java
// public interface IMsgService<T> extends ISender<T> {
// 
//     /**
//      * Gets or create a message box associated with the given agent id.
//      *
//      * @param agentId the agent id
//      * @return the msg box
//      */
//     public IMsgBox<T> getMsgBox(String agentId);
// 
// }


import fr.irit.smac.libs.tooling.messaging.IMsgBox;
import fr.irit.smac.libs.tooling.messaging.IMsgService;
import fr.irit.smac.libs.tooling.messaging.IDirectory;
    }

    /* (non-Javadoc)
     * @see fr.irit.smac.libs.tooling.messaging.ISender#sendToGroup(java.lang.Object, java.lang.String)
     */
    @Override
    public boolean sendToGroup(T msg, String groupId) {
        return this.sender.sendToGroup(msg, groupId);
    }

    /* (non-Javadoc)
     * @see fr.irit.smac.libs.tooling.messaging.ISender#sendToGroup(java.lang.Object, fr.irit.smac.libs.tooling.messaging.impl.Ref)
     */
    @Override
    public boolean sendToGroup(T msg, Ref<T> groupRef) {
        return this.sender.sendToGroup(msg, groupRef);
    }

    /* (non-Javadoc)
     * @see fr.irit.smac.libs.tooling.messaging.ISender#broadcast(java.lang.Object)
     */
    @Override
    public boolean broadcast(T msg) {
        return this.sender.broadcast(msg);
    }

    /* (non-Javadoc)
     * @see fr.irit.smac.libs.tooling.messaging.IMsgService#getMsgBox(java.lang.String)
     */
    @Override
// Path: agent-messaging/src/main/java/fr/irit/smac/libs/tooling/messaging/IDirectory.java
// public interface IDirectory<T> {
// 
//     /**
//      * Returns the agent ref from the given agent id.
//      *
//      * @param agentId the agent id
//      * @return the agent ref
//      */
//     public Ref<T> getAgentRef(String agentId);
// 
//     /**
//      * Returns the group ref from the given agent id.
//      *
//      * @param groupId the group id
//      * @return the group ref
//      */
//     public Ref<T> getGroupRef(String groupId);
// 
//     /**
//      * Returns all the agents inscribed in a group.
//      *
//      * @param groupRef the group ref
//      * @return the agents of group
//      */
//     public Set<Ref<T>> getAgentsOfGroup(Ref<T> groupRef);
// 
//     /**
//      * Returns all the agents inscribed in a group.
//      *
//      * @param groupId the group id
//      * @return the agents of group
//      */
//     public Set<Ref<T>> getAgentsOfGroup(String groupId);
// 
//     /**
//      * Returns all the agent refs inscribed in the directory.
//      *
//      * @return the groups ref
//      */
//     public List<Ref<T>> getGroupsRef();
// 
//     /**
//      * Returns all the groups refs inscribed in the directory.
//      *
//      * @return the agents ref
//      */
//     public List<Ref<T>> getAgentsRef();
// }
// 
// Path: agent-messaging/src/main/java/fr/irit/smac/libs/tooling/messaging/IMsgBox.java
// public interface IMsgBox<T> extends ISender<T>, IReceiver<T> {
// 
//     /**
//      * The ref of the agent using the message box.
//      *
//      * @return the ref
//      */
//     public Ref<T> getRef();
// 
//     /**
//      * Disable the message box and uninscrible it to all the previously
//      * subscribed groups.
//      */
//     public void dispose();
// }
// 
// Path: agent-messaging/src/main/java/fr/irit/smac/libs/tooling/messaging/IMsgService.java
// public interface IMsgService<T> extends ISender<T> {
// 
//     /**
//      * Gets or create a message box associated with the given agent id.
//      *
//      * @param agentId the agent id
//      * @return the msg box
//      */
//     public IMsgBox<T> getMsgBox(String agentId);
// 
// }


// Path: agent-messaging/src/main/java/fr/irit/smac/libs/tooling/messaging/impl/DefaultMsgService.java
import fr.irit.smac.libs.tooling.messaging.IMsgBox;
import fr.irit.smac.libs.tooling.messaging.IMsgService;
import fr.irit.smac.libs.tooling.messaging.IDirectory;

    }

    /* (non-Javadoc)
     * @see fr.irit.smac.libs.tooling.messaging.ISender#sendToGroup(java.lang.Object, java.lang.String)
     */
    @Override
    public boolean sendToGroup(T msg, String groupId) {
        return this.sender.sendToGroup(msg, groupId);
    }

    /* (non-Javadoc)
     * @see fr.irit.smac.libs.tooling.messaging.ISender#sendToGroup(java.lang.Object, fr.irit.smac.libs.tooling.messaging.impl.Ref)
     */
    @Override
    public boolean sendToGroup(T msg, Ref<T> groupRef) {
        return this.sender.sendToGroup(msg, groupRef);
    }

    /* (non-Javadoc)
     * @see fr.irit.smac.libs.tooling.messaging.ISender#broadcast(java.lang.Object)
     */
    @Override
    public boolean broadcast(T msg) {
        return this.sender.broadcast(msg);
    }

    /* (non-Javadoc)
     * @see fr.irit.smac.libs.tooling.messaging.IMsgService#getMsgBox(java.lang.String)
     */
    @Override
    public IMsgBox<T> getMsgBox(String agentId) {