View Javadoc
1   package org.andromda.metafacades.emf.uml22;
2   
3   import java.lang.reflect.InvocationTargetException;
4   import java.util.Map;
5   import org.apache.log4j.Logger;
6   import org.eclipse.emf.common.notify.Notification;
7   import org.eclipse.emf.common.util.DiagnosticChain;
8   import org.eclipse.emf.common.util.EList;
9   import org.eclipse.emf.common.util.TreeIterator;
10  import org.eclipse.emf.ecore.EAnnotation;
11  import org.eclipse.emf.ecore.EClass;
12  import org.eclipse.emf.ecore.EObject;
13  import org.eclipse.emf.ecore.EOperation;
14  import org.eclipse.emf.ecore.EReference;
15  import org.eclipse.emf.ecore.EStructuralFeature;
16  import org.eclipse.emf.ecore.resource.Resource;
17  import org.eclipse.uml2.uml.AggregationKind;
18  import org.eclipse.uml2.uml.Association;
19  import org.eclipse.uml2.uml.Class;
20  import org.eclipse.uml2.uml.Classifier;
21  import org.eclipse.uml2.uml.Comment;
22  import org.eclipse.uml2.uml.DataType;
23  import org.eclipse.uml2.uml.Dependency;
24  import org.eclipse.uml2.uml.Deployment;
25  import org.eclipse.uml2.uml.DirectedRelationship;
26  import org.eclipse.uml2.uml.Element;
27  import org.eclipse.uml2.uml.Interface;
28  import org.eclipse.uml2.uml.Model;
29  import org.eclipse.uml2.uml.MultiplicityElement;
30  import org.eclipse.uml2.uml.NamedElement;
31  import org.eclipse.uml2.uml.Namespace;
32  import org.eclipse.uml2.uml.Package;
33  import org.eclipse.uml2.uml.PackageableElement;
34  import org.eclipse.uml2.uml.ParameterableElement;
35  import org.eclipse.uml2.uml.Property;
36  import org.eclipse.uml2.uml.RedefinableElement;
37  import org.eclipse.uml2.uml.Relationship;
38  import org.eclipse.uml2.uml.Stereotype;
39  import org.eclipse.uml2.uml.StringExpression;
40  import org.eclipse.uml2.uml.TemplateBinding;
41  import org.eclipse.uml2.uml.TemplateParameter;
42  import org.eclipse.uml2.uml.TemplateSignature;
43  import org.eclipse.uml2.uml.Type;
44  import org.eclipse.uml2.uml.Usage;
45  import org.eclipse.uml2.uml.ValueSpecification;
46  import org.eclipse.uml2.uml.VisibilityKind;
47  
48  /**
49   * Implementation of Attribute.
50   *
51   * We extend Property. We keep a reference to the original property and defer
52   * almost all method calls to it.
53   *
54   * @author C�dric Jeanneret
55   */
56  public class AttributeImpl
57      implements Attribute
58  {
59      /**
60       * The logger instance.
61       */
62      private static final Logger LOGGER = Logger.getLogger(AttributeImpl.class);
63  
64      /** UML2 3.0: Property no longer inherits from TemplateableElement
65       * org.eclipse.uml2.uml.Property
66       */
67      final Property property;
68  
69      /**
70       * @param propertyIn
71       */
72      AttributeImpl(final Property propertyIn)
73      {
74          this.property = propertyIn;
75      }
76  
77      /**
78       * @see Object#equals(Object)
79       */
80      @Override
81      public boolean equals(final Object obj)
82      {
83          if (obj instanceof AttributeImpl)
84          {
85              Property other = ((AttributeImpl)obj).property;
86              return this.property.equals(other);
87          }
88          if (obj instanceof AssociationEndImpl)
89          {
90              final Property other = ((AssociationEndImpl)obj).property;
91              return this.property.equals(other);
92          }
93          return this.property.equals(obj);
94      }
95  
96      /**
97       * @see Object#hashCode()
98       */
99      @Override
100     public int hashCode()
101     {
102         return this.property.hashCode();
103     }
104 
105     /**
106      * @see Object#toString()
107      */
108     @Override
109     public String toString()
110     {
111         return this.getClass().getName() + '[' + this.property.toString() + ']';
112     }
113 
114     /**
115      * @see org.eclipse.uml2.uml.Element#addKeyword(String)
116      */
117     public boolean addKeyword(final String arg0)
118     {
119         return this.property.addKeyword(arg0);
120     }
121 
122     /**
123      * @see org.eclipse.uml2.uml.NamedElement#allNamespaces()
124      */
125     public EList<Namespace> allNamespaces()
126     {
127         return this.property.allNamespaces();
128     }
129 
130     /**
131      * @see org.eclipse.uml2.uml.Element#allOwnedElements()
132      */
133     public EList<Element> allOwnedElements()
134     {
135         return this.property.allOwnedElements();
136     }
137 
138     /**
139      * @param arg0
140      * @see org.eclipse.uml2.uml.Element#applyStereotype(Stereotype)
141      */
142     public void apply(final Stereotype arg0)
143     {
144         this.property.applyStereotype(arg0);
145     }
146 
147     /**
148      * @param eClass
149      * @return this.property.createDefaultValue(null, null, eClass)
150      */
151     public ValueSpecification createDefaultValue(final EClass eClass)
152     {
153         return this.property.createDefaultValue(null, null, eClass);
154     }
155 
156     /**
157      * @see org.eclipse.uml2.uml.Property#createDefaultValue(String, org.eclipse.uml2.uml.Type, org.eclipse.emf.ecore.EClass)
158      */
159     public ValueSpecification createDefaultValue(final String name, final Type type, final EClass eClass)
160     {
161         return this.property.createLowerValue(name, type, eClass);
162     }
163 
164     /**
165      * @see org.eclipse.uml2.uml.NamedElement#createDependency(org.eclipse.uml2.uml.NamedElement)
166      */
167     public Dependency createDependency(final NamedElement arg0)
168     {
169         return this.property.createDependency(arg0);
170     }
171 
172     /**
173      * @return this.property.createDeployment(null)
174      * @see org.eclipse.uml2.uml.Property#createDeployment(String)
175      */
176     public Deployment createDeployment()
177     {
178         return this.property.createDeployment(null);
179     }
180 
181     /**
182      * @param arg0
183      * @return this.property.createDeployment(arg0.getName())
184      */
185     public Deployment createDeployment(final EClass arg0)
186     {
187         return this.property.createDeployment(arg0.getName());
188     }
189 
190     /**
191      * @see org.eclipse.uml2.uml.Element#createEAnnotation(String)
192      */
193     public EAnnotation createEAnnotation(final String arg0)
194     {
195         return this.property.createEAnnotation(arg0);
196     }
197 
198     /**
199      * @param arg0
200      * @return this.property.createLowerValue(null, null, arg0)
201      * @see org.eclipse.uml2.uml.Property#createLowerValue(String, Type, EClass)
202      */
203     public ValueSpecification createLowerValue(final EClass arg0)
204     {
205         return this.property.createLowerValue(null, null, arg0);
206     }
207 
208     /**
209      * @return this.property.createNameExpression(null, null)
210      * @see org.eclipse.uml2.uml.Property#createNameExpression(String, Type)
211      */
212     public StringExpression createNameExpression()
213     {
214         return this.property.createNameExpression(null, null);
215     }
216 
217     /**
218      * @param eClass
219      * @return this.property.createNameExpression(eClass.getName(), null)
220      * @see org.eclipse.uml2.uml.Property#createNameExpression(String, Type)
221      */
222     public StringExpression createNameExpression(final EClass eClass)
223     {
224         return this.property.createNameExpression(eClass.getName(), null);
225     }
226 
227     /**
228      * @see org.eclipse.uml2.uml.Element#createOwnedComment()
229      */
230     public Comment createOwnedComment()
231     {
232         return this.property.createOwnedComment();
233     }
234 
235     /**
236      * @param arg0
237      * @return this.property.createOwnedComment()
238      * @see org.eclipse.uml2.uml.Property#createOwnedComment()
239      */
240     public Comment createOwnedComment(final EClass arg0)
241     {
242         return this.property.createOwnedComment();
243     }
244 
245     /** UML2 3.0: Property no longer inherits from TemplateableElement
246      * @return null
247      * @see org.eclipse.uml2.uml.TemplateableElement#createOwnedTemplateSignature()
248      */
249     public TemplateSignature createOwnedTemplateSignature()
250     {
251         //return this.property.createOwnedTemplateSignature();
252         LOGGER.error("Attribute.createOwnedTemplateSignature has been removed from UML2 3.x, fix " + this.getQualifiedName());
253         return null;
254     }
255 
256     /** UML2 3.0: Property no longer inherits from TemplateableElement
257      * @param arg0
258      * @return null
259      * @see org.eclipse.uml2.uml.TemplateableElement#createOwnedTemplateSignature(org.eclipse.emf.ecore.EClass)
260      */
261     public TemplateSignature createOwnedTemplateSignature(final EClass arg0)
262     {
263         //return this.property.createOwnedTemplateSignature(arg0);
264         LOGGER.error("Attribute.createOwnedTemplateSignature(EClass) has been removed from UML2 3.x, fix " + this.getQualifiedName());
265         return null;
266     }
267 
268     /**
269      * @return this.property.createQualifier(null, null)
270      * @see org.eclipse.uml2.uml.Property#createQualifier(String, Type)
271      */
272     public Property createQualifier()
273     {
274         return this.property.createQualifier(null, null);
275     }
276 
277     /**
278      * @param arg0
279      * @return this.property.createQualifier(null, null, arg0)
280      * @see org.eclipse.uml2.uml.Property#createQualifier(String, Type, EClass)
281      */
282     public Property createQualifier(final EClass arg0)
283     {
284         return this.property.createQualifier(null, null, arg0);
285     }
286 
287     /**
288      * @see org.eclipse.uml2.uml.Property#createQualifier(String, org.eclipse.uml2.uml.Type)
289      */
290     public Property createQualifier(final String name, final Type type)
291     {
292         return this.property.createQualifier(name, type);
293     }
294 
295     /**
296      * @see org.eclipse.uml2.uml.Property#createQualifier(String, org.eclipse.uml2.uml.Type, org.eclipse.emf.ecore.EClass)
297      */
298     public Property createQualifier(final String name, final Type type, final EClass eClass)
299     {
300         return this.property.createQualifier(name, type, eClass);
301     }
302 
303     /** UML2 3.0: Property no longer inherits from TemplateableElement
304      * @return this.property.createTemplateBinding(null)
305      */
306     public TemplateBinding createTemplateBinding()
307     {
308         //return this.property.createTemplateBinding(null);
309         LOGGER.error("Attribute.property.createTemplateBinding has been removed from UML2 3.x, fix " + this.property.getQualifiedName());
310         return null;
311     }
312 
313     /** UML2 3.0: Property no longer inherits from TemplateableElement
314      * @param arg0
315      * @return this.property.createTemplateBinding((TemplateSignature) arg0)
316      */
317     public TemplateBinding createTemplateBinding(final EClass arg0)
318     {
319         //return this.property.createTemplateBinding((TemplateSignature) arg0);
320         LOGGER.error("Attribute.property.createTemplateBinding(EClass) has been removed from UML2 3.x, fix " + this.property.getQualifiedName());
321         return null;
322     }
323 
324     /**
325      * @param arg0
326      * @return this.property.createUpperValue(null, null, arg0)
327      * @see org.eclipse.uml2.uml.Property#createUpperValue(String, Type, EClass)
328      */
329     public ValueSpecification createUpperValue(final EClass arg0)
330     {
331         return this.property.createUpperValue(null, null, arg0);
332     }
333 
334     /**
335      * @see org.eclipse.uml2.uml.Element#destroy()
336      */
337     public void destroy()
338     {
339         this.property.destroy();
340     }
341 
342     /**
343      * @see org.eclipse.emf.common.notify.Notifier#eAdapters()
344      */
345     public EList eAdapters()
346     {
347         return this.property.eAdapters();
348     }
349 
350     /**
351      * @see org.eclipse.emf.ecore.EObject#eAllContents()
352      */
353     public TreeIterator eAllContents()
354     {
355         return this.property.eAllContents();
356     }
357 
358     /**
359      * @see org.eclipse.emf.ecore.EObject#eClass()
360      */
361     public EClass eClass()
362     {
363         return this.property.eClass();
364     }
365 
366     /**
367      * @see org.eclipse.emf.ecore.EObject#eContainer()
368      */
369     public EObject eContainer()
370     {
371         return this.property.eContainer();
372     }
373 
374     /**
375      * @see org.eclipse.emf.ecore.EObject#eContainingFeature()
376      */
377     public EStructuralFeature eContainingFeature()
378     {
379         return this.property.eContainingFeature();
380     }
381 
382     /**
383      * @see org.eclipse.emf.ecore.EObject#eContainmentFeature()
384      */
385     public EReference eContainmentFeature()
386     {
387         return this.property.eContainmentFeature();
388     }
389 
390     /**
391      * @see org.eclipse.emf.ecore.EObject#eContents()
392      */
393     public EList eContents()
394     {
395         return this.property.eContents();
396     }
397 
398     /**
399      * @see org.eclipse.emf.ecore.EObject#eCrossReferences()
400      */
401     public EList eCrossReferences()
402     {
403         return this.property.eCrossReferences();
404     }
405 
406     /**
407      * @see org.eclipse.emf.common.notify.Notifier#eDeliver()
408      */
409     public boolean eDeliver()
410     {
411         return this.property.eDeliver();
412     }
413 
414     /**
415      * @see org.eclipse.emf.ecore.EObject#eGet(org.eclipse.emf.ecore.EStructuralFeature)
416      */
417     public Object eGet(final EStructuralFeature arg0)
418     {
419         return this.property.eGet(arg0);
420     }
421 
422     /**
423      * @see org.eclipse.emf.ecore.EObject#eGet(org.eclipse.emf.ecore.EStructuralFeature, boolean)
424      */
425     public Object eGet(
426         final EStructuralFeature arg0,
427         final boolean arg1)
428     {
429         return this.property.eGet(
430             arg0,
431             arg1);
432     }
433 
434     /**
435      * @see org.eclipse.emf.ecore.EObject#eIsProxy()
436      */
437     public boolean eIsProxy()
438     {
439         return this.property.eIsProxy();
440     }
441 
442     /**
443      * @see org.eclipse.emf.ecore.EObject#eIsSet(org.eclipse.emf.ecore.EStructuralFeature)
444      */
445     public boolean eIsSet(final EStructuralFeature arg0)
446     {
447         return this.property.eIsSet(arg0);
448     }
449 
450     /**
451      * @see org.eclipse.emf.common.notify.Notifier#eNotify(org.eclipse.emf.common.notify.Notification)
452      */
453     public void eNotify(final Notification arg0)
454     {
455         this.property.eNotify(arg0);
456     }
457 
458     /**
459      * @see org.eclipse.emf.ecore.EObject#eResource()
460      */
461     public Resource eResource()
462     {
463         return this.property.eResource();
464     }
465 
466     /**
467      * @see org.eclipse.emf.ecore.EObject#eSet(org.eclipse.emf.ecore.EStructuralFeature, Object)
468      */
469     public void eSet(
470         final EStructuralFeature arg0,
471         final Object arg1)
472     {
473         this.property.eSet(
474             arg0,
475             arg1);
476     }
477 
478     /**
479      * @see org.eclipse.emf.common.notify.Notifier#eSetDeliver(boolean)
480      */
481     public void eSetDeliver(final boolean arg0)
482     {
483         this.property.eSetDeliver(arg0);
484     }
485 
486     /**
487      * @see org.eclipse.emf.ecore.EObject#eUnset(org.eclipse.emf.ecore.EStructuralFeature)
488      */
489     public void eUnset(final EStructuralFeature arg0)
490     {
491         this.property.eUnset(arg0);
492     }
493 
494     /**
495      * @see org.eclipse.uml2.uml.Property#getAggregation()
496      */
497     public AggregationKind getAggregation()
498     {
499         return this.property.getAggregation();
500     }
501 
502     /**
503      * @see org.eclipse.uml2.uml.Element#getApplicableStereotype(String)
504      */
505     public Stereotype getApplicableStereotype(final String arg0)
506     {
507         return this.property.getApplicableStereotype(arg0);
508     }
509 
510     /**
511      * @see org.eclipse.uml2.uml.Element#getApplicableStereotypes()
512      */
513     public EList<Stereotype> getApplicableStereotypes()
514     {
515         return this.property.getApplicableStereotypes();
516     }
517 
518     /**
519      * @see org.eclipse.uml2.uml.Element#getAppliedStereotype(String)
520      */
521     public Stereotype getAppliedStereotype(final String arg0)
522     {
523         return this.property.getAppliedStereotype(arg0);
524     }
525 
526     /**
527      * @see org.eclipse.uml2.uml.Element#getAppliedStereotypes()
528      */
529     public EList<Stereotype> getAppliedStereotypes()
530     {
531         return this.property.getAppliedStereotypes();
532     }
533 
534     /**
535      * UML2 < v3.6
536      * @see org.eclipse.uml2.uml.Element#getAppliedVersion(Stereotype)
537     public String getAppliedVersion(final Stereotype arg0)
538     {
539         return this.property.getAppliedVersion(arg0);
540     }
541      */
542 
543     /**
544      * @see org.eclipse.uml2.uml.Property#getAssociation()
545      */
546     public Association getAssociation()
547     {
548         return this.property.getAssociation();
549     }
550 
551     /**
552      * @see org.eclipse.uml2.uml.Property#getAssociationEnd()
553      */
554     public Property getAssociationEnd()
555     {
556         return this.property.getAssociationEnd();
557     }
558 
559     /**
560      * @see org.eclipse.uml2.uml.Property#getClass_()
561      */
562     public Class getClass_()
563     {
564         return this.property.getClass_();
565     }
566 
567     /**
568      * @see org.eclipse.uml2.uml.NamedElement#getClientDependencies()
569      */
570     public EList getClientDependencies()
571     {
572         return this.property.getClientDependencies();
573     }
574 
575     /**
576      * @see org.eclipse.uml2.uml.NamedElement#getClientDependency(String)
577      */
578     public Dependency getClientDependency(final String arg0)
579     {
580         return this.property.getClientDependency(arg0);
581     }
582 
583     /**
584      * @see org.eclipse.uml2.uml.Property#getDatatype()
585      */
586     public DataType getDatatype()
587     {
588         return this.property.getDatatype();
589     }
590 
591     /**
592      * @see org.eclipse.uml2.uml.Property#getDefault()
593      */
594     public String getDefault()
595     {
596         return this.property.getDefault();
597     }
598 
599     /**
600      * @see org.eclipse.uml2.uml.Property#getDefaultValue()
601      */
602     public ValueSpecification getDefaultValue()
603     {
604         return this.property.getDefaultValue();
605     }
606 
607     /**
608      * @see org.eclipse.uml2.uml.DeploymentTarget#getDeployedElement(String)
609      */
610     public PackageableElement getDeployedElement(final String arg0)
611     {
612         return this.property.getDeployedElement(arg0);
613     }
614 
615     /**
616      * @see org.eclipse.uml2.uml.DeploymentTarget#getDeployedElements()
617      */
618     public EList getDeployedElements()
619     {
620         return this.property.getDeployedElements();
621     }
622 
623     /**
624      * @see org.eclipse.uml2.uml.DeploymentTarget#getDeployment(String)
625      */
626     public Deployment getDeployment(final String arg0)
627     {
628         return this.property.getDeployment(arg0);
629     }
630 
631     /**
632      * @see org.eclipse.uml2.uml.DeploymentTarget#getDeployments()
633      */
634     public EList getDeployments()
635     {
636         return this.property.getDeployments();
637     }
638 
639     /**
640      * @see org.eclipse.emf.ecore.EModelElement#getEAnnotation(String)
641      */
642     public EAnnotation getEAnnotation(final String arg0)
643     {
644         return this.property.getEAnnotation(arg0);
645     }
646 
647     /**
648      * @see org.eclipse.emf.ecore.EModelElement#getEAnnotations()
649      */
650     public EList getEAnnotations()
651     {
652         return this.property.getEAnnotations();
653     }
654 
655     /**
656      * @see org.eclipse.uml2.uml.ConnectableElement#getEnds()
657      */
658     public EList getEnds()
659     {
660         return this.property.getEnds();
661     }
662 
663     /**
664      * @see org.eclipse.uml2.uml.Feature#getFeaturingClassifier(String)
665      */
666     public Classifier getFeaturingClassifier(final String arg0)
667     {
668         return this.property.getFeaturingClassifier(arg0);
669     }
670 
671     /**
672      * @see org.eclipse.uml2.uml.Feature#getFeaturingClassifiers()
673      */
674     public EList getFeaturingClassifiers()
675     {
676         return this.property.getFeaturingClassifiers();
677     }
678 
679     /**
680      * @see org.eclipse.uml2.uml.Element#getKeywords()
681      */
682     public EList<String> getKeywords()
683     {
684         return this.property.getKeywords();
685     }
686 
687     /**
688      * @see org.eclipse.uml2.uml.NamedElement#getLabel()
689      */
690     public String getLabel()
691     {
692         return this.property.getLabel();
693     }
694 
695     /**
696      * @see org.eclipse.uml2.uml.NamedElement#getLabel(boolean)
697      */
698     public String getLabel(final boolean arg0)
699     {
700         return this.property.getLabel(arg0);
701     }
702 
703     /**
704      * @see org.eclipse.uml2.uml.MultiplicityElement#getLower()
705      */
706     public int getLower()
707     {
708         return this.property.getLower();
709     }
710 
711     /**
712      * @see org.eclipse.uml2.uml.MultiplicityElement#getLowerValue()
713      */
714     public ValueSpecification getLowerValue()
715     {
716         return this.property.getLowerValue();
717     }
718 
719     /**
720      * @see org.eclipse.uml2.uml.Element#getModel()
721      */
722     public Model getModel()
723     {
724         return (Model) UmlUtilities.findModel(this.property);
725     }
726 
727     /**
728      * @see org.eclipse.uml2.uml.NamedElement#getName()
729      */
730     public String getName()
731     {
732         return this.property.getName();
733     }
734 
735     /**
736      * @see org.eclipse.uml2.uml.NamedElement#getNameExpression()
737      */
738     public StringExpression getNameExpression()
739     {
740         return this.property.getNameExpression();
741     }
742 
743     /**
744      * @see org.eclipse.uml2.uml.NamedElement#getNamespace()
745      */
746     public Namespace getNamespace()
747     {
748         return this.property.getNamespace();
749     }
750 
751     /**
752      * @see org.eclipse.uml2.uml.Element#getNearestPackage()
753      */
754     public Package getNearestPackage()
755     {
756         return this.property.getNearestPackage();
757     }
758 
759     /**
760      * @see org.eclipse.uml2.uml.Property#getOpposite()
761      */
762     public Property getOpposite()
763     {
764         return this.property.getOpposite();
765     }
766 
767     /**
768      * @see org.eclipse.uml2.uml.Element#getOwnedComments()
769      */
770     public EList getOwnedComments()
771     {
772         return this.property.getOwnedComments();
773     }
774 
775     /**
776      * @see org.eclipse.uml2.uml.Element#getOwnedElements()
777      */
778     public EList getOwnedElements()
779     {
780         return this.property.getOwnedElements();
781     }
782 
783     /** UML2 3.0: Property no longer inherits from TemplateableElement
784      * @return null
785      * @see org.eclipse.uml2.uml.TemplateableElement#getOwnedTemplateSignature()
786      */
787     public TemplateSignature getOwnedTemplateSignature()
788     {
789         //return this.property.getOwnedTemplateSignature();
790         LOGGER.error("Attribute.property.getOwnedTemplateSignature() has been removed from UML2 3.x, fix " + this.property.getQualifiedName());
791         return null;
792     }
793 
794     /**
795      * @see org.eclipse.uml2.uml.Element#getOwner()
796      */
797     public Element getOwner()
798     {
799         return this.property.getOwner();
800     }
801 
802     /**
803      * @see org.eclipse.uml2.uml.Property#getOwningAssociation()
804      */
805     public Association getOwningAssociation()
806     {
807         return this.property.getOwningAssociation();
808     }
809 
810     /**
811      * @return this.property.getOwningTemplateParameter()
812      */
813     public TemplateParameter getOwningParameter()
814     {
815         return this.property.getOwningTemplateParameter();
816     }
817 
818     /**
819      * @see org.eclipse.uml2.uml.NamedElement#getQualifiedName()
820      */
821     public String getQualifiedName()
822     {
823         return this.property.getQualifiedName();
824     }
825 
826     /**
827      * @param arg0
828      * @return this.property.getQualifier(arg0, null)
829      * @see org.eclipse.uml2.uml.Property#getQualifier(String, Type)
830      */
831     public Property getQualifier(final String arg0)
832     {
833         return this.property.getQualifier(arg0, null);
834     }
835 
836     /**
837      * @see org.eclipse.uml2.uml.Property#getQualifiers()
838      */
839     public EList getQualifiers()
840     {
841         return this.property.getQualifiers();
842     }
843 
844     /**
845      * @see org.eclipse.uml2.uml.RedefinableElement#getRedefinedElement(String)
846      */
847     public RedefinableElement getRedefinedElement(final String arg0)
848     {
849         return this.property.getRedefinedElement(arg0);
850     }
851 
852     /**
853      * @see org.eclipse.uml2.uml.RedefinableElement#getRedefinedElements()
854      */
855     public EList getRedefinedElements()
856     {
857         return this.property.getRedefinedElements();
858     }
859 
860     /**
861      * @see org.eclipse.uml2.uml.Property#getRedefinedProperties()
862      */
863     public EList getRedefinedProperties()
864     {
865         return this.property.getRedefinedProperties();
866     }
867 
868     /**
869      * @param arg0
870      * @return this.property.getRedefinedProperty(arg0, null)
871      * @see org.eclipse.uml2.uml.Property#getRedefinedProperty(String, Type)
872      */
873     public Property getRedefinedProperty(final String arg0)
874     {
875         return this.property.getRedefinedProperty(arg0, null);
876     }
877 
878     /**
879      * @see org.eclipse.uml2.uml.RedefinableElement#getRedefinitionContext(String)
880      */
881     public Classifier getRedefinitionContext(final String arg0)
882     {
883         return this.property.getRedefinitionContext(arg0);
884     }
885 
886     /**
887      * @see org.eclipse.uml2.uml.RedefinableElement#getRedefinitionContexts()
888      */
889     public EList getRedefinitionContexts()
890     {
891         return this.property.getRedefinitionContexts();
892     }
893 
894     /**
895      * @see org.eclipse.uml2.uml.Property#getSubsettedProperties()
896      */
897     public EList getSubsettedProperties()
898     {
899         return this.property.getSubsettedProperties();
900     }
901 
902     /**
903      * @param arg0
904      * @return this.property.getSubsettedProperty(arg0, null)
905      * @see org.eclipse.uml2.uml.Property#getSubsettedProperty(String, Type)
906      */
907     public Property getSubsettedProperty(final String arg0)
908     {
909         return this.property.getSubsettedProperty(arg0, null);
910     }
911 
912     /** UML2 3.0: Property no longer inherits from TemplateableElement
913      * AttributeImpl.property.validateUpperGt0 has been removed from UML2 3.x.
914      * @return null
915      * @see org.eclipse.uml2.uml.TemplateableElement#getTemplateBindings()
916      */
917     public EList getTemplateBindings()
918     {
919         //return this.property.getTemplateBindings();
920         LOGGER.error("AttributeImpl.property.getTemplateBindings() has been removed from UML2 3.x, fix " + this.property.getQualifiedName());
921         return null;
922     }
923 
924     /**
925      * @see org.eclipse.uml2.uml.ParameterableElement#getTemplateParameter()
926      */
927     public TemplateParameter getTemplateParameter()
928     {
929         return this.property.getTemplateParameter();
930     }
931 
932     /**
933      * @see org.eclipse.uml2.uml.TypedElement#getType()
934      */
935     public Type getType()
936     {
937         return this.property.getType();
938     }
939 
940     /**
941      * @see org.eclipse.uml2.uml.MultiplicityElement#getUpper()
942      */
943     public int getUpper()
944     {
945         return this.property.getUpper();
946     }
947 
948     /**
949      * @see org.eclipse.uml2.uml.MultiplicityElement#getUpperValue()
950      */
951     public ValueSpecification getUpperValue()
952     {
953         return this.property.getUpperValue();
954     }
955 
956     /**
957      * @see org.eclipse.uml2.uml.Element#getValue(org.eclipse.uml2.uml.Stereotype, String)
958      */
959     public Object getValue(
960         final Stereotype arg0,
961         final String arg1)
962     {
963         return this.property.getValue(
964             arg0,
965             arg1);
966     }
967 
968     /**
969      * @see org.eclipse.uml2.uml.NamedElement#getVisibility()
970      */
971     public VisibilityKind getVisibility()
972     {
973         return this.property.getVisibility();
974     }
975 
976     /**
977      * @see org.eclipse.uml2.uml.Element#hasKeyword(String)
978      */
979     public boolean hasKeyword(final String arg0)
980     {
981         return this.property.hasKeyword(arg0);
982     }
983 
984     /**
985      * @see org.eclipse.uml2.uml.Element#hasValue(org.eclipse.uml2.uml.Stereotype, String)
986      */
987     public boolean hasValue(
988         final Stereotype arg0,
989         final String arg1)
990     {
991         return this.property.hasValue(
992             arg0,
993             arg1);
994     }
995 
996     /*
997      * @see org.eclipse.uml2.uml.MultiplicityElement#includesCardinality(int)
998      * Removed in UML2 2.5
999     public boolean includesCardinality(final int arg0)
1000     {
1001         return this.property.includesCardinality(arg0);
1002     }
1003      */
1004 
1005     /**
1006      * @see org.eclipse.uml2.uml.MultiplicityElement#includesMultiplicity(org.eclipse.uml2.uml.MultiplicityElement)
1007      */
1008     public boolean includesMultiplicity(final MultiplicityElement arg0)
1009     {
1010         return this.property.includesMultiplicity(arg0);
1011     }
1012 
1013     /**
1014      * @param arg0
1015      * @return this.property.getAppliedStereotype(arg0.getName())!=null
1016      * @see org.eclipse.uml2.uml.Property#getAppliedStereotype(String)
1017      */
1018     public boolean isApplied(final Stereotype arg0)
1019     {
1020         return this.property.getAppliedStereotype(arg0.getName())!=null;
1021     }
1022 
1023     /**
1024      * @see org.eclipse.uml2.uml.Property#isComposite()
1025      */
1026     public boolean isComposite()
1027     {
1028         return this.property.isComposite();
1029     }
1030 
1031     /**
1032      * @see org.eclipse.uml2.uml.RedefinableElement#isConsistentWith(org.eclipse.uml2.uml.RedefinableElement)
1033      */
1034     public boolean isConsistentWith(final RedefinableElement arg0)
1035     {
1036         return this.property.isConsistentWith(arg0);
1037     }
1038 
1039     /**
1040      * @see org.eclipse.uml2.uml.Property#isDerived()
1041      */
1042     public boolean isDerived()
1043     {
1044         return this.property.isDerived();
1045     }
1046 
1047     /**
1048      * @see org.eclipse.uml2.uml.Property#isDerivedUnion()
1049      */
1050     public boolean isDerivedUnion()
1051     {
1052         return this.property.isDerivedUnion();
1053     }
1054 
1055     /**
1056      * @see org.eclipse.uml2.uml.NamedElement#isDistinguishableFrom(org.eclipse.uml2.uml.NamedElement, org.eclipse.uml2.uml.Namespace)
1057      */
1058     public boolean isDistinguishableFrom(
1059         final NamedElement arg0,
1060         final Namespace arg1)
1061     {
1062         return this.property.isDistinguishableFrom(
1063             arg0,
1064             arg1);
1065     }
1066 
1067     /**
1068      * @see org.eclipse.uml2.uml.RedefinableElement#isLeaf()
1069      */
1070     public boolean isLeaf()
1071     {
1072         return this.property.isLeaf();
1073     }
1074 
1075     /**
1076      * @see org.eclipse.uml2.uml.MultiplicityElement#isMultivalued()
1077      */
1078     public boolean isMultivalued()
1079     {
1080         return this.property.isMultivalued();
1081     }
1082 
1083     /**
1084      * @see org.eclipse.uml2.uml.Property#isNavigable()
1085      */
1086     public boolean isNavigable()
1087     {
1088         return this.property.isNavigable();
1089     }
1090 
1091     /**
1092      * @see org.eclipse.uml2.uml.MultiplicityElement#isOrdered()
1093      */
1094     public boolean isOrdered()
1095     {
1096         return this.property.isOrdered();
1097     }
1098 
1099     /**
1100      * @see org.eclipse.uml2.uml.StructuralFeature#isReadOnly()
1101      */
1102     public boolean isReadOnly()
1103     {
1104         return this.property.isReadOnly();
1105     }
1106 
1107     /**
1108      * @see org.eclipse.uml2.uml.RedefinableElement#isRedefinitionContextValid(org.eclipse.uml2.uml.RedefinableElement)
1109      */
1110     public boolean isRedefinitionContextValid(final RedefinableElement arg0)
1111     {
1112         return this.property.isRedefinitionContextValid(arg0);
1113     }
1114 
1115     /**
1116      * @param arg0
1117      * @return this.property.isStereotypeRequired(arg0)
1118      * @see org.eclipse.uml2.uml.Property#isStereotypeRequired(Stereotype)
1119      */
1120     public boolean isRequired(final Stereotype arg0)
1121     {
1122         return this.property.isStereotypeRequired(arg0);
1123     }
1124 
1125     /**
1126      * @see org.eclipse.uml2.uml.Feature#isStatic()
1127      */
1128     public boolean isStatic()
1129     {
1130         return this.property.isStatic();
1131     }
1132 
1133     /**
1134      * @see org.eclipse.uml2.uml.MultiplicityElement#isUnique()
1135      */
1136     public boolean isUnique()
1137     {
1138         return this.property.isUnique();
1139     }
1140 
1141     /**
1142      * @return this.property.getLower()
1143      * @see org.eclipse.uml2.uml.Property#getLower()
1144      */
1145     public int lower()
1146     {
1147         return this.property.getLower();
1148     }
1149 
1150     /**
1151      * @see org.eclipse.uml2.uml.MultiplicityElement#lowerBound()
1152      */
1153     public int lowerBound()
1154     {
1155         return this.property.lowerBound();
1156     }
1157 
1158     /**
1159      * @see org.eclipse.uml2.uml.Element#mustBeOwned()
1160      */
1161     public boolean mustBeOwned()
1162     {
1163         return this.property.mustBeOwned();
1164     }
1165 
1166     /**
1167      * @return this.property.getOpposite()
1168      * @see org.eclipse.uml2.uml.Property#getOpposite()
1169      */
1170     public Property opposite()
1171     {
1172         return this.property.getOpposite();
1173     }
1174 
1175     /** UML2 3.0: Property no longer inherits from TemplateableElement
1176      * AttributeImpl.property.parameterableElements has been removed from UML2 3.x
1177      * @return null
1178      * @see org.eclipse.uml2.uml.TemplateableElement#parameterableElements()
1179      */
1180     public EList<ParameterableElement> parameterableElements()
1181     {
1182         //return this.property.parameterableElements();
1183         LOGGER.error("AttributeImpl.property.parameterableElements() has been removed from UML2 3.x, fix " + this.property.getQualifiedName());
1184         return null;
1185     }
1186 
1187     /**
1188      * @return this.property.getQualifiedName()
1189      * @see org.eclipse.uml2.uml.Property#getQualifiedName()
1190      */
1191     public String qualifiedName()
1192     {
1193         return this.property.getQualifiedName();
1194     }
1195 
1196     /**
1197      * @see org.eclipse.uml2.uml.Element#removeKeyword(String)
1198      */
1199     public boolean removeKeyword(final String arg0)
1200     {
1201         return this.property.removeKeyword(arg0);
1202     }
1203 
1204     /**
1205      * @see org.eclipse.uml2.uml.NamedElement#separator()
1206      */
1207     public String separator()
1208     {
1209         return this.property.separator();
1210     }
1211 
1212     /**
1213      * @see org.eclipse.uml2.uml.Property#setAggregation(org.eclipse.uml2.uml.AggregationKind)
1214      */
1215     public void setAggregation(final AggregationKind arg0)
1216     {
1217         this.property.setAggregation(arg0);
1218     }
1219 
1220     /**
1221      * @see org.eclipse.uml2.uml.Property#setAssociation(org.eclipse.uml2.uml.Association)
1222      */
1223     public void setAssociation(final Association arg0)
1224     {
1225         this.property.setAssociation(arg0);
1226     }
1227 
1228     /**
1229      * @see org.eclipse.uml2.uml.Property#setAssociationEnd(org.eclipse.uml2.uml.Property)
1230      */
1231     public void setAssociationEnd(final Property arg0)
1232     {
1233         this.property.setAssociationEnd(arg0);
1234     }
1235 
1236     /**
1237      * @param arg0
1238      * @see org.eclipse.uml2.uml.Property#setBooleanDefaultValue(boolean)
1239      */
1240     public void setBooleanDefault(final boolean arg0)
1241     {
1242         this.property.setBooleanDefaultValue(arg0);
1243     }
1244 
1245     /**
1246      * @see org.eclipse.uml2.uml.Property#setDatatype(org.eclipse.uml2.uml.DataType)
1247      */
1248     public void setDatatype(final DataType arg0)
1249     {
1250         this.property.setDatatype(arg0);
1251     }
1252 
1253     /**
1254      * @see org.eclipse.uml2.uml.Property#setDefaultValue(org.eclipse.uml2.uml.ValueSpecification)
1255      */
1256     public void setDefaultValue(final ValueSpecification arg0)
1257     {
1258         this.property.setDefaultValue(arg0);
1259     }
1260 
1261     /**
1262      * @param arg0
1263      * @see org.eclipse.uml2.uml.Property#setIntegerDefaultValue(int)
1264      */
1265     public void setIntegerDefault(final int arg0)
1266     {
1267         this.property.setIntegerDefaultValue(arg0);
1268     }
1269 
1270     /**
1271      * @see org.eclipse.uml2.uml.Property#setIsDerived(boolean)
1272      */
1273     public void setIsDerived(final boolean arg0)
1274     {
1275         this.property.setIsDerived(arg0);
1276     }
1277 
1278     /**
1279      * @see org.eclipse.uml2.uml.Property#setIsDerivedUnion(boolean)
1280      */
1281     public void setIsDerivedUnion(final boolean arg0)
1282     {
1283         this.property.setIsDerivedUnion(arg0);
1284     }
1285 
1286     /**
1287      * @see org.eclipse.uml2.uml.RedefinableElement#setIsLeaf(boolean)
1288      */
1289     public void setIsLeaf(final boolean arg0)
1290     {
1291         this.property.setIsLeaf(arg0);
1292     }
1293 
1294     /**
1295      * @see org.eclipse.uml2.uml.MultiplicityElement#setIsOrdered(boolean)
1296      */
1297     public void setIsOrdered(final boolean arg0)
1298     {
1299         this.property.setIsOrdered(arg0);
1300     }
1301 
1302     /**
1303      * @see org.eclipse.uml2.uml.StructuralFeature#setIsReadOnly(boolean)
1304      */
1305     public void setIsReadOnly(final boolean arg0)
1306     {
1307         this.property.setIsReadOnly(arg0);
1308     }
1309 
1310     /**
1311      * @see org.eclipse.uml2.uml.Feature#setIsStatic(boolean)
1312      */
1313     public void setIsStatic(final boolean arg0)
1314     {
1315         this.property.setIsStatic(arg0);
1316     }
1317 
1318     /**
1319      * @see org.eclipse.uml2.uml.MultiplicityElement#setIsUnique(boolean)
1320      */
1321     public void setIsUnique(final boolean arg0)
1322     {
1323         this.property.setIsUnique(arg0);
1324     }
1325 
1326     /**
1327      * @param arg0
1328      * @see org.eclipse.uml2.uml.Property#setLower(int)
1329      */
1330     public void setLowerBound(final int arg0)
1331     {
1332         this.property.setLower(arg0);
1333     }
1334 
1335     /**
1336      * @see org.eclipse.uml2.uml.MultiplicityElement#setLowerValue(org.eclipse.uml2.uml.ValueSpecification)
1337      */
1338     public void setLowerValue(final ValueSpecification arg0)
1339     {
1340         this.property.setLowerValue(arg0);
1341     }
1342 
1343     /**
1344      * @see org.eclipse.uml2.uml.NamedElement#setName(String)
1345      */
1346     public void setName(final String arg0)
1347     {
1348         this.property.setName(arg0);
1349     }
1350 
1351     /**
1352      * @see org.eclipse.uml2.uml.NamedElement#setNameExpression(org.eclipse.uml2.uml.StringExpression)
1353      */
1354     public void setNameExpression(final StringExpression arg0)
1355     {
1356         this.property.setNameExpression(arg0);
1357     }
1358 
1359     /**
1360      * @param arg0
1361      * @see org.eclipse.uml2.uml.Property#setIsNavigable(boolean)
1362      */
1363     public void setNavigable(final boolean arg0)
1364     {
1365         this.property.setIsNavigable(arg0);
1366     }
1367 
1368     /** UML2 3.0: Property no longer inherits from TemplateableElement
1369      * AttributeImpl.property.setOwnedTemplateSignature(TemplateSignature) has been removed from UML2 3.x, fix " + this.property.getQualifiedName()
1370      * Always returns null.
1371      * @param arg0
1372      * @see org.eclipse.uml2.uml.TemplateableElement#setOwnedTemplateSignature(org.eclipse.uml2.uml.TemplateSignature)
1373      */
1374     public void setOwnedTemplateSignature(final TemplateSignature arg0)
1375     {
1376         //this.property.setOwnedTemplateSignature(arg0);
1377         LOGGER.error("Attribute.property.setOwnedTemplateSignature(TemplateSignature) has been removed from UML2 3.x, fix " + this.property.getQualifiedName());
1378     }
1379 
1380     /**
1381      * @see org.eclipse.uml2.uml.Property#setOwningAssociation(org.eclipse.uml2.uml.Association)
1382      */
1383     public void setOwningAssociation(final Association arg0)
1384     {
1385         this.property.setOwningAssociation(arg0);
1386     }
1387 
1388     /**
1389      * @param arg0
1390      * @see org.eclipse.uml2.uml.ParameterableElement#setOwningTemplateParameter(org.eclipse.uml2.uml.TemplateParameter)
1391      */
1392     public void setOwningTemplateParameter(final TemplateParameter arg0)
1393     {
1394         this.property.setOwningTemplateParameter(arg0);
1395     }
1396 
1397     /**
1398      * @param arg0
1399      * @see org.eclipse.uml2.uml.Property#setStringDefaultValue(String)
1400      */
1401     public void setStringDefault(final String arg0)
1402     {
1403         this.property.setStringDefaultValue(arg0);
1404     }
1405 
1406     /**
1407      * @see org.eclipse.uml2.uml.ParameterableElement#setTemplateParameter(org.eclipse.uml2.uml.TemplateParameter)
1408      */
1409     public void setTemplateParameter(final TemplateParameter arg0)
1410     {
1411         this.property.setTemplateParameter(arg0);
1412     }
1413 
1414     /**
1415      * @see org.eclipse.uml2.uml.TypedElement#setType(org.eclipse.uml2.uml.Type)
1416      */
1417     public void setType(final Type arg0)
1418     {
1419         this.property.setType(arg0);
1420     }
1421 
1422     /**
1423      * @param arg0
1424      * @see org.eclipse.uml2.uml.Property#setUnlimitedNaturalDefaultValue(int)
1425      */
1426     public void setUnlimitedNaturalDefault(final int arg0)
1427     {
1428         this.property.setUnlimitedNaturalDefaultValue(arg0);
1429     }
1430 
1431     /**
1432      * @param arg0
1433      * @see org.eclipse.uml2.uml.Property#setUpper(int)
1434      */
1435     public void setUpperBound(final int arg0)
1436     {
1437         this.property.setUpper(arg0);
1438     }
1439 
1440     /**
1441      * @see org.eclipse.uml2.uml.MultiplicityElement#setUpperValue(org.eclipse.uml2.uml.ValueSpecification)
1442      */
1443     public void setUpperValue(final ValueSpecification arg0)
1444     {
1445         this.property.setUpperValue(arg0);
1446     }
1447 
1448     /**
1449      * @see org.eclipse.uml2.uml.Element#setValue(org.eclipse.uml2.uml.Stereotype, String, Object)
1450      */
1451     public void setValue(
1452         final Stereotype arg0,
1453         final String arg1,
1454         final Object arg2)
1455     {
1456         this.property.setValue(
1457             arg0,
1458             arg1,
1459             arg2);
1460     }
1461 
1462     /**
1463      * @see org.eclipse.uml2.uml.NamedElement#setVisibility(org.eclipse.uml2.uml.VisibilityKind)
1464      */
1465     public void setVisibility(final VisibilityKind arg0)
1466     {
1467         this.property.setVisibility(arg0);
1468     }
1469 
1470     /**
1471      * @see org.eclipse.uml2.uml.Property#subsettingContext()
1472      */
1473     public EList<Type> subsettingContext()
1474     {
1475         return this.property.subsettingContext();
1476     }
1477 
1478     /**
1479      * @param arg0
1480      * @see org.eclipse.uml2.uml.Property#unapplyStereotype(Stereotype)
1481      */
1482     public void unapply(final Stereotype arg0)
1483     {
1484         this.property.unapplyStereotype(arg0);
1485     }
1486 
1487     /**
1488      * @return this.property.getUpper()
1489      * @see org.eclipse.uml2.uml.Property#getUpper()
1490      */
1491     public int upper()
1492     {
1493         return this.property.getUpper();
1494     }
1495 
1496     /**
1497      * @see org.eclipse.uml2.uml.MultiplicityElement#upperBound()
1498      */
1499     public int upperBound()
1500     {
1501         return this.property.upperBound();
1502     }
1503 
1504     /**
1505      * @see org.eclipse.uml2.uml.Property#validateDerivedUnionIsDerived(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
1506      */
1507     public boolean validateDerivedUnionIsDerived(
1508         final DiagnosticChain arg0,
1509         final Map<Object, Object> arg1)
1510     {
1511         return this.property.validateDerivedUnionIsDerived(
1512             arg0,
1513             arg1);
1514     }
1515 
1516     /**
1517      * @see org.eclipse.uml2.uml.Element#validateHasOwner(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
1518      */
1519     public boolean validateHasOwner(
1520         final DiagnosticChain arg0,
1521         final Map<Object, Object> arg1)
1522     {
1523         return this.property.validateHasOwner(
1524             arg0,
1525             arg1);
1526     }
1527 
1528     /**
1529      * @param arg0
1530      * @param arg1
1531      * @return this.property.validateLowerGe0(arg0, arg1)
1532      * @see org.eclipse.uml2.uml.Property#validateLowerGe0(DiagnosticChain, Map)
1533      */
1534     public boolean validateLowerEqLowerbound(
1535         final DiagnosticChain arg0,
1536         final Map<Object, Object> arg1)
1537     {
1538         // TODO: Verify validateLowerGe0 == validateLowerEqLowerbound
1539         return this.property.validateLowerGe0(
1540             arg0,
1541             arg1);
1542     }
1543 
1544     /**
1545      * @see org.eclipse.uml2.uml.MultiplicityElement#validateLowerGe0(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
1546      */
1547     public boolean validateLowerGe0(
1548         final DiagnosticChain arg0,
1549         final Map<Object, Object> arg1)
1550     {
1551         return this.property.validateLowerGe0(
1552             arg0,
1553             arg1);
1554     }
1555 
1556     /**
1557      * @see org.eclipse.uml2.uml.Property#validateMultiplicityOfComposite(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
1558      */
1559     public boolean validateMultiplicityOfComposite(
1560         final DiagnosticChain arg0,
1561         final Map<Object, Object> arg1)
1562     {
1563         return this.property.validateMultiplicityOfComposite(
1564             arg0,
1565             arg1);
1566     }
1567 
1568     /**
1569      * @param arg0
1570      * @param arg1
1571      * @return this.property.validateRedefinedPropertyInherited(arg0, arg1)
1572      * @see org.eclipse.uml2.uml.Property#validateRedefinedPropertyInherited(DiagnosticChain, Map)
1573      */
1574     public boolean validateNavigablePropertyRedefinition(
1575         final DiagnosticChain arg0,
1576         final Map<Object, Object> arg1)
1577     {
1578         return this.property.validateRedefinedPropertyInherited(
1579             arg0,
1580             arg1);
1581     }
1582 
1583     /**
1584      * @param arg0
1585      * @param arg1
1586      * @return !this.property.validateHasQualifiedName(arg0, arg1)
1587      * @see org.eclipse.uml2.uml.Property#validateHasQualifiedName(DiagnosticChain, Map)
1588      */
1589     public boolean validateNoName(
1590         final DiagnosticChain arg0,
1591         final Map<Object, Object> arg1)
1592     {
1593         // TODO: validateHasQualifiedName == validateNoName. Different from AssociationEndImpl
1594         return !this.property.validateHasQualifiedName(
1595             arg0,
1596             arg1);
1597     }
1598 
1599     /**
1600      * @see org.eclipse.uml2.uml.Element#validateNotOwnSelf(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
1601      */
1602     public boolean validateNotOwnSelf(
1603         final DiagnosticChain arg0,
1604         final Map<Object, Object> arg1)
1605     {
1606         return this.property.validateNotOwnSelf(
1607             arg0,
1608             arg1);
1609     }
1610 
1611     /**
1612      * UML2 < 3.6 only
1613      * @see org.eclipse.uml2.uml.Element#validateOppositeIsOtherEnd(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
1614     public boolean validateOppositeIsOtherEnd(
1615         final DiagnosticChain arg0,
1616         final Map<Object, Object> arg1)
1617     {
1618         return this.property.validateOppositeIsOtherEnd(
1619             arg0,
1620             arg1);
1621     }
1622      */
1623 
1624     /**
1625      * @param arg0
1626      * @param arg1
1627      * @return this.property.validateHasQualifiedName(arg0, arg1)
1628      * @see org.eclipse.uml2.uml.Property#validateHasQualifiedName(DiagnosticChain, Map)
1629      */
1630     public boolean validateQualifiedName(
1631         final DiagnosticChain arg0,
1632         final Map<Object, Object> arg1)
1633     {
1634         return this.property.validateHasQualifiedName(
1635             arg0,
1636             arg1);
1637     }
1638 
1639     /**
1640      * @see org.eclipse.uml2.uml.RedefinableElement#validateRedefinitionConsistent(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
1641      */
1642     public boolean validateRedefinitionConsistent(
1643         final DiagnosticChain arg0,
1644         final Map<Object, Object> arg1)
1645     {
1646         return this.property.validateRedefinitionConsistent(
1647             arg0,
1648             arg1);
1649     }
1650 
1651     /**
1652      * @see org.eclipse.uml2.uml.RedefinableElement#validateRedefinitionContextValid(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
1653      */
1654     public boolean validateRedefinitionContextValid(
1655         final DiagnosticChain arg0,
1656         final Map<Object, Object> arg1)
1657     {
1658         return this.property.validateRedefinitionContextValid(
1659             arg0,
1660             arg1);
1661     }
1662 
1663     /**
1664      * @param arg0
1665      * @param arg1
1666      * @return this.property.validateSubsettingContextConforms(arg0, arg1)
1667      * @see org.eclipse.uml2.uml.Property#validateSubsettingContextConforms(DiagnosticChain, Map)
1668      */
1669     public boolean validateSubsettingContext(
1670         final DiagnosticChain arg0,
1671         final Map<Object, Object> arg1)
1672     {
1673         return this.property.validateSubsettingContextConforms(
1674             arg0,
1675             arg1);
1676     }
1677 
1678     /**
1679      * @see org.eclipse.uml2.uml.Property#validateSubsettingRules(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
1680      */
1681     public boolean validateSubsettingRules(
1682         final DiagnosticChain arg0,
1683         final Map<Object, Object> arg1)
1684     {
1685         return this.property.validateSubsettingRules(
1686             arg0,
1687             arg1);
1688     }
1689 
1690     /**
1691      * @param arg0
1692      * @param arg1
1693      * @return this.property.validateUpperGeLower(arg0, arg1)
1694      * @see org.eclipse.uml2.uml.Property#validateUpperGeLower(DiagnosticChain, Map)
1695      */
1696     public boolean validateUpperEqUpperbound(
1697         final DiagnosticChain arg0,
1698         final Map<Object, Object> arg1)
1699     {
1700         return this.property.validateUpperGeLower(
1701             arg0,
1702             arg1);
1703     }
1704 
1705     /**
1706      * @see org.eclipse.uml2.uml.MultiplicityElement#validateUpperGeLower(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
1707      */
1708     public boolean validateUpperGeLower(
1709         final DiagnosticChain arg0,
1710         final Map<Object, Object> arg1)
1711     {
1712         return this.property.validateUpperGeLower(
1713             arg0,
1714             arg1);
1715     }
1716 
1717     /** UML2 3.0: property.validateUpperGt0 no longer exists
1718      * @param arg0
1719      * @param arg1
1720      * @return property.getUpper() > 0
1721      */
1722     public boolean validateUpperGt0(
1723         final DiagnosticChain arg0,
1724         final Map<Object, Object> arg1)
1725     {
1726         return this.property.getUpper() > 0;
1727         /* return this.property.validateUpperGt0(
1728             arg0,
1729             arg1); */
1730     }
1731 
1732     /**
1733      * @see org.eclipse.uml2.uml.NamedElement#validateVisibilityNeedsOwnership(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
1734      */
1735     public boolean validateVisibilityNeedsOwnership(
1736         final DiagnosticChain arg0,
1737         final Map<Object, Object> arg1)
1738     {
1739         return this.property.validateVisibilityNeedsOwnership(
1740             arg0,
1741             arg1);
1742     }
1743 
1744     /**
1745      * @see org.eclipse.uml2.uml.Property#getOtherEnd()
1746      */
1747     public Property getOtherEnd()
1748     {
1749         return this.property.getOtherEnd();
1750     }
1751 
1752     /**
1753      * @see org.eclipse.uml2.uml.Property#getQualifier(String, org.eclipse.uml2.uml.Type)
1754      */
1755     public Property getQualifier(final String name, final Type type)
1756     {
1757         return this.property.getQualifier(name, type);
1758     }
1759 
1760     /**
1761      * @see org.eclipse.uml2.uml.Property#getQualifier(String, org.eclipse.uml2.uml.Type, boolean, org.eclipse.emf.ecore.EClass, boolean)
1762      */
1763     public Property getQualifier(final String name, final Type type, final boolean ignoreCase, final EClass eClass,
1764         final boolean createOnDemand)
1765     {
1766         return this.property.getQualifier(name, type, ignoreCase, eClass, createOnDemand);
1767     }
1768 
1769     /**
1770      * @see org.eclipse.uml2.uml.Property#getRedefinedProperty(String, org.eclipse.uml2.uml.Type)
1771      */
1772     public Property getRedefinedProperty(final String name, final Type type)
1773     {
1774         return this.property.getRedefinedProperty(name, type);
1775     }
1776 
1777     /**
1778      * @see org.eclipse.uml2.uml.Property#getRedefinedProperty(String, org.eclipse.uml2.uml.Type, boolean, org.eclipse.emf.ecore.EClass)
1779      */
1780     public Property getRedefinedProperty(final String name, final Type type, final boolean ignoreCase, final EClass eClass)
1781     {
1782         return this.property.getRedefinedProperty(name, type, ignoreCase, eClass);
1783     }
1784 
1785     /**
1786      * @see org.eclipse.uml2.uml.Property#getSubsettedProperty(String, org.eclipse.uml2.uml.Type)
1787      */
1788     public Property getSubsettedProperty(final String name, final Type type)
1789     {
1790         return this.property.getSubsettedProperty(name, type);
1791     }
1792 
1793     /**
1794      * @see org.eclipse.uml2.uml.Property#getSubsettedProperty(String, org.eclipse.uml2.uml.Type, boolean, org.eclipse.emf.ecore.EClass)
1795      */
1796     public Property getSubsettedProperty(final String name, final Type type, final boolean ignoreCase, final EClass eClass)
1797     {
1798         return this.property.getSubsettedProperty(name, type, ignoreCase, eClass);
1799     }
1800 
1801     /**
1802      * @see org.eclipse.uml2.uml.Property#isAttribute()
1803      * UML2 5.0 (Eclipse 4.4) only
1804      */
1805     public boolean isAttribute()
1806     {
1807         return this.property.isAttribute();
1808     }
1809 
1810     /*
1811      * @see org.eclipse.uml2.uml.Property#isAttribute(org.eclipse.uml2.uml.Property)
1812      * Removed in UML2 2.5
1813     public boolean isAttribute(final Property prop)
1814     {
1815         return this.property.isAttribute(prop);
1816     }
1817      */
1818 
1819     /*
1820      * @see org.eclipse.uml2.uml.Property#isSetDefault()
1821      * Removed in UML2 2.5
1822     public boolean isSetDefault()
1823     {
1824         return this.property.isSetDefault();
1825     }
1826      */
1827 
1828     /**
1829      * @see org.eclipse.uml2.uml.Property#setBooleanDefaultValue(boolean)
1830      */
1831     public void setBooleanDefaultValue(final boolean value)
1832     {
1833         this.property.setBooleanDefaultValue(value);
1834     }
1835 
1836     /**
1837      * @see org.eclipse.uml2.uml.Property#setDefault(String)
1838      */
1839     public void setDefault(final String value)
1840     {
1841         this.property.setDefault(value);
1842     }
1843 
1844     /**
1845      * @see org.eclipse.uml2.uml.Property#setIntegerDefaultValue(int)
1846      */
1847     public void setIntegerDefaultValue(final int value)
1848     {
1849         this.property.setIntegerDefaultValue(value);
1850     }
1851 
1852     /**
1853      * @see org.eclipse.uml2.uml.Property#setIsComposite(boolean)
1854      */
1855     public void setIsComposite(final boolean value)
1856     {
1857         this.property.setIsComposite(value);
1858     }
1859 
1860     /**
1861      * @see org.eclipse.uml2.uml.Property#setIsNavigable(boolean)
1862      */
1863     public void setIsNavigable(final boolean isNavigable)
1864     {
1865         this.property.setIsNavigable(isNavigable);
1866     }
1867 
1868     /**
1869      * @see org.eclipse.uml2.uml.Property#setNullDefaultValue()
1870      */
1871     public void setNullDefaultValue()
1872     {
1873         this.property.setNullDefaultValue();
1874     }
1875 
1876     /**
1877      * @see org.eclipse.uml2.uml.Property#setOpposite(org.eclipse.uml2.uml.Property)
1878      */
1879     public void setOpposite(final Property value)
1880     {
1881         this.property.setOpposite(value);
1882     }
1883 
1884     /**
1885      * @see org.eclipse.uml2.uml.Property#setStringDefaultValue(String)
1886      */
1887     public void setStringDefaultValue(final String value)
1888     {
1889         this.property.setStringDefaultValue(value);
1890     }
1891 
1892     /**
1893      * @see org.eclipse.uml2.uml.Property#setUnlimitedNaturalDefaultValue(int)
1894      */
1895     public void setUnlimitedNaturalDefaultValue(final int value)
1896     {
1897         this.property.setUnlimitedNaturalDefaultValue(value);
1898     }
1899 
1900     /*
1901      * @see org.eclipse.uml2.uml.Property#unsetDefault()
1902      * Removed in UML2 2.5
1903     public void unsetDefault()
1904     {
1905         this.property.unsetDefault();
1906     }
1907      */
1908 
1909     /**
1910      * @see org.eclipse.uml2.uml.Property#validateBindingToAttribute(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
1911      */
1912     public boolean validateBindingToAttribute(final DiagnosticChain diagnostics,
1913         final Map<Object, Object> context)
1914     {
1915         return this.property.validateBindingToAttribute(diagnostics, context);
1916     }
1917 
1918     /**
1919      * @see org.eclipse.uml2.uml.Property#validateDeploymentTarget(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
1920      */
1921     public boolean validateDeploymentTarget(final DiagnosticChain diagnostics, final Map<Object, Object> context)
1922     {
1923         return this.property.validateDeploymentTarget(diagnostics, context);
1924     }
1925 
1926 
1927     /**
1928      * @see org.eclipse.uml2.uml.Property#validateDerivedUnionIsReadOnly(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
1929      */
1930     public boolean validateDerivedUnionIsReadOnly(final DiagnosticChain diagnostics,
1931         final Map<Object, Object> context)
1932     {
1933         return this.property.validateDerivedUnionIsDerived(diagnostics, context);
1934     }
1935 
1936     /**
1937      * @see org.eclipse.uml2.uml.Property#validateRedefinedPropertyInherited(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
1938      */
1939     public boolean validateRedefinedPropertyInherited(final DiagnosticChain diagnostics,
1940         final Map<Object, Object> context)
1941     {
1942         return this.property.validateRedefinedPropertyInherited(diagnostics, context);
1943     }
1944 
1945     /**
1946      * @see org.eclipse.uml2.uml.Property#validateSubsettedPropertyNames(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
1947      */
1948     public boolean validateSubsettedPropertyNames(final DiagnosticChain diagnostics,
1949         final Map<Object, Object> context)
1950     {
1951         return this.property.validateSubsettedPropertyNames(diagnostics, context);
1952     }
1953 
1954     /**
1955      * @see org.eclipse.uml2.uml.Property#validateSubsettingContextConforms(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
1956      */
1957     public boolean validateSubsettingContextConforms(final DiagnosticChain diagnostics,
1958         final Map<Object, Object> context)
1959     {
1960         return this.property.validateSubsettingContextConforms(diagnostics, context);
1961     }
1962 
1963     /**
1964      * @see org.eclipse.uml2.uml.Feature#getFeaturingClassifier(String, boolean, org.eclipse.emf.ecore.EClass)
1965      */
1966     public Classifier getFeaturingClassifier(final String name, final boolean ignoreCase, final EClass eClass)
1967     {
1968         return this.property.getFeaturingClassifier(name, ignoreCase, eClass);
1969     }
1970 
1971     /**
1972      * @see org.eclipse.uml2.uml.RedefinableElement#getRedefinedElement(String, boolean, org.eclipse.emf.ecore.EClass)
1973      */
1974     public RedefinableElement getRedefinedElement(final String name, final boolean ignoreCase, final EClass eClass)
1975     {
1976         return this.property.getRedefinedElement(name, ignoreCase, eClass);
1977     }
1978 
1979     /**
1980      * @see org.eclipse.uml2.uml.RedefinableElement#getRedefinitionContext(String, boolean, org.eclipse.emf.ecore.EClass)
1981      */
1982     public Classifier getRedefinitionContext(final String name, final boolean ignoreCase, final EClass eClass)
1983     {
1984         return this.property.getRedefinitionContext(name, ignoreCase, eClass);
1985     }
1986 
1987     /**
1988      * @see org.eclipse.uml2.uml.NamedElement#allOwningPackages()
1989      */
1990     public EList<Package> allOwningPackages()
1991     {
1992         return this.property.allOwningPackages();
1993     }
1994 
1995     /**
1996      * @see org.eclipse.uml2.uml.NamedElement#createNameExpression(String, org.eclipse.uml2.uml.Type)
1997      */
1998     public StringExpression createNameExpression(final String name, final Type type)
1999     {
2000         return this.property.createNameExpression(name, type);
2001     }
2002 
2003     /**
2004      * @see org.eclipse.uml2.uml.NamedElement#createUsage(org.eclipse.uml2.uml.NamedElement)
2005      */
2006     public Usage createUsage(final NamedElement supplier)
2007     {
2008         return this.property.createUsage(supplier);
2009     }
2010 
2011     /**
2012      * @see org.eclipse.uml2.uml.NamedElement#getClientDependency(String, boolean, org.eclipse.emf.ecore.EClass)
2013      */
2014     public Dependency getClientDependency(final String name, final boolean ignoreCase, final EClass eClass)
2015     {
2016         return this.property.getClientDependency(name, ignoreCase, eClass);
2017     }
2018 
2019     /**
2020      * @see org.eclipse.uml2.uml.NamedElement#isSetName()
2021      */
2022     public boolean isSetName()
2023     {
2024         return this.property.isSetName();
2025     }
2026 
2027     /**
2028      * @see org.eclipse.uml2.uml.NamedElement#isSetVisibility()
2029      */
2030     public boolean isSetVisibility()
2031     {
2032         return this.property.isSetVisibility();
2033     }
2034 
2035     /**
2036      * @see org.eclipse.uml2.uml.NamedElement#unsetName()
2037      */
2038     public void unsetName()
2039     {
2040         this.property.unsetName();
2041     }
2042 
2043     /**
2044      * @see org.eclipse.uml2.uml.NamedElement#unsetVisibility()
2045      */
2046     public void unsetVisibility()
2047     {
2048         this.property.unsetVisibility();
2049     }
2050 
2051     /**
2052      * @see org.eclipse.uml2.uml.NamedElement#validateHasNoQualifiedName(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
2053      */
2054     public boolean validateHasNoQualifiedName(final DiagnosticChain diagnostics,
2055         final Map<Object, Object> context)
2056     {
2057         return this.property.validateHasNoQualifiedName(diagnostics, context);
2058     }
2059 
2060     /**
2061      * @see org.eclipse.uml2.uml.NamedElement#validateHasQualifiedName(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
2062      */
2063     public boolean validateHasQualifiedName(final DiagnosticChain diagnostics, final Map<Object, Object> context)
2064     {
2065         return this.property.validateHasQualifiedName(diagnostics, context);
2066     }
2067 
2068     /**
2069      * @see org.eclipse.uml2.uml.Element#applyStereotype(org.eclipse.uml2.uml.Stereotype)
2070      */
2071     public EObject applyStereotype(final Stereotype stereotype)
2072     {
2073         return this.property.applyStereotype(stereotype);
2074     }
2075 
2076     /**
2077      * @see org.eclipse.uml2.uml.Element#getAppliedSubstereotype(org.eclipse.uml2.uml.Stereotype, String)
2078      */
2079     public Stereotype getAppliedSubstereotype(final Stereotype stereotype, final String qualifiedName)
2080     {
2081         return this.property.getAppliedSubstereotype(stereotype, qualifiedName);
2082     }
2083 
2084     /**
2085      * @see org.eclipse.uml2.uml.Element#getAppliedSubstereotypes(org.eclipse.uml2.uml.Stereotype)
2086      */
2087     public EList<Stereotype> getAppliedSubstereotypes(final Stereotype stereotype)
2088     {
2089         return this.property.getAppliedSubstereotypes(stereotype);
2090     }
2091 
2092     /**
2093      * @see org.eclipse.uml2.uml.Element#getRelationships()
2094      */
2095     public EList<Relationship> getRelationships()
2096     {
2097         return this.property.getRelationships();
2098     }
2099 
2100     /**
2101      * @see org.eclipse.uml2.uml.Element#getRelationships(org.eclipse.emf.ecore.EClass)
2102      */
2103     public EList<Relationship> getRelationships(final EClass eClass)
2104     {
2105         return this.property.getRelationships(eClass);
2106     }
2107 
2108     /**
2109      * @see org.eclipse.uml2.uml.Element#getRequiredStereotype(String)
2110      */
2111     public Stereotype getRequiredStereotype(final String qualifiedName)
2112     {
2113         return this.property.getRequiredStereotype(qualifiedName);
2114     }
2115 
2116     /**
2117      * @see org.eclipse.uml2.uml.Element#getRequiredStereotypes()
2118      */
2119     public EList<Stereotype> getRequiredStereotypes()
2120     {
2121         return this.property.getRequiredStereotypes();
2122     }
2123 
2124     /**
2125      * @see org.eclipse.uml2.uml.Element#getSourceDirectedRelationships()
2126      */
2127     public EList<DirectedRelationship> getSourceDirectedRelationships()
2128     {
2129         return this.property.getSourceDirectedRelationships();
2130     }
2131 
2132     /**
2133      * @see org.eclipse.uml2.uml.Element#getSourceDirectedRelationships(org.eclipse.emf.ecore.EClass)
2134      */
2135     public EList<DirectedRelationship> getSourceDirectedRelationships(final EClass eClass)
2136     {
2137         return this.property.getSourceDirectedRelationships(eClass);
2138     }
2139 
2140     /**
2141      * @see org.eclipse.uml2.uml.Element#getStereotypeApplication(org.eclipse.uml2.uml.Stereotype)
2142      */
2143     public EObject getStereotypeApplication(final Stereotype stereotype)
2144     {
2145         return this.property.getStereotypeApplication(stereotype);
2146     }
2147 
2148     /**
2149      * @see org.eclipse.uml2.uml.Element#getStereotypeApplications()
2150      */
2151     public EList<EObject> getStereotypeApplications()
2152     {
2153         return this.property.getStereotypeApplications();
2154     }
2155 
2156     /**
2157      * @see org.eclipse.uml2.uml.Element#getTargetDirectedRelationships()
2158      */
2159     public EList<DirectedRelationship> getTargetDirectedRelationships()
2160     {
2161         return this.property.getTargetDirectedRelationships();
2162     }
2163 
2164     /**
2165      * @see org.eclipse.uml2.uml.Element#getTargetDirectedRelationships(org.eclipse.emf.ecore.EClass)
2166      */
2167     public EList<DirectedRelationship> getTargetDirectedRelationships(final EClass eClass)
2168     {
2169         return this.property.getTargetDirectedRelationships(eClass);
2170     }
2171 
2172     /**
2173      * @see org.eclipse.uml2.uml.Element#isStereotypeApplicable(org.eclipse.uml2.uml.Stereotype)
2174      */
2175     public boolean isStereotypeApplicable(final Stereotype stereotype)
2176     {
2177         return this.property.isStereotypeApplicable(stereotype);
2178     }
2179 
2180     /**
2181      * @see org.eclipse.uml2.uml.Element#isStereotypeApplied(org.eclipse.uml2.uml.Stereotype)
2182      */
2183     public boolean isStereotypeApplied(final Stereotype stereotype)
2184     {
2185         return this.property.isStereotypeApplied(stereotype);
2186     }
2187 
2188     /**
2189      * @see org.eclipse.uml2.uml.Element#isStereotypeRequired(org.eclipse.uml2.uml.Stereotype)
2190      */
2191     public boolean isStereotypeRequired(final Stereotype stereotype)
2192     {
2193         return this.property.isStereotypeRequired(stereotype);
2194     }
2195 
2196     /**
2197      * @see org.eclipse.uml2.uml.Element#unapplyStereotype(org.eclipse.uml2.uml.Stereotype)
2198      */
2199     public EObject unapplyStereotype(final Stereotype stereotype)
2200     {
2201         return this.property.unapplyStereotype(stereotype);
2202     }
2203 
2204     /**
2205      * @see org.eclipse.uml2.uml.MultiplicityElement#compatibleWith(org.eclipse.uml2.uml.MultiplicityElement)
2206      */
2207     public boolean compatibleWith(final MultiplicityElement other)
2208     {
2209         return this.property.compatibleWith(other);
2210     }
2211 
2212     /**
2213      * @see org.eclipse.uml2.uml.MultiplicityElement#createLowerValue(String, org.eclipse.uml2.uml.Type, org.eclipse.emf.ecore.EClass)
2214      */
2215     public ValueSpecification createLowerValue(final String name, final Type type, final EClass eClass)
2216     {
2217         return this.property.createLowerValue(name, type, eClass);
2218     }
2219 
2220     /**
2221      * @see org.eclipse.uml2.uml.MultiplicityElement#createUpperValue(String, org.eclipse.uml2.uml.Type, org.eclipse.emf.ecore.EClass)
2222      */
2223     public ValueSpecification createUpperValue(final String name, final Type type, final EClass eClass)
2224     {
2225         return this.property.createUpperValue(name, type, eClass);
2226     }
2227 
2228     /**
2229      * @see org.eclipse.uml2.uml.MultiplicityElement#is(int, int)
2230      */
2231     public boolean is(final int lowerbound, final int upperbound)
2232     {
2233         return this.property.is(lowerbound, upperbound);
2234     }
2235 
2236     /**
2237      * @see org.eclipse.uml2.uml.MultiplicityElement#setLower(int)
2238      */
2239     public void setLower(final int value)
2240     {
2241         this.property.setLower(value);
2242     }
2243 
2244     /**
2245      * @see org.eclipse.uml2.uml.MultiplicityElement#setUpper(int)
2246      */
2247     public void setUpper(final int value)
2248     {
2249         this.property.setUpper(value);
2250     }
2251 
2252     /**
2253      * @see org.eclipse.uml2.uml.MultiplicityElement#validateValueSpecificationConstant(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
2254      */
2255     public boolean validateValueSpecificationConstant(final DiagnosticChain diagnostics,
2256         final Map<Object, Object> context)
2257     {
2258         return this.property.validateValueSpecificationConstant(diagnostics, context);
2259     }
2260 
2261     /**
2262      * @see org.eclipse.uml2.uml.MultiplicityElement#validateValueSpecificationNoSideEffects(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
2263      */
2264     public boolean validateValueSpecificationNoSideEffects(final DiagnosticChain diagnostics,
2265         final Map<Object, Object> context)
2266     {
2267         return this.property.validateValueSpecificationNoSideEffects(diagnostics, context);
2268     }
2269 
2270     /**
2271      * @see org.eclipse.uml2.uml.ParameterableElement#getOwningTemplateParameter()
2272      */
2273     public TemplateParameter getOwningTemplateParameter()
2274     {
2275         return this.property.getOwningTemplateParameter();
2276     }
2277 
2278     /**
2279      * @see org.eclipse.uml2.uml.ParameterableElement#isCompatibleWith(org.eclipse.uml2.uml.ParameterableElement)
2280      */
2281     public boolean isCompatibleWith(final ParameterableElement param)
2282     {
2283         return this.property.isCompatibleWith(param);
2284     }
2285 
2286     /**
2287      * @see org.eclipse.uml2.uml.ParameterableElement#isTemplateParameter()
2288      */
2289     public boolean isTemplateParameter()
2290     {
2291         return this.property.isTemplateParameter();
2292     }
2293 
2294     /**
2295      * @see org.eclipse.uml2.uml.DeploymentTarget#createDeployment(String)
2296      */
2297     public Deployment createDeployment(final String name)
2298     {
2299         return this.property.createDeployment(name);
2300     }
2301 
2302     /**
2303      * @see org.eclipse.uml2.uml.DeploymentTarget#getDeployedElement(String, boolean, org.eclipse.emf.ecore.EClass)
2304      */
2305     public PackageableElement getDeployedElement(final String name, final boolean ignoreCase, final EClass eClass)
2306     {
2307         return this.property.getDeployedElement(name, ignoreCase, eClass);
2308     }
2309 
2310     /**
2311      * @see org.eclipse.uml2.uml.DeploymentTarget#getDeployment(String, boolean, boolean)
2312      */
2313     public Deployment getDeployment(final String name, final boolean ignoreCase, final boolean createOnDemand)
2314     {
2315         return this.property.getDeployment(name, ignoreCase, createOnDemand);
2316     }
2317 
2318     /** UML2 3.0: Property no longer inherits from TemplateableElement
2319      * @param signature
2320      * @return null
2321      * @see org.eclipse.uml2.uml.TemplateableElement#createTemplateBinding(org.eclipse.uml2.uml.TemplateSignature)
2322      */
2323     public TemplateBinding createTemplateBinding(final TemplateSignature signature)
2324     {
2325         //return this.property.createTemplateBinding(signature);
2326         LOGGER.error("Attribute.property.createTemplateBinding(TemplateSignature) has been removed from UML2 3.x, fix " + this.property.getQualifiedName());
2327         return null;
2328     }
2329 
2330     /** UML2 3.0: Property no longer inherits from TemplateableElement
2331      * @param signature
2332      * @return null
2333      * @see org.eclipse.uml2.uml.TemplateableElement#getTemplateBinding(org.eclipse.uml2.uml.TemplateSignature)
2334      */
2335     public TemplateBinding getTemplateBinding(final TemplateSignature signature)
2336     {
2337         //return this.property.getTemplateBinding(signature);
2338         LOGGER.error("Attribute.property.getTemplateBinding(TemplateSignature) has been removed from UML2 3.x, fix " + this.property.getQualifiedName());
2339         return null;
2340     }
2341 
2342     /** UML2 3.0: Property no longer inherits from TemplateableElement
2343      * @param signature
2344      * @param createOnDemand
2345      * @return null
2346      * @see org.eclipse.uml2.uml.TemplateableElement#getTemplateBinding(org.eclipse.uml2.uml.TemplateSignature, boolean)
2347      */
2348     public TemplateBinding getTemplateBinding(final TemplateSignature signature, final boolean createOnDemand)
2349     {
2350         //return this.property.getTemplateBinding(signature, createOnDemand);
2351         LOGGER.error("Attribute.property.getTemplateBinding(TemplateSignature, boolean) has been removed from UML2 3.x, fix " + this.property.getQualifiedName());
2352         return null;
2353     }
2354 
2355     /** UML2 3.0: Property no longer inherits from TemplateableElement
2356      * @return false
2357      * @see org.eclipse.uml2.uml.TemplateableElement#isTemplate()
2358      */
2359     public boolean isTemplate()
2360     {
2361         //return this.property.isTemplate();
2362         LOGGER.error("Attribute.property.isTemplate has been removed from UML2 3.x, fix " + this.property.getQualifiedName());
2363         return false;
2364     }
2365 
2366     /**
2367      * UML2 3.1 (Eclipse 3.6) only
2368      * @see org.eclipse.emf.ecore.EObject#eInvoke(org.eclipse.emf.ecore.EOperation, org.eclipse.emf.common.util.EList)
2369      */
2370     public Object eInvoke(final EOperation operation, final EList<?> arguments) throws InvocationTargetException
2371     {
2372         return this.property.eInvoke(operation, arguments);
2373     }
2374 
2375     /*
2376      * UML2 v3.x only. Removed in UML2 v4 (Eclipse 4.2)
2377      * @see org.eclipse.uml2.uml.Property#validateNavigableReadonly(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
2378     public boolean validateNavigableReadonly(
2379         final DiagnosticChain arg0,
2380         final Map<Object, Object> arg1)
2381     {
2382         return this.property.validateNavigableReadonly(
2383             arg0,
2384             arg1);
2385     }
2386      */
2387 
2388     /**
2389      * UML2 4.0 (Eclipse 4.2) only
2390      * @see org.eclipse.uml2.uml.Property#getInterface()
2391      */
2392     @Override
2393     public Interface getInterface()
2394     {
2395         return this.property.getInterface();
2396     }
2397 
2398     /**
2399      * UML2 4.0 (Eclipse 4.2) only
2400      * @see org.eclipse.uml2.uml.Property#setInterface(org.eclipse.uml2.uml.Interface)
2401      */
2402     @Override
2403     public void setInterface(Interface value)
2404     {
2405         this.property.setInterface(value);
2406     }
2407 
2408     /**
2409      * UML2 4.0 (Eclipse 4.2) only
2410      * @see org.eclipse.uml2.uml.Property#isID()
2411      */
2412     @Override
2413     public boolean isID()
2414     {
2415         return this.property.isID();
2416     }
2417 
2418     /**
2419      * UML2 4.0 (Eclipse 4.2) only
2420      * @see org.eclipse.uml2.uml.Property#setIsID(boolean)
2421      */
2422     @Override
2423     public void setIsID(boolean value)
2424     {
2425         this.property.setIsID(value);
2426     }
2427 
2428     /**
2429      * UML2 4.0 (Eclipse 4.2) only
2430      * @see org.eclipse.uml2.uml.Property#setRealDefaultValue(double)
2431      */
2432     @Override
2433     public void setRealDefaultValue(double value)
2434     {
2435         this.property.setRealDefaultValue(value);
2436     }
2437 
2438     /**
2439      * UML2 4.0 (Eclipse 4.2) only
2440      * @see org.eclipse.uml2.uml.RedefinableElement#validateNonLeafRedefinition(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
2441      */
2442     @Override
2443     public boolean validateNonLeafRedefinition(DiagnosticChain diagnostics, Map<Object, Object> context)
2444     {
2445         return this.property.validateNonLeafRedefinition(diagnostics, context);
2446     }
2447 
2448     /**
2449      * UML2 5.0 (Eclipse 4.4) only
2450      * @see org.eclipse.uml2.uml.Property#validateTypeOfOppositeEnd(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
2451      */
2452     @Override
2453     public boolean validateTypeOfOppositeEnd(DiagnosticChain diagnostics, Map<Object, Object> context)
2454     {
2455         return this.property.validateTypeOfOppositeEnd(diagnostics, context);
2456     }
2457 
2458     /**
2459      * UML2 5.0 (Eclipse 4.4) only
2460      * @see org.eclipse.uml2.uml.Property#validateQualifiedIsAssociationEnd(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
2461      */
2462     @Override
2463     public boolean validateQualifiedIsAssociationEnd(DiagnosticChain diagnostics, Map<Object, Object> context)
2464     {
2465         return this.property.validateQualifiedIsAssociationEnd(diagnostics, context);
2466     }
2467 
2468     /**
2469      * UML2 5.0 (Eclipse 4.4) only
2470      * @see org.eclipse.uml2.uml.Property#validateLowerIsInteger(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
2471      */
2472     @Override
2473     public boolean validateLowerIsInteger(DiagnosticChain diagnostics, Map<Object, Object> context)
2474     {
2475         return this.property.validateLowerIsInteger(diagnostics, context);
2476     }
2477 
2478     /**
2479      * UML2 5.0 (Eclipse 4.4) only
2480      * @see org.eclipse.uml2.uml.Property#validateUpperIsUnlimitedNatural(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
2481      */
2482     @Override
2483     public boolean validateUpperIsUnlimitedNatural(DiagnosticChain diagnostics, Map<Object, Object> context)
2484     {
2485         return this.property.validateUpperIsUnlimitedNatural(diagnostics, context);
2486     }
2487 }