001    package de.deepamehta.core.model;
002    
003    import org.codehaus.jettison.json.JSONObject;
004    
005    
006    
007    public class TopicModel extends DeepaMehtaObjectModel {
008    
009        // ---------------------------------------------------------------------------------------------------- Constructors
010    
011        public TopicModel(String typeUri) {
012            super(typeUri);
013        }
014    
015        public TopicModel(String typeUri, SimpleValue value) {
016            super(typeUri, value);
017        }
018    
019        public TopicModel(String typeUri, CompositeValueModel composite) {
020            super(typeUri, composite);
021        }
022    
023        public TopicModel(String uri, String typeUri) {
024            super(uri, typeUri);
025        }
026    
027        public TopicModel(String uri, String typeUri, SimpleValue value) {
028            super(uri, typeUri, value);
029        }
030    
031        public TopicModel(String uri, String typeUri, CompositeValueModel composite) {
032            super(uri, typeUri, composite);
033        }
034    
035        public TopicModel(long id) {
036            super(id);
037        }
038    
039        public TopicModel(long id, String typeUri) {
040            super(id, typeUri);
041        }
042    
043        public TopicModel(long id, CompositeValueModel composite) {
044            super(id, composite);
045        }
046    
047        /**
048         * @param   uri         If <code>null</code> an empty string is set. This is OK.
049         * @param   typeUri     Mandatory. Note: only the internal meta type topic (ID 0) has no type URI (null).
050         * @param   value       If <code>null</code> an empty string value is set. This is OK.
051         * @param   composite   If <code>null</code> an empty composite is set. This is OK.
052         */
053        public TopicModel(long id, String uri, String typeUri, SimpleValue value, CompositeValueModel composite) {
054            super(id, uri, typeUri, value, composite);
055        }
056    
057        public TopicModel(TopicModel model) {
058            super(model);
059        }
060    
061        public TopicModel(JSONObject model) {
062            super(model);
063        }
064    
065        public TopicModel(JSONObject typeModel, String typeUri) {
066            super(typeModel, typeUri);
067        }
068    
069        // -------------------------------------------------------------------------------------------------- Public Methods
070    
071    
072    
073        // === Implementation of the abstract methods ===
074    
075        @Override
076        public RoleModel createRoleModel(String roleTypeUri) {
077            return new TopicRoleModel(getId(), roleTypeUri);
078        }
079    
080    
081    
082        // === Java API ===
083    
084        @Override
085        public TopicModel clone() {
086            try {
087                return (TopicModel) super.clone();
088            } catch (Exception e) {
089                throw new RuntimeException("Cloning a TopicModel failed", e);
090            }
091        }
092    
093        @Override
094        public String toString() {
095            return "topic (" + super.toString() + ")";
096        }
097    }