001// license-header java merge-point 002// 003// Attention: generated code (by Metafacade.vsl) - do not modify! 004// 005package org.andromda.metafacades.uml; 006 007import java.util.List; 008 009/** 010 * An association describes a set of tuples whose values refer to typed instances. An instance of an 011 * association is called a link. 012 * 013 * Metafacade interface to be used by AndroMDA cartridges. 014 */ 015public interface AssociationFacade 016 extends GeneralizableElementFacade 017{ 018 /** 019 * Indicates the metafacade type (used for metafacade mappings). 020 * 021 * @return boolean always <code>true</code> 022 */ 023 public boolean isAssociationFacadeMetaType(); 024 025 /** 026 * The first association end. 027 * @return AssociationEndFacade 028 */ 029 public AssociationEndFacade getAssociationEndA(); 030 031 /** 032 * The second association end. 033 * @return AssociationEndFacade 034 */ 035 public AssociationEndFacade getAssociationEndB(); 036 037 /** 038 * Gets the association ends belonging to this association. 039 * @return List<AssociationEndFacade> 040 */ 041 public List<AssociationEndFacade> getAssociationEnds(); 042 043 /** 044 * A name suited for naming this relationship. This name will be constructed from both 045 * association ends. 046 * @return String 047 */ 048 public String getRelationName(); 049 050 /** 051 * Indicates if this association is 'abstract'. 052 * @return boolean 053 */ 054 public boolean isAbstract(); 055 056 /** 057 * True if the AssociationFacade is an AssociationClass. 058 * @return boolean 059 */ 060 public boolean isAssociationClass(); 061 062 /** 063 * UML2: Determines whether this association is a binary association, i.e. whether it has 064 * exactly two member ends. UML2 allows association classes in the association itself (many2many 065 * with association attributes). Default=true: only two member ends. 066 * @return boolean 067 */ 068 public boolean isBinary(); 069 070 /** 071 * UML2: Returns the value of the 'Is Derived' attribute. The default value is "false". If 072 * isDerived is true, the value of the attribute is derived from information elsewhere. 073 * Specifies whether the Property is derived, i.e., whether its value or values can be computed 074 * from other information. 075 * @return boolean 076 */ 077 public boolean isDerived(); 078 079 /** 080 * True if this association cannot be extended and represent a leaf in the inheritance tree. 081 * @return boolean 082 */ 083 public boolean isLeaf(); 084 085 /** 086 * Indicates whether or not this associations represents a many-to-many relation. 087 * @return boolean 088 */ 089 public boolean isMany2Many(); 090}