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 * Represents an attribute on a classifier. UML2 maps both Attributes and AssociationEnds to 009 * Property. A property is a structural feature of a classifier that characterizes instances of the 010 * classifier. A property related by ownedAttribute to a classifier (other than an association) 011 * represents an attribute and might also represent an association end. It relates an instance of 012 * the class to a value or set of values of the type of the attribute. A property represents a set 013 * of instances that are owned by a containing classifier instance. Property represents a declared 014 * state of one or more instances in terms of a named relationship to a value or values. When a 015 * property is an attribute of a classifier, the value or values are related to the instance of the 016 * classifier by being held in slots of the instance. The range of valid values represented by the 017 * property can be controlled by setting the property's type. 018 * 019 * Metafacade interface to be used by AndroMDA cartridges. 020 */ 021public interface AttributeFacade 022 extends ModelElementFacade 023{ 024 /** 025 * Indicates the metafacade type (used for metafacade mappings). 026 * 027 * @return boolean always <code>true</code> 028 */ 029 public boolean isAttributeFacadeMetaType(); 030 031 /** 032 * Searches the given feature for the specified tag. 033 * If the follow boolean is set to true then the search will continue from the class attribute 034 * to the class itself and then up the class hierarchy. 035 * @param name String 036 * @param follow boolean 037 * @return Object 038 */ 039 public Object findTaggedValue(String name, boolean follow); 040 041 /** 042 * The default value of the attribute. This is the value given if no value is defined. 043 * @return String 044 */ 045 public String getDefaultValue(); 046 047 /** 048 * If the attribute is an enumeration literal this represents the owning enumeration. Can be 049 * empty. 050 * @return EnumerationFacade 051 */ 052 public EnumerationFacade getEnumeration(); 053 054 /** 055 * Returns the enumeration literal parameters defined by tagged value as a comma separated list. 056 * @return String 057 */ 058 public String getEnumerationLiteralParameters(); 059 060 /** 061 * The value for this attribute if it is an enumeration literal, null otherwise. The default 062 * value is returned as a String if it has been specified, if it's not specified this 063 * attribute's name is assumed. 064 * @return String 065 */ 066 public String getEnumerationValue(); 067 068 /** 069 * The name of the accessor operation that would retrieve this attribute's value. 070 * @return String 071 */ 072 public String getGetterName(); 073 074 /** 075 * The name of the type that is returned on the accessor and mutator operations, determined in 076 * part by the multiplicity. 077 * @return String 078 */ 079 public String getGetterSetterTypeName(); 080 081 /** 082 * the lower value for the multiplicity 083 * -only applicable for UML2 084 * @return int 085 */ 086 public int getLower(); 087 088 /** 089 * Gets the classifier who is the owner of the attributes. 090 * @return ClassifierFacade 091 */ 092 public ClassifierFacade getOwner(); 093 094 /** 095 * The name of the mutator operation that would retrieve this attribute's value. 096 * @return String 097 */ 098 public String getSetterName(); 099 100 /** 101 * The classifier owning this attribute. 102 * @return ClassifierFacade 103 */ 104 public ClassifierFacade getType(); 105 106 /** 107 * the upper value for the multiplicity (will be -1 for *) 108 * -only applicable for UML2 109 * @return int 110 */ 111 public int getUpper(); 112 113 /** 114 * True if this attribute can only be set. 115 * @return boolean 116 */ 117 public boolean isAddOnly(); 118 119 /** 120 * True if this attribute can be modified. 121 * @return boolean 122 */ 123 public boolean isChangeable(); 124 125 /** 126 * Indicates if the default value is present. 127 * @return boolean 128 */ 129 public boolean isDefaultValuePresent(); 130 131 /** 132 * If the attribute is derived (its value is computed). UML2 only. UML14 always returns false. 133 * Default=false. 134 * @return boolean 135 */ 136 public boolean isDerived(); 137 138 /** 139 * True if this attribute is owned by an enumeration. 140 * @return boolean 141 */ 142 public boolean isEnumerationLiteral(); 143 144 /** 145 * Returns true if enumeration literal parameters exist (defined by tagged value) for the 146 * literal. 147 * @return boolean 148 */ 149 public boolean isEnumerationLiteralParametersExist(); 150 151 /** 152 * True if this attribute is owned by an enumeration but is defined as a member variable (NOT a 153 * literal). 154 * @return boolean 155 */ 156 public boolean isEnumerationMember(); 157 158 /** 159 * IsLeaf property in the operation. If true, operation is final, cannot be extended or 160 * implemented by a descendant. 161 * @return boolean 162 */ 163 public boolean isLeaf(); 164 165 /** 166 * Whether or not this attribute has a multiplicity greater than 1. 167 * @return boolean 168 */ 169 public boolean isMany(); 170 171 /** 172 * Indicates whether or not the attributes are ordered (if multiplicity is greater than 1). 173 * @return boolean 174 */ 175 public boolean isOrdered(); 176 177 /** 178 * Whether or not this attribute can be modified. 179 * @return boolean 180 */ 181 public boolean isReadOnly(); 182 183 /** 184 * Whether or not the multiplicity of this attribute is 1. 185 * @return boolean 186 */ 187 public boolean isRequired(); 188 189 /** 190 * Indicates if this attribute is 'static', meaning it has a classifier scope. 191 * @return boolean 192 */ 193 public boolean isStatic(); 194 195 /** 196 * If the attribute is unique within the Collection type. UML2 only. UML14 always returns false. 197 * Unique+Ordered determines the implementation Collection type. Default=false. 198 * @return boolean 199 */ 200 public boolean isUnique(); 201}