void storeType(TypeModel type, String defaultUriPrefix) { // 1) store the base-topic parts ### TODO: call storeTopic() instead? dms.storage.createTopic(type); associateWithTopicType(type.getId(), type.getTypeUri()); // Note: the created AttachedTopic is just a temporary vehicle to // let us call its setUri() and storeAndIndexValue() methods. AttachedTopic typeTopic = new AttachedTopic(type, dms); // If no URI is set the type gets a default URI based on its ID. // Note: this must be done *after* the topic is created. The ID is not known before. if (typeTopic.getUri().equals("")) { typeTopic.setUri(defaultUriPrefix + type.getId()); } // typeTopic.storeAndIndexValue(type.getSimpleValue()); // // 2) put in type cache // Note: an association type must be put in type cache *before* storing its association // definitions. // Consider creation of association type "Composition Definition": it has a composition // definition itself. putInTypeCache(type); // // 3) store the type-specific parts associateDataType(type.getUri(), type.getDataTypeUri()); storeIndexModes(type.getUri(), type.getIndexModes()); storeAssocDefs(type.getUri(), type.getAssocDefs()); storeLabelConfig(type.getLabelConfig(), type.getAssocDefs()); storeViewConfig(createConfigurableType(type.getId()), type.getViewConfigModel()); }
private void putInTypeCache(TypeModel type) { typeCache.put(type.getUri(), type); }