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