001package de.deepamehta.core.impl; 002 003import de.deepamehta.core.AssociationDefinition; 004import de.deepamehta.core.DeepaMehtaType; 005import de.deepamehta.core.ViewConfiguration; 006import de.deepamehta.core.model.AssociationDefinitionModel; 007import de.deepamehta.core.model.IndexMode; 008import de.deepamehta.core.model.RoleModel; 009import de.deepamehta.core.model.TypeModel; 010 011import java.util.Collection; 012import java.util.List; 013 014 015 016abstract class DeepaMehtaTypeImpl extends TopicImpl implements DeepaMehtaType { 017 018 // ---------------------------------------------------------------------------------------------------- Constructors 019 020 DeepaMehtaTypeImpl(TypeModelImpl model, PersistenceLayer pl) { 021 super(model, pl); 022 } 023 024 // -------------------------------------------------------------------------------------------------- Public Methods 025 026 027 028 // ************************************* 029 // *** DeepaMehtaType Implementation *** 030 // ************************************* 031 032 033 034 // --- Data Type --- 035 036 @Override 037 public String getDataTypeUri() { 038 return getModel().getDataTypeUri(); 039 } 040 041 @Override 042 public void setDataTypeUri(String dataTypeUri) { 043 getModel().updateDataTypeUri(dataTypeUri); 044 } 045 046 // --- Index Modes --- 047 048 @Override 049 public List<IndexMode> getIndexModes() { 050 return getModel().getIndexModes(); 051 } 052 053 @Override 054 public void addIndexMode(IndexMode indexMode) { 055 getModel()._addIndexMode(indexMode); 056 } 057 058 // --- Association Definitions --- 059 060 @Override 061 public Collection<AssociationDefinition> getAssocDefs() { 062 return pl.instantiate(getModel().getAssocDefs()); 063 } 064 065 @Override 066 public AssociationDefinition getAssocDef(String assocDefUri) { 067 return getModel().getAssocDef(assocDefUri).instantiate(); 068 } 069 070 @Override 071 public boolean hasAssocDef(String assocDefUri) { 072 return getModel().hasAssocDef(assocDefUri); 073 } 074 075 @Override 076 public DeepaMehtaType addAssocDef(AssociationDefinitionModel assocDef) { 077 return addAssocDefBefore(assocDef, null); // beforeAssocDefUri=null 078 } 079 080 @Override 081 public DeepaMehtaType addAssocDefBefore(AssociationDefinitionModel assocDef, String beforeAssocDefUri) { 082 getModel()._addAssocDefBefore(assocDef, beforeAssocDefUri); 083 return this; 084 } 085 086 @Override 087 public DeepaMehtaType removeAssocDef(String assocDefUri) { 088 getModel()._removeAssocDef(assocDefUri); 089 return this; 090 } 091 092 // --- Label Configuration --- 093 094 @Override 095 public List<String> getLabelConfig() { 096 return getModel().getLabelConfig(); 097 } 098 099 @Override 100 public void setLabelConfig(List<String> labelConfig) { 101 getModel().updateLabelConfig(labelConfig); 102 } 103 104 // --- View Configuration --- 105 106 @Override 107 public ViewConfiguration getViewConfig() { 108 RoleModel configurable = pl.typeStorage.newTypeRole(getId()); // ### type ID is uninitialized 109 return new ViewConfigurationImpl(configurable, getModel().getViewConfigModel(), pl); 110 } 111 112 @Override 113 public Object getViewConfig(String typeUri, String settingUri) { 114 return getModel().getViewConfig(typeUri, settingUri); 115 } 116 117 // --- 118 119 @Override 120 public void update(TypeModel newModel) { 121 getModel().update(newModel); 122 } 123 124 // --- 125 126 @Override 127 public TypeModelImpl getModel() { 128 return (TypeModelImpl) model; 129 } 130}