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