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