001package de.deepamehta.core.model;
002
003import org.codehaus.jettison.json.JSONException;
004import org.codehaus.jettison.json.JSONObject;
005
006import java.util.List;
007import java.util.logging.Logger;
008
009
010
011/**
012 * Collection of the data that makes up a {@link TopicType}.
013 *
014 * @author <a href="mailto:jri@deepamehta.de">Jörg Richter</a>
015 */
016public class TopicTypeModel extends TypeModel {
017
018    // ---------------------------------------------------------------------------------------------- Instance Variables
019
020    private Logger logger = Logger.getLogger(getClass().getName());
021
022    // ---------------------------------------------------------------------------------------------------- Constructors
023
024    public TopicTypeModel(String uri, String value, String dataTypeUri) {
025        this(uri, "dm4.core.topic_type", value, dataTypeUri);
026    }
027
028    public TopicTypeModel(String uri, String topicTypeUri, String value, String dataTypeUri) {
029        super(uri, topicTypeUri, new SimpleValue(value), dataTypeUri);
030    }
031
032    public TopicTypeModel(TopicModel topic, String dataTypeUri, List<IndexMode> indexModes,
033                          List<AssociationDefinitionModel> assocDefs, List<String> labelConfig,
034                          ViewConfigurationModel viewConfig) {
035        super(topic, dataTypeUri, indexModes, assocDefs, labelConfig, viewConfig);
036    }
037
038    public TopicTypeModel(JSONObject topicType) throws JSONException {
039        super(topicType.put("type_uri", "dm4.core.topic_type"));
040    }
041
042    // -------------------------------------------------------------------------------------------------- Public Methods
043
044    @Override
045    public TopicTypeModel addAssocDef(AssociationDefinitionModel assocDef) {
046        return (TopicTypeModel) super.addAssocDef(assocDef);
047    }
048
049    // ---
050
051    @Override
052    public String toString() {
053        return "topic type (" + super.toString() + ")";
054    }
055}