001package systems.dmx.core.model;
002
003import systems.dmx.core.JSONEnabled;
004
005
006
007public interface RoleModel extends JSONEnabled, Cloneable {
008
009    long getPlayerId();
010
011    String getRoleTypeUri();
012
013    // ---
014
015    // ### TODO: to be dropped?
016    void setPlayerId(long playerId);
017
018    void setRoleTypeUri(String roleTypeUri);
019
020    // ---
021
022    /**
023     * Checks weather the given role model refers to the same object as this role model.
024     * In case of a topic role model the topic IDs resp. URIs are compared.
025     * In case of an association role model the association IDs are compared.
026     * Note: the role types are not compared.
027     *
028     * @return  true if the given role model refers to the same object as this role model.
029     */
030    boolean refsSameObject(RoleModel model);
031
032    // ---
033
034    RoleModel clone();
035}