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