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