001 package de.deepamehta.core;
002
003 import de.deepamehta.core.model.AssociationDefinitionModel;
004
005
006
007 /**
008 * Definition of an association between 2 topic types -- part of DeepaMehta's type system,
009 * like an association in a class diagram. Used to represent both, aggregations and compositions.
010 *
011 * @author <a href="mailto:jri@deepamehta.de">Jörg Richter</a>
012 */
013 public interface AssociationDefinition extends Association {
014
015 String getInstanceLevelAssocTypeUri();
016
017 String getParentTypeUri();
018
019 String getChildTypeUri();
020
021 String getParentCardinalityUri();
022
023 String getChildCardinalityUri();
024
025 ViewConfiguration getViewConfig();
026
027 // ---
028
029 AssociationDefinitionModel getModel();
030
031 // ---
032
033 void setParentCardinalityUri(String parentCardinalityUri);
034
035 void setChildCardinalityUri(String childCardinalityUri);
036
037 // === Updating ===
038
039 void update(AssociationDefinitionModel model);
040 }