1 // license-header java merge-point
2 //
3 // Attention: generated code (by Metafacade.vsl) - do not modify!
4 //
5 package org.andromda.metafacades.uml;
6
7 /**
8 * Represents an attribute on a classifier. UML2 maps both Attributes and AssociationEnds to
9 * Property. A property is a structural feature of a classifier that characterizes instances of the
10 * classifier. A property related by ownedAttribute to a classifier (other than an association)
11 * represents an attribute and might also represent an association end. It relates an instance of
12 * the class to a value or set of values of the type of the attribute. A property represents a set
13 * of instances that are owned by a containing classifier instance. Property represents a declared
14 * state of one or more instances in terms of a named relationship to a value or values. When a
15 * property is an attribute of a classifier, the value or values are related to the instance of the
16 * classifier by being held in slots of the instance. The range of valid values represented by the
17 * property can be controlled by setting the property's type.
18 *
19 * Metafacade interface to be used by AndroMDA cartridges.
20 */
21 public interface AttributeFacade
22 extends ModelElementFacade
23 {
24 /**
25 * Indicates the metafacade type (used for metafacade mappings).
26 *
27 * @return boolean always <code>true</code>
28 */
29 public boolean isAttributeFacadeMetaType();
30
31 /**
32 * Searches the given feature for the specified tag.
33 * If the follow boolean is set to true then the search will continue from the class attribute
34 * to the class itself and then up the class hierarchy.
35 * @param name String
36 * @param follow boolean
37 * @return Object
38 */
39 public Object findTaggedValue(String name, boolean follow);
40
41 /**
42 * The default value of the attribute. This is the value given if no value is defined.
43 * @return String
44 */
45 public String getDefaultValue();
46
47 /**
48 * If the attribute is an enumeration literal this represents the owning enumeration. Can be
49 * empty.
50 * @return EnumerationFacade
51 */
52 public EnumerationFacade getEnumeration();
53
54 /**
55 * Returns the enumeration literal parameters defined by tagged value as a comma separated list.
56 * @return String
57 */
58 public String getEnumerationLiteralParameters();
59
60 /**
61 * The value for this attribute if it is an enumeration literal, null otherwise. The default
62 * value is returned as a String if it has been specified, if it's not specified this
63 * attribute's name is assumed.
64 * @return String
65 */
66 public String getEnumerationValue();
67
68 /**
69 * The name of the accessor operation that would retrieve this attribute's value.
70 * @return String
71 */
72 public String getGetterName();
73
74 /**
75 * The name of the type that is returned on the accessor and mutator operations, determined in
76 * part by the multiplicity.
77 * @return String
78 */
79 public String getGetterSetterTypeName();
80
81 /**
82 * the lower value for the multiplicity
83 * -only applicable for UML2
84 * @return int
85 */
86 public int getLower();
87
88 /**
89 * Gets the classifier who is the owner of the attributes.
90 * @return ClassifierFacade
91 */
92 public ClassifierFacade getOwner();
93
94 /**
95 * The name of the mutator operation that would retrieve this attribute's value.
96 * @return String
97 */
98 public String getSetterName();
99
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 }