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