001// license-header java merge-point 002// 003// Attention: generated code (by Metafacade.vsl) - do not modify! 004// 005package org.andromda.metafacades.uml; 006 007/** 008 * A property related by memberEnd or its specializations to an association represents an end of the 009 * association. The type of the property is the type of the end of the association .Property 010 * represents a declared state of one or more instances in terms of a named relationship to a value 011 * or values. When a property is an association end, the value or values are related to the instance 012 * or instances at the other end(s) of the association. 013 * 014 * Metafacade interface to be used by AndroMDA cartridges. 015 */ 016public interface AssociationEndFacade 017 extends ModelElementFacade 018{ 019 /** 020 * Indicates the metafacade type (used for metafacade mappings). 021 * 022 * @return boolean always <code>true</code> 023 */ 024 public boolean isAssociationEndFacadeMetaType(); 025 026 /** 027 * A name suitable for use when adding new elements to this association end in programming code. 028 * @return String 029 */ 030 public String getAdderName(); 031 032 /** 033 * Returns the value of the 'Aggregation' attribute (none, shared, composite). The default value 034 * is "none". The literals are from the enumeration org.eclipse.uml2.uml.AggregationKind. 035 * Specifies the kind of aggregation that applies to the Property. 036 * @return String 037 */ 038 public String getAggregationKind(); 039 040 /** 041 * The association owning this association end. 042 * @return AssociationFacade 043 */ 044 public AssociationFacade getAssociation(); 045 046 /** 047 * UML2: Returns the value of the 'Default' attribute. Specifies a String that represents a 048 * value to be used when no argument is supplied for the Property. A String that is evaluated to 049 * give a default value for the Property when an object of the owning Classifier is 050 * instantiated. Can be something like: new ValueObject(values); 051 * @return String 052 */ 053 public String getDefault(); 054 055 /** 056 * A name suitable for use when accessing this association end in programming code. 057 * @return String 058 */ 059 public String getGetterName(); 060 061 /** 062 * The name of the type that is returned on the accessor and mutator operations, determined in 063 * part by the multiplicity. 064 * @return String 065 */ 066 public String getGetterSetterTypeName(); 067 068 /** 069 * the lower value for the multiplicity 070 * -only applicable for UML2 071 * @return int 072 */ 073 public int getLower(); 074 075 /** 076 * The other association end owned by this end's association. 077 * @return AssociationEndFacade 078 */ 079 public AssociationEndFacade getOtherEnd(); 080 081 /** 082 * A name suitable for use when removing element from this association end in programming code. 083 * @return String 084 */ 085 public String getRemoverName(); 086 087 /** 088 * A name suitable for use when accessing this association end in programming code. 089 * @return String 090 */ 091 public String getSetterName(); 092 093 /** 094 * The classifier attached to this association end. 095 * @return ClassifierFacade 096 */ 097 public ClassifierFacade getType(); 098 099 /** 100 * the upper value for the multiplicity (will be -1 for *) 101 * -only applicable for UML2 102 * @return int 103 */ 104 public int getUpper(); 105 106 /** 107 * True if this association end represents an aggregation relationship. 108 * @return boolean 109 */ 110 public boolean isAggregation(); 111 112 /** 113 * Is true if update of one side of the association should also update the other side. false if 114 * not. 115 * @return boolean 116 */ 117 public boolean isBidirectional(); 118 119 /** 120 * Returns whether or not (true/false) this association end is the child end of the assocation 121 * (i.e. the other end's aggregation is composition). 122 * @return boolean 123 */ 124 public boolean isChild(); 125 126 /** 127 * True if this association end represents a composition relationship. 128 * @return boolean 129 */ 130 public boolean isComposition(); 131 132 /** 133 * If the association end is derived (its value is computed). UML2 only. UML14 always returns 134 * false. Default=false. 135 * @return boolean 136 */ 137 public boolean isDerived(); 138 139 /** 140 * IsLeaf property in the association end property. If true, attribute is final, cannot be 141 * extended or implemented by a descendant. Default=false. 142 * @return boolean 143 */ 144 public boolean isLeaf(); 145 146 /** 147 * True if this association end's multiplicity is greater than one. 148 * @return boolean 149 */ 150 public boolean isMany(); 151 152 /** 153 * True if this association end's and the other end's multiplicities are both many. 154 * @return boolean 155 */ 156 public boolean isMany2Many(); 157 158 /** 159 * True if this association end's multiplicity is many while the other end's is one. 160 * @return boolean 161 */ 162 public boolean isMany2One(); 163 164 /** 165 * True if it is possible to navigate from the other end to this association end . 166 * @return boolean 167 */ 168 public boolean isNavigable(); 169 170 /** 171 * True if this association end's multiplicity is one while the other end's is many. 172 * @return boolean 173 */ 174 public boolean isOne2Many(); 175 176 /** 177 * True if this association end's and the other end's multiplicities are both one. 178 * @return boolean 179 */ 180 public boolean isOne2One(); 181 182 /** 183 * Indicates whether or not the association ends are ordered (if multiplicity is greater than 184 * 1). 185 * @return boolean 186 */ 187 public boolean isOrdered(); 188 189 /** 190 * True if the association end cannot be changed. 191 * @return boolean 192 */ 193 public boolean isReadOnly(); 194 195 /** 196 * True if this association end's multiplicity is strictly greater than zero. 197 * @return boolean 198 */ 199 public boolean isRequired(); 200 201 /** 202 * Indicates if this associationEnd is 'static', meaning it has a classifier scope. 203 * @return boolean 204 */ 205 public boolean isStatic(); 206 207 /** 208 * UML2: If the association attribute is unique within the Collection type. UML14 always returns 209 * false. Unique+Ordered determines the implementation Collection type. Default=false. 210 * @return boolean 211 */ 212 public boolean isUnique(); 213}