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 016 017 // === Data Type === 018 019 String getDataTypeUri(); 020 021 DeepaMehtaType setDataTypeUri(String dataTypeUri); 022 023 024 025 // === Index Modes === 026 027 List<IndexMode> getIndexModes(); 028 029 DeepaMehtaType addIndexMode(IndexMode indexMode); 030 031 032 033 // === Association Definitions === 034 035 Collection<AssociationDefinition> getAssocDefs(); 036 037 AssociationDefinition getAssocDef(String assocDefUri); 038 039 boolean hasAssocDef(String assocDefUri); 040 041 DeepaMehtaType addAssocDef(AssociationDefinitionModel assocDef); 042 043 /** 044 * @param beforeAssocDefUri the URI of the assoc def <i>before</i> the given assoc def is inserted. 045 * If <code>null</code> the assoc def is appended at the end. 046 */ 047 DeepaMehtaType addAssocDefBefore(AssociationDefinitionModel assocDef, String beforeAssocDefUri); 048 049 DeepaMehtaType removeAssocDef(String assocDefUri); 050 051 052 053 // === View Configuration === 054 055 ViewConfiguration getViewConfig(); 056 057 Object getViewConfigValue(String configTypeUri, String childTypeUri); 058 059 060 061 // === 062 063 void update(TypeModel model); 064 065 // --- 066 067 TypeModel getModel(); 068}