001package de.deepamehta.core; 002 003import de.deepamehta.core.model.AssociationDefinitionModel; 004import de.deepamehta.core.model.AssociationModel; 005import de.deepamehta.core.model.IndexMode; 006import de.deepamehta.core.model.TypeModel; 007 008import java.util.Collection; 009import java.util.List; 010 011 012 013public interface DeepaMehtaType extends Topic { 014 015 // --- Data Type --- 016 017 String getDataTypeUri(); 018 019 void setDataTypeUri(String dataTypeUri); 020 021 // --- Index Modes --- 022 023 List<IndexMode> getIndexModes(); 024 025 void addIndexMode(IndexMode indexMode); 026 027 // --- Association Definitions --- 028 029 Collection<AssociationDefinition> getAssocDefs(); 030 031 AssociationDefinition getAssocDef(String assocDefUri); 032 033 boolean hasAssocDef(String assocDefUri); 034 035 DeepaMehtaType addAssocDef(AssociationDefinitionModel assocDef); 036 037 /** 038 * @param beforeAssocDefUri the URI of the assoc def <i>before</i> the given assoc def is inserted. 039 * If <code>null</code> the assoc def is appended at the end. 040 */ 041 DeepaMehtaType addAssocDefBefore(AssociationDefinitionModel assocDef, String beforeAssocDefUri); 042 043 DeepaMehtaType removeAssocDef(String assocDefUri); 044 045 // --- Label Configuration --- 046 047 List<String> getLabelConfig(); 048 049 void setLabelConfig(List<String> labelConfig); 050 051 // --- View Configuration --- 052 053 ViewConfiguration getViewConfig(); 054 055 Object getViewConfig(String typeUri, String settingUri); 056 057 // --- 058 059 void update(TypeModel model); 060 061 // --- 062 063 TypeModel getModel(); 064}