001package systems.dmx.core.model;
002
003import systems.dmx.core.Identifiable;
004import systems.dmx.core.JSONEnabled;
005
006
007
008public interface DMXObjectModel extends Identifiable, JSONEnabled, Cloneable {
009
010    // --- ID ---
011
012    long getId();
013
014    void setId(long id);
015
016    // --- URI ---
017
018    String getUri();
019
020    void setUri(String uri);
021
022    // --- Type URI ---
023
024    String getTypeUri();
025
026    void setTypeUri(String typeUri);
027
028    // --- Simple Value ---
029
030    SimpleValue getSimpleValue();
031
032    // ---
033
034    void setSimpleValue(String value);
035
036    void setSimpleValue(int value);
037
038    void setSimpleValue(long value);
039
040    void setSimpleValue(boolean value);
041
042    void setSimpleValue(SimpleValue value);
043
044    // --- Child Topics ---
045
046    ChildTopicsModel getChildTopicsModel();
047
048    void setChildTopicsModel(ChildTopicsModel childTopics);
049
050    // --- misc ---
051
052    void set(DMXObjectModel object);
053
054    // ---
055
056    RoleModel createRoleModel(String roleTypeUri);
057
058
059
060    // === Java API ===
061
062    DMXObjectModel clone();
063}