001package de.deepamehta.core.impl; 002 003import de.deepamehta.core.TopicType; 004import de.deepamehta.core.model.AssociationDefinitionModel; 005import de.deepamehta.core.model.SimpleValue; 006import de.deepamehta.core.model.TopicModel; 007import de.deepamehta.core.model.TopicTypeModel; 008import de.deepamehta.core.model.TypeModel; 009import de.deepamehta.core.service.Directive; 010 011import java.util.List; 012 013 014 015/** 016 * Data that underlies a {@link TopicType}. 017 * 018 * @author <a href="mailto:jri@deepamehta.de">Jörg Richter</a> 019 */ 020class TopicTypeModelImpl extends TypeModelImpl implements TopicTypeModel { 021 022 // ---------------------------------------------------------------------------------------------------- Constructors 023 024 TopicTypeModelImpl(TypeModelImpl type) { 025 super(type); 026 } 027 028 // -------------------------------------------------------------------------------------------------- Public Methods 029 030 @Override 031 public TopicTypeModel addAssocDef(AssociationDefinitionModel assocDef) { 032 return (TopicTypeModel) super.addAssocDef(assocDef); 033 } 034 035 // --- 036 037 @Override 038 public String toString() { 039 return "topic type (" + super.toString() + ")"; 040 } 041 042 // ----------------------------------------------------------------------------------------- Package Private Methods 043 044 @Override 045 String className() { 046 return "topic type"; 047 } 048 049 @Override 050 TopicType instantiate() { 051 return new TopicTypeImpl(this, pl); 052 } 053 054 055 056 // === Implementation of abstract TypeModelImpl methods === 057 058 @Override 059 List<TopicModelImpl> getAllInstances() { 060 return pl.fetchTopics("type_uri", new SimpleValue(uri)); 061 } 062 063 // --- 064 065 @Override 066 Directive getUpdateTypeDirective() { 067 return Directive.UPDATE_TOPIC_TYPE; 068 } 069 070 @Override 071 Directive getDeleteTypeDirective() { 072 return Directive.DELETE_TOPIC_TYPE; 073 } 074}