001// license-header java merge-point 002// 003// Attention: generated code (by MetafacadeLogic.vsl) - do not modify! 004// 005package org.andromda.cartridges.ejb.metafacades; 006 007import java.util.Collection; 008import java.util.List; 009import org.andromda.core.common.Introspector; 010import org.andromda.core.metafacade.MetafacadeBase; 011import org.andromda.core.metafacade.MetafacadeFactory; 012import org.andromda.core.metafacade.ModelValidationMessage; 013import org.andromda.metafacades.uml.AssociationEndFacade; 014import org.andromda.metafacades.uml.AttributeFacade; 015import org.andromda.metafacades.uml.ClassifierFacade; 016import org.andromda.metafacades.uml.ConstraintFacade; 017import org.andromda.metafacades.uml.DependencyFacade; 018import org.andromda.metafacades.uml.GeneralizableElementFacade; 019import org.andromda.metafacades.uml.GeneralizationFacade; 020import org.andromda.metafacades.uml.ModelElementFacade; 021import org.andromda.metafacades.uml.ModelFacade; 022import org.andromda.metafacades.uml.OperationFacade; 023import org.andromda.metafacades.uml.PackageFacade; 024import org.andromda.metafacades.uml.StateMachineFacade; 025import org.andromda.metafacades.uml.StereotypeFacade; 026import org.andromda.metafacades.uml.TaggedValueFacade; 027import org.andromda.metafacades.uml.TemplateParameterFacade; 028import org.andromda.metafacades.uml.TypeMappings; 029 030/** 031 * TODO: Model Documentation for org.andromda.cartridges.ejb.metafacades.ValueObjectFacade 032 * MetafacadeLogic for ValueObjectFacade 033 * 034 * @see ValueObjectFacade 035 */ 036public abstract class ValueObjectFacadeLogic 037 extends MetafacadeBase 038 implements ValueObjectFacade 039{ 040 /** 041 * The underlying UML object 042 * @see Object 043 */ 044 protected Object metaObject; 045 046 /** Create Metafacade implementation instance using the MetafacadeFactory from the context 047 * @param metaObjectIn 048 * @param context 049 */ 050 protected ValueObjectFacadeLogic(Object metaObjectIn, String context) 051 { 052 super(metaObjectIn, getContext(context)); 053 this.superClassifierFacade = 054 (ClassifierFacade) 055 MetafacadeFactory.getInstance().createFacadeImpl( 056 "org.andromda.metafacades.uml.ClassifierFacade", 057 metaObjectIn, 058 getContext(context)); 059 this.metaObject = metaObjectIn; 060 } 061 062 /** 063 * Gets the context for this metafacade logic instance. 064 * @param context String. Set to ValueObjectFacade if null 065 * @return context String 066 */ 067 private static String getContext(String context) 068 { 069 if (context == null) 070 { 071 context = "org.andromda.cartridges.ejb.metafacades.ValueObjectFacade"; 072 } 073 return context; 074 } 075 076 private ClassifierFacade superClassifierFacade; 077 private boolean superClassifierFacadeInitialized = false; 078 079 /** 080 * Gets the ClassifierFacade parent instance. 081 * @return this.superClassifierFacade ClassifierFacade 082 */ 083 private ClassifierFacade getSuperClassifierFacade() 084 { 085 if (!this.superClassifierFacadeInitialized) 086 { 087 ((MetafacadeBase)this.superClassifierFacade).setMetafacadeContext(this.getMetafacadeContext()); 088 this.superClassifierFacadeInitialized = true; 089 } 090 return this.superClassifierFacade; 091 } 092 093 /** Reset context only for non-root metafacades 094 * @param context 095 * @see org.andromda.core.metafacade.MetafacadeBase#resetMetafacadeContext(String context) 096 */ 097 @Override 098 public void resetMetafacadeContext(String context) 099 { 100 if (!this.contextRoot) // reset context only for non-root metafacades 101 { 102 context = getContext(context); // to have same value as in original constructor call 103 setMetafacadeContext (context); 104 if (this.superClassifierFacadeInitialized) 105 { 106 ((MetafacadeBase)this.superClassifierFacade).resetMetafacadeContext(context); 107 } 108 } 109 } 110 111 /** 112 * @return boolean true always 113 * @see ValueObjectFacade 114 */ 115 public boolean isValueObjectFacadeMetaType() 116 { 117 return true; 118 } 119 120 /** 121 * @return true 122 * @see ClassifierFacade 123 */ 124 public boolean isClassifierFacadeMetaType() 125 { 126 return true; 127 } 128 129 /** 130 * @return true 131 * @see GeneralizableElementFacade 132 */ 133 public boolean isGeneralizableElementFacadeMetaType() 134 { 135 return true; 136 } 137 138 /** 139 * @return true 140 * @see ModelElementFacade 141 */ 142 public boolean isModelElementFacadeMetaType() 143 { 144 return true; 145 } 146 147 // ----------- delegates to ClassifierFacade ------------ 148 /** 149 * Return the attribute which name matches the parameter 150 * @see ClassifierFacade#findAttribute(String name) 151 */ 152 public AttributeFacade findAttribute(String name) 153 { 154 return this.getSuperClassifierFacade().findAttribute(name); 155 } 156 157 /** 158 * Those abstraction dependencies for which this classifier is the client. 159 * @see ClassifierFacade#getAbstractions() 160 */ 161 public Collection<ClassifierFacade> getAbstractions() 162 { 163 return this.getSuperClassifierFacade().getAbstractions(); 164 } 165 166 /** 167 * Lists all classes associated to this one and any ancestor classes (through generalization). 168 * There will be no duplicates. The order of the elements is predictable. 169 * @see ClassifierFacade#getAllAssociatedClasses() 170 */ 171 public Collection<ClassifierFacade> getAllAssociatedClasses() 172 { 173 return this.getSuperClassifierFacade().getAllAssociatedClasses(); 174 } 175 176 /** 177 * A collection containing all 'properties' of the classifier and its ancestors. Properties are 178 * any attributes and navigable connecting association ends. 179 * @see ClassifierFacade#getAllProperties() 180 */ 181 public Collection<ModelElementFacade> getAllProperties() 182 { 183 return this.getSuperClassifierFacade().getAllProperties(); 184 } 185 186 /** 187 * A collection containing all required and/or read-only 'properties' of the classifier and its 188 * ancestors. Properties are any attributes and navigable connecting association ends. 189 * @see ClassifierFacade#getAllRequiredConstructorParameters() 190 */ 191 public Collection<ModelElementFacade> getAllRequiredConstructorParameters() 192 { 193 return this.getSuperClassifierFacade().getAllRequiredConstructorParameters(); 194 } 195 196 /** 197 * Gets the array type for this classifier. If this classifier already represents an array, it 198 * just returns itself. 199 * @see ClassifierFacade#getArray() 200 */ 201 public ClassifierFacade getArray() 202 { 203 return this.getSuperClassifierFacade().getArray(); 204 } 205 206 /** 207 * The name of the classifier as an array. 208 * @see ClassifierFacade#getArrayName() 209 */ 210 public String getArrayName() 211 { 212 return this.getSuperClassifierFacade().getArrayName(); 213 } 214 215 /** 216 * Lists the classes associated to this one, there is no repitition of classes. The order of the 217 * elements is predictable. 218 * @see ClassifierFacade#getAssociatedClasses() 219 */ 220 public Collection<ClassifierFacade> getAssociatedClasses() 221 { 222 return this.getSuperClassifierFacade().getAssociatedClasses(); 223 } 224 225 /** 226 * Gets the association ends belonging to a classifier. 227 * @see ClassifierFacade#getAssociationEnds() 228 */ 229 public List<AssociationEndFacade> getAssociationEnds() 230 { 231 return this.getSuperClassifierFacade().getAssociationEnds(); 232 } 233 234 /** 235 * Gets the attributes that belong to the classifier. 236 * @see ClassifierFacade#getAttributes() 237 */ 238 public List<AttributeFacade> getAttributes() 239 { 240 return this.getSuperClassifierFacade().getAttributes(); 241 } 242 243 /** 244 * Gets all attributes for the classifier and if 'follow' is true goes up the inheritance 245 * hierarchy and gets the attributes from the super classes as well. 246 * @see ClassifierFacade#getAttributes(boolean follow) 247 */ 248 public List<AttributeFacade> getAttributes(boolean follow) 249 { 250 return this.getSuperClassifierFacade().getAttributes(follow); 251 } 252 253 /** 254 * The fully qualified name of the classifier as an array. 255 * @see ClassifierFacade#getFullyQualifiedArrayName() 256 */ 257 public String getFullyQualifiedArrayName() 258 { 259 return this.getSuperClassifierFacade().getFullyQualifiedArrayName(); 260 } 261 262 /** 263 * Returns all those operations that could be implemented at this classifier's level. This means 264 * the operations owned by this classifier as well as any realized interface's operations 265 * (recursively) in case this classifier itself is not already an interface, or generalized when 266 * this classifier is an interface. 267 * @see ClassifierFacade#getImplementationOperations() 268 */ 269 public Collection<OperationFacade> getImplementationOperations() 270 { 271 return this.getSuperClassifierFacade().getImplementationOperations(); 272 } 273 274 /** 275 * A comma separated list of the fully qualified names of all implemented interfaces. 276 * @see ClassifierFacade#getImplementedInterfaceList() 277 */ 278 public String getImplementedInterfaceList() 279 { 280 return this.getSuperClassifierFacade().getImplementedInterfaceList(); 281 } 282 283 /** 284 * Those attributes that are scoped to an instance of this class. 285 * @see ClassifierFacade#getInstanceAttributes() 286 */ 287 public Collection<AttributeFacade> getInstanceAttributes() 288 { 289 return this.getSuperClassifierFacade().getInstanceAttributes(); 290 } 291 292 /** 293 * Those operations that are scoped to an instance of this class. 294 * @see ClassifierFacade#getInstanceOperations() 295 */ 296 public List<OperationFacade> getInstanceOperations() 297 { 298 return this.getSuperClassifierFacade().getInstanceOperations(); 299 } 300 301 /** 302 * Those interfaces that are abstractions of this classifier, this basically means this 303 * classifier realizes them. 304 * @see ClassifierFacade#getInterfaceAbstractions() 305 */ 306 public Collection<ClassifierFacade> getInterfaceAbstractions() 307 { 308 return this.getSuperClassifierFacade().getInterfaceAbstractions(); 309 } 310 311 /** 312 * A String representing a new Constructor declaration for this classifier type to be used in a 313 * Java environment. 314 * @see ClassifierFacade#getJavaNewString() 315 */ 316 public String getJavaNewString() 317 { 318 return this.getSuperClassifierFacade().getJavaNewString(); 319 } 320 321 /** 322 * A String representing the null-value for this classifier type to be used in a Java 323 * environment. 324 * @see ClassifierFacade#getJavaNullString() 325 */ 326 public String getJavaNullString() 327 { 328 return this.getSuperClassifierFacade().getJavaNullString(); 329 } 330 331 /** 332 * The other ends of this classifier's association ends which are navigable. 333 * @see ClassifierFacade#getNavigableConnectingEnds() 334 */ 335 public Collection<AssociationEndFacade> getNavigableConnectingEnds() 336 { 337 return this.getSuperClassifierFacade().getNavigableConnectingEnds(); 338 } 339 340 /** 341 * Get the other ends of this classifier's association ends which are navigable and if 'follow' 342 * is true goes up the inheritance hierarchy and gets the super association ends as well. 343 * @see ClassifierFacade#getNavigableConnectingEnds(boolean follow) 344 */ 345 public List<AssociationEndFacade> getNavigableConnectingEnds(boolean follow) 346 { 347 return this.getSuperClassifierFacade().getNavigableConnectingEnds(follow); 348 } 349 350 /** 351 * Assuming that the classifier is an array, this will return the non array type of the 352 * classifier from 353 * the model. If the classifier is NOT an array, it will just return itself. 354 * @see ClassifierFacade#getNonArray() 355 */ 356 public ClassifierFacade getNonArray() 357 { 358 return this.getSuperClassifierFacade().getNonArray(); 359 } 360 361 /** 362 * The attributes from this classifier in the form of an operation call (this example would be 363 * in Java): '(String attributeOne, String attributeTwo). If there were no attributes on the 364 * classifier, the result would be an empty '()'. 365 * @see ClassifierFacade#getOperationCallFromAttributes() 366 */ 367 public String getOperationCallFromAttributes() 368 { 369 return this.getSuperClassifierFacade().getOperationCallFromAttributes(); 370 } 371 372 /** 373 * The operations owned by this classifier. 374 * @see ClassifierFacade#getOperations() 375 */ 376 public List<OperationFacade> getOperations() 377 { 378 return this.getSuperClassifierFacade().getOperations(); 379 } 380 381 /** 382 * A collection containing all 'properties' of the classifier. Properties are any attributes 383 * and navigable connecting association ends. 384 * @see ClassifierFacade#getProperties() 385 */ 386 public List<ModelElementFacade> getProperties() 387 { 388 return this.getSuperClassifierFacade().getProperties(); 389 } 390 391 /** 392 * Gets all properties (attributes and navigable association ends) for the classifier and if 393 * 'follow' is true goes up the inheritance hierarchy and gets the properties from the super 394 * classes as well. 395 * @see ClassifierFacade#getProperties(boolean follow) 396 */ 397 public List getProperties(boolean follow) 398 { 399 return this.getSuperClassifierFacade().getProperties(follow); 400 } 401 402 /** 403 * A collection containing all required and/or read-only 'properties' of the classifier. 404 * Properties are any attributes and navigable connecting association ends. 405 * @see ClassifierFacade#getRequiredConstructorParameters() 406 */ 407 public Collection<ModelElementFacade> getRequiredConstructorParameters() 408 { 409 return this.getSuperClassifierFacade().getRequiredConstructorParameters(); 410 } 411 412 /** 413 * Returns the serial version UID of the underlying model element. 414 * @see ClassifierFacade#getSerialVersionUID() 415 */ 416 public long getSerialVersionUID() 417 { 418 return this.getSuperClassifierFacade().getSerialVersionUID(); 419 } 420 421 /** 422 * Those attributes that are scoped to the definition of this class. 423 * @see ClassifierFacade#getStaticAttributes() 424 */ 425 public Collection<AttributeFacade> getStaticAttributes() 426 { 427 return this.getSuperClassifierFacade().getStaticAttributes(); 428 } 429 430 /** 431 * Those operations that are scoped to the definition of this class. 432 * @see ClassifierFacade#getStaticOperations() 433 */ 434 public List<OperationFacade> getStaticOperations() 435 { 436 return this.getSuperClassifierFacade().getStaticOperations(); 437 } 438 439 /** 440 * This class' superclass, returns the generalization if it is a ClassifierFacade, null 441 * otherwise. 442 * @see ClassifierFacade#getSuperClass() 443 */ 444 public ClassifierFacade getSuperClass() 445 { 446 return this.getSuperClassifierFacade().getSuperClass(); 447 } 448 449 /** 450 * The wrapper name for this classifier if a mapped type has a defined wrapper class (ie. 'long' 451 * maps to 'Long'). If the classifier doesn't have a wrapper defined for it, this method will 452 * return a null. Note that wrapper mappings must be defined for the namespace by defining the 453 * 'wrapperMappingsUri', this property must point to the location of the mappings file which 454 * maps the primitives to wrapper types. 455 * @see ClassifierFacade#getWrapperName() 456 */ 457 public String getWrapperName() 458 { 459 return this.getSuperClassifierFacade().getWrapperName(); 460 } 461 462 /** 463 * Indicates if this classifier is 'abstract'. 464 * @see ClassifierFacade#isAbstract() 465 */ 466 public boolean isAbstract() 467 { 468 return this.getSuperClassifierFacade().isAbstract(); 469 } 470 471 /** 472 * True if this classifier represents an array type. False otherwise. 473 * @see ClassifierFacade#isArrayType() 474 */ 475 public boolean isArrayType() 476 { 477 return this.getSuperClassifierFacade().isArrayType(); 478 } 479 480 /** 481 * True if the ClassifierFacade is an AssociationClass. 482 * @see ClassifierFacade#isAssociationClass() 483 */ 484 public boolean isAssociationClass() 485 { 486 return this.getSuperClassifierFacade().isAssociationClass(); 487 } 488 489 /** 490 * Returns true if this type represents a Blob type. 491 * @see ClassifierFacade#isBlobType() 492 */ 493 public boolean isBlobType() 494 { 495 return this.getSuperClassifierFacade().isBlobType(); 496 } 497 498 /** 499 * Indicates if this type represents a boolean type or not. 500 * @see ClassifierFacade#isBooleanType() 501 */ 502 public boolean isBooleanType() 503 { 504 return this.getSuperClassifierFacade().isBooleanType(); 505 } 506 507 /** 508 * Indicates if this type represents a char, Character, or java.lang.Character type or not. 509 * @see ClassifierFacade#isCharacterType() 510 */ 511 public boolean isCharacterType() 512 { 513 return this.getSuperClassifierFacade().isCharacterType(); 514 } 515 516 /** 517 * Returns true if this type represents a Clob type. 518 * @see ClassifierFacade#isClobType() 519 */ 520 public boolean isClobType() 521 { 522 return this.getSuperClassifierFacade().isClobType(); 523 } 524 525 /** 526 * True if this classifier represents a collection type. False otherwise. 527 * @see ClassifierFacade#isCollectionType() 528 */ 529 public boolean isCollectionType() 530 { 531 return this.getSuperClassifierFacade().isCollectionType(); 532 } 533 534 /** 535 * True/false depending on whether or not this classifier represents a datatype. A data type is 536 * a type whose instances are identified only by their value. A data type may contain attributes 537 * to support the modeling of structured data types. 538 * @see ClassifierFacade#isDataType() 539 */ 540 public boolean isDataType() 541 { 542 return this.getSuperClassifierFacade().isDataType(); 543 } 544 545 /** 546 * True when this classifier is a date type. 547 * @see ClassifierFacade#isDateType() 548 */ 549 public boolean isDateType() 550 { 551 return this.getSuperClassifierFacade().isDateType(); 552 } 553 554 /** 555 * Indicates if this type represents a Double type or not. 556 * @see ClassifierFacade#isDoubleType() 557 */ 558 public boolean isDoubleType() 559 { 560 return this.getSuperClassifierFacade().isDoubleType(); 561 } 562 563 /** 564 * Indicates whether or not this classifier represents an "EmbeddedValue'. 565 * @see ClassifierFacade#isEmbeddedValue() 566 */ 567 public boolean isEmbeddedValue() 568 { 569 return this.getSuperClassifierFacade().isEmbeddedValue(); 570 } 571 572 /** 573 * True if this classifier is in fact marked as an enumeration. 574 * @see ClassifierFacade#isEnumeration() 575 */ 576 public boolean isEnumeration() 577 { 578 return this.getSuperClassifierFacade().isEnumeration(); 579 } 580 581 /** 582 * Returns true if this type represents a 'file' type. 583 * @see ClassifierFacade#isFileType() 584 */ 585 public boolean isFileType() 586 { 587 return this.getSuperClassifierFacade().isFileType(); 588 } 589 590 /** 591 * Indicates if this type represents a Float type or not. 592 * @see ClassifierFacade#isFloatType() 593 */ 594 public boolean isFloatType() 595 { 596 return this.getSuperClassifierFacade().isFloatType(); 597 } 598 599 /** 600 * Indicates if this type represents an int or Integer or java.lang.Integer type or not. 601 * @see ClassifierFacade#isIntegerType() 602 */ 603 public boolean isIntegerType() 604 { 605 return this.getSuperClassifierFacade().isIntegerType(); 606 } 607 608 /** 609 * True/false depending on whether or not this Classifier represents an interface. 610 * @see ClassifierFacade#isInterface() 611 */ 612 public boolean isInterface() 613 { 614 return this.getSuperClassifierFacade().isInterface(); 615 } 616 617 /** 618 * True if this classifier cannot be extended and represent a leaf in the inheritance tree. 619 * @see ClassifierFacade#isLeaf() 620 */ 621 public boolean isLeaf() 622 { 623 return this.getSuperClassifierFacade().isLeaf(); 624 } 625 626 /** 627 * True if this classifier represents a list type. False otherwise. 628 * @see ClassifierFacade#isListType() 629 */ 630 public boolean isListType() 631 { 632 return this.getSuperClassifierFacade().isListType(); 633 } 634 635 /** 636 * Indicates if this type represents a Long type or not. 637 * @see ClassifierFacade#isLongType() 638 */ 639 public boolean isLongType() 640 { 641 return this.getSuperClassifierFacade().isLongType(); 642 } 643 644 /** 645 * Indicates whether or not this classifier represents a Map type. 646 * @see ClassifierFacade#isMapType() 647 */ 648 public boolean isMapType() 649 { 650 return this.getSuperClassifierFacade().isMapType(); 651 } 652 653 /** 654 * Indicates whether or not this classifier represents a primitive type. 655 * @see ClassifierFacade#isPrimitive() 656 */ 657 public boolean isPrimitive() 658 { 659 return this.getSuperClassifierFacade().isPrimitive(); 660 } 661 662 /** 663 * True if this classifier represents a set type. False otherwise. 664 * @see ClassifierFacade#isSetType() 665 */ 666 public boolean isSetType() 667 { 668 return this.getSuperClassifierFacade().isSetType(); 669 } 670 671 /** 672 * Indicates whether or not this classifier represents a string type. 673 * @see ClassifierFacade#isStringType() 674 */ 675 public boolean isStringType() 676 { 677 return this.getSuperClassifierFacade().isStringType(); 678 } 679 680 /** 681 * Indicates whether or not this classifier represents a time type. 682 * @see ClassifierFacade#isTimeType() 683 */ 684 public boolean isTimeType() 685 { 686 return this.getSuperClassifierFacade().isTimeType(); 687 } 688 689 /** 690 * Returns true if this type is a wrapped primitive type. 691 * @see ClassifierFacade#isWrappedPrimitive() 692 */ 693 public boolean isWrappedPrimitive() 694 { 695 return this.getSuperClassifierFacade().isWrappedPrimitive(); 696 } 697 698 /** 699 * Finds the tagged value optional searching the entire inheritance hierarchy if 'follow' is set 700 * to true. 701 * @see GeneralizableElementFacade#findTaggedValue(String tagName, boolean follow) 702 */ 703 public Object findTaggedValue(String tagName, boolean follow) 704 { 705 return this.getSuperClassifierFacade().findTaggedValue(tagName, follow); 706 } 707 708 /** 709 * All generalizations for this generalizable element, goes up the inheritance tree. 710 * @see GeneralizableElementFacade#getAllGeneralizations() 711 */ 712 public Collection<GeneralizableElementFacade> getAllGeneralizations() 713 { 714 return this.getSuperClassifierFacade().getAllGeneralizations(); 715 } 716 717 /** 718 * All specializations (travels down the inheritance hierarchy). 719 * @see GeneralizableElementFacade#getAllSpecializations() 720 */ 721 public Collection<GeneralizableElementFacade> getAllSpecializations() 722 { 723 return this.getSuperClassifierFacade().getAllSpecializations(); 724 } 725 726 /** 727 * Gets the direct generalization for this generalizable element. 728 * @see GeneralizableElementFacade#getGeneralization() 729 */ 730 public GeneralizableElementFacade getGeneralization() 731 { 732 return this.getSuperClassifierFacade().getGeneralization(); 733 } 734 735 /** 736 * Gets the actual links that this generalization element is part of (it plays either the 737 * specialization or generalization). 738 * @see GeneralizableElementFacade#getGeneralizationLinks() 739 */ 740 public Collection<GeneralizationFacade> getGeneralizationLinks() 741 { 742 return this.getSuperClassifierFacade().getGeneralizationLinks(); 743 } 744 745 /** 746 * A comma separated list of the fully qualified names of all generalizations. 747 * @see GeneralizableElementFacade#getGeneralizationList() 748 */ 749 public String getGeneralizationList() 750 { 751 return this.getSuperClassifierFacade().getGeneralizationList(); 752 } 753 754 /** 755 * The element found when you recursively follow the generalization path up to the root. If an 756 * element has no generalization itself will be considered the root. 757 * @see GeneralizableElementFacade#getGeneralizationRoot() 758 */ 759 public GeneralizableElementFacade getGeneralizationRoot() 760 { 761 return this.getSuperClassifierFacade().getGeneralizationRoot(); 762 } 763 764 /** 765 * Return all generalizations (ancestors) from this generalizable element. 766 * @see GeneralizableElementFacade#getGeneralizations() 767 */ 768 public Collection<GeneralizableElementFacade> getGeneralizations() 769 { 770 return this.getSuperClassifierFacade().getGeneralizations(); 771 } 772 773 /** 774 * Gets the direct specializations (i.e. sub elements) for this generalizatble element. 775 * @see GeneralizableElementFacade#getSpecializations() 776 */ 777 public Collection<GeneralizableElementFacade> getSpecializations() 778 { 779 return this.getSuperClassifierFacade().getSpecializations(); 780 } 781 782 /** 783 * Copies all tagged values from the given ModelElementFacade to this model element facade. 784 * @see ModelElementFacade#copyTaggedValues(ModelElementFacade element) 785 */ 786 public void copyTaggedValues(ModelElementFacade element) 787 { 788 this.getSuperClassifierFacade().copyTaggedValues(element); 789 } 790 791 /** 792 * Finds the tagged value with the specified 'tagName'. In case there are more values the first 793 * one found will be returned. 794 * @see ModelElementFacade#findTaggedValue(String tagName) 795 */ 796 public Object findTaggedValue(String tagName) 797 { 798 return this.getSuperClassifierFacade().findTaggedValue(tagName); 799 } 800 801 /** 802 * Returns all the values for the tagged value with the specified name. The returned collection 803 * will contains only String instances, or will be empty. Never null. 804 * @see ModelElementFacade#findTaggedValues(String tagName) 805 */ 806 public Collection<Object> findTaggedValues(String tagName) 807 { 808 return this.getSuperClassifierFacade().findTaggedValues(tagName); 809 } 810 811 /** 812 * Returns the fully qualified name of the model element. The fully qualified name includes 813 * complete package qualified name of the underlying model element. The templates parameter will 814 * be replaced by the correct one given the binding relation of the parameter to this element. 815 * @see ModelElementFacade#getBindedFullyQualifiedName(ModelElementFacade bindedElement) 816 */ 817 public String getBindedFullyQualifiedName(ModelElementFacade bindedElement) 818 { 819 return this.getSuperClassifierFacade().getBindedFullyQualifiedName(bindedElement); 820 } 821 822 /** 823 * Gets all constraints belonging to the model element. 824 * @see ModelElementFacade#getConstraints() 825 */ 826 public Collection<ConstraintFacade> getConstraints() 827 { 828 return this.getSuperClassifierFacade().getConstraints(); 829 } 830 831 /** 832 * Returns the constraints of the argument kind that have been placed onto this model. Typical 833 * kinds are "inv", "pre" and "post". Other kinds are possible. 834 * @see ModelElementFacade#getConstraints(String kind) 835 */ 836 public Collection<ConstraintFacade> getConstraints(String kind) 837 { 838 return this.getSuperClassifierFacade().getConstraints(kind); 839 } 840 841 /** 842 * Gets the documentation for the model element, The indent argument is prefixed to each line. 843 * By default this method wraps lines after 64 characters. 844 * This method is equivalent to <code>getDocumentation(indent, 64)</code>. 845 * @see ModelElementFacade#getDocumentation(String indent) 846 */ 847 public String getDocumentation(String indent) 848 { 849 return this.getSuperClassifierFacade().getDocumentation(indent); 850 } 851 852 /** 853 * This method returns the documentation for this model element, with the lines wrapped after 854 * the specified number of characters, values of less than 1 will indicate no line wrapping is 855 * required. By default paragraphs are returned as HTML. 856 * This method is equivalent to <code>getDocumentation(indent, lineLength, true)</code>. 857 * @see ModelElementFacade#getDocumentation(String indent, int lineLength) 858 */ 859 public String getDocumentation(String indent, int lineLength) 860 { 861 return this.getSuperClassifierFacade().getDocumentation(indent, lineLength); 862 } 863 864 /** 865 * This method returns the documentation for this model element, with the lines wrapped after 866 * the specified number of characters, values of less than 1 will indicate no line wrapping is 867 * required. HTML style determines if HTML Escaping is applied. 868 * @see ModelElementFacade#getDocumentation(String indent, int lineLength, boolean htmlStyle) 869 */ 870 public String getDocumentation(String indent, int lineLength, boolean htmlStyle) 871 { 872 return this.getSuperClassifierFacade().getDocumentation(indent, lineLength, htmlStyle); 873 } 874 875 /** 876 * The fully qualified name of this model element. 877 * @see ModelElementFacade#getFullyQualifiedName() 878 */ 879 public String getFullyQualifiedName() 880 { 881 return this.getSuperClassifierFacade().getFullyQualifiedName(); 882 } 883 884 /** 885 * Returns the fully qualified name of the model element. The fully qualified name includes 886 * complete package qualified name of the underlying model element. If modelName is true, then 887 * the original name of the model element (the name contained within the model) will be the name 888 * returned, otherwise a name from a language mapping will be returned. 889 * @see ModelElementFacade#getFullyQualifiedName(boolean modelName) 890 */ 891 public String getFullyQualifiedName(boolean modelName) 892 { 893 return this.getSuperClassifierFacade().getFullyQualifiedName(modelName); 894 } 895 896 /** 897 * Returns the fully qualified name as a path, the returned value always starts with out a slash 898 * '/'. 899 * @see ModelElementFacade#getFullyQualifiedNamePath() 900 */ 901 public String getFullyQualifiedNamePath() 902 { 903 return this.getSuperClassifierFacade().getFullyQualifiedNamePath(); 904 } 905 906 /** 907 * Gets the unique identifier of the underlying model element. 908 * @see ModelElementFacade#getId() 909 */ 910 public String getId() 911 { 912 return this.getSuperClassifierFacade().getId(); 913 } 914 915 /** 916 * UML2: Retrieves the keywords for this element. Used to modify implementation properties which 917 * are not represented by other properties, i.e. native, transient, volatile, synchronized, 918 * (added annotations) override, deprecated. Can also be used to suppress compiler warnings: 919 * (added annotations) unchecked, fallthrough, path, serial, finally, all. Annotations require 920 * JDK5 compiler level. 921 * @see ModelElementFacade#getKeywords() 922 */ 923 public Collection<String> getKeywords() 924 { 925 return this.getSuperClassifierFacade().getKeywords(); 926 } 927 928 /** 929 * UML2: Retrieves a localized label for this named element. 930 * @see ModelElementFacade#getLabel() 931 */ 932 public String getLabel() 933 { 934 return this.getSuperClassifierFacade().getLabel(); 935 } 936 937 /** 938 * The language mappings that have been set for this model element. 939 * @see ModelElementFacade#getLanguageMappings() 940 */ 941 public TypeMappings getLanguageMappings() 942 { 943 return this.getSuperClassifierFacade().getLanguageMappings(); 944 } 945 946 /** 947 * Return the model containing this model element (multiple models may be loaded and processed 948 * at the same time). 949 * @see ModelElementFacade#getModel() 950 */ 951 public ModelFacade getModel() 952 { 953 return this.getSuperClassifierFacade().getModel(); 954 } 955 956 /** 957 * The name of the model element. 958 * @see ModelElementFacade#getName() 959 */ 960 public String getName() 961 { 962 return this.getSuperClassifierFacade().getName(); 963 } 964 965 /** 966 * Gets the package to which this model element belongs. 967 * @see ModelElementFacade#getPackage() 968 */ 969 public ModelElementFacade getPackage() 970 { 971 return this.getSuperClassifierFacade().getPackage(); 972 } 973 974 /** 975 * The name of this model element's package. 976 * @see ModelElementFacade#getPackageName() 977 */ 978 public String getPackageName() 979 { 980 return this.getSuperClassifierFacade().getPackageName(); 981 } 982 983 /** 984 * Gets the package name (optionally providing the ability to retrieve the model name and not 985 * the mapped name). 986 * @see ModelElementFacade#getPackageName(boolean modelName) 987 */ 988 public String getPackageName(boolean modelName) 989 { 990 return this.getSuperClassifierFacade().getPackageName(modelName); 991 } 992 993 /** 994 * Returns the package as a path, the returned value always starts with out a slash '/'. 995 * @see ModelElementFacade#getPackagePath() 996 */ 997 public String getPackagePath() 998 { 999 return this.getSuperClassifierFacade().getPackagePath(); 1000 } 1001 1002 /** 1003 * UML2: Returns the value of the 'Qualified Name' attribute. A name which allows the 1004 * NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from 1005 * the names of the containing namespaces starting at the root of the hierarchy and ending with 1006 * the name of the NamedElement itself. 1007 * @see ModelElementFacade#getQualifiedName() 1008 */ 1009 public String getQualifiedName() 1010 { 1011 return this.getSuperClassifierFacade().getQualifiedName(); 1012 } 1013 1014 /** 1015 * Gets the root package for the model element. 1016 * @see ModelElementFacade#getRootPackage() 1017 */ 1018 public PackageFacade getRootPackage() 1019 { 1020 return this.getSuperClassifierFacade().getRootPackage(); 1021 } 1022 1023 /** 1024 * Gets the dependencies for which this model element is the source. 1025 * @see ModelElementFacade#getSourceDependencies() 1026 */ 1027 public Collection<DependencyFacade> getSourceDependencies() 1028 { 1029 return this.getSuperClassifierFacade().getSourceDependencies(); 1030 } 1031 1032 /** 1033 * If this model element is the context of an activity graph, this represents that activity 1034 * graph. 1035 * @see ModelElementFacade#getStateMachineContext() 1036 */ 1037 public StateMachineFacade getStateMachineContext() 1038 { 1039 return this.getSuperClassifierFacade().getStateMachineContext(); 1040 } 1041 1042 /** 1043 * The collection of ALL stereotype names for this model element. 1044 * @see ModelElementFacade#getStereotypeNames() 1045 */ 1046 public Collection<String> getStereotypeNames() 1047 { 1048 return this.getSuperClassifierFacade().getStereotypeNames(); 1049 } 1050 1051 /** 1052 * Gets all stereotypes for this model element. 1053 * @see ModelElementFacade#getStereotypes() 1054 */ 1055 public Collection<StereotypeFacade> getStereotypes() 1056 { 1057 return this.getSuperClassifierFacade().getStereotypes(); 1058 } 1059 1060 /** 1061 * Return the TaggedValues associated with this model element, under all stereotypes. 1062 * @see ModelElementFacade#getTaggedValues() 1063 */ 1064 public Collection<TaggedValueFacade> getTaggedValues() 1065 { 1066 return this.getSuperClassifierFacade().getTaggedValues(); 1067 } 1068 1069 /** 1070 * Gets the dependencies for which this model element is the target. 1071 * @see ModelElementFacade#getTargetDependencies() 1072 */ 1073 public Collection<DependencyFacade> getTargetDependencies() 1074 { 1075 return this.getSuperClassifierFacade().getTargetDependencies(); 1076 } 1077 1078 /** 1079 * Get the template parameter for this model element having the parameterName 1080 * @see ModelElementFacade#getTemplateParameter(String parameterName) 1081 */ 1082 public Object getTemplateParameter(String parameterName) 1083 { 1084 return this.getSuperClassifierFacade().getTemplateParameter(parameterName); 1085 } 1086 1087 /** 1088 * Get the template parameters for this model element 1089 * @see ModelElementFacade#getTemplateParameters() 1090 */ 1091 public Collection<TemplateParameterFacade> getTemplateParameters() 1092 { 1093 return this.getSuperClassifierFacade().getTemplateParameters(); 1094 } 1095 1096 /** 1097 * The visibility (i.e. public, private, protected or package) of the model element, will 1098 * attempt a lookup for these values in the language mappings (if any). 1099 * @see ModelElementFacade#getVisibility() 1100 */ 1101 public String getVisibility() 1102 { 1103 return this.getSuperClassifierFacade().getVisibility(); 1104 } 1105 1106 /** 1107 * Returns true if the model element has the exact stereotype (meaning no stereotype inheritance 1108 * is taken into account when searching for the stereotype), false otherwise. 1109 * @see ModelElementFacade#hasExactStereotype(String stereotypeName) 1110 */ 1111 public boolean hasExactStereotype(String stereotypeName) 1112 { 1113 return this.getSuperClassifierFacade().hasExactStereotype(stereotypeName); 1114 } 1115 1116 /** 1117 * Does the UML Element contain the named Keyword? Keywords can be separated by space, comma, 1118 * pipe, semicolon, or << >> 1119 * @see ModelElementFacade#hasKeyword(String keywordName) 1120 */ 1121 public boolean hasKeyword(String keywordName) 1122 { 1123 return this.getSuperClassifierFacade().hasKeyword(keywordName); 1124 } 1125 1126 /** 1127 * Returns true if the model element has the specified stereotype. If the stereotype itself 1128 * does not match, then a search will be made up the stereotype inheritance hierarchy, and if 1129 * one of the stereotype's ancestors has a matching name this method will return true, false 1130 * otherwise. 1131 * For example, if we have a certain stereotype called <<exception>> and a model element has a 1132 * stereotype called <<applicationException>> which extends <<exception>>, when calling this 1133 * method with 'stereotypeName' defined as 'exception' the method would return true since 1134 * <<applicationException>> inherits from <<exception>>. If you want to check if the model 1135 * element has the exact stereotype, then use the method 'hasExactStereotype' instead. 1136 * @see ModelElementFacade#hasStereotype(String stereotypeName) 1137 */ 1138 public boolean hasStereotype(String stereotypeName) 1139 { 1140 return this.getSuperClassifierFacade().hasStereotype(stereotypeName); 1141 } 1142 1143 /** 1144 * True if there are target dependencies from this element that are instances of BindingFacade. 1145 * Deprecated in UML2: Use TemplateBinding parameters instead of dependencies. 1146 * @see ModelElementFacade#isBindingDependenciesPresent() 1147 */ 1148 public boolean isBindingDependenciesPresent() 1149 { 1150 return this.getSuperClassifierFacade().isBindingDependenciesPresent(); 1151 } 1152 1153 /** 1154 * Indicates if any constraints are present on this model element. 1155 * @see ModelElementFacade#isConstraintsPresent() 1156 */ 1157 public boolean isConstraintsPresent() 1158 { 1159 return this.getSuperClassifierFacade().isConstraintsPresent(); 1160 } 1161 1162 /** 1163 * Indicates if any documentation is present on this model element. 1164 * @see ModelElementFacade#isDocumentationPresent() 1165 */ 1166 public boolean isDocumentationPresent() 1167 { 1168 return this.getSuperClassifierFacade().isDocumentationPresent(); 1169 } 1170 1171 /** 1172 * True if this element name is a reserved word in Java, C#, ANSI or ISO C, C++, JavaScript. 1173 * @see ModelElementFacade#isReservedWord() 1174 */ 1175 public boolean isReservedWord() 1176 { 1177 return this.getSuperClassifierFacade().isReservedWord(); 1178 } 1179 1180 /** 1181 * True is there are template parameters on this model element. For UML2, applies to Class, 1182 * Operation, Property, and Parameter. 1183 * @see ModelElementFacade#isTemplateParametersPresent() 1184 */ 1185 public boolean isTemplateParametersPresent() 1186 { 1187 return this.getSuperClassifierFacade().isTemplateParametersPresent(); 1188 } 1189 1190 /** 1191 * True if this element name is a valid identifier name in Java, C#, ANSI or ISO C, C++, 1192 * JavaScript. Contains no spaces, special characters etc. Constraint always applied on 1193 * Enumerations and Interfaces, optionally applies on other model elements. 1194 * @see ModelElementFacade#isValidIdentifierName() 1195 */ 1196 public boolean isValidIdentifierName() 1197 { 1198 return this.getSuperClassifierFacade().isValidIdentifierName(); 1199 } 1200 1201 /** 1202 * Searches for the constraint with the specified 'name' on this model element, and if found 1203 * translates it using the specified 'translation' from a translation library discovered by the 1204 * framework. 1205 * @see ModelElementFacade#translateConstraint(String name, String translation) 1206 */ 1207 public String translateConstraint(String name, String translation) 1208 { 1209 return this.getSuperClassifierFacade().translateConstraint(name, translation); 1210 } 1211 1212 /** 1213 * Translates all constraints belonging to this model element with the given 'translation'. 1214 * @see ModelElementFacade#translateConstraints(String translation) 1215 */ 1216 public String[] translateConstraints(String translation) 1217 { 1218 return this.getSuperClassifierFacade().translateConstraints(translation); 1219 } 1220 1221 /** 1222 * Translates the constraints of the specified 'kind' belonging to this model element. 1223 * @see ModelElementFacade#translateConstraints(String kind, String translation) 1224 */ 1225 public String[] translateConstraints(String kind, String translation) 1226 { 1227 return this.getSuperClassifierFacade().translateConstraints(kind, translation); 1228 } 1229 1230 /** 1231 * @see org.andromda.core.metafacade.MetafacadeBase#initialize() 1232 */ 1233 @Override 1234 public void initialize() 1235 { 1236 this.getSuperClassifierFacade().initialize(); 1237 } 1238 1239 /** 1240 * @return Object getSuperClassifierFacade().getValidationOwner() 1241 * @see org.andromda.core.metafacade.MetafacadeBase#getValidationOwner() 1242 */ 1243 @Override 1244 public Object getValidationOwner() 1245 { 1246 Object owner = this.getSuperClassifierFacade().getValidationOwner(); 1247 return owner; 1248 } 1249 1250 /** 1251 * @return String getSuperClassifierFacade().getValidationName() 1252 * @see org.andromda.core.metafacade.MetafacadeBase#getValidationName() 1253 */ 1254 @Override 1255 public String getValidationName() 1256 { 1257 String name = this.getSuperClassifierFacade().getValidationName(); 1258 return name; 1259 } 1260 1261 /** 1262 * @param validationMessages Collection<ModelValidationMessage> 1263 * @see org.andromda.core.metafacade.MetafacadeBase#validateInvariants(Collection validationMessages) 1264 */ 1265 @Override 1266 public void validateInvariants(Collection<ModelValidationMessage> validationMessages) 1267 { 1268 this.getSuperClassifierFacade().validateInvariants(validationMessages); 1269 } 1270 1271 /** 1272 * The property that stores the name of the metafacade. 1273 */ 1274 private static final String NAME_PROPERTY = "name"; 1275 private static final String FQNAME_PROPERTY = "fullyQualifiedName"; 1276 1277 /** 1278 * @see Object#toString() 1279 */ 1280 @Override 1281 public String toString() 1282 { 1283 final StringBuilder toString = new StringBuilder(this.getClass().getName()); 1284 toString.append("["); 1285 try 1286 { 1287 toString.append(Introspector.instance().getProperty(this, FQNAME_PROPERTY)); 1288 } 1289 catch (final Throwable tryAgain) 1290 { 1291 try 1292 { 1293 toString.append(Introspector.instance().getProperty(this, NAME_PROPERTY)); 1294 } 1295 catch (final Throwable ignore) 1296 { 1297 // - just ignore when the metafacade doesn't have a name or fullyQualifiedName property 1298 } 1299 } 1300 toString.append("]"); 1301 return toString.toString(); 1302 } 1303}