001    package de.deepamehta.core.service;
002    
003    import de.deepamehta.core.Association;
004    import de.deepamehta.core.Topic;
005    import de.deepamehta.core.Type;
006    import de.deepamehta.core.model.AssociationDefinitionModel;
007    
008    
009    
010    public interface TypeStorage {
011    
012        AssociationDefinitionModel createAssociationDefinition(Association assoc);
013    
014        AssociationDefinitionModel fetchAssociationDefinition(Association assoc);
015    
016        // ---
017    
018        Topic fetchParentType(Association assoc);
019    
020        Topic fetchChildType(Association assoc);
021    
022        // ---
023    
024        // Removes an association from memory and rebuilds the sequence in DB. Note: the underlying
025        // association is *not* removed from DB.
026        // This method is called (by the Type Editor plugin's preDeleteAssociation() hook) when the
027        // deletion of an association that represents an association definition is imminent.
028        void removeAssociationDefinitionFromMemoryAndRebuildSequence(Type type, String childTypeUri);
029    }