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 }