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