001// license-header java merge-point 002// 003// Attention: generated code (by MetafacadeLogic.vsl) - do not modify! 004// 005package org.andromda.cartridges.bpm4struts.metafacades; 006 007import java.util.Collection; 008import java.util.List; 009import org.andromda.core.common.Introspector; 010import org.andromda.core.metafacade.MetafacadeBase; 011import org.andromda.core.metafacade.MetafacadeFactory; 012import org.andromda.core.metafacade.ModelValidationMessage; 013import org.andromda.metafacades.uml.ClassifierFacade; 014import org.andromda.metafacades.uml.ConstraintFacade; 015import org.andromda.metafacades.uml.DependencyFacade; 016import org.andromda.metafacades.uml.EventFacade; 017import org.andromda.metafacades.uml.FrontEndAction; 018import org.andromda.metafacades.uml.FrontEndControllerOperation; 019import org.andromda.metafacades.uml.FrontEndParameter; 020import org.andromda.metafacades.uml.FrontEndView; 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; 030import org.andromda.translation.ocl.validation.OCLCollections; 031import org.andromda.translation.ocl.validation.OCLExpressions; 032import org.andromda.translation.ocl.validation.OCLIntrospector; 033import org.andromda.translation.ocl.validation.OCLResultEnsurer; 034import org.apache.commons.collections.Predicate; 035import org.apache.log4j.Logger; 036 037/** 038 * A Struts parameter is an object communicated between the client and the server. Typically form 039 * beans encapsulate such parameters. 040 * MetafacadeLogic for StrutsParameter 041 * 042 * @see StrutsParameter 043 */ 044public abstract class StrutsParameterLogic 045 extends MetafacadeBase 046 implements StrutsParameter 047{ 048 /** 049 * The underlying UML object 050 * @see Object 051 */ 052 protected Object metaObject; 053 054 /** Create Metafacade implementation instance using the MetafacadeFactory from the context 055 * @param metaObjectIn 056 * @param context 057 */ 058 protected StrutsParameterLogic(Object metaObjectIn, String context) 059 { 060 super(metaObjectIn, getContext(context)); 061 this.superFrontEndParameter = 062 (FrontEndParameter) 063 MetafacadeFactory.getInstance().createFacadeImpl( 064 "org.andromda.metafacades.uml.FrontEndParameter", 065 metaObjectIn, 066 getContext(context)); 067 this.metaObject = metaObjectIn; 068 } 069 070 /** 071 * The logger instance. 072 */ 073 private static final Logger logger = Logger.getLogger(StrutsParameterLogic.class); 074 075 /** 076 * Gets the context for this metafacade logic instance. 077 * @param context String. Set to StrutsParameter if null 078 * @return context String 079 */ 080 private static String getContext(String context) 081 { 082 if (context == null) 083 { 084 context = "org.andromda.cartridges.bpm4struts.metafacades.StrutsParameter"; 085 } 086 return context; 087 } 088 089 private FrontEndParameter superFrontEndParameter; 090 private boolean superFrontEndParameterInitialized = false; 091 092 /** 093 * Gets the FrontEndParameter parent instance. 094 * @return this.superFrontEndParameter FrontEndParameter 095 */ 096 private FrontEndParameter getSuperFrontEndParameter() 097 { 098 if (!this.superFrontEndParameterInitialized) 099 { 100 ((MetafacadeBase)this.superFrontEndParameter).setMetafacadeContext(this.getMetafacadeContext()); 101 this.superFrontEndParameterInitialized = true; 102 } 103 return this.superFrontEndParameter; 104 } 105 106 /** Reset context only for non-root metafacades 107 * @param context 108 * @see MetafacadeBase#resetMetafacadeContext(String context) 109 */ 110 @Override 111 public void resetMetafacadeContext(String context) 112 { 113 if (!this.contextRoot) // reset context only for non-root metafacades 114 { 115 context = getContext(context); // to have same value as in original constructor call 116 setMetafacadeContext (context); 117 if (this.superFrontEndParameterInitialized) 118 { 119 ((MetafacadeBase)this.superFrontEndParameter).resetMetafacadeContext(context); 120 } 121 } 122 } 123 124 /** 125 * @return boolean true always 126 * @see StrutsParameter 127 */ 128 public boolean isStrutsParameterMetaType() 129 { 130 return true; 131 } 132 133 // --------------- attributes --------------------- 134 135 /** 136 * @see StrutsParameter#getMessageKey() 137 * @return String 138 */ 139 protected abstract String handleGetMessageKey(); 140 141 private String __messageKey1a; 142 private boolean __messageKey1aSet = false; 143 144 /** 145 * The default message key for this parameter. 146 * @return (String)handleGetMessageKey() 147 */ 148 public final String getMessageKey() 149 { 150 String messageKey1a = this.__messageKey1a; 151 if (!this.__messageKey1aSet) 152 { 153 // messageKey has no pre constraints 154 messageKey1a = handleGetMessageKey(); 155 // messageKey has no post constraints 156 this.__messageKey1a = messageKey1a; 157 if (isMetafacadePropertyCachingEnabled()) 158 { 159 this.__messageKey1aSet = true; 160 } 161 } 162 return messageKey1a; 163 } 164 165 /** 166 * @see StrutsParameter#getMessageValue() 167 * @return String 168 */ 169 protected abstract String handleGetMessageValue(); 170 171 private String __messageValue2a; 172 private boolean __messageValue2aSet = false; 173 174 /** 175 * The default message value for this parameter. 176 * @return (String)handleGetMessageValue() 177 */ 178 public final String getMessageValue() 179 { 180 String messageValue2a = this.__messageValue2a; 181 if (!this.__messageValue2aSet) 182 { 183 // messageValue has no pre constraints 184 messageValue2a = handleGetMessageValue(); 185 // messageValue has no post constraints 186 this.__messageValue2a = messageValue2a; 187 if (isMetafacadePropertyCachingEnabled()) 188 { 189 this.__messageValue2aSet = true; 190 } 191 } 192 return messageValue2a; 193 } 194 195 /** 196 * @see StrutsParameter#getTitleKey() 197 * @return String 198 */ 199 protected abstract String handleGetTitleKey(); 200 201 private String __titleKey3a; 202 private boolean __titleKey3aSet = false; 203 204 /** 205 * TODO: Model Documentation for 206 * StrutsParameter.titleKey 207 * @return (String)handleGetTitleKey() 208 */ 209 public final String getTitleKey() 210 { 211 String titleKey3a = this.__titleKey3a; 212 if (!this.__titleKey3aSet) 213 { 214 // titleKey has no pre constraints 215 titleKey3a = handleGetTitleKey(); 216 // titleKey has no post constraints 217 this.__titleKey3a = titleKey3a; 218 if (isMetafacadePropertyCachingEnabled()) 219 { 220 this.__titleKey3aSet = true; 221 } 222 } 223 return titleKey3a; 224 } 225 226 /** 227 * @see StrutsParameter#getTitleValue() 228 * @return String 229 */ 230 protected abstract String handleGetTitleValue(); 231 232 private String __titleValue4a; 233 private boolean __titleValue4aSet = false; 234 235 /** 236 * TODO: Model Documentation for 237 * StrutsParameter.titleValue 238 * @return (String)handleGetTitleValue() 239 */ 240 public final String getTitleValue() 241 { 242 String titleValue4a = this.__titleValue4a; 243 if (!this.__titleValue4aSet) 244 { 245 // titleValue has no pre constraints 246 titleValue4a = handleGetTitleValue(); 247 // titleValue has no post constraints 248 this.__titleValue4a = titleValue4a; 249 if (isMetafacadePropertyCachingEnabled()) 250 { 251 this.__titleValue4aSet = true; 252 } 253 } 254 return titleValue4a; 255 } 256 257 /** 258 * @see StrutsParameter#isMultiple() 259 * @return boolean 260 */ 261 protected abstract boolean handleIsMultiple(); 262 263 private boolean __multiple5a; 264 private boolean __multiple5aSet = false; 265 266 /** 267 * True if this parameter is either an array type or Collection type. 268 * @return (boolean)handleIsMultiple() 269 */ 270 public final boolean isMultiple() 271 { 272 boolean multiple5a = this.__multiple5a; 273 if (!this.__multiple5aSet) 274 { 275 // multiple has no pre constraints 276 multiple5a = handleIsMultiple(); 277 // multiple has no post constraints 278 this.__multiple5a = multiple5a; 279 if (isMetafacadePropertyCachingEnabled()) 280 { 281 this.__multiple5aSet = true; 282 } 283 } 284 return multiple5a; 285 } 286 287 /** 288 * @see StrutsParameter#getBackingListName() 289 * @return String 290 */ 291 protected abstract String handleGetBackingListName(); 292 293 private String __backingListName6a; 294 private boolean __backingListName6aSet = false; 295 296 /** 297 * The backing list name for this parameter. This is useful if you want to be able to select the 298 * parameter value from a list. 299 * @return (String)handleGetBackingListName() 300 */ 301 public final String getBackingListName() 302 { 303 String backingListName6a = this.__backingListName6a; 304 if (!this.__backingListName6aSet) 305 { 306 // backingListName has no pre constraints 307 backingListName6a = handleGetBackingListName(); 308 // backingListName has no post constraints 309 this.__backingListName6a = backingListName6a; 310 if (isMetafacadePropertyCachingEnabled()) 311 { 312 this.__backingListName6aSet = true; 313 } 314 } 315 return backingListName6a; 316 } 317 318 /** 319 * @see StrutsParameter#isResetRequired() 320 * @return boolean 321 */ 322 protected abstract boolean handleIsResetRequired(); 323 324 private boolean __resetRequired7a; 325 private boolean __resetRequired7aSet = false; 326 327 /** 328 * True if the value of this parameter must be reset between requests (Struts requires this for 329 * specific types), false otherwise. 330 * @return (boolean)handleIsResetRequired() 331 */ 332 public final boolean isResetRequired() 333 { 334 boolean resetRequired7a = this.__resetRequired7a; 335 if (!this.__resetRequired7aSet) 336 { 337 // resetRequired has no pre constraints 338 resetRequired7a = handleIsResetRequired(); 339 // resetRequired has no post constraints 340 this.__resetRequired7a = resetRequired7a; 341 if (isMetafacadePropertyCachingEnabled()) 342 { 343 this.__resetRequired7aSet = true; 344 } 345 } 346 return resetRequired7a; 347 } 348 349 /** 350 * @see StrutsParameter#getNullValue() 351 * @return String 352 */ 353 protected abstract String handleGetNullValue(); 354 355 private String __nullValue8a; 356 private boolean __nullValue8aSet = false; 357 358 /** 359 * The null value for the type of this parameter. For decimals this would be zero, for booleans 360 * this would be 'false', etc... 361 * @return (String)handleGetNullValue() 362 */ 363 public final String getNullValue() 364 { 365 String nullValue8a = this.__nullValue8a; 366 if (!this.__nullValue8aSet) 367 { 368 // nullValue has no pre constraints 369 nullValue8a = handleGetNullValue(); 370 // nullValue has no post constraints 371 this.__nullValue8a = nullValue8a; 372 if (isMetafacadePropertyCachingEnabled()) 373 { 374 this.__nullValue8aSet = true; 375 } 376 } 377 return nullValue8a; 378 } 379 380 /** 381 * @see StrutsParameter#getWidgetType() 382 * @return String 383 */ 384 protected abstract String handleGetWidgetType(); 385 386 private String __widgetType9a; 387 private boolean __widgetType9aSet = false; 388 389 /** 390 * The widget type for this parameter, this value is the tagname for the Struts HTML taglib. 391 * This method is useful only when rendering forms. 392 * @return (String)handleGetWidgetType() 393 */ 394 public final String getWidgetType() 395 { 396 String widgetType9a = this.__widgetType9a; 397 if (!this.__widgetType9aSet) 398 { 399 // widgetType has no pre constraints 400 widgetType9a = handleGetWidgetType(); 401 // widgetType has no post constraints 402 this.__widgetType9a = widgetType9a; 403 if (isMetafacadePropertyCachingEnabled()) 404 { 405 this.__widgetType9aSet = true; 406 } 407 } 408 return widgetType9a; 409 } 410 411 /** 412 * @see StrutsParameter#getResetValue() 413 * @return String 414 */ 415 protected abstract String handleGetResetValue(); 416 417 private String __resetValue10a; 418 private boolean __resetValue10aSet = false; 419 420 /** 421 * The reset value for this parameter. The reset value is the non-null value to which this 422 * parameter is set by default between requests, you can use this method to be able to generate 423 * an application that will deploy and run with default data. 424 * @return (String)handleGetResetValue() 425 */ 426 public final String getResetValue() 427 { 428 String resetValue10a = this.__resetValue10a; 429 if (!this.__resetValue10aSet) 430 { 431 // resetValue has no pre constraints 432 resetValue10a = handleGetResetValue(); 433 // resetValue has no post constraints 434 this.__resetValue10a = resetValue10a; 435 if (isMetafacadePropertyCachingEnabled()) 436 { 437 this.__resetValue10aSet = true; 438 } 439 } 440 return resetValue10a; 441 } 442 443 /** 444 * @see StrutsParameter#isReadOnly() 445 * @return boolean 446 */ 447 protected abstract boolean handleIsReadOnly(); 448 449 private boolean __readOnly11a; 450 private boolean __readOnly11aSet = false; 451 452 /** 453 * True if this parameter cannot be changed by the user, false otherwise. 454 * @return (boolean)handleIsReadOnly() 455 */ 456 public final boolean isReadOnly() 457 { 458 boolean readOnly11a = this.__readOnly11a; 459 if (!this.__readOnly11aSet) 460 { 461 // readOnly has no pre constraints 462 readOnly11a = handleIsReadOnly(); 463 // readOnly has no post constraints 464 this.__readOnly11a = readOnly11a; 465 if (isMetafacadePropertyCachingEnabled()) 466 { 467 this.__readOnly11aSet = true; 468 } 469 } 470 return readOnly11a; 471 } 472 473 /** 474 * @see StrutsParameter#getValueListResetValue() 475 * @return String 476 */ 477 protected abstract String handleGetValueListResetValue(); 478 479 private String __valueListResetValue12a; 480 private boolean __valueListResetValue12aSet = false; 481 482 /** 483 * The reset value for this parameter's value list. Only makes sense if this parameter is 484 * selectable. 485 * @return (String)handleGetValueListResetValue() 486 */ 487 public final String getValueListResetValue() 488 { 489 String valueListResetValue12a = this.__valueListResetValue12a; 490 if (!this.__valueListResetValue12aSet) 491 { 492 // valueListResetValue has no pre constraints 493 valueListResetValue12a = handleGetValueListResetValue(); 494 // valueListResetValue has no post constraints 495 this.__valueListResetValue12a = valueListResetValue12a; 496 if (isMetafacadePropertyCachingEnabled()) 497 { 498 this.__valueListResetValue12aSet = true; 499 } 500 } 501 return valueListResetValue12a; 502 } 503 504 /** 505 * @see StrutsParameter#getValidatorTypes() 506 * @return Collection 507 */ 508 protected abstract Collection handleGetValidatorTypes(); 509 510 private Collection __validatorTypes13a; 511 private boolean __validatorTypes13aSet = false; 512 513 /** 514 * A collection of all the validator types for this parameter. Use this value in conjunction 515 * with the Struts validator plugin. 516 * @return (Collection)handleGetValidatorTypes() 517 */ 518 public final Collection getValidatorTypes() 519 { 520 Collection validatorTypes13a = this.__validatorTypes13a; 521 if (!this.__validatorTypes13aSet) 522 { 523 // validatorTypes has no pre constraints 524 validatorTypes13a = handleGetValidatorTypes(); 525 // validatorTypes has no post constraints 526 this.__validatorTypes13a = validatorTypes13a; 527 if (isMetafacadePropertyCachingEnabled()) 528 { 529 this.__validatorTypes13aSet = true; 530 } 531 } 532 return validatorTypes13a; 533 } 534 535 /** 536 * @see StrutsParameter#getValidatorMsgKey() 537 * @return String 538 */ 539 protected abstract String handleGetValidatorMsgKey(); 540 541 private String __validatorMsgKey14a; 542 private boolean __validatorMsgKey14aSet = false; 543 544 /** 545 * The message key for this parameter, equivalent to getMessageKey(). 546 * @return (String)handleGetValidatorMsgKey() 547 */ 548 public final String getValidatorMsgKey() 549 { 550 String validatorMsgKey14a = this.__validatorMsgKey14a; 551 if (!this.__validatorMsgKey14aSet) 552 { 553 // validatorMsgKey has no pre constraints 554 validatorMsgKey14a = handleGetValidatorMsgKey(); 555 // validatorMsgKey has no post constraints 556 this.__validatorMsgKey14a = validatorMsgKey14a; 557 if (isMetafacadePropertyCachingEnabled()) 558 { 559 this.__validatorMsgKey14aSet = true; 560 } 561 } 562 return validatorMsgKey14a; 563 } 564 565 /** 566 * @see StrutsParameter#getValidatorVars() 567 * @return Collection 568 */ 569 protected abstract Collection handleGetValidatorVars(); 570 571 private Collection __validatorVars15a; 572 private boolean __validatorVars15aSet = false; 573 574 /** 575 * The validator arguments. 576 * @return (Collection)handleGetValidatorVars() 577 */ 578 public final Collection getValidatorVars() 579 { 580 Collection validatorVars15a = this.__validatorVars15a; 581 if (!this.__validatorVars15aSet) 582 { 583 // validatorVars has no pre constraints 584 validatorVars15a = handleGetValidatorVars(); 585 // validatorVars has no post constraints 586 this.__validatorVars15a = validatorVars15a; 587 if (isMetafacadePropertyCachingEnabled()) 588 { 589 this.__validatorVars15aSet = true; 590 } 591 } 592 return validatorVars15a; 593 } 594 595 /** 596 * @see StrutsParameter#getValidWhen() 597 * @return String 598 */ 599 protected abstract String handleGetValidWhen(); 600 601 private String __validWhen16a; 602 private boolean __validWhen16aSet = false; 603 604 /** 605 * The validator's 'validwhen' value, this is useful when the validation of a parameter depends 606 * on the validation of others. See the Struts validator plugin documentation for more 607 * information. 608 * @return (String)handleGetValidWhen() 609 */ 610 public final String getValidWhen() 611 { 612 String validWhen16a = this.__validWhen16a; 613 if (!this.__validWhen16aSet) 614 { 615 // validWhen has no pre constraints 616 validWhen16a = handleGetValidWhen(); 617 // validWhen has no post constraints 618 this.__validWhen16a = validWhen16a; 619 if (isMetafacadePropertyCachingEnabled()) 620 { 621 this.__validWhen16aSet = true; 622 } 623 } 624 return validWhen16a; 625 } 626 627 /** 628 * @see StrutsParameter#getOptionKeys() 629 * @return List 630 */ 631 protected abstract List handleGetOptionKeys(); 632 633 private List __optionKeys17a; 634 private boolean __optionKeys17aSet = false; 635 636 /** 637 * If this parameter is a choice between radio buttons, then you may use this method to retrieve 638 * the message keys for the resource bundle. The message keys hold the value to be displayed for 639 * the possible options. 640 * @return (List)handleGetOptionKeys() 641 */ 642 public final List getOptionKeys() 643 { 644 List optionKeys17a = this.__optionKeys17a; 645 if (!this.__optionKeys17aSet) 646 { 647 // optionKeys has no pre constraints 648 optionKeys17a = handleGetOptionKeys(); 649 // optionKeys has no post constraints 650 this.__optionKeys17a = optionKeys17a; 651 if (isMetafacadePropertyCachingEnabled()) 652 { 653 this.__optionKeys17aSet = true; 654 } 655 } 656 return optionKeys17a; 657 } 658 659 /** 660 * @see StrutsParameter#getTableMaxRows() 661 * @return int 662 */ 663 protected abstract int handleGetTableMaxRows(); 664 665 private int __tableMaxRows18a; 666 private boolean __tableMaxRows18aSet = false; 667 668 /** 669 * The maximum number of rows to be displayed in the table at the same time. This is also known 670 * as the page size. A value of zero or less will display all data in the same table (therefore 671 * also on the same page). 672 * @return (int)handleGetTableMaxRows() 673 */ 674 public final int getTableMaxRows() 675 { 676 int tableMaxRows18a = this.__tableMaxRows18a; 677 if (!this.__tableMaxRows18aSet) 678 { 679 // tableMaxRows has no pre constraints 680 tableMaxRows18a = handleGetTableMaxRows(); 681 // tableMaxRows has no post constraints 682 this.__tableMaxRows18a = tableMaxRows18a; 683 if (isMetafacadePropertyCachingEnabled()) 684 { 685 this.__tableMaxRows18aSet = true; 686 } 687 } 688 return tableMaxRows18a; 689 } 690 691 /** 692 * @see StrutsParameter#isTableExportable() 693 * @return boolean 694 */ 695 protected abstract boolean handleIsTableExportable(); 696 697 private boolean __tableExportable19a; 698 private boolean __tableExportable19aSet = false; 699 700 /** 701 * True if it is possible to export the table data to XML, CSV, PDF or Excel format. 702 * @return (boolean)handleIsTableExportable() 703 */ 704 public final boolean isTableExportable() 705 { 706 boolean tableExportable19a = this.__tableExportable19a; 707 if (!this.__tableExportable19aSet) 708 { 709 // tableExportable has no pre constraints 710 tableExportable19a = handleIsTableExportable(); 711 // tableExportable has no post constraints 712 this.__tableExportable19a = tableExportable19a; 713 if (isMetafacadePropertyCachingEnabled()) 714 { 715 this.__tableExportable19aSet = true; 716 } 717 } 718 return tableExportable19a; 719 } 720 721 /** 722 * @see StrutsParameter#isTableSortable() 723 * @return boolean 724 */ 725 protected abstract boolean handleIsTableSortable(); 726 727 private boolean __tableSortable20a; 728 private boolean __tableSortable20aSet = false; 729 730 /** 731 * True if it is possible to sort the columns of the table. 732 * @return (boolean)handleIsTableSortable() 733 */ 734 public final boolean isTableSortable() 735 { 736 boolean tableSortable20a = this.__tableSortable20a; 737 if (!this.__tableSortable20aSet) 738 { 739 // tableSortable has no pre constraints 740 tableSortable20a = handleIsTableSortable(); 741 // tableSortable has no post constraints 742 this.__tableSortable20a = tableSortable20a; 743 if (isMetafacadePropertyCachingEnabled()) 744 { 745 this.__tableSortable20aSet = true; 746 } 747 } 748 return tableSortable20a; 749 } 750 751 /** 752 * @see StrutsParameter#getTableExportTypes() 753 * @return String 754 */ 755 protected abstract String handleGetTableExportTypes(); 756 757 private String __tableExportTypes21a; 758 private boolean __tableExportTypes21aSet = false; 759 760 /** 761 * Tthe available types of export in a single String instance. 762 * @return (String)handleGetTableExportTypes() 763 */ 764 public final String getTableExportTypes() 765 { 766 String tableExportTypes21a = this.__tableExportTypes21a; 767 if (!this.__tableExportTypes21aSet) 768 { 769 // tableExportTypes has no pre constraints 770 tableExportTypes21a = handleGetTableExportTypes(); 771 // tableExportTypes has no post constraints 772 this.__tableExportTypes21a = tableExportTypes21a; 773 if (isMetafacadePropertyCachingEnabled()) 774 { 775 this.__tableExportTypes21aSet = true; 776 } 777 } 778 return tableExportTypes21a; 779 } 780 781 /** 782 * @see StrutsParameter#isValidationRequired() 783 * @return boolean 784 */ 785 protected abstract boolean handleIsValidationRequired(); 786 787 private boolean __validationRequired22a; 788 private boolean __validationRequired22aSet = false; 789 790 /** 791 * True if this parameter requires some kind of validation. This means the collection of 792 * validator types is not empty. 793 * @return (boolean)handleIsValidationRequired() 794 */ 795 public final boolean isValidationRequired() 796 { 797 boolean validationRequired22a = this.__validationRequired22a; 798 if (!this.__validationRequired22aSet) 799 { 800 // validationRequired has no pre constraints 801 validationRequired22a = handleIsValidationRequired(); 802 // validationRequired has no post constraints 803 this.__validationRequired22a = validationRequired22a; 804 if (isMetafacadePropertyCachingEnabled()) 805 { 806 this.__validationRequired22aSet = true; 807 } 808 } 809 return validationRequired22a; 810 } 811 812 /** 813 * @see StrutsParameter#isDate() 814 * @return boolean 815 */ 816 protected abstract boolean handleIsDate(); 817 818 private boolean __date23a; 819 private boolean __date23aSet = false; 820 821 /** 822 * True if the type of this parameter represents a date. This is equivalent to 823 * parameter.type.isDateType(). 824 * @return (boolean)handleIsDate() 825 */ 826 public final boolean isDate() 827 { 828 boolean date23a = this.__date23a; 829 if (!this.__date23aSet) 830 { 831 // date has no pre constraints 832 date23a = handleIsDate(); 833 // date has no post constraints 834 this.__date23a = date23a; 835 if (isMetafacadePropertyCachingEnabled()) 836 { 837 this.__date23aSet = true; 838 } 839 } 840 return date23a; 841 } 842 843 /** 844 * @see StrutsParameter#getDateFormat() 845 * @return String 846 */ 847 protected abstract String handleGetDateFormat(); 848 849 private String __dateFormat24a; 850 private boolean __dateFormat24aSet = false; 851 852 /** 853 * If this parameter represents a date this method will return the format in which it must be 854 * represented. In case this format has not been specified by the any tagged value a default one 855 * will be taken. 856 * @return (String)handleGetDateFormat() 857 */ 858 public final String getDateFormat() 859 { 860 String dateFormat24a = this.__dateFormat24a; 861 if (!this.__dateFormat24aSet) 862 { 863 // dateFormat has no pre constraints 864 dateFormat24a = handleGetDateFormat(); 865 // dateFormat has no post constraints 866 this.__dateFormat24a = dateFormat24a; 867 if (isMetafacadePropertyCachingEnabled()) 868 { 869 this.__dateFormat24aSet = true; 870 } 871 } 872 return dateFormat24a; 873 } 874 875 /** 876 * @see StrutsParameter#isStrictDateFormat() 877 * @return boolean 878 */ 879 protected abstract boolean handleIsStrictDateFormat(); 880 881 private boolean __strictDateFormat25a; 882 private boolean __strictDateFormat25aSet = false; 883 884 /** 885 * True if the date format is to be strictly respected. Otherwise the dateformatter used for the 886 * representation of this date is to be set to lenient. 887 * @return (boolean)handleIsStrictDateFormat() 888 */ 889 public final boolean isStrictDateFormat() 890 { 891 boolean strictDateFormat25a = this.__strictDateFormat25a; 892 if (!this.__strictDateFormat25aSet) 893 { 894 // strictDateFormat has no pre constraints 895 strictDateFormat25a = handleIsStrictDateFormat(); 896 // strictDateFormat has no post constraints 897 this.__strictDateFormat25a = strictDateFormat25a; 898 if (isMetafacadePropertyCachingEnabled()) 899 { 900 this.__strictDateFormat25aSet = true; 901 } 902 } 903 return strictDateFormat25a; 904 } 905 906 /** 907 * @see StrutsParameter#isCalendarRequired() 908 * @return boolean 909 */ 910 protected abstract boolean handleIsCalendarRequired(); 911 912 private boolean __calendarRequired26a; 913 private boolean __calendarRequired26aSet = false; 914 915 /** 916 * True if this parameter is a date and it requires a calendar popup. 917 * @return (boolean)handleIsCalendarRequired() 918 */ 919 public final boolean isCalendarRequired() 920 { 921 boolean calendarRequired26a = this.__calendarRequired26a; 922 if (!this.__calendarRequired26aSet) 923 { 924 // calendarRequired has no pre constraints 925 calendarRequired26a = handleIsCalendarRequired(); 926 // calendarRequired has no post constraints 927 this.__calendarRequired26a = calendarRequired26a; 928 if (isMetafacadePropertyCachingEnabled()) 929 { 930 this.__calendarRequired26aSet = true; 931 } 932 } 933 return calendarRequired26a; 934 } 935 936 /** 937 * @see StrutsParameter#getTableDecoratorPackageName() 938 * @return String 939 */ 940 protected abstract String handleGetTableDecoratorPackageName(); 941 942 private String __tableDecoratorPackageName27a; 943 private boolean __tableDecoratorPackageName27aSet = false; 944 945 /** 946 * The package name of the decorator to use for the table. 947 * @return (String)handleGetTableDecoratorPackageName() 948 */ 949 public final String getTableDecoratorPackageName() 950 { 951 String tableDecoratorPackageName27a = this.__tableDecoratorPackageName27a; 952 if (!this.__tableDecoratorPackageName27aSet) 953 { 954 // tableDecoratorPackageName has no pre constraints 955 tableDecoratorPackageName27a = handleGetTableDecoratorPackageName(); 956 // tableDecoratorPackageName has no post constraints 957 this.__tableDecoratorPackageName27a = tableDecoratorPackageName27a; 958 if (isMetafacadePropertyCachingEnabled()) 959 { 960 this.__tableDecoratorPackageName27aSet = true; 961 } 962 } 963 return tableDecoratorPackageName27a; 964 } 965 966 /** 967 * @see StrutsParameter#getTableDecoratorClassName() 968 * @return String 969 */ 970 protected abstract String handleGetTableDecoratorClassName(); 971 972 private String __tableDecoratorClassName28a; 973 private boolean __tableDecoratorClassName28aSet = false; 974 975 /** 976 * The class name of the decorator to use for the table. 977 * @return (String)handleGetTableDecoratorClassName() 978 */ 979 public final String getTableDecoratorClassName() 980 { 981 String tableDecoratorClassName28a = this.__tableDecoratorClassName28a; 982 if (!this.__tableDecoratorClassName28aSet) 983 { 984 // tableDecoratorClassName has no pre constraints 985 tableDecoratorClassName28a = handleGetTableDecoratorClassName(); 986 // tableDecoratorClassName has no post constraints 987 this.__tableDecoratorClassName28a = tableDecoratorClassName28a; 988 if (isMetafacadePropertyCachingEnabled()) 989 { 990 this.__tableDecoratorClassName28aSet = true; 991 } 992 } 993 return tableDecoratorClassName28a; 994 } 995 996 /** 997 * @see StrutsParameter#getTableDecoratorFullPath() 998 * @return String 999 */ 1000 protected abstract String handleGetTableDecoratorFullPath(); 1001 1002 private String __tableDecoratorFullPath29a; 1003 private boolean __tableDecoratorFullPath29aSet = false; 1004 1005 /** 1006 * The full path to the decorator class. 1007 * @return (String)handleGetTableDecoratorFullPath() 1008 */ 1009 public final String getTableDecoratorFullPath() 1010 { 1011 String tableDecoratorFullPath29a = this.__tableDecoratorFullPath29a; 1012 if (!this.__tableDecoratorFullPath29aSet) 1013 { 1014 // tableDecoratorFullPath has no pre constraints 1015 tableDecoratorFullPath29a = handleGetTableDecoratorFullPath(); 1016 // tableDecoratorFullPath has no post constraints 1017 this.__tableDecoratorFullPath29a = tableDecoratorFullPath29a; 1018 if (isMetafacadePropertyCachingEnabled()) 1019 { 1020 this.__tableDecoratorFullPath29aSet = true; 1021 } 1022 } 1023 return tableDecoratorFullPath29a; 1024 } 1025 1026 /** 1027 * @see StrutsParameter#getOptionValues() 1028 * @return List 1029 */ 1030 protected abstract List handleGetOptionValues(); 1031 1032 private List __optionValues30a; 1033 private boolean __optionValues30aSet = false; 1034 1035 /** 1036 * The values for the options. Only makes sense when the widget type is radiobutton. The 1037 * property value may directly be specified usiing the tagged value. 1038 * @return (List)handleGetOptionValues() 1039 */ 1040 public final List getOptionValues() 1041 { 1042 List optionValues30a = this.__optionValues30a; 1043 if (!this.__optionValues30aSet) 1044 { 1045 // optionValues has no pre constraints 1046 optionValues30a = handleGetOptionValues(); 1047 // optionValues has no post constraints 1048 this.__optionValues30a = optionValues30a; 1049 if (isMetafacadePropertyCachingEnabled()) 1050 { 1051 this.__optionValues30aSet = true; 1052 } 1053 } 1054 return optionValues30a; 1055 } 1056 1057 /** 1058 * @see StrutsParameter#getOptionCount() 1059 * @return int 1060 */ 1061 protected abstract int handleGetOptionCount(); 1062 1063 private int __optionCount31a; 1064 private boolean __optionCount31aSet = false; 1065 1066 /** 1067 * In case this parameter represents an option set using radiobuttons, this attribute is a 1068 * positive integer and zero otherwise. 1069 * @return (int)handleGetOptionCount() 1070 */ 1071 public final int getOptionCount() 1072 { 1073 int optionCount31a = this.__optionCount31a; 1074 if (!this.__optionCount31aSet) 1075 { 1076 // optionCount has no pre constraints 1077 optionCount31a = handleGetOptionCount(); 1078 // optionCount has no post constraints 1079 this.__optionCount31a = optionCount31a; 1080 if (isMetafacadePropertyCachingEnabled()) 1081 { 1082 this.__optionCount31aSet = true; 1083 } 1084 } 1085 return optionCount31a; 1086 } 1087 1088 /** 1089 * @see StrutsParameter#getDocumentationKey() 1090 * @return String 1091 */ 1092 protected abstract String handleGetDocumentationKey(); 1093 1094 private String __documentationKey32a; 1095 private boolean __documentationKey32aSet = false; 1096 1097 /** 1098 * The key to lookup the documentation for this parameter. 1099 * @return (String)handleGetDocumentationKey() 1100 */ 1101 public final String getDocumentationKey() 1102 { 1103 String documentationKey32a = this.__documentationKey32a; 1104 if (!this.__documentationKey32aSet) 1105 { 1106 // documentationKey has no pre constraints 1107 documentationKey32a = handleGetDocumentationKey(); 1108 // documentationKey has no post constraints 1109 this.__documentationKey32a = documentationKey32a; 1110 if (isMetafacadePropertyCachingEnabled()) 1111 { 1112 this.__documentationKey32aSet = true; 1113 } 1114 } 1115 return documentationKey32a; 1116 } 1117 1118 /** 1119 * @see StrutsParameter#getDocumentationValue() 1120 * @return String 1121 */ 1122 protected abstract String handleGetDocumentationValue(); 1123 1124 private String __documentationValue33a; 1125 private boolean __documentationValue33aSet = false; 1126 1127 /** 1128 * The documentation for this parameter, formatted to be inserted into a resource bundle. 1129 * @return (String)handleGetDocumentationValue() 1130 */ 1131 public final String getDocumentationValue() 1132 { 1133 String documentationValue33a = this.__documentationValue33a; 1134 if (!this.__documentationValue33aSet) 1135 { 1136 // documentationValue has no pre constraints 1137 documentationValue33a = handleGetDocumentationValue(); 1138 // documentationValue has no post constraints 1139 this.__documentationValue33a = documentationValue33a; 1140 if (isMetafacadePropertyCachingEnabled()) 1141 { 1142 this.__documentationValue33aSet = true; 1143 } 1144 } 1145 return documentationValue33a; 1146 } 1147 1148 /** 1149 * @see StrutsParameter#getOnlineHelpKey() 1150 * @return String 1151 */ 1152 protected abstract String handleGetOnlineHelpKey(); 1153 1154 private String __onlineHelpKey34a; 1155 private boolean __onlineHelpKey34aSet = false; 1156 1157 /** 1158 * The key to lookup the online help documentation. This documentation is gathered from the 1159 * documentation entered by the user, as well as analyzing the model. 1160 * @return (String)handleGetOnlineHelpKey() 1161 */ 1162 public final String getOnlineHelpKey() 1163 { 1164 String onlineHelpKey34a = this.__onlineHelpKey34a; 1165 if (!this.__onlineHelpKey34aSet) 1166 { 1167 // onlineHelpKey has no pre constraints 1168 onlineHelpKey34a = handleGetOnlineHelpKey(); 1169 // onlineHelpKey has no post constraints 1170 this.__onlineHelpKey34a = onlineHelpKey34a; 1171 if (isMetafacadePropertyCachingEnabled()) 1172 { 1173 this.__onlineHelpKey34aSet = true; 1174 } 1175 } 1176 return onlineHelpKey34a; 1177 } 1178 1179 /** 1180 * @see StrutsParameter#getOnlineHelpValue() 1181 * @return String 1182 */ 1183 protected abstract String handleGetOnlineHelpValue(); 1184 1185 private String __onlineHelpValue35a; 1186 private boolean __onlineHelpValue35aSet = false; 1187 1188 /** 1189 * The online help documentation. This documentation is gathered from the documentation entered 1190 * by the user, as well as analyzing the model. The format is HTML without any style. 1191 * @return (String)handleGetOnlineHelpValue() 1192 */ 1193 public final String getOnlineHelpValue() 1194 { 1195 String onlineHelpValue35a = this.__onlineHelpValue35a; 1196 if (!this.__onlineHelpValue35aSet) 1197 { 1198 // onlineHelpValue has no pre constraints 1199 onlineHelpValue35a = handleGetOnlineHelpValue(); 1200 // onlineHelpValue has no post constraints 1201 this.__onlineHelpValue35a = onlineHelpValue35a; 1202 if (isMetafacadePropertyCachingEnabled()) 1203 { 1204 this.__onlineHelpValue35aSet = true; 1205 } 1206 } 1207 return onlineHelpValue35a; 1208 } 1209 1210 /** 1211 * @see StrutsParameter#isSelectable() 1212 * @return boolean 1213 */ 1214 protected abstract boolean handleIsSelectable(); 1215 1216 private boolean __selectable36a; 1217 private boolean __selectable36aSet = false; 1218 1219 /** 1220 * Whether or not this parameter is selectable. In case this would be true this parameter always 1221 * has a backing list, a value list and a list containing the labels. 1222 * @return (boolean)handleIsSelectable() 1223 */ 1224 public final boolean isSelectable() 1225 { 1226 boolean selectable36a = this.__selectable36a; 1227 if (!this.__selectable36aSet) 1228 { 1229 // selectable has no pre constraints 1230 selectable36a = handleIsSelectable(); 1231 // selectable has no post constraints 1232 this.__selectable36a = selectable36a; 1233 if (isMetafacadePropertyCachingEnabled()) 1234 { 1235 this.__selectable36aSet = true; 1236 } 1237 } 1238 return selectable36a; 1239 } 1240 1241 /** 1242 * @see StrutsParameter#getValueListName() 1243 * @return String 1244 */ 1245 protected abstract String handleGetValueListName(); 1246 1247 private String __valueListName37a; 1248 private boolean __valueListName37aSet = false; 1249 1250 /** 1251 * The name of the list holding the values for this parameter. Only makes sense when the 1252 * parameter is selectable. 1253 * @return (String)handleGetValueListName() 1254 */ 1255 public final String getValueListName() 1256 { 1257 String valueListName37a = this.__valueListName37a; 1258 if (!this.__valueListName37aSet) 1259 { 1260 // valueListName has no pre constraints 1261 valueListName37a = handleGetValueListName(); 1262 // valueListName has no post constraints 1263 this.__valueListName37a = valueListName37a; 1264 if (isMetafacadePropertyCachingEnabled()) 1265 { 1266 this.__valueListName37aSet = true; 1267 } 1268 } 1269 return valueListName37a; 1270 } 1271 1272 /** 1273 * @see StrutsParameter#getLabelListName() 1274 * @return String 1275 */ 1276 protected abstract String handleGetLabelListName(); 1277 1278 private String __labelListName38a; 1279 private boolean __labelListName38aSet = false; 1280 1281 /** 1282 * The name of the list holding the labels for this parameter. Only makes sense when the 1283 * parameter is selectable. 1284 * @return (String)handleGetLabelListName() 1285 */ 1286 public final String getLabelListName() 1287 { 1288 String labelListName38a = this.__labelListName38a; 1289 if (!this.__labelListName38aSet) 1290 { 1291 // labelListName has no pre constraints 1292 labelListName38a = handleGetLabelListName(); 1293 // labelListName has no post constraints 1294 this.__labelListName38a = labelListName38a; 1295 if (isMetafacadePropertyCachingEnabled()) 1296 { 1297 this.__labelListName38aSet = true; 1298 } 1299 } 1300 return labelListName38a; 1301 } 1302 1303 /** 1304 * @see StrutsParameter#getCollectionImplementationType() 1305 * @return String 1306 */ 1307 protected abstract String handleGetCollectionImplementationType(); 1308 1309 private String __collectionImplementationType39a; 1310 private boolean __collectionImplementationType39aSet = false; 1311 1312 /** 1313 * If this parameter is a collection type, this property will represent the fully qualified name 1314 * of a class suitable for implementation. If the type is neither Collection, List, nor Set the 1315 * type itself is assumed. 1316 * @return (String)handleGetCollectionImplementationType() 1317 */ 1318 public final String getCollectionImplementationType() 1319 { 1320 String collectionImplementationType39a = this.__collectionImplementationType39a; 1321 if (!this.__collectionImplementationType39aSet) 1322 { 1323 // collectionImplementationType has no pre constraints 1324 collectionImplementationType39a = handleGetCollectionImplementationType(); 1325 // collectionImplementationType has no post constraints 1326 this.__collectionImplementationType39a = collectionImplementationType39a; 1327 if (isMetafacadePropertyCachingEnabled()) 1328 { 1329 this.__collectionImplementationType39aSet = true; 1330 } 1331 } 1332 return collectionImplementationType39a; 1333 } 1334 1335 /** 1336 * @see StrutsParameter#getMultiboxPropertyName() 1337 * @return String 1338 */ 1339 protected abstract String handleGetMultiboxPropertyName(); 1340 1341 private String __multiboxPropertyName40a; 1342 private boolean __multiboxPropertyName40aSet = false; 1343 1344 /** 1345 * The name of the array to be used for the multibox, this only makes sense when this parameter 1346 * is actually a multibox. 1347 * @return (String)handleGetMultiboxPropertyName() 1348 */ 1349 public final String getMultiboxPropertyName() 1350 { 1351 String multiboxPropertyName40a = this.__multiboxPropertyName40a; 1352 if (!this.__multiboxPropertyName40aSet) 1353 { 1354 // multiboxPropertyName has no pre constraints 1355 multiboxPropertyName40a = handleGetMultiboxPropertyName(); 1356 // multiboxPropertyName has no post constraints 1357 this.__multiboxPropertyName40a = multiboxPropertyName40a; 1358 if (isMetafacadePropertyCachingEnabled()) 1359 { 1360 this.__multiboxPropertyName40aSet = true; 1361 } 1362 } 1363 return multiboxPropertyName40a; 1364 } 1365 1366 /** 1367 * @see StrutsParameter#isShouldReset() 1368 * @return boolean 1369 */ 1370 protected abstract boolean handleIsShouldReset(); 1371 1372 private boolean __shouldReset41a; 1373 private boolean __shouldReset41aSet = false; 1374 1375 /** 1376 * Whether or not this parameter should be reset between requests. This is different than 1377 * resetRequired in that this is user specified. 1378 * @return (boolean)handleIsShouldReset() 1379 */ 1380 public final boolean isShouldReset() 1381 { 1382 boolean shouldReset41a = this.__shouldReset41a; 1383 if (!this.__shouldReset41aSet) 1384 { 1385 // shouldReset has no pre constraints 1386 shouldReset41a = handleIsShouldReset(); 1387 // shouldReset has no post constraints 1388 this.__shouldReset41a = shouldReset41a; 1389 if (isMetafacadePropertyCachingEnabled()) 1390 { 1391 this.__shouldReset41aSet = true; 1392 } 1393 } 1394 return shouldReset41a; 1395 } 1396 1397 /** 1398 * @see StrutsParameter#getResetName() 1399 * @return String 1400 */ 1401 protected abstract String handleGetResetName(); 1402 1403 private String __resetName42a; 1404 private boolean __resetName42aSet = false; 1405 1406 /** 1407 * The name of the operation that resets this parameter to its original value. 1408 * @return (String)handleGetResetName() 1409 */ 1410 public final String getResetName() 1411 { 1412 String resetName42a = this.__resetName42a; 1413 if (!this.__resetName42aSet) 1414 { 1415 // resetName has no pre constraints 1416 resetName42a = handleGetResetName(); 1417 // resetName has no post constraints 1418 this.__resetName42a = resetName42a; 1419 if (isMetafacadePropertyCachingEnabled()) 1420 { 1421 this.__resetName42aSet = true; 1422 } 1423 } 1424 return resetName42a; 1425 } 1426 1427 /** 1428 * @see StrutsParameter#isFile() 1429 * @return boolean 1430 */ 1431 protected abstract boolean handleIsFile(); 1432 1433 private boolean __file43a; 1434 private boolean __file43aSet = false; 1435 1436 /** 1437 * TODO: Model Documentation for 1438 * StrutsParameter.file 1439 * @return (boolean)handleIsFile() 1440 */ 1441 public final boolean isFile() 1442 { 1443 boolean file43a = this.__file43a; 1444 if (!this.__file43aSet) 1445 { 1446 // file has no pre constraints 1447 file43a = handleIsFile(); 1448 // file has no post constraints 1449 this.__file43a = file43a; 1450 if (isMetafacadePropertyCachingEnabled()) 1451 { 1452 this.__file43aSet = true; 1453 } 1454 } 1455 return file43a; 1456 } 1457 1458 /** 1459 * @see StrutsParameter#isPassword() 1460 * @return boolean 1461 */ 1462 protected abstract boolean handleIsPassword(); 1463 1464 private boolean __password44a; 1465 private boolean __password44aSet = false; 1466 1467 /** 1468 * True if this parameter represents a password field. 1469 * @return (boolean)handleIsPassword() 1470 */ 1471 public final boolean isPassword() 1472 { 1473 boolean password44a = this.__password44a; 1474 if (!this.__password44aSet) 1475 { 1476 // password has no pre constraints 1477 password44a = handleIsPassword(); 1478 // password has no post constraints 1479 this.__password44a = password44a; 1480 if (isMetafacadePropertyCachingEnabled()) 1481 { 1482 this.__password44aSet = true; 1483 } 1484 } 1485 return password44a; 1486 } 1487 1488 /** 1489 * @see StrutsParameter#isTableDecoratorRequired() 1490 * @return boolean 1491 */ 1492 protected abstract boolean handleIsTableDecoratorRequired(); 1493 1494 private boolean __tableDecoratorRequired45a; 1495 private boolean __tableDecoratorRequired45aSet = false; 1496 1497 /** 1498 * TODO: Model Documentation for 1499 * StrutsParameter.tableDecoratorRequired 1500 * @return (boolean)handleIsTableDecoratorRequired() 1501 */ 1502 public final boolean isTableDecoratorRequired() 1503 { 1504 boolean tableDecoratorRequired45a = this.__tableDecoratorRequired45a; 1505 if (!this.__tableDecoratorRequired45aSet) 1506 { 1507 // tableDecoratorRequired has no pre constraints 1508 tableDecoratorRequired45a = handleIsTableDecoratorRequired(); 1509 // tableDecoratorRequired has no post constraints 1510 this.__tableDecoratorRequired45a = tableDecoratorRequired45a; 1511 if (isMetafacadePropertyCachingEnabled()) 1512 { 1513 this.__tableDecoratorRequired45aSet = true; 1514 } 1515 } 1516 return tableDecoratorRequired45a; 1517 } 1518 1519 /** 1520 * @see StrutsParameter#getTableDecoratorFullyQualifiedName() 1521 * @return String 1522 */ 1523 protected abstract String handleGetTableDecoratorFullyQualifiedName(); 1524 1525 private String __tableDecoratorFullyQualifiedName46a; 1526 private boolean __tableDecoratorFullyQualifiedName46aSet = false; 1527 1528 /** 1529 * The complete table decorator classname. 1530 * @return (String)handleGetTableDecoratorFullyQualifiedName() 1531 */ 1532 public final String getTableDecoratorFullyQualifiedName() 1533 { 1534 String tableDecoratorFullyQualifiedName46a = this.__tableDecoratorFullyQualifiedName46a; 1535 if (!this.__tableDecoratorFullyQualifiedName46aSet) 1536 { 1537 // tableDecoratorFullyQualifiedName has no pre constraints 1538 tableDecoratorFullyQualifiedName46a = handleGetTableDecoratorFullyQualifiedName(); 1539 // tableDecoratorFullyQualifiedName has no post constraints 1540 this.__tableDecoratorFullyQualifiedName46a = tableDecoratorFullyQualifiedName46a; 1541 if (isMetafacadePropertyCachingEnabled()) 1542 { 1543 this.__tableDecoratorFullyQualifiedName46aSet = true; 1544 } 1545 } 1546 return tableDecoratorFullyQualifiedName46a; 1547 } 1548 1549 /** 1550 * @see StrutsParameter#getStyleId() 1551 * @return String 1552 */ 1553 protected abstract String handleGetStyleId(); 1554 1555 private String __styleId47a; 1556 private boolean __styleId47aSet = false; 1557 1558 /** 1559 * TODO: Model Documentation for 1560 * StrutsParameter.styleId 1561 * @return (String)handleGetStyleId() 1562 */ 1563 public final String getStyleId() 1564 { 1565 String styleId47a = this.__styleId47a; 1566 if (!this.__styleId47aSet) 1567 { 1568 // styleId has no pre constraints 1569 styleId47a = handleGetStyleId(); 1570 // styleId has no post constraints 1571 this.__styleId47a = styleId47a; 1572 if (isMetafacadePropertyCachingEnabled()) 1573 { 1574 this.__styleId47aSet = true; 1575 } 1576 } 1577 return styleId47a; 1578 } 1579 1580 /** 1581 * @see StrutsParameter#isTableFormActionSharingWidgets() 1582 * @return boolean 1583 */ 1584 protected abstract boolean handleIsTableFormActionSharingWidgets(); 1585 1586 private boolean __tableFormActionSharingWidgets48a; 1587 private boolean __tableFormActionSharingWidgets48aSet = false; 1588 1589 /** 1590 * True if this table has form actions that share the column widgets. It is not allowed to have 1591 * different actions use different widgets on the same column. 1592 * @return (boolean)handleIsTableFormActionSharingWidgets() 1593 */ 1594 public final boolean isTableFormActionSharingWidgets() 1595 { 1596 boolean tableFormActionSharingWidgets48a = this.__tableFormActionSharingWidgets48a; 1597 if (!this.__tableFormActionSharingWidgets48aSet) 1598 { 1599 // tableFormActionSharingWidgets has no pre constraints 1600 tableFormActionSharingWidgets48a = handleIsTableFormActionSharingWidgets(); 1601 // tableFormActionSharingWidgets has no post constraints 1602 this.__tableFormActionSharingWidgets48a = tableFormActionSharingWidgets48a; 1603 if (isMetafacadePropertyCachingEnabled()) 1604 { 1605 this.__tableFormActionSharingWidgets48aSet = true; 1606 } 1607 } 1608 return tableFormActionSharingWidgets48a; 1609 } 1610 1611 /** 1612 * @see StrutsParameter#isTableHyperlinkColumn() 1613 * @return boolean 1614 */ 1615 protected abstract boolean handleIsTableHyperlinkColumn(); 1616 1617 private boolean __tableHyperlinkColumn49a; 1618 private boolean __tableHyperlinkColumn49aSet = false; 1619 1620 /** 1621 * True if this parameter represents a table column into which an hyperlink must be rendered. 1622 * This property only makes sense when it has been called on parameters representing an actual 1623 * table column. Note that the getTableColumns() operation also returns String instances. 1624 * @return (boolean)handleIsTableHyperlinkColumn() 1625 */ 1626 public final boolean isTableHyperlinkColumn() 1627 { 1628 boolean tableHyperlinkColumn49a = this.__tableHyperlinkColumn49a; 1629 if (!this.__tableHyperlinkColumn49aSet) 1630 { 1631 // tableHyperlinkColumn has no pre constraints 1632 tableHyperlinkColumn49a = handleIsTableHyperlinkColumn(); 1633 // tableHyperlinkColumn has no post constraints 1634 this.__tableHyperlinkColumn49a = tableHyperlinkColumn49a; 1635 if (isMetafacadePropertyCachingEnabled()) 1636 { 1637 this.__tableHyperlinkColumn49aSet = true; 1638 } 1639 } 1640 return tableHyperlinkColumn49a; 1641 } 1642 1643 /** 1644 * @see StrutsParameter#isSortableBy() 1645 * @return boolean 1646 */ 1647 protected abstract boolean handleIsSortableBy(); 1648 1649 private boolean __sortableBy50a; 1650 private boolean __sortableBy50aSet = false; 1651 1652 /** 1653 * Indicates if a table can be sorted by this parameter. 1654 * @return (boolean)handleIsSortableBy() 1655 */ 1656 public final boolean isSortableBy() 1657 { 1658 boolean sortableBy50a = this.__sortableBy50a; 1659 if (!this.__sortableBy50aSet) 1660 { 1661 // sortableBy has no pre constraints 1662 sortableBy50a = handleIsSortableBy(); 1663 // sortableBy has no post constraints 1664 this.__sortableBy50a = sortableBy50a; 1665 if (isMetafacadePropertyCachingEnabled()) 1666 { 1667 this.__sortableBy50aSet = true; 1668 } 1669 } 1670 return sortableBy50a; 1671 } 1672 1673 /** 1674 * @see StrutsParameter#getTimeFormat() 1675 * @return String 1676 */ 1677 protected abstract String handleGetTimeFormat(); 1678 1679 private String __timeFormat51a; 1680 private boolean __timeFormat51aSet = false; 1681 1682 /** 1683 * The time format for this parameter (if this parameter stores time). 1684 * @return (String)handleGetTimeFormat() 1685 */ 1686 public final String getTimeFormat() 1687 { 1688 String timeFormat51a = this.__timeFormat51a; 1689 if (!this.__timeFormat51aSet) 1690 { 1691 // timeFormat has no pre constraints 1692 timeFormat51a = handleGetTimeFormat(); 1693 // timeFormat has no post constraints 1694 this.__timeFormat51a = timeFormat51a; 1695 if (isMetafacadePropertyCachingEnabled()) 1696 { 1697 this.__timeFormat51aSet = true; 1698 } 1699 } 1700 return timeFormat51a; 1701 } 1702 1703 /** 1704 * @see StrutsParameter#isTime() 1705 * @return boolean 1706 */ 1707 protected abstract boolean handleIsTime(); 1708 1709 private boolean __time52a; 1710 private boolean __time52aSet = false; 1711 1712 /** 1713 * Indicates if this parameter's type represents a time. 1714 * @return (boolean)handleIsTime() 1715 */ 1716 public final boolean isTime() 1717 { 1718 boolean time52a = this.__time52a; 1719 if (!this.__time52aSet) 1720 { 1721 // time has no pre constraints 1722 time52a = handleIsTime(); 1723 // time has no post constraints 1724 this.__time52a = time52a; 1725 if (isMetafacadePropertyCachingEnabled()) 1726 { 1727 this.__time52aSet = true; 1728 } 1729 } 1730 return time52a; 1731 } 1732 1733 /** 1734 * @see StrutsParameter#isAllGlobalTableActionsHaveSameParameter() 1735 * @return boolean 1736 */ 1737 protected abstract boolean handleIsAllGlobalTableActionsHaveSameParameter(); 1738 1739 private boolean __allGlobalTableActionsHaveSameParameter53a; 1740 private boolean __allGlobalTableActionsHaveSameParameter53aSet = false; 1741 1742 /** 1743 * This property is used in model validation. It denotes whether all actions targetting this 1744 * table page-variable take the same parameter (same name and type). Only makes sense when this 1745 * parameter is actually a table page-variable. 1746 * @return (boolean)handleIsAllGlobalTableActionsHaveSameParameter() 1747 */ 1748 public final boolean isAllGlobalTableActionsHaveSameParameter() 1749 { 1750 boolean allGlobalTableActionsHaveSameParameter53a = this.__allGlobalTableActionsHaveSameParameter53a; 1751 if (!this.__allGlobalTableActionsHaveSameParameter53aSet) 1752 { 1753 // allGlobalTableActionsHaveSameParameter has no pre constraints 1754 allGlobalTableActionsHaveSameParameter53a = handleIsAllGlobalTableActionsHaveSameParameter(); 1755 // allGlobalTableActionsHaveSameParameter has no post constraints 1756 this.__allGlobalTableActionsHaveSameParameter53a = allGlobalTableActionsHaveSameParameter53a; 1757 if (isMetafacadePropertyCachingEnabled()) 1758 { 1759 this.__allGlobalTableActionsHaveSameParameter53aSet = true; 1760 } 1761 } 1762 return allGlobalTableActionsHaveSameParameter53a; 1763 } 1764 1765 /** 1766 * @see StrutsParameter#getFieldRowCount() 1767 * @return Integer 1768 */ 1769 protected abstract Integer handleGetFieldRowCount(); 1770 1771 private Integer __fieldRowCount54a; 1772 private boolean __fieldRowCount54aSet = false; 1773 1774 /** 1775 * The number of rows for this field, null if default browser value is desired. 1776 * @return (Integer)handleGetFieldRowCount() 1777 */ 1778 public final Integer getFieldRowCount() 1779 { 1780 Integer fieldRowCount54a = this.__fieldRowCount54a; 1781 if (!this.__fieldRowCount54aSet) 1782 { 1783 // fieldRowCount has no pre constraints 1784 fieldRowCount54a = handleGetFieldRowCount(); 1785 // fieldRowCount has no post constraints 1786 this.__fieldRowCount54a = fieldRowCount54a; 1787 if (isMetafacadePropertyCachingEnabled()) 1788 { 1789 this.__fieldRowCount54aSet = true; 1790 } 1791 } 1792 return fieldRowCount54a; 1793 } 1794 1795 /** 1796 * @see StrutsParameter#getFieldColumnCount() 1797 * @return Integer 1798 */ 1799 protected abstract Integer handleGetFieldColumnCount(); 1800 1801 private Integer __fieldColumnCount55a; 1802 private boolean __fieldColumnCount55aSet = false; 1803 1804 /** 1805 * The number of columns for this field, null if default browser value is desired. 1806 * @return (Integer)handleGetFieldColumnCount() 1807 */ 1808 public final Integer getFieldColumnCount() 1809 { 1810 Integer fieldColumnCount55a = this.__fieldColumnCount55a; 1811 if (!this.__fieldColumnCount55aSet) 1812 { 1813 // fieldColumnCount has no pre constraints 1814 fieldColumnCount55a = handleGetFieldColumnCount(); 1815 // fieldColumnCount has no post constraints 1816 this.__fieldColumnCount55a = fieldColumnCount55a; 1817 if (isMetafacadePropertyCachingEnabled()) 1818 { 1819 this.__fieldColumnCount55aSet = true; 1820 } 1821 } 1822 return fieldColumnCount55a; 1823 } 1824 1825 /** 1826 * @see StrutsParameter#isCombobox() 1827 * @return boolean 1828 */ 1829 protected abstract boolean handleIsCombobox(); 1830 1831 private boolean __combobox56a; 1832 private boolean __combobox56aSet = false; 1833 1834 /** 1835 * TODO: Model Documentation for 1836 * StrutsParameter.combobox 1837 * @return (boolean)handleIsCombobox() 1838 */ 1839 public final boolean isCombobox() 1840 { 1841 boolean combobox56a = this.__combobox56a; 1842 if (!this.__combobox56aSet) 1843 { 1844 // combobox has no pre constraints 1845 combobox56a = handleIsCombobox(); 1846 // combobox has no post constraints 1847 this.__combobox56a = combobox56a; 1848 if (isMetafacadePropertyCachingEnabled()) 1849 { 1850 this.__combobox56aSet = true; 1851 } 1852 } 1853 return combobox56a; 1854 } 1855 1856 /** 1857 * @see StrutsParameter#isCheckbox() 1858 * @return boolean 1859 */ 1860 protected abstract boolean handleIsCheckbox(); 1861 1862 private boolean __checkbox57a; 1863 private boolean __checkbox57aSet = false; 1864 1865 /** 1866 * TODO: Model Documentation for 1867 * StrutsParameter.checkbox 1868 * @return (boolean)handleIsCheckbox() 1869 */ 1870 public final boolean isCheckbox() 1871 { 1872 boolean checkbox57a = this.__checkbox57a; 1873 if (!this.__checkbox57aSet) 1874 { 1875 // checkbox has no pre constraints 1876 checkbox57a = handleIsCheckbox(); 1877 // checkbox has no post constraints 1878 this.__checkbox57a = checkbox57a; 1879 if (isMetafacadePropertyCachingEnabled()) 1880 { 1881 this.__checkbox57aSet = true; 1882 } 1883 } 1884 return checkbox57a; 1885 } 1886 1887 /** 1888 * @see StrutsParameter#isTextField() 1889 * @return boolean 1890 */ 1891 protected abstract boolean handleIsTextField(); 1892 1893 private boolean __textField58a; 1894 private boolean __textField58aSet = false; 1895 1896 /** 1897 * TODO: Model Documentation for 1898 * StrutsParameter.textField 1899 * @return (boolean)handleIsTextField() 1900 */ 1901 public final boolean isTextField() 1902 { 1903 boolean textField58a = this.__textField58a; 1904 if (!this.__textField58aSet) 1905 { 1906 // textField has no pre constraints 1907 textField58a = handleIsTextField(); 1908 // textField has no post constraints 1909 this.__textField58a = textField58a; 1910 if (isMetafacadePropertyCachingEnabled()) 1911 { 1912 this.__textField58aSet = true; 1913 } 1914 } 1915 return textField58a; 1916 } 1917 1918 /** 1919 * @see StrutsParameter#isTextArea() 1920 * @return boolean 1921 */ 1922 protected abstract boolean handleIsTextArea(); 1923 1924 private boolean __textArea59a; 1925 private boolean __textArea59aSet = false; 1926 1927 /** 1928 * TODO: Model Documentation for 1929 * StrutsParameter.textArea 1930 * @return (boolean)handleIsTextArea() 1931 */ 1932 public final boolean isTextArea() 1933 { 1934 boolean textArea59a = this.__textArea59a; 1935 if (!this.__textArea59aSet) 1936 { 1937 // textArea has no pre constraints 1938 textArea59a = handleIsTextArea(); 1939 // textArea has no post constraints 1940 this.__textArea59a = textArea59a; 1941 if (isMetafacadePropertyCachingEnabled()) 1942 { 1943 this.__textArea59aSet = true; 1944 } 1945 } 1946 return textArea59a; 1947 } 1948 1949 /** 1950 * @see StrutsParameter#isMultibox() 1951 * @return boolean 1952 */ 1953 protected abstract boolean handleIsMultibox(); 1954 1955 private boolean __multibox60a; 1956 private boolean __multibox60aSet = false; 1957 1958 /** 1959 * TODO: Model Documentation for 1960 * StrutsParameter.multibox 1961 * @return (boolean)handleIsMultibox() 1962 */ 1963 public final boolean isMultibox() 1964 { 1965 boolean multibox60a = this.__multibox60a; 1966 if (!this.__multibox60aSet) 1967 { 1968 // multibox has no pre constraints 1969 multibox60a = handleIsMultibox(); 1970 // multibox has no post constraints 1971 this.__multibox60a = multibox60a; 1972 if (isMetafacadePropertyCachingEnabled()) 1973 { 1974 this.__multibox60aSet = true; 1975 } 1976 } 1977 return multibox60a; 1978 } 1979 1980 /** 1981 * @see StrutsParameter#isRadioButton() 1982 * @return boolean 1983 */ 1984 protected abstract boolean handleIsRadioButton(); 1985 1986 private boolean __radioButton61a; 1987 private boolean __radioButton61aSet = false; 1988 1989 /** 1990 * TODO: Model Documentation for 1991 * StrutsParameter.radioButton 1992 * @return (boolean)handleIsRadioButton() 1993 */ 1994 public final boolean isRadioButton() 1995 { 1996 boolean radioButton61a = this.__radioButton61a; 1997 if (!this.__radioButton61aSet) 1998 { 1999 // radioButton has no pre constraints 2000 radioButton61a = handleIsRadioButton(); 2001 // radioButton has no post constraints 2002 this.__radioButton61a = radioButton61a; 2003 if (isMetafacadePropertyCachingEnabled()) 2004 { 2005 this.__radioButton61aSet = true; 2006 } 2007 } 2008 return radioButton61a; 2009 } 2010 2011 /** 2012 * @see StrutsParameter#isHiddenField() 2013 * @return boolean 2014 */ 2015 protected abstract boolean handleIsHiddenField(); 2016 2017 private boolean __hiddenField62a; 2018 private boolean __hiddenField62aSet = false; 2019 2020 /** 2021 * TODO: Model Documentation for 2022 * StrutsParameter.hiddenField 2023 * @return (boolean)handleIsHiddenField() 2024 */ 2025 public final boolean isHiddenField() 2026 { 2027 boolean hiddenField62a = this.__hiddenField62a; 2028 if (!this.__hiddenField62aSet) 2029 { 2030 // hiddenField has no pre constraints 2031 hiddenField62a = handleIsHiddenField(); 2032 // hiddenField has no post constraints 2033 this.__hiddenField62a = hiddenField62a; 2034 if (isMetafacadePropertyCachingEnabled()) 2035 { 2036 this.__hiddenField62aSet = true; 2037 } 2038 } 2039 return hiddenField62a; 2040 } 2041 2042 /** 2043 * @see StrutsParameter#isHyperlink() 2044 * @return boolean 2045 */ 2046 protected abstract boolean handleIsHyperlink(); 2047 2048 private boolean __hyperlink63a; 2049 private boolean __hyperlink63aSet = false; 2050 2051 /** 2052 * TODO: Model Documentation for 2053 * StrutsParameter.hyperlink 2054 * @return (boolean)handleIsHyperlink() 2055 */ 2056 public final boolean isHyperlink() 2057 { 2058 boolean hyperlink63a = this.__hyperlink63a; 2059 if (!this.__hyperlink63aSet) 2060 { 2061 // hyperlink has no pre constraints 2062 hyperlink63a = handleIsHyperlink(); 2063 // hyperlink has no post constraints 2064 this.__hyperlink63a = hyperlink63a; 2065 if (isMetafacadePropertyCachingEnabled()) 2066 { 2067 this.__hyperlink63aSet = true; 2068 } 2069 } 2070 return hyperlink63a; 2071 } 2072 2073 /** 2074 * @see StrutsParameter#isSafeNamePresent() 2075 * @return boolean 2076 */ 2077 protected abstract boolean handleIsSafeNamePresent(); 2078 2079 private boolean __safeNamePresent64a; 2080 private boolean __safeNamePresent64aSet = false; 2081 2082 /** 2083 * True if this parameter has a name that can properly be handled by Jakarta commons (this lib 2084 * is used by Struts but contains a bug) 2085 * @return (boolean)handleIsSafeNamePresent() 2086 */ 2087 public final boolean isSafeNamePresent() 2088 { 2089 boolean safeNamePresent64a = this.__safeNamePresent64a; 2090 if (!this.__safeNamePresent64aSet) 2091 { 2092 // safeNamePresent has no pre constraints 2093 safeNamePresent64a = handleIsSafeNamePresent(); 2094 // safeNamePresent has no post constraints 2095 this.__safeNamePresent64a = safeNamePresent64a; 2096 if (isMetafacadePropertyCachingEnabled()) 2097 { 2098 this.__safeNamePresent64aSet = true; 2099 } 2100 } 2101 return safeNamePresent64a; 2102 } 2103 2104 // ---------------- business methods ---------------------- 2105 2106 /** 2107 * Method to be implemented in descendants 2108 * Returns the arguments for this parameter's validators. 2109 * @param validatorType 2110 * @return Collection 2111 */ 2112 protected abstract Collection handleGetValidatorArgs(String validatorType); 2113 2114 /** 2115 * Returns the arguments for this parameter's validators. 2116 * @param validatorType String 2117 * TODO: Model Documentation for 2118 * StrutsParameter.getValidatorArgs(validatorType) 2119 * @return handleGetValidatorArgs(validatorType) 2120 */ 2121 public Collection getValidatorArgs(String validatorType) 2122 { 2123 // getValidatorArgs has no pre constraints 2124 Collection returnValue = handleGetValidatorArgs(validatorType); 2125 // getValidatorArgs has no post constraints 2126 return returnValue; 2127 } 2128 2129 /** 2130 * Method to be implemented in descendants 2131 * Returns the resource bundle key for this table's column, only returns a value when this 2132 * parameter is a table. 2133 * @param columnName 2134 * @return String 2135 */ 2136 protected abstract String handleGetTableColumnMessageKey(String columnName); 2137 2138 /** 2139 * Returns the resource bundle key for this table's column, only returns a value when this 2140 * parameter is a table. 2141 * @param columnName String 2142 * TODO: Model Documentation for 2143 * StrutsParameter.getTableColumnMessageKey(columnName) 2144 * @return handleGetTableColumnMessageKey(columnName) 2145 */ 2146 public String getTableColumnMessageKey(String columnName) 2147 { 2148 // getTableColumnMessageKey has no pre constraints 2149 String returnValue = handleGetTableColumnMessageKey(columnName); 2150 // getTableColumnMessageKey has no post constraints 2151 return returnValue; 2152 } 2153 2154 /** 2155 * Method to be implemented in descendants 2156 * Returns the resource bundle value for this table's column, only returns a value when this 2157 * parameter is a table. 2158 * @param columnName 2159 * @return String 2160 */ 2161 protected abstract String handleGetTableColumnMessageValue(String columnName); 2162 2163 /** 2164 * Returns the resource bundle value for this table's column, only returns a value when this 2165 * parameter is a table. 2166 * @param columnName String 2167 * TODO: Model Documentation for 2168 * StrutsParameter.getTableColumnMessageValue(columnName) 2169 * @return handleGetTableColumnMessageValue(columnName) 2170 */ 2171 public String getTableColumnMessageValue(String columnName) 2172 { 2173 // getTableColumnMessageValue has no pre constraints 2174 String returnValue = handleGetTableColumnMessageValue(columnName); 2175 // getTableColumnMessageValue has no post constraints 2176 return returnValue; 2177 } 2178 2179 /** 2180 * Method to be implemented in descendants 2181 * Those actions that are targetting this table's columns, only makes sense when this parameter 2182 * represents a table page-variable. 2183 * @param columnName 2184 * @return List 2185 */ 2186 protected abstract List handleGetTableColumnActions(String columnName); 2187 2188 /** 2189 * Those actions that are targetting this table's columns, only makes sense when this parameter 2190 * represents a table page-variable. 2191 * @param columnName String 2192 * TODO: Model Documentation for 2193 * StrutsParameter.getTableColumnActions(columnName) 2194 * @return handleGetTableColumnActions(columnName) 2195 */ 2196 public List getTableColumnActions(String columnName) 2197 { 2198 // getTableColumnActions has no pre constraints 2199 List returnValue = handleGetTableColumnActions(columnName); 2200 // getTableColumnActions has no post constraints 2201 return returnValue; 2202 } 2203 2204 // ------------- associations ------------------ 2205 2206 private List<StrutsAction> __getTableHyperlinkActions1r; 2207 private boolean __getTableHyperlinkActions1rSet = false; 2208 2209 /** 2210 * If the action is a table link then this property represents the table to which is being 2211 * linked. 2212 * @return (List<StrutsAction>)handleGetTableHyperlinkActions() 2213 */ 2214 public final List<StrutsAction> getTableHyperlinkActions() 2215 { 2216 List<StrutsAction> getTableHyperlinkActions1r = this.__getTableHyperlinkActions1r; 2217 if (!this.__getTableHyperlinkActions1rSet) 2218 { 2219 // tableLinkParameter has no pre constraints 2220 List result = handleGetTableHyperlinkActions(); 2221 List shieldedResult = this.shieldedElements(result); 2222 try 2223 { 2224 getTableHyperlinkActions1r = (List<StrutsAction>)shieldedResult; 2225 } 2226 catch (ClassCastException ex) 2227 { 2228 // Bad things happen if the metafacade type mapping in metafacades.xml is wrong - Warn 2229 StrutsParameterLogic.logger.warn("incorrect metafacade cast for StrutsParameterLogic.getTableHyperlinkActions List<StrutsAction> " + result + ": " + shieldedResult); 2230 } 2231 // tableLinkParameter has no post constraints 2232 this.__getTableHyperlinkActions1r = getTableHyperlinkActions1r; 2233 if (isMetafacadePropertyCachingEnabled()) 2234 { 2235 this.__getTableHyperlinkActions1rSet = true; 2236 } 2237 } 2238 return getTableHyperlinkActions1r; 2239 } 2240 2241 /** 2242 * UML Specific type is returned in Collection, transformed by shieldedElements to AndroMDA Metafacade type 2243 * @return List 2244 */ 2245 protected abstract List handleGetTableHyperlinkActions(); 2246 2247 private StrutsAction __getStrutsAction2r; 2248 private boolean __getStrutsAction2rSet = false; 2249 2250 /** 2251 * A Struts parameter is an object communicated between the client and the server. Typically 2252 * form beans 2253 * encapsulate such parameters. 2254 * @return (StrutsAction)handleGetStrutsAction() 2255 */ 2256 public final StrutsAction getStrutsAction() 2257 { 2258 StrutsAction getStrutsAction2r = this.__getStrutsAction2r; 2259 if (!this.__getStrutsAction2rSet) 2260 { 2261 // strutsParameter has no pre constraints 2262 Object result = handleGetStrutsAction(); 2263 MetafacadeBase shieldedResult = this.shieldedElement(result); 2264 try 2265 { 2266 getStrutsAction2r = (StrutsAction)shieldedResult; 2267 } 2268 catch (ClassCastException ex) 2269 { 2270 // Bad things happen if the metafacade type mapping in metafacades.xml is wrong - Warn 2271 StrutsParameterLogic.logger.warn("incorrect metafacade cast for StrutsParameterLogic.getStrutsAction StrutsAction " + result + ": " + shieldedResult); 2272 } 2273 // strutsParameter has no post constraints 2274 this.__getStrutsAction2r = getStrutsAction2r; 2275 if (isMetafacadePropertyCachingEnabled()) 2276 { 2277 this.__getStrutsAction2rSet = true; 2278 } 2279 } 2280 return getStrutsAction2r; 2281 } 2282 2283 /** 2284 * UML Specific type is transformed by shieldedElements to AndroMDA Metafacade type 2285 * @return Object 2286 */ 2287 protected abstract Object handleGetStrutsAction(); 2288 2289 private StrutsJsp __getJsp3r; 2290 private boolean __getJsp3rSet = false; 2291 2292 /** 2293 * A Struts parameter is an object communicated between the client and the server. Typically 2294 * form beans 2295 * encapsulate such parameters. 2296 * @return (StrutsJsp)handleGetJsp() 2297 */ 2298 public final StrutsJsp getJsp() 2299 { 2300 StrutsJsp getJsp3r = this.__getJsp3r; 2301 if (!this.__getJsp3rSet) 2302 { 2303 // strutsParameter has no pre constraints 2304 Object result = handleGetJsp(); 2305 MetafacadeBase shieldedResult = this.shieldedElement(result); 2306 try 2307 { 2308 getJsp3r = (StrutsJsp)shieldedResult; 2309 } 2310 catch (ClassCastException ex) 2311 { 2312 // Bad things happen if the metafacade type mapping in metafacades.xml is wrong - Warn 2313 StrutsParameterLogic.logger.warn("incorrect metafacade cast for StrutsParameterLogic.getJsp StrutsJsp " + result + ": " + shieldedResult); 2314 } 2315 // strutsParameter has no post constraints 2316 this.__getJsp3r = getJsp3r; 2317 if (isMetafacadePropertyCachingEnabled()) 2318 { 2319 this.__getJsp3rSet = true; 2320 } 2321 } 2322 return getJsp3r; 2323 } 2324 2325 /** 2326 * UML Specific type is transformed by shieldedElements to AndroMDA Metafacade type 2327 * @return Object 2328 */ 2329 protected abstract Object handleGetJsp(); 2330 2331 private StrutsParameter __getTableGlobalActionParameter4r; 2332 private boolean __getTableGlobalActionParameter4rSet = false; 2333 2334 /** 2335 * A Struts parameter is an object communicated between the client and the server. Typically 2336 * form beans 2337 * encapsulate such parameters. 2338 * @return (StrutsParameter)handleGetTableGlobalActionParameter() 2339 */ 2340 public final StrutsParameter getTableGlobalActionParameter() 2341 { 2342 StrutsParameter getTableGlobalActionParameter4r = this.__getTableGlobalActionParameter4r; 2343 if (!this.__getTableGlobalActionParameter4rSet) 2344 { 2345 // strutsParameter has no pre constraints 2346 Object result = handleGetTableGlobalActionParameter(); 2347 MetafacadeBase shieldedResult = this.shieldedElement(result); 2348 try 2349 { 2350 getTableGlobalActionParameter4r = (StrutsParameter)shieldedResult; 2351 } 2352 catch (ClassCastException ex) 2353 { 2354 // Bad things happen if the metafacade type mapping in metafacades.xml is wrong - Warn 2355 StrutsParameterLogic.logger.warn("incorrect metafacade cast for StrutsParameterLogic.getTableGlobalActionParameter StrutsParameter " + result + ": " + shieldedResult); 2356 } 2357 // strutsParameter has no post constraints 2358 this.__getTableGlobalActionParameter4r = getTableGlobalActionParameter4r; 2359 if (isMetafacadePropertyCachingEnabled()) 2360 { 2361 this.__getTableGlobalActionParameter4rSet = true; 2362 } 2363 } 2364 return getTableGlobalActionParameter4r; 2365 } 2366 2367 /** 2368 * UML Specific type is transformed by shieldedElements to AndroMDA Metafacade type 2369 * @return Object 2370 */ 2371 protected abstract Object handleGetTableGlobalActionParameter(); 2372 2373 private List<StrutsParameter> __getFormFields5r; 2374 private boolean __getFormFields5rSet = false; 2375 2376 /** 2377 * A Struts parameter is an object communicated between the client and the server. Typically 2378 * form beans 2379 * encapsulate such parameters. 2380 * @return (List<StrutsParameter>)handleGetFormFields() 2381 */ 2382 public final List<StrutsParameter> getFormFields() 2383 { 2384 List<StrutsParameter> getFormFields5r = this.__getFormFields5r; 2385 if (!this.__getFormFields5rSet) 2386 { 2387 // strutsParameter has no pre constraints 2388 List result = handleGetFormFields(); 2389 List shieldedResult = this.shieldedElements(result); 2390 try 2391 { 2392 getFormFields5r = (List<StrutsParameter>)shieldedResult; 2393 } 2394 catch (ClassCastException ex) 2395 { 2396 // Bad things happen if the metafacade type mapping in metafacades.xml is wrong - Warn 2397 StrutsParameterLogic.logger.warn("incorrect metafacade cast for StrutsParameterLogic.getFormFields List<StrutsParameter> " + result + ": " + shieldedResult); 2398 } 2399 // strutsParameter has no post constraints 2400 this.__getFormFields5r = getFormFields5r; 2401 if (isMetafacadePropertyCachingEnabled()) 2402 { 2403 this.__getFormFields5rSet = true; 2404 } 2405 } 2406 return getFormFields5r; 2407 } 2408 2409 /** 2410 * UML Specific type is returned in Collection, transformed by shieldedElements to AndroMDA Metafacade type 2411 * @return List 2412 */ 2413 protected abstract List handleGetFormFields(); 2414 2415 private Collection<StrutsAction> __getTableGlobalActions6r; 2416 private boolean __getTableGlobalActions6rSet = false; 2417 2418 /** 2419 * A Struts parameter is an object communicated between the client and the server. Typically 2420 * form beans 2421 * encapsulate such parameters. 2422 * @return (Collection<StrutsAction>)handleGetTableGlobalActions() 2423 */ 2424 public final Collection<StrutsAction> getTableGlobalActions() 2425 { 2426 Collection<StrutsAction> getTableGlobalActions6r = this.__getTableGlobalActions6r; 2427 if (!this.__getTableGlobalActions6rSet) 2428 { 2429 // strutsParameter has no pre constraints 2430 Collection result = handleGetTableGlobalActions(); 2431 List shieldedResult = this.shieldedElements(result); 2432 try 2433 { 2434 getTableGlobalActions6r = (Collection<StrutsAction>)shieldedResult; 2435 } 2436 catch (ClassCastException ex) 2437 { 2438 // Bad things happen if the metafacade type mapping in metafacades.xml is wrong - Warn 2439 StrutsParameterLogic.logger.warn("incorrect metafacade cast for StrutsParameterLogic.getTableGlobalActions Collection<StrutsAction> " + result + ": " + shieldedResult); 2440 } 2441 // strutsParameter has no post constraints 2442 this.__getTableGlobalActions6r = getTableGlobalActions6r; 2443 if (isMetafacadePropertyCachingEnabled()) 2444 { 2445 this.__getTableGlobalActions6rSet = true; 2446 } 2447 } 2448 return getTableGlobalActions6r; 2449 } 2450 2451 /** 2452 * UML Specific type is returned in Collection, transformed by shieldedElements to AndroMDA Metafacade type 2453 * @return Collection 2454 */ 2455 protected abstract Collection handleGetTableGlobalActions(); 2456 2457 private List<StrutsAction> __getTableFormActions7r; 2458 private boolean __getTableFormActions7rSet = false; 2459 2460 /** 2461 * Returns all parameters transported in this action. 2462 * @return (List<StrutsAction>)handleGetTableFormActions() 2463 */ 2464 public final List<StrutsAction> getTableFormActions() 2465 { 2466 List<StrutsAction> getTableFormActions7r = this.__getTableFormActions7r; 2467 if (!this.__getTableFormActions7rSet) 2468 { 2469 // actionParameters has no pre constraints 2470 List result = handleGetTableFormActions(); 2471 List shieldedResult = this.shieldedElements(result); 2472 try 2473 { 2474 getTableFormActions7r = (List<StrutsAction>)shieldedResult; 2475 } 2476 catch (ClassCastException ex) 2477 { 2478 // Bad things happen if the metafacade type mapping in metafacades.xml is wrong - Warn 2479 StrutsParameterLogic.logger.warn("incorrect metafacade cast for StrutsParameterLogic.getTableFormActions List<StrutsAction> " + result + ": " + shieldedResult); 2480 } 2481 // actionParameters has no post constraints 2482 this.__getTableFormActions7r = getTableFormActions7r; 2483 if (isMetafacadePropertyCachingEnabled()) 2484 { 2485 this.__getTableFormActions7rSet = true; 2486 } 2487 } 2488 return getTableFormActions7r; 2489 } 2490 2491 /** 2492 * UML Specific type is returned in Collection, transformed by shieldedElements to AndroMDA Metafacade type 2493 * @return List 2494 */ 2495 protected abstract List handleGetTableFormActions(); 2496 2497 /** 2498 * @return true 2499 * @see FrontEndParameter 2500 */ 2501 public boolean isFrontEndParameterMetaType() 2502 { 2503 return true; 2504 } 2505 2506 /** 2507 * @return true 2508 * @see org.andromda.metafacades.uml.ParameterFacade 2509 */ 2510 public boolean isParameterFacadeMetaType() 2511 { 2512 return true; 2513 } 2514 2515 /** 2516 * @return true 2517 * @see ModelElementFacade 2518 */ 2519 public boolean isModelElementFacadeMetaType() 2520 { 2521 return true; 2522 } 2523 2524 // ----------- delegates to FrontEndParameter ------------ 2525 /** 2526 * The action to which this parameter belongs (if it belongs to an action), otherwise it returns 2527 * null. 2528 * @see FrontEndParameter#getAction() 2529 */ 2530 public FrontEndAction getAction() 2531 { 2532 return this.getSuperFrontEndParameter().getAction(); 2533 } 2534 2535 /** 2536 * Gets the controller operation to which this parameter belongs. 2537 * @see FrontEndParameter#getControllerOperation() 2538 */ 2539 public FrontEndControllerOperation getControllerOperation() 2540 { 2541 return this.getSuperFrontEndParameter().getControllerOperation(); 2542 } 2543 2544 /** 2545 * A collection of all possible attribute names of a table (this will only work when your table 2546 * is modeled as an array..not a collection). 2547 * @see FrontEndParameter#getTableAttributeNames() 2548 */ 2549 public Collection<String> getTableAttributeNames() 2550 { 2551 return this.getSuperFrontEndParameter().getTableAttributeNames(); 2552 } 2553 2554 /** 2555 * All the columns for this parameter if it represents a table variable. If a column is linked 2556 * by an event (action) a FrontEndParameter instance is included in the return value, otherwise 2557 * a plain String representing the column name. 2558 * @see FrontEndParameter#getTableColumnNames() 2559 */ 2560 public Collection<String> getTableColumnNames() 2561 { 2562 return this.getSuperFrontEndParameter().getTableColumnNames(); 2563 } 2564 2565 /** 2566 * A list of all attributes which make up the table columns of this table (this only contains 2567 * attributes when the table is represented by an array). 2568 * @see FrontEndParameter#getTableColumns() 2569 */ 2570 public Collection<String> getTableColumns() 2571 { 2572 return this.getSuperFrontEndParameter().getTableColumns(); 2573 } 2574 2575 /** 2576 * Represents the view in which this parameter will be used. 2577 * @see FrontEndParameter#getView() 2578 */ 2579 public FrontEndView getView() 2580 { 2581 return this.getSuperFrontEndParameter().getView(); 2582 } 2583 2584 /** 2585 * Indicates whether or not this is an action parameter or not. 2586 * @see FrontEndParameter#isActionParameter() 2587 */ 2588 public boolean isActionParameter() 2589 { 2590 return this.getSuperFrontEndParameter().isActionParameter(); 2591 } 2592 2593 /** 2594 * Indicates if this parameter is contained in a "front-end" use case. 2595 * @see FrontEndParameter#isContainedInFrontEndUseCase() 2596 */ 2597 public boolean isContainedInFrontEndUseCase() 2598 { 2599 return this.getSuperFrontEndParameter().isContainedInFrontEndUseCase(); 2600 } 2601 2602 /** 2603 * Indicates whether or not this parameter is an argument of a controller operation. 2604 * @see FrontEndParameter#isControllerOperationArgument() 2605 */ 2606 public boolean isControllerOperationArgument() 2607 { 2608 return this.getSuperFrontEndParameter().isControllerOperationArgument(); 2609 } 2610 2611 /** 2612 * Indicates whether or not this parameter represents a table. 2613 * @see FrontEndParameter#isTable() 2614 */ 2615 public boolean isTable() 2616 { 2617 return this.getSuperFrontEndParameter().isTable(); 2618 } 2619 2620 /** 2621 * Copies all tagged values from the given ModelElementFacade to this model element facade. 2622 * @see ModelElementFacade#copyTaggedValues(ModelElementFacade element) 2623 */ 2624 public void copyTaggedValues(ModelElementFacade element) 2625 { 2626 this.getSuperFrontEndParameter().copyTaggedValues(element); 2627 } 2628 2629 /** 2630 * Finds the tagged value with the specified 'tagName'. In case there are more values the first 2631 * one found will be returned. 2632 * @see ModelElementFacade#findTaggedValue(String tagName) 2633 */ 2634 public Object findTaggedValue(String tagName) 2635 { 2636 return this.getSuperFrontEndParameter().findTaggedValue(tagName); 2637 } 2638 2639 /** 2640 * Returns all the values for the tagged value with the specified name. The returned collection 2641 * will contains only String instances, or will be empty. Never null. 2642 * @see ModelElementFacade#findTaggedValues(String tagName) 2643 */ 2644 public Collection<Object> findTaggedValues(String tagName) 2645 { 2646 return this.getSuperFrontEndParameter().findTaggedValues(tagName); 2647 } 2648 2649 /** 2650 * Returns the fully qualified name of the model element. The fully qualified name includes 2651 * complete package qualified name of the underlying model element. The templates parameter will 2652 * be replaced by the correct one given the binding relation of the parameter to this element. 2653 * @see ModelElementFacade#getBindedFullyQualifiedName(ModelElementFacade bindedElement) 2654 */ 2655 public String getBindedFullyQualifiedName(ModelElementFacade bindedElement) 2656 { 2657 return this.getSuperFrontEndParameter().getBindedFullyQualifiedName(bindedElement); 2658 } 2659 2660 /** 2661 * Gets all constraints belonging to the model element. 2662 * @see ModelElementFacade#getConstraints() 2663 */ 2664 public Collection<ConstraintFacade> getConstraints() 2665 { 2666 return this.getSuperFrontEndParameter().getConstraints(); 2667 } 2668 2669 /** 2670 * Returns the constraints of the argument kind that have been placed onto this model. Typical 2671 * kinds are "inv", "pre" and "post". Other kinds are possible. 2672 * @see ModelElementFacade#getConstraints(String kind) 2673 */ 2674 public Collection<ConstraintFacade> getConstraints(String kind) 2675 { 2676 return this.getSuperFrontEndParameter().getConstraints(kind); 2677 } 2678 2679 /** 2680 * Gets the documentation for the model element, The indent argument is prefixed to each line. 2681 * By default this method wraps lines after 64 characters. 2682 * This method is equivalent to <code>getDocumentation(indent, 64)</code>. 2683 * @see ModelElementFacade#getDocumentation(String indent) 2684 */ 2685 public String getDocumentation(String indent) 2686 { 2687 return this.getSuperFrontEndParameter().getDocumentation(indent); 2688 } 2689 2690 /** 2691 * This method returns the documentation for this model element, with the lines wrapped after 2692 * the specified number of characters, values of less than 1 will indicate no line wrapping is 2693 * required. By default paragraphs are returned as HTML. 2694 * This method is equivalent to <code>getDocumentation(indent, lineLength, true)</code>. 2695 * @see ModelElementFacade#getDocumentation(String indent, int lineLength) 2696 */ 2697 public String getDocumentation(String indent, int lineLength) 2698 { 2699 return this.getSuperFrontEndParameter().getDocumentation(indent, lineLength); 2700 } 2701 2702 /** 2703 * This method returns the documentation for this model element, with the lines wrapped after 2704 * the specified number of characters, values of less than 1 will indicate no line wrapping is 2705 * required. HTML style determines if HTML Escaping is applied. 2706 * @see ModelElementFacade#getDocumentation(String indent, int lineLength, boolean htmlStyle) 2707 */ 2708 public String getDocumentation(String indent, int lineLength, boolean htmlStyle) 2709 { 2710 return this.getSuperFrontEndParameter().getDocumentation(indent, lineLength, htmlStyle); 2711 } 2712 2713 /** 2714 * The fully qualified name of this model element. 2715 * @see ModelElementFacade#getFullyQualifiedName() 2716 */ 2717 public String getFullyQualifiedName() 2718 { 2719 return this.getSuperFrontEndParameter().getFullyQualifiedName(); 2720 } 2721 2722 /** 2723 * Returns the fully qualified name of the model element. The fully qualified name includes 2724 * complete package qualified name of the underlying model element. If modelName is true, then 2725 * the original name of the model element (the name contained within the model) will be the name 2726 * returned, otherwise a name from a language mapping will be returned. 2727 * @see ModelElementFacade#getFullyQualifiedName(boolean modelName) 2728 */ 2729 public String getFullyQualifiedName(boolean modelName) 2730 { 2731 return this.getSuperFrontEndParameter().getFullyQualifiedName(modelName); 2732 } 2733 2734 /** 2735 * Returns the fully qualified name as a path, the returned value always starts with out a slash 2736 * '/'. 2737 * @see ModelElementFacade#getFullyQualifiedNamePath() 2738 */ 2739 public String getFullyQualifiedNamePath() 2740 { 2741 return this.getSuperFrontEndParameter().getFullyQualifiedNamePath(); 2742 } 2743 2744 /** 2745 * Gets the unique identifier of the underlying model element. 2746 * @see ModelElementFacade#getId() 2747 */ 2748 public String getId() 2749 { 2750 return this.getSuperFrontEndParameter().getId(); 2751 } 2752 2753 /** 2754 * UML2: Retrieves the keywords for this element. Used to modify implementation properties which 2755 * are not represented by other properties, i.e. native, transient, volatile, synchronized, 2756 * (added annotations) override, deprecated. Can also be used to suppress compiler warnings: 2757 * (added annotations) unchecked, fallthrough, path, serial, finally, all. Annotations require 2758 * JDK5 compiler level. 2759 * @see ModelElementFacade#getKeywords() 2760 */ 2761 public Collection<String> getKeywords() 2762 { 2763 return this.getSuperFrontEndParameter().getKeywords(); 2764 } 2765 2766 /** 2767 * UML2: Retrieves a localized label for this named element. 2768 * @see ModelElementFacade#getLabel() 2769 */ 2770 public String getLabel() 2771 { 2772 return this.getSuperFrontEndParameter().getLabel(); 2773 } 2774 2775 /** 2776 * The language mappings that have been set for this model element. 2777 * @see ModelElementFacade#getLanguageMappings() 2778 */ 2779 public TypeMappings getLanguageMappings() 2780 { 2781 return this.getSuperFrontEndParameter().getLanguageMappings(); 2782 } 2783 2784 /** 2785 * Return the model containing this model element (multiple models may be loaded and processed 2786 * at the same time). 2787 * @see ModelElementFacade#getModel() 2788 */ 2789 public ModelFacade getModel() 2790 { 2791 return this.getSuperFrontEndParameter().getModel(); 2792 } 2793 2794 /** 2795 * The name of the model element. 2796 * @see ModelElementFacade#getName() 2797 */ 2798 public String getName() 2799 { 2800 return this.getSuperFrontEndParameter().getName(); 2801 } 2802 2803 /** 2804 * Gets the package to which this model element belongs. 2805 * @see ModelElementFacade#getPackage() 2806 */ 2807 public ModelElementFacade getPackage() 2808 { 2809 return this.getSuperFrontEndParameter().getPackage(); 2810 } 2811 2812 /** 2813 * The name of this model element's package. 2814 * @see ModelElementFacade#getPackageName() 2815 */ 2816 public String getPackageName() 2817 { 2818 return this.getSuperFrontEndParameter().getPackageName(); 2819 } 2820 2821 /** 2822 * Gets the package name (optionally providing the ability to retrieve the model name and not 2823 * the mapped name). 2824 * @see ModelElementFacade#getPackageName(boolean modelName) 2825 */ 2826 public String getPackageName(boolean modelName) 2827 { 2828 return this.getSuperFrontEndParameter().getPackageName(modelName); 2829 } 2830 2831 /** 2832 * Returns the package as a path, the returned value always starts with out a slash '/'. 2833 * @see ModelElementFacade#getPackagePath() 2834 */ 2835 public String getPackagePath() 2836 { 2837 return this.getSuperFrontEndParameter().getPackagePath(); 2838 } 2839 2840 /** 2841 * UML2: Returns the value of the 'Qualified Name' attribute. A name which allows the 2842 * NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from 2843 * the names of the containing namespaces starting at the root of the hierarchy and ending with 2844 * the name of the NamedElement itself. 2845 * @see ModelElementFacade#getQualifiedName() 2846 */ 2847 public String getQualifiedName() 2848 { 2849 return this.getSuperFrontEndParameter().getQualifiedName(); 2850 } 2851 2852 /** 2853 * Gets the root package for the model element. 2854 * @see ModelElementFacade#getRootPackage() 2855 */ 2856 public PackageFacade getRootPackage() 2857 { 2858 return this.getSuperFrontEndParameter().getRootPackage(); 2859 } 2860 2861 /** 2862 * Gets the dependencies for which this model element is the source. 2863 * @see ModelElementFacade#getSourceDependencies() 2864 */ 2865 public Collection<DependencyFacade> getSourceDependencies() 2866 { 2867 return this.getSuperFrontEndParameter().getSourceDependencies(); 2868 } 2869 2870 /** 2871 * If this model element is the context of an activity graph, this represents that activity 2872 * graph. 2873 * @see ModelElementFacade#getStateMachineContext() 2874 */ 2875 public StateMachineFacade getStateMachineContext() 2876 { 2877 return this.getSuperFrontEndParameter().getStateMachineContext(); 2878 } 2879 2880 /** 2881 * The collection of ALL stereotype names for this model element. 2882 * @see ModelElementFacade#getStereotypeNames() 2883 */ 2884 public Collection<String> getStereotypeNames() 2885 { 2886 return this.getSuperFrontEndParameter().getStereotypeNames(); 2887 } 2888 2889 /** 2890 * Gets all stereotypes for this model element. 2891 * @see ModelElementFacade#getStereotypes() 2892 */ 2893 public Collection<StereotypeFacade> getStereotypes() 2894 { 2895 return this.getSuperFrontEndParameter().getStereotypes(); 2896 } 2897 2898 /** 2899 * Return the TaggedValues associated with this model element, under all stereotypes. 2900 * @see ModelElementFacade#getTaggedValues() 2901 */ 2902 public Collection<TaggedValueFacade> getTaggedValues() 2903 { 2904 return this.getSuperFrontEndParameter().getTaggedValues(); 2905 } 2906 2907 /** 2908 * Gets the dependencies for which this model element is the target. 2909 * @see ModelElementFacade#getTargetDependencies() 2910 */ 2911 public Collection<DependencyFacade> getTargetDependencies() 2912 { 2913 return this.getSuperFrontEndParameter().getTargetDependencies(); 2914 } 2915 2916 /** 2917 * Get the template parameter for this model element having the parameterName 2918 * @see ModelElementFacade#getTemplateParameter(String parameterName) 2919 */ 2920 public Object getTemplateParameter(String parameterName) 2921 { 2922 return this.getSuperFrontEndParameter().getTemplateParameter(parameterName); 2923 } 2924 2925 /** 2926 * Get the template parameters for this model element 2927 * @see ModelElementFacade#getTemplateParameters() 2928 */ 2929 public Collection<TemplateParameterFacade> getTemplateParameters() 2930 { 2931 return this.getSuperFrontEndParameter().getTemplateParameters(); 2932 } 2933 2934 /** 2935 * The visibility (i.e. public, private, protected or package) of the model element, will 2936 * attempt a lookup for these values in the language mappings (if any). 2937 * @see ModelElementFacade#getVisibility() 2938 */ 2939 public String getVisibility() 2940 { 2941 return this.getSuperFrontEndParameter().getVisibility(); 2942 } 2943 2944 /** 2945 * Returns true if the model element has the exact stereotype (meaning no stereotype inheritance 2946 * is taken into account when searching for the stereotype), false otherwise. 2947 * @see ModelElementFacade#hasExactStereotype(String stereotypeName) 2948 */ 2949 public boolean hasExactStereotype(String stereotypeName) 2950 { 2951 return this.getSuperFrontEndParameter().hasExactStereotype(stereotypeName); 2952 } 2953 2954 /** 2955 * Does the UML Element contain the named Keyword? Keywords can be separated by space, comma, 2956 * pipe, semicolon, or << >> 2957 * @see ModelElementFacade#hasKeyword(String keywordName) 2958 */ 2959 public boolean hasKeyword(String keywordName) 2960 { 2961 return this.getSuperFrontEndParameter().hasKeyword(keywordName); 2962 } 2963 2964 /** 2965 * Returns true if the model element has the specified stereotype. If the stereotype itself 2966 * does not match, then a search will be made up the stereotype inheritance hierarchy, and if 2967 * one of the stereotype's ancestors has a matching name this method will return true, false 2968 * otherwise. 2969 * For example, if we have a certain stereotype called <<exception>> and a model element has a 2970 * stereotype called <<applicationException>> which extends <<exception>>, when calling this 2971 * method with 'stereotypeName' defined as 'exception' the method would return true since 2972 * <<applicationException>> inherits from <<exception>>. If you want to check if the model 2973 * element has the exact stereotype, then use the method 'hasExactStereotype' instead. 2974 * @see ModelElementFacade#hasStereotype(String stereotypeName) 2975 */ 2976 public boolean hasStereotype(String stereotypeName) 2977 { 2978 return this.getSuperFrontEndParameter().hasStereotype(stereotypeName); 2979 } 2980 2981 /** 2982 * True if there are target dependencies from this element that are instances of BindingFacade. 2983 * Deprecated in UML2: Use TemplateBinding parameters instead of dependencies. 2984 * @see ModelElementFacade#isBindingDependenciesPresent() 2985 */ 2986 public boolean isBindingDependenciesPresent() 2987 { 2988 return this.getSuperFrontEndParameter().isBindingDependenciesPresent(); 2989 } 2990 2991 /** 2992 * Indicates if any constraints are present on this model element. 2993 * @see ModelElementFacade#isConstraintsPresent() 2994 */ 2995 public boolean isConstraintsPresent() 2996 { 2997 return this.getSuperFrontEndParameter().isConstraintsPresent(); 2998 } 2999 3000 /** 3001 * Indicates if any documentation is present on this model element. 3002 * @see ModelElementFacade#isDocumentationPresent() 3003 */ 3004 public boolean isDocumentationPresent() 3005 { 3006 return this.getSuperFrontEndParameter().isDocumentationPresent(); 3007 } 3008 3009 /** 3010 * True if this element name is a reserved word in Java, C#, ANSI or ISO C, C++, JavaScript. 3011 * @see ModelElementFacade#isReservedWord() 3012 */ 3013 public boolean isReservedWord() 3014 { 3015 return this.getSuperFrontEndParameter().isReservedWord(); 3016 } 3017 3018 /** 3019 * True is there are template parameters on this model element. For UML2, applies to Class, 3020 * Operation, Property, and Parameter. 3021 * @see ModelElementFacade#isTemplateParametersPresent() 3022 */ 3023 public boolean isTemplateParametersPresent() 3024 { 3025 return this.getSuperFrontEndParameter().isTemplateParametersPresent(); 3026 } 3027 3028 /** 3029 * True if this element name is a valid identifier name in Java, C#, ANSI or ISO C, C++, 3030 * JavaScript. Contains no spaces, special characters etc. Constraint always applied on 3031 * Enumerations and Interfaces, optionally applies on other model elements. 3032 * @see ModelElementFacade#isValidIdentifierName() 3033 */ 3034 public boolean isValidIdentifierName() 3035 { 3036 return this.getSuperFrontEndParameter().isValidIdentifierName(); 3037 } 3038 3039 /** 3040 * Searches for the constraint with the specified 'name' on this model element, and if found 3041 * translates it using the specified 'translation' from a translation library discovered by the 3042 * framework. 3043 * @see ModelElementFacade#translateConstraint(String name, String translation) 3044 */ 3045 public String translateConstraint(String name, String translation) 3046 { 3047 return this.getSuperFrontEndParameter().translateConstraint(name, translation); 3048 } 3049 3050 /** 3051 * Translates all constraints belonging to this model element with the given 'translation'. 3052 * @see ModelElementFacade#translateConstraints(String translation) 3053 */ 3054 public String[] translateConstraints(String translation) 3055 { 3056 return this.getSuperFrontEndParameter().translateConstraints(translation); 3057 } 3058 3059 /** 3060 * Translates the constraints of the specified 'kind' belonging to this model element. 3061 * @see ModelElementFacade#translateConstraints(String kind, String translation) 3062 */ 3063 public String[] translateConstraints(String kind, String translation) 3064 { 3065 return this.getSuperFrontEndParameter().translateConstraints(kind, translation); 3066 } 3067 3068 /** 3069 * TODO: Model Documentation for org.andromda.metafacades.uml.ParameterFacade.defaultValue 3070 * @see org.andromda.metafacades.uml.ParameterFacade#getDefaultValue() 3071 */ 3072 public String getDefaultValue() 3073 { 3074 return this.getSuperFrontEndParameter().getDefaultValue(); 3075 } 3076 3077 /** 3078 * UML2: A representation of the literals of the enumeration 'Parameter Effect Kind': CREATE, 3079 * READ, UPDATE, DELETE. The datatype ParameterEffectKind is an enumeration that indicates the 3080 * effect of a behavior on values passed in or out of its parameters. 3081 * @see org.andromda.metafacades.uml.ParameterFacade#getEffect() 3082 */ 3083 public String getEffect() 3084 { 3085 return this.getSuperFrontEndParameter().getEffect(); 3086 } 3087 3088 /** 3089 * If this parameter is located on an event, this will represent that event. 3090 * @see org.andromda.metafacades.uml.ParameterFacade#getEvent() 3091 */ 3092 public EventFacade getEvent() 3093 { 3094 return this.getSuperFrontEndParameter().getEvent(); 3095 } 3096 3097 /** 3098 * The name to use for accessors getting this parameter from a bean. 3099 * @see org.andromda.metafacades.uml.ParameterFacade#getGetterName() 3100 */ 3101 public String getGetterName() 3102 { 3103 return this.getSuperFrontEndParameter().getGetterName(); 3104 } 3105 3106 /** 3107 * Fully Qualified TypeName, determined in part by multiplicity (for UML2). For UML14, same as 3108 * getterName. 3109 * @see org.andromda.metafacades.uml.ParameterFacade#getGetterSetterTypeName() 3110 */ 3111 public String getGetterSetterTypeName() 3112 { 3113 return this.getSuperFrontEndParameter().getGetterSetterTypeName(); 3114 } 3115 3116 /** 3117 * Fully Qualified implementation class of TypeName, determined in part by multiplicity (for 3118 * UML2). If upper multiplicity =1, same as getterSetterTypeName. 3119 * @see org.andromda.metafacades.uml.ParameterFacade#getGetterSetterTypeNameImpl() 3120 */ 3121 public String getGetterSetterTypeNameImpl() 3122 { 3123 return this.getSuperFrontEndParameter().getGetterSetterTypeNameImpl(); 3124 } 3125 3126 /** 3127 * the lower value for the multiplicity 3128 * -only applicable for UML2 3129 * @see org.andromda.metafacades.uml.ParameterFacade#getLower() 3130 */ 3131 public int getLower() 3132 { 3133 return this.getSuperFrontEndParameter().getLower(); 3134 } 3135 3136 /** 3137 * If this parameter is located on an operation, this will represent that operation. 3138 * @see org.andromda.metafacades.uml.ParameterFacade#getOperation() 3139 */ 3140 public OperationFacade getOperation() 3141 { 3142 return this.getSuperFrontEndParameter().getOperation(); 3143 } 3144 3145 /** 3146 * The name to use for accessors getting this parameter in a bean. 3147 * @see org.andromda.metafacades.uml.ParameterFacade#getSetterName() 3148 */ 3149 public String getSetterName() 3150 { 3151 return this.getSuperFrontEndParameter().getSetterName(); 3152 } 3153 3154 /** 3155 * A Classifier is a classification of instances - it describes a set of instances that have 3156 * features 3157 * in common. Can specify a generalization hierarchy by referencing its general classifiers. It 3158 * may be 3159 * a Class, DataType, PrimitiveType, Association, Collaboration, UseCase, etc. Can specify a 3160 * generalization hierarchy by referencing its general classifiers. Has the capability to own 3161 * collaboration uses. These collaboration uses link a collaboration with the classifier to give 3162 * a 3163 * description of the workings of the classifier. Classifier is defined to be a kind of 3164 * templateable 3165 * element so that a classifier can be parameterized. It is also defined to be a kind of 3166 * parameterable 3167 * element so that a classifier can be a formal template parameter. 3168 * @see org.andromda.metafacades.uml.ParameterFacade#getType() 3169 */ 3170 public ClassifierFacade getType() 3171 { 3172 return this.getSuperFrontEndParameter().getType(); 3173 } 3174 3175 /** 3176 * the upper value of the multiplicity (will be -1 for *) 3177 * -only applicable for UML2 3178 * @see org.andromda.metafacades.uml.ParameterFacade#getUpper() 3179 */ 3180 public int getUpper() 3181 { 3182 return this.getSuperFrontEndParameter().getUpper(); 3183 } 3184 3185 /** 3186 * Indicates if the default value is present. 3187 * @see org.andromda.metafacades.uml.ParameterFacade#isDefaultValuePresent() 3188 */ 3189 public boolean isDefaultValuePresent() 3190 { 3191 return this.getSuperFrontEndParameter().isDefaultValuePresent(); 3192 } 3193 3194 /** 3195 * UML2: Returns the value of the 'Is Exception' attribute. The default value is "false". Tells 3196 * whether an output parameter may emit a value to the exclusion of the other outputs. 3197 * @see org.andromda.metafacades.uml.ParameterFacade#isException() 3198 */ 3199 public boolean isException() 3200 { 3201 return this.getSuperFrontEndParameter().isException(); 3202 } 3203 3204 /** 3205 * True if this parameter is an 'in' parameter. 3206 * @see org.andromda.metafacades.uml.ParameterFacade#isInParameter() 3207 */ 3208 public boolean isInParameter() 3209 { 3210 return this.getSuperFrontEndParameter().isInParameter(); 3211 } 3212 3213 /** 3214 * True if this parameter is an inout parameter. 3215 * @see org.andromda.metafacades.uml.ParameterFacade#isInoutParameter() 3216 */ 3217 public boolean isInoutParameter() 3218 { 3219 return this.getSuperFrontEndParameter().isInoutParameter(); 3220 } 3221 3222 /** 3223 * If upper>1 or upper==unlimited. Only applies to UML2. For UML14, always false. 3224 * @see org.andromda.metafacades.uml.ParameterFacade#isMany() 3225 */ 3226 public boolean isMany() 3227 { 3228 return this.getSuperFrontEndParameter().isMany(); 3229 } 3230 3231 /** 3232 * UML2 Only: Is parameter ordered within the Collection type. Ordered+Unique determines the 3233 * implementation Collection Type. For UML14, always false. 3234 * @see org.andromda.metafacades.uml.ParameterFacade#isOrdered() 3235 */ 3236 public boolean isOrdered() 3237 { 3238 return this.getSuperFrontEndParameter().isOrdered(); 3239 } 3240 3241 /** 3242 * True if this parameter is an 'out' parameter. 3243 * @see org.andromda.metafacades.uml.ParameterFacade#isOutParameter() 3244 */ 3245 public boolean isOutParameter() 3246 { 3247 return this.getSuperFrontEndParameter().isOutParameter(); 3248 } 3249 3250 /** 3251 * True if this parameter is readable, aka an in-parameter, or this feature is unspecified. 3252 * @see org.andromda.metafacades.uml.ParameterFacade#isReadable() 3253 */ 3254 public boolean isReadable() 3255 { 3256 return this.getSuperFrontEndParameter().isReadable(); 3257 } 3258 3259 /** 3260 * Whether or not this parameter is considered required (i.e must a non-empty value). 3261 * @see org.andromda.metafacades.uml.ParameterFacade#isRequired() 3262 */ 3263 public boolean isRequired() 3264 { 3265 return this.getSuperFrontEndParameter().isRequired(); 3266 } 3267 3268 /** 3269 * Whether or not this parameter represents a return parameter. 3270 * @see org.andromda.metafacades.uml.ParameterFacade#isReturn() 3271 */ 3272 public boolean isReturn() 3273 { 3274 return this.getSuperFrontEndParameter().isReturn(); 3275 } 3276 3277 /** 3278 * If Parameter type isMany (UML2), is the parameter unique within the Collection. Unique+Sorted 3279 * determines pareter implementation type. For UML14, always false. 3280 * @see org.andromda.metafacades.uml.ParameterFacade#isUnique() 3281 */ 3282 public boolean isUnique() 3283 { 3284 return this.getSuperFrontEndParameter().isUnique(); 3285 } 3286 3287 /** 3288 * True if this parameter is writable, aka an out-parameter, or this feature is unspecified. 3289 * @see org.andromda.metafacades.uml.ParameterFacade#isWritable() 3290 */ 3291 public boolean isWritable() 3292 { 3293 return this.getSuperFrontEndParameter().isWritable(); 3294 } 3295 3296 /** 3297 * @see MetafacadeBase#initialize() 3298 */ 3299 @Override 3300 public void initialize() 3301 { 3302 this.getSuperFrontEndParameter().initialize(); 3303 } 3304 3305 /** 3306 * @return Object getSuperFrontEndParameter().getValidationOwner() 3307 * @see MetafacadeBase#getValidationOwner() 3308 */ 3309 @Override 3310 public Object getValidationOwner() 3311 { 3312 Object owner = this.getSuperFrontEndParameter().getValidationOwner(); 3313 return owner; 3314 } 3315 3316 /** 3317 * @return String getSuperFrontEndParameter().getValidationName() 3318 * @see MetafacadeBase#getValidationName() 3319 */ 3320 @Override 3321 public String getValidationName() 3322 { 3323 String name = this.getSuperFrontEndParameter().getValidationName(); 3324 return name; 3325 } 3326 3327 /** 3328 * <p><b>Constraint:</b> org::andromda::cartridges::bpm4struts::metafacades::StrutsParameter::table on collection or array</p> 3329 * <p><b>Error:</b> A parameter can only be rendered in tabular format when it is a collection or an array.</p> 3330 * <p><b>OCL:</b> context StrutsParameter inv: table implies multiple</p> 3331 * <p><b>Constraint:</b> org::andromda::cartridges::bpm4struts::metafacades::StrutsParameter::table actions must all have one parameter</p> 3332 * <p><b>Error:</b> All actions targetting this table and operating on all visible rows at the same time can only have a single parameter, this parameter denotes the value that will be sent when the row has been selected.</p> 3333 * <p><b>OCL:</b> context StrutsParameter inv: tableGlobalActions->notEmpty() implies tableGlobalActions->forAll(actionParameters->size() = 1)</p> 3334 * <p><b>Constraint:</b> org::andromda::cartridges::bpm4struts::metafacades::StrutsParameter::all global table action must have the same parameter</p> 3335 * <p><b>Error:</b> All actions targetting this table and operating on the entire rowset must have the same event parameter declaration, this means both name and type must match for all parameters in these actions.</p> 3336 * <p><b>OCL:</b> context StrutsParameter inv: tableGlobalActions->notEmpty() implies allGlobalTableActionsHaveSameParameter</p> 3337 * <p><b>Constraint:</b> org::andromda::cartridges::bpm4struts::metafacades::StrutsManageableEntityAttribute::SAFE NAME - TO BE REMOVED LATER</p> 3338 * <p><b>Error:</b> The names you give to fields cannot start with a lowercase character directly followed by a character in uppercase. This is due to a bug in the Jakarta commons library which is used by Struts. The behavior of that library is inconsistent with the reflection API provided by the JDK. Please rename this field or you'll get exceptions when running your web application.</p> 3339 * <p><b>OCL:</b> context StrutsAttribute inv: safeNamePresent</p> 3340 * @param validationMessages Collection<ModelValidationMessage> 3341 * @see MetafacadeBase#validateInvariants(Collection validationMessages) 3342 */ 3343 @Override 3344 public void validateInvariants(Collection<ModelValidationMessage> validationMessages) 3345 { 3346 this.getSuperFrontEndParameter().validateInvariants(validationMessages); 3347 try 3348 { 3349 final Object contextElement = this.THIS(); 3350 boolean constraintValid = OCLResultEnsurer.ensure((Boolean.valueOf(String.valueOf(Boolean.valueOf(String.valueOf(OCLIntrospector.invoke(contextElement,"table"))).booleanValue())).booleanValue()?Boolean.valueOf(String.valueOf(OCLIntrospector.invoke(contextElement,"multiple"))).booleanValue():true)); 3351 if (!constraintValid) 3352 { 3353 validationMessages.add( 3354 new ModelValidationMessage( 3355 (MetafacadeBase)contextElement , 3356 "org::andromda::cartridges::bpm4struts::metafacades::StrutsParameter::table on collection or array", 3357 "A parameter can only be rendered in tabular format when it is a collection or an array.")); 3358 } 3359 } 3360 catch (Throwable th) 3361 { 3362 Throwable cause = th.getCause(); 3363 int depth = 0; // Some throwables have infinite recursion 3364 while (cause != null && depth < 7) 3365 { 3366 th = cause; 3367 depth++; 3368 } 3369 logger.error("Error validating constraint 'org::andromda::cartridges::bpm4struts::metafacades::StrutsParameter::table on collection or array' ON " 3370 + this.THIS().toString() + ": " + th.getMessage(), th); 3371 } 3372 try 3373 { 3374 final Object contextElement = this.THIS(); 3375 boolean constraintValid = OCLResultEnsurer.ensure((Boolean.valueOf(String.valueOf(OCLCollections.notEmpty(OCLIntrospector.invoke(contextElement,"tableGlobalActions")))).booleanValue()?OCLCollections.forAll(OCLIntrospector.invoke(contextElement,"tableGlobalActions"),new Predicate(){public boolean evaluate(Object object){return Boolean.valueOf(String.valueOf(OCLExpressions.equal(OCLCollections.size(OCLIntrospector.invoke(object,"actionParameters")),1))).booleanValue();}}):true)); 3376 if (!constraintValid) 3377 { 3378 validationMessages.add( 3379 new ModelValidationMessage( 3380 (MetafacadeBase)contextElement , 3381 "org::andromda::cartridges::bpm4struts::metafacades::StrutsParameter::table actions must all have one parameter", 3382 "All actions targetting this table and operating on all visible rows at the same time can only have a single parameter, this parameter denotes the value that will be sent when the row has been selected.")); 3383 } 3384 } 3385 catch (Throwable th) 3386 { 3387 Throwable cause = th.getCause(); 3388 int depth = 0; // Some throwables have infinite recursion 3389 while (cause != null && depth < 7) 3390 { 3391 th = cause; 3392 depth++; 3393 } 3394 logger.error("Error validating constraint 'org::andromda::cartridges::bpm4struts::metafacades::StrutsParameter::table actions must all have one parameter' ON " 3395 + this.THIS().toString() + ": " + th.getMessage(), th); 3396 } 3397 try 3398 { 3399 final Object contextElement = this.THIS(); 3400 boolean constraintValid = OCLResultEnsurer.ensure((Boolean.valueOf(String.valueOf(OCLCollections.notEmpty(OCLIntrospector.invoke(contextElement,"tableGlobalActions")))).booleanValue()?Boolean.valueOf(String.valueOf(OCLIntrospector.invoke(contextElement,"allGlobalTableActionsHaveSameParameter"))).booleanValue():true)); 3401 if (!constraintValid) 3402 { 3403 validationMessages.add( 3404 new ModelValidationMessage( 3405 (MetafacadeBase)contextElement , 3406 "org::andromda::cartridges::bpm4struts::metafacades::StrutsParameter::all global table action must have the same parameter", 3407 "All actions targetting this table and operating on the entire rowset must have the same event parameter declaration, this means both name and type must match for all parameters in these actions.")); 3408 } 3409 } 3410 catch (Throwable th) 3411 { 3412 Throwable cause = th.getCause(); 3413 int depth = 0; // Some throwables have infinite recursion 3414 while (cause != null && depth < 7) 3415 { 3416 th = cause; 3417 depth++; 3418 } 3419 logger.error("Error validating constraint 'org::andromda::cartridges::bpm4struts::metafacades::StrutsParameter::all global table action must have the same parameter' ON " 3420 + this.THIS().toString() + ": " + th.getMessage(), th); 3421 } 3422 try 3423 { 3424 final Object contextElement = this.THIS(); 3425 boolean constraintValid = OCLResultEnsurer.ensure(OCLIntrospector.invoke(contextElement,"safeNamePresent")); 3426 if (!constraintValid) 3427 { 3428 validationMessages.add( 3429 new ModelValidationMessage( 3430 (MetafacadeBase)contextElement , 3431 "org::andromda::cartridges::bpm4struts::metafacades::StrutsManageableEntityAttribute::SAFE NAME - TO BE REMOVED LATER", 3432 "The names you give to fields cannot start with a lowercase character directly followed by a character in uppercase. This is due to a bug in the Jakarta commons library which is used by Struts. The behavior of that library is inconsistent with the reflection API provided by the JDK. Please rename this field or you'll get exceptions when running your web application.")); 3433 } 3434 } 3435 catch (Throwable th) 3436 { 3437 Throwable cause = th.getCause(); 3438 int depth = 0; // Some throwables have infinite recursion 3439 while (cause != null && depth < 7) 3440 { 3441 th = cause; 3442 depth++; 3443 } 3444 logger.error("Error validating constraint 'org::andromda::cartridges::bpm4struts::metafacades::StrutsManageableEntityAttribute::SAFE NAME - TO BE REMOVED LATER' ON " 3445 + this.THIS().toString() + ": " + th.getMessage(), th); 3446 } 3447 } 3448 3449 /** 3450 * The property that stores the name of the metafacade. 3451 */ 3452 private static final String NAME_PROPERTY = "name"; 3453 private static final String FQNAME_PROPERTY = "fullyQualifiedName"; 3454 3455 /** 3456 * @see Object#toString() 3457 */ 3458 @Override 3459 public String toString() 3460 { 3461 final StringBuilder toString = new StringBuilder(this.getClass().getName()); 3462 toString.append("["); 3463 try 3464 { 3465 toString.append(Introspector.instance().getProperty(this, FQNAME_PROPERTY)); 3466 } 3467 catch (final Throwable tryAgain) 3468 { 3469 try 3470 { 3471 toString.append(Introspector.instance().getProperty(this, NAME_PROPERTY)); 3472 } 3473 catch (final Throwable ignore) 3474 { 3475 // - just ignore when the metafacade doesn't have a name or fullyQualifiedName property 3476 } 3477 } 3478 toString.append("]"); 3479 return toString.toString(); 3480 } 3481}