From: <wal...@us...> - 2015-03-13 14:49:13
|
Revision: 15439 http://sourceforge.net/p/andromda/svn/15439 Author: walterim Date: 2015-03-13 14:48:59 +0000 (Fri, 13 Mar 2015) Log Message: ----------- Better support to master/detail Modified Paths: -------------- trunk/cartridges/andromda-jsf2/src/main/java/org/andromda/cartridges/jsf2/metafacades/JSFManageableEntityLogicImpl.java trunk/cartridges/andromda-jsf2/src/main/resources/META-INF/andromda/cartridge.xml trunk/cartridges/andromda-jsf2/src/main/resources/META-INF/andromda/namespace.xml trunk/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/controllers/crud/Controller.java.vsl trunk/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/controllers/crud/SearchFilter.java.vsl trunk/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/forms/crud/Form.java.vsl trunk/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/facelets/primefaces/crud/view.xhtml.vsl trunk/cartridges/andromda-jsf2/src/uml2/JSF2MetafacadeModel.uml trunk/cartridges/andromda-jsf2/src/uml2/JSF2MetafacadeModel.xml.zip trunk/cartridges/andromda-jsf2/src/uml2/org.andromda.profile.andromda-meta.profile.uml Added Paths: ----------- trunk/cartridges/andromda-jsf2/src/uml2/UML_Standard_Profile.Dependency_Matrix_Profile.profile.uml trunk/cartridges/andromda-jsf2/src/uml2/UML_Standard_Profile.MagicDraw_Profile.DSL_Customization.profile.uml trunk/cartridges/andromda-jsf2/src/uml2/UML_Standard_Profile.MagicDraw_Profile.Traceability_customization.profile.uml trunk/cartridges/andromda-jsf2/src/uml2/UML_Standard_Profile.MagicDraw_Profile.profile.uml trunk/cartridges/andromda-jsf2/src/uml2/UML_Standard_Profile.StandardProfileL2.profile.uml trunk/cartridges/andromda-jsf2/src/uml2/UML_Standard_Profile.StandardProfileL3.profile.uml trunk/cartridges/andromda-jsf2/src/uml2/UML_Standard_Profile.Validation_Profile.profile.uml Modified: trunk/cartridges/andromda-jsf2/src/main/java/org/andromda/cartridges/jsf2/metafacades/JSFManageableEntityLogicImpl.java =================================================================== --- trunk/cartridges/andromda-jsf2/src/main/java/org/andromda/cartridges/jsf2/metafacades/JSFManageableEntityLogicImpl.java 2015-03-13 14:48:06 UTC (rev 15438) +++ trunk/cartridges/andromda-jsf2/src/main/java/org/andromda/cartridges/jsf2/metafacades/JSFManageableEntityLogicImpl.java 2015-03-13 14:48:59 UTC (rev 15439) @@ -8,6 +8,7 @@ import org.andromda.cartridges.jsf2.JSFGlobals; import org.andromda.cartridges.jsf2.JSFProfile; import org.andromda.cartridges.jsf2.JSFUtils; +import org.andromda.metafacades.uml.UMLProfile; import org.andromda.metafacades.uml.DependencyFacade; import org.andromda.metafacades.uml.ManageableEntityAssociationEnd; import org.andromda.metafacades.uml.ManageableEntityAttribute; @@ -552,7 +553,7 @@ { for(ManageableEntityAttribute attr: getManageableAttributes()) { - if(attr.isDisplay() && !attr.getType().isBlobType()) + if(attr.isDisplay() && !attr.getType().isBlobType() && !attr.getType().isClobType()) { searchAttributes.add((JSFManageableEntityAttribute)attr); } @@ -871,4 +872,25 @@ } return editAttributes; } + + /** + * @return manageableDetailsAssociations + * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getManageableDetailsAssociations() + */ + @Override + protected Collection<ManageableEntityAssociationEnd> handleGetManageableDetailsAssociationsEnds() + { + final Collection<ManageableEntityAssociationEnd> manageableDetailsAssociationsEnds = new ArrayList<ManageableEntityAssociationEnd>(); + + for(ManageableEntityAssociationEnd associationEnd: (Collection<ManageableEntityAssociationEnd>)this.getManageableAssociationEnds()) + { + if(associationEnd.isMany() && associationEnd.getType().hasStereotype(UMLProfile.STEREOTYPE_MANAGEABLE) && + associationEnd.getOtherEnd().isNavigable() && associationEnd.getOtherEnd().isComposition()) + { + manageableDetailsAssociationsEnds.add(associationEnd); + } + } + + return manageableDetailsAssociationsEnds; + } } Modified: trunk/cartridges/andromda-jsf2/src/main/resources/META-INF/andromda/cartridge.xml =================================================================== --- trunk/cartridges/andromda-jsf2/src/main/resources/META-INF/andromda/cartridge.xml 2015-03-13 14:48:06 UTC (rev 15438) +++ trunk/cartridges/andromda-jsf2/src/main/resources/META-INF/andromda/cartridge.xml 2015-03-13 14:48:59 UTC (rev 15439) @@ -71,6 +71,7 @@ <property reference="controllerScope"/> <property reference="navigationBeanScope"/> <property reference="trimInputStrings"/> + <property reference="crudDetailsSuffix"/> <!-- cartridge-property merge-point --> Modified: trunk/cartridges/andromda-jsf2/src/main/resources/META-INF/andromda/namespace.xml =================================================================== --- trunk/cartridges/andromda-jsf2/src/main/resources/META-INF/andromda/namespace.xml 2015-03-13 14:48:06 UTC (rev 15438) +++ trunk/cartridges/andromda-jsf2/src/main/resources/META-INF/andromda/namespace.xml 2015-03-13 14:48:59 UTC (rev 15439) @@ -531,6 +531,12 @@ The suffix to append to the names of generated value objects used in CRUD (manageable entities). </documentation> </property> + <property name="crudDetailsSuffix"> + <default>Details</default> + <documentation> + The suffix to append to the names of generated details (in compositions) elements used in CRUD (manageable entities). + </documentation> + </property> <property name="crudConfirmationMessages"> <default>true</default> <documentation> @@ -538,7 +544,7 @@ </documentation> </property> <property name="trimInputStrings"> - <default>true</default> + <default>false</default> <documentation> Trim form entered strings; </documentation> Modified: trunk/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/controllers/crud/Controller.java.vsl =================================================================== --- trunk/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/controllers/crud/Controller.java.vsl 2015-03-13 14:48:06 UTC (rev 15438) +++ trunk/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/controllers/crud/Controller.java.vsl 2015-03-13 14:48:59 UTC (rev 15439) @@ -21,6 +21,8 @@ #set($identifierType = $manageable.fullyQualifiedIdentifierTypeName) #end #end +import org.primefaces.component.datatable.DataTable; + /** * Java Server Faces Controller of the ${manageable.name} CRUD management. */ @@ -144,9 +146,22 @@ form.${member.setterName}(vo.${member.getterName}()); #end +#foreach ($member in $manageable.manageableDetailsAssociationsEnds) +#set($loadDetailMethodName = "load${stringUtils.upperCamelCaseName(${member.name})}${crudDetailsSuffix}") + ${loadDetailMethodName}(${manageable.identifierName}); +#end + form.setEditState(true); } +#foreach ($member in $manageable.manageableDetailsAssociationsEnds) +#set($loadDetailMethodName = "load${stringUtils.upperCamelCaseName($member.name)}${crudDetailsSuffix}") + public void ${loadDetailMethodName}(${identifierType} ${manageable.identifierName}) throws Exception + { + this.getForm().${member.setterName}${crudDetailsSuffix}(${member.type.manageablePackageName}.${member.type.controllerName}.instance().readByFilter("${member.otherEnd.name}", ${manageable.identifierName})); + } + +#end /** * The cancel edit action * @@ -235,7 +250,11 @@ form.${member.setterName}(null); #end #end - +#if (!$manageable.manageableDetailsAssociationsEnds.empty) +#foreach ($member in $manageable.manageableDetailsAssociationsEnds) + form.${member.setterName}${crudDetailsSuffix}(null); +#end +#end //is it filtered? if so, set the property with the filter value final String filterAttribute=this.getFilterAttribute(); if(filterAttribute != null) @@ -380,10 +399,22 @@ this.setLastPostedFormClientId(FORM_BEAN_NAME); final ${manageable.formBeanType} form = this.getForm(); this.doSearch(form); + setResultToFirstPage(); return null; } + private static final String DATA_TABLE_SEARCH_NAME="searchResult"; + /** + * Sets the resulta datatable to the first page + */ + protected void setResultToFirstPage(){ + //Set page to 0 after call search + DataTable dataTable = (DataTable) JsfUtils.findComponentInRoot(":"+FORM_BEAN_NAME+":"+DATA_TABLE_SEARCH_NAME); + dataTable.setFirst(0); + } + + /** * Executes the search action. * * @param form the associated form @@ -565,10 +596,11 @@ public java.util.Collection<${manageable.valueObjectClassName}> readByFilter(${manageable.searchFilterName} filter) throws Exception { final $searchExampleClassName searchExample = new ${searchExampleClassName}(); -#foreach ($member in $manageable.manageableMembers) -#if (!$member.inputFile && !$member.needsFileUpload) - searchExample.${member.setterName}(filter.${member.getterName}()); +#foreach ($field in $manageable.manageableSearchAttributes) + searchExample.${field.setterName}(filter.${field.getterName}()); #end +#foreach ($member in $manageable.manageableAssociationEnds) + searchExample.${member.setterName}(filter.${member.getterName}()); #end final java.util.Collection<${manageable.valueObjectClassName}> result = ${manageable.manageableServiceAccessorCall}.searchByExample(searchExample); Modified: trunk/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/controllers/crud/SearchFilter.java.vsl =================================================================== --- trunk/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/controllers/crud/SearchFilter.java.vsl 2015-03-13 14:48:06 UTC (rev 15438) +++ trunk/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/controllers/crud/SearchFilter.java.vsl 2015-03-13 14:48:59 UTC (rev 15439) @@ -28,8 +28,7 @@ */ private static final long serialVersionUID = ${manageable.searchFilterSerialVersionUID}L; -#foreach ($field in $manageable.manageableAttributes) -#if (!$field.inputFile && !$field.needsFileUpload) +#foreach ($field in $manageable.manageableSearchAttributes) #setFieldWrapperTypeName($field $fieldWrapperTypeName) private $fieldWrapperTypeName $field.name=null; @@ -68,7 +67,6 @@ #end #end -#end #foreach ($member in $manageable.manageableAssociationEnds) #setAssociatonEndType($member $fieldType $fieldTypeName) private $fieldTypeName $member.name; @@ -105,18 +103,24 @@ #end public ${manageable.searchFilterName} loadFromStringsMap(final java.util.Map<String,String> source) { -#foreach ($field in $manageable.manageableMembers) +#foreach ($field in $manageable.manageableSearchAttributes) if(source.containsKey("${field.name}")) { this.${field.setterName}(source.get("${field.name}")); } +#end +#foreach ($member in $manageable.manageableAssociationEnds) + if(source.containsKey("${member.name}")) + { + this.${member.setterName}(source.get("${member.name}")); + } #end return this; } public ${manageable.searchFilterName} loadFromObjectsMap(final java.util.Map<String,Object> source) { -#foreach ($field in $manageable.manageableAttributes) +#foreach ($field in $manageable.manageableSearchAttributes) #setFieldWrapperTypeName($field $fieldWrapperTypeName) if(source.containsKey("${field.name}")) { Modified: trunk/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/forms/crud/Form.java.vsl =================================================================== --- trunk/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/forms/crud/Form.java.vsl 2015-03-13 14:48:06 UTC (rev 15438) +++ trunk/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/forms/crud/Form.java.vsl 2015-03-13 14:48:59 UTC (rev 15439) @@ -189,8 +189,8 @@ #end #if (!$manageable.manageableAssociationEnds.empty) - // Manageable associationEnds in $manageable.name + #end #foreach ($member in $manageable.manageableAssociationEnds) #if($member.type.manageable) @@ -258,7 +258,31 @@ } #end + // Master/detail view helpers +#foreach ($member in $manageable.manageableDetailsAssociationsEnds) +#set($fullyQualifiedDetailValueObjectName = "${member.type.manageablePackageName}.${member.type.valueObjectClassName}") +#set($detailsCollectionType="java.util.Collection<${fullyQualifiedDetailValueObjectName}>") +#set($detailsName="${member.name}${crudDetailsSuffix}") + private $detailsCollectionType $detailsName; + + /** + * The collection of ${fullyQualifiedDetailValueObjectName}. + */ + public $detailsCollectionType ${member.getterName}${crudDetailsSuffix}() + { + return this.$detailsName; + } + + /** + * The collection of ${fullyQualifiedDetailValueObjectName}. + */ + public void ${member.setterName}${crudDetailsSuffix}($detailsCollectionType ${detailsName}In) + { + this.$detailsName = ${detailsName}In; + } + +#end #renderCopyFrom($manageable.formBeanClassName $manageable.manageableAttributes $manageable.manageableAssociationEnds) /** Modified: trunk/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/facelets/primefaces/crud/view.xhtml.vsl =================================================================== --- trunk/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/facelets/primefaces/crud/view.xhtml.vsl 2015-03-13 14:48:06 UTC (rev 15438) +++ trunk/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/facelets/primefaces/crud/view.xhtml.vsl 2015-03-13 14:48:59 UTC (rev 15439) @@ -210,21 +210,22 @@ ## master/detail #if($field.otherEnd.navigable && $field.otherEnd.composition && $field.many) #set($detailManageable = $field.type) +#set($loadDetailMethodName = "load${stringUtils.upperCamelCaseName($field.name)}${crudDetailsSuffix}") <p:outputLabel id="${field.name}_table_label" for="${field.name}_table" value="#{messages['$field.messageKey']}:"/> - <p:dataTable id="${field.name}_table" var="row" value="#{${detailManageable.controllerBeanName}.readByFilter('${field.otherEnd.name}',${formName}.${manageable.identifierName})}" rows="10" paginator="true" paginatorPosition="top" paginatorAlwaysVisible="false" emptyMessage="#{messages['empty.result.set']}"> + <p:dataTable id="${field.name}_table" var="row" value="#{${formName}.${field.name}${crudDetailsSuffix}}" rows="10" paginator="true" paginatorPosition="top" paginatorAlwaysVisible="false" emptyMessage="#{messages['empty.result.set']}"> <p:column style="width:0px;"> <p:panelGrid columns="2"> <p:commandButton id="loadAction" icon="ui-icon-pencil" title="#{messages['action.edit']}" immediate="true" process="@this" update="@form" onclick="${formName}_${field.name}_dialog_show('${detailManageable.actionFullPath}.${facesServletExtension}?_useCaseParameter._dialog=true&_useCaseParameter._crudAction=edit&_useCaseParameter.editId=#{row.${detailManageable.identifierName}}&_useCaseParameter.filterAttribute=${field.otherEnd.name}&_useCaseParameter.filterValue=#{${formName}.${manageable.identifierName}}',${field.name}_tableUpdate); return false;"/> - <p:commandButton id="deleteAction" icon="ui-icon-trash" title="#{messages['action.delete']}" action="#{${detailManageable.controllerBeanName}.delete(row.${detailManageable.identifierName})}" immediate="true" process="@this" update="${field.name}_table" - onclick="return confirm('#{messages['confirm.delete.this']} #{messages['${detailManageable.viewTitleKey}']}');" /> + <p:commandButton id="deleteAction" icon="ui-icon-trash" title="#{messages['action.delete']}" actionListener="#{${detailManageable.controllerBeanName}.delete(row.${detailManageable.identifierName})}" immediate="true" process="@this" update="${field.name}_table" + action="#{${manageable.controllerBeanName}.${loadDetailMethodName}(${formName}.${manageable.identifierName})}" onclick="return confirm('#{messages['confirm.delete.this']} #{messages['${detailManageable.viewTitleKey}']}');" /> </p:panelGrid> </p:column> #renderTableColumnsPrimeFaces($detailManageable " ") </p:dataTable> <p:panelGrid columns="3"> <ajsfc:useCaseDialog id="${field.name}_dialog"/> - <p:remoteCommand name="${field.name}_tableUpdate" update="${field.name}_table" immediate="true" global="false"/> + <p:remoteCommand name="${field.name}_tableUpdate" update="${field.name}_table" immediate="true" global="false" actionListener="#{${manageable.controllerBeanName}.${loadDetailMethodName}(${formName}.${manageable.identifierName})}"/> <p:commandButton id="${field.name}_newAction" icon="ui-icon-plus" title="#{messages['action.new']}" immediate="true" process="@this" update="@form" onclick="if(_crudCheckCurrentSaved(#{${formName}.${manageable.identifierName}})) ${formName}_${field.name}_dialog_show('${detailManageable.actionFullPath}.${facesServletExtension}?_useCaseParameter._dialog=true&_useCaseParameter._crudAction=create&_useCaseParameter.filterAttribute=${field.otherEnd.name}&_useCaseParameter.filterValue=#{${formName}.${manageable.identifierName}}',${field.name}_tableUpdate); return false;"/> </p:panelGrid> Modified: trunk/cartridges/andromda-jsf2/src/uml2/JSF2MetafacadeModel.uml =================================================================== --- trunk/cartridges/andromda-jsf2/src/uml2/JSF2MetafacadeModel.uml 2015-03-13 14:48:06 UTC (rev 15438) +++ trunk/cartridges/andromda-jsf2/src/uml2/JSF2MetafacadeModel.uml 2015-03-13 14:48:59 UTC (rev 15439) @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:MagicDrawProfile="http:///schemas/MagicDrawProfile/_L4VsMKtREeKjhumzzu9zmg/0" xmlns:Standard="http://www.eclipse.org/uml2/schemas/Standard/1" xmlns:andromdameta="http:///schemas/andromdameta/_L4O-gKtREeKjhumzzu9zmg/0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/2.0.0/UML" xsi:schemaLocation="http:///schemas/MagicDrawProfile/_L4VsMKtREeKjhumzzu9zmg/0 UML_Standard_Profile.MagicDraw_Profile.profile.uml#_L4doZKtREeKjhumzzu9zmg http://www.eclipse.org/uml2/schemas/Standard/1 pathmap://UML_PROFILES/Standard.profile.uml#_yzU58YinEdqtvbnfB2L_5w http:///schemas/andromdameta/_L4O-gKtREeKjhumzzu9zmg/0 org.andromda.profile.andromda-meta.profile.uml#_L4eQiatREeKjhumzzu9zmg"> +<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:MagicDrawProfile="http:///schemas/MagicDrawProfile/_f87PwDtQEeSWJepu4WCdUQ/0" xmlns:Standard="http://www.eclipse.org/uml2/schemas/Standard/1" xmlns:andromdameta="http:///schemas/andromdameta/_f8bggDtQEeSWJepu4WCdUQ/0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/2.0.0/UML" xsi:schemaLocation="http:///schemas/MagicDrawProfile/_f87PwDtQEeSWJepu4WCdUQ/0 UML_Standard_Profile.MagicDraw_Profile.profile.uml#_f9hsvDtQEeSWJepu4WCdUQ http://www.eclipse.org/uml2/schemas/Standard/1 pathmap://UML_PROFILES/Standard.profile.uml#_yzU58YinEdqtvbnfB2L_5w http:///schemas/andromdameta/_f8bggDtQEeSWJepu4WCdUQ/0 org.andromda.profile.andromda-meta.profile.uml#_f9zZlTtQEeSWJepu4WCdUQ"> <uml:Model xmi:id="eee_1045467100313_135436_1" name="JSFMetafacadeModel" viewpoint=""> <ownedComment xmi:id="_d860307_1071503001754_461086_1" body="Author:BohlenMa.
Created:15.12.03 16:37.
Title:.
Comment:.
" annotatedElement="eee_1045467100313_135436_1"/> <packageImport xmi:id="_0primitiveTypesJSFMetafacadeModel"> @@ -8,370 +8,1138 @@ <packageImport xmi:id="_0javaPrimitiveTypesJSFMetafacadeModel"> <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#_0"/> </packageImport> - <packagedElement xmi:type="uml:Package" xmi:id="magicdraw_uml_standard_profile_v_0001" name="UML Standard Profile"> - <ownedComment xmi:id="_be00301_1078843546940_242228_131" body="UML Standard Profile contains UML metamodel (metaclasses without properties and associations), StandardProfileL2 and StandardProfileL3 from UML specification, Standard UML stereotypes defined in annex C of UML specification.
Profile also includes validation suites for UML model correctness and completeness checking, and stereotypes used by MagicDraw internally." annotatedElement="magicdraw_uml_standard_profile_v_0001"/> + <packagedElement xmi:type="uml:Package" xmi:id="_17_0_6_8fd0290_1366636810498_634162_2802" name="org.andromda.profile"/> + <packagedElement xmi:type="uml:Package" xmi:id="_24400562_1073745791623_230940_134" name="org.andromda.cartridges.jsf2.metafacades"> + <packagedElement xmi:type="uml:Class" xmi:id="_9_0_2_12ab03bf_1120956099656_251066_301" name="JSFControllerOperation"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1120969117906_808687_317" body="Represents an operation for a JSF controller." annotatedElement="_9_0_2_12ab03bf_1120956099656_251066_301"/> + <generalization xmi:id="_9_0_2_12ab03bf_1121019457671_962712_422" isSubstitutable="true" general="_9_0_2_12ab03bf_1120167314500_763531_126"/> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1121019745203_606691_433" name="fullyQualifiedFormPath" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121019747078_577343_438" body="The fully qualified path of the form file." annotatedElement="_9_0_2_12ab03bf_1121019745203_606691_433"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1121017764781_105569_337" name="fullyQualifiedFormName" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121019061562_14614_349" body="The fully qualified form name." annotatedElement="_9_0_2_12ab03bf_1121017764781_105569_337"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1121017764781_596416_335" name="formName" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121019061562_349656_345" body="The form name the corresponds to this controller operation." annotatedElement="_9_0_2_12ab03bf_1121017764781_596416_335"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1121700242687_801430_0" name="formCall" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121700248234_547858_6" body="The operation call that takes the appropriate form as an argument." annotatedElement="_9_0_2_12ab03bf_1121700242687_801430_0"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1121700846250_486084_93" name="formSignature" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121700872609_775573_97" body="The controller operation signature that takes the appropriate form (if this operation has at least one form field) as an argument." annotatedElement="_9_0_2_12ab03bf_1121700846250_486084_93"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1121967378640_829452_494" name="implementationFormSignature" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121967380656_623663_497" body="The controller implementation operation signature that takes the appropriate form (if this operation has at least one form field) as an argument." annotatedElement="_9_0_2_12ab03bf_1121967378640_829452_494"/> + </ownedAttribute> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_9_0_2_12ab03bf_1121046740953_610306_551" name="JSFView"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121046951000_751132_580" body="Represents a JSF view for a front-end application." annotatedElement="_9_0_2_12ab03bf_1121046740953_610306_551"/> + <generalization xmi:id="_9_0_2_12ab03bf_1121046775140_418797_567" isSubstitutable="true" general="_9_0_2_12ab03bf_1122481800031_890384_216"/> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1121046822515_410382_578" name="path" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121046951000_361648_582" body="The full path of the view resources (i.e. the JSP page)." annotatedElement="_9_0_2_12ab03bf_1121046822515_410382_578"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1121885608703_410931_250" name="titleKey" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121885618515_456879_254" body="A resource message key suited for the view's title." annotatedElement="_9_0_2_12ab03bf_1121885608703_410931_250"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1121885672234_377698_255" name="titleValue" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121885673812_873197_258" body="A default resource message value suited for the page's title." annotatedElement="_9_0_2_12ab03bf_1121885672234_377698_255"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1121885904734_796044_259" name="messageKey" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121885914187_173556_262" body="The default resource message key for this view." annotatedElement="_9_0_2_12ab03bf_1121885904734_796044_259"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1121886034390_196077_263" name="documentationKey" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121886036296_490729_266" body="A resource message key suited for the page's documentation." annotatedElement="_9_0_2_12ab03bf_1121886034390_196077_263"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1121886320515_981486_267" name="documentationValue" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121886325343_636189_272" body="A resource message value suited for the view's documentation." annotatedElement="_9_0_2_12ab03bf_1121886320515_981486_267"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1121886320515_76042_268" name="messageValue" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121886325343_484931_274" body="A displayable version of this view's name." annotatedElement="_9_0_2_12ab03bf_1121886320515_76042_268"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1124055484000_615403_182" name="fullyQualifiedPopulator" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1124055513796_95259_194" body="The fully qualified name of this view's form populator." annotatedElement="_9_0_2_12ab03bf_1124055484000_615403_182"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1124055509796_908228_184" name="populator" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1124055513796_23781_196" body="The name of the form populator for this view." annotatedElement="_9_0_2_12ab03bf_1124055509796_908228_184"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1124058224218_894259_268" name="populatorPath" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1124058448515_240905_271" body="The path to the form populator." annotatedElement="_9_0_2_12ab03bf_1124058224218_894259_268"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1124230508234_910453_166" name="populatorRequired" visibility="public" type="_9_0_1fe00f9_1119336925531_736816_6" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1124230509875_806767_176" body="Indicates if a populator is required for this view." annotatedElement="_9_0_2_12ab03bf_1124230508234_910453_166"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1124746809218_235066_259" name="validationRequired" visibility="public" type="_9_0_1fe00f9_1119336925531_736816_6" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1124746811906_643906_262" body="Indicates whether or not at least one parameter of an outgoing action in this view requires validation." annotatedElement="_9_0_2_12ab03bf_1124746809218_235066_259"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1125759702843_45836_150" name="popup" visibility="public" type="_9_0_1fe00f9_1119336925531_736816_6" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1125759704578_229200_153" body="Indicates if this view represents a popup." annotatedElement="_9_0_2_12ab03bf_1125759702843_45836_150"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1126222601984_842519_0" name="nonTableVariablesPresent" visibility="public" type="_9_0_1fe00f9_1119336925531_736816_6" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1126222604015_885887_16" body="Indicates whether or not any non-table view variables are present in this view." annotatedElement="_9_0_2_12ab03bf_1126222601984_842519_0"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1126288727343_273403_265" name="hasNameOfUseCase" visibility="public" type="_9_0_1fe00f9_1119336925531_736816_6" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1126288784671_758751_270" body="Indicates whether or not this view has the same name as the use case in which it is contained." annotatedElement="_9_0_2_12ab03bf_1126288727343_273403_265"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_5_1_12ab03bf_1128044370734_396264_0" name="formKey" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_5_1_12ab03bf_1128044394718_801206_18" body="The key that stores the form in which information is passed from one action to another." annotatedElement="_9_5_1_12ab03bf_1128044370734_396264_0"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_5_1_12ab03bf_1148064985687_187582_0" name="fromOutcome" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_5_1_12ab03bf_1148064988390_774692_19" body="The name that corresponds to the from-outcome in an navigational rule." annotatedElement="_9_5_1_12ab03bf_1148064985687_187582_0"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_8fd0290_1173027136293_144751_172" name="needsFileUpload" visibility="public" type="_9_0_1fe00f9_1119336925531_736816_6" isReadOnly="true"/> + <ownedAttribute xmi:id="_9_0_8fd0290_1339267008158_867934_0" name="fullyQualifiedPageObjectClassPath" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_8fd0290_1339267077451_828001_23" body="" annotatedElement="_9_0_8fd0290_1339267008158_867934_0"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_8fd0290_1339267048908_10451_3" name="pageObjectClassName" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_8fd0290_1339267077452_861817_27" body="" annotatedElement="_9_0_8fd0290_1339267048908_10451_3"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_8fd0290_1339268040961_598905_0" name="pageObjectBeanName" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_8fd0290_1339268479489_162028_6" body="" annotatedElement="_9_0_8fd0290_1339268040961_598905_0"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_8fd0290_1339268152029_585856_2" name="fullyQualifiedPageObjectClassName" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_8fd0290_1339268479489_281986_8" body="" annotatedElement="_9_0_8fd0290_1339268152029_585856_2"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1121802886359_412365_183" name="forwards" visibility="public" type="_9_0_2_12ab03bf_1121395727890_956704_2933" isOrdered="true" isReadOnly="true" association="_9_0_2_12ab03bf_1121802886359_321706_184"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121802995796_686237_234" body="Gets the forwards which can be targgeted from this view." annotatedElement="_9_0_2_12ab03bf_1121802886359_412365_183"/> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_17_0_6_8fd0290_1366636814439_370374_2855" name="" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_17_0_6_8fd0290_1366636814438_28881_2854" name=""/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_5_1_12ab03bf_1129243940046_729256_12" name="backingValueVariables" visibility="public" type="_9_0_2_12ab03bf_1121887007140_658808_322" isOrdered="true" association="_9_5_1_12ab03bf_1129243940046_957841_13"> + <ownedComment xmi:id="_9_5_1_12ab03bf_1129243992703_588537_71" body="All variables that have backing value." annotatedElement="_9_5_1_12ab03bf_1129243940046_729256_12"/> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_17_0_6_8fd0290_1366636814496_934352_2875" name="" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_17_0_6_8fd0290_1366636814496_334462_2874" name=""/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1124056890640_240665_266" name="formActions" visibility="public" type="_9_0_2_12ab03bf_1121129959140_437795_0" isOrdered="true" isReadOnly="true" association="_9_0_2_12ab03bf_1124056890656_359584_267"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1124056645625_693795_264" body="All actions that have forms associated with them." annotatedElement="_9_0_2_12ab03bf_1124056890640_240665_266"/> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_17_0_6_8fd0290_1366636814471_950947_2867" name="" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_17_0_6_8fd0290_1366636814471_112230_2866" name=""/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1122742749093_663407_540" name="actionForwards" visibility="public" type="_9_0_2_12ab03bf_1121129959140_437795_0" isOrdered="true" isReadOnly="true" association="_9_0_2_12ab03bf_1122742749093_573635_541"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1122742762968_413447_544" body="All those forwards that are actions." annotatedElement="_9_0_2_12ab03bf_1122742749093_663407_540"/> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_17_0_6_8fd0290_1366636814465_686532_2861" name="" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_17_0_6_8fd0290_1366636814465_718677_2860" name=""/> + </ownedAttribute> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_9_0_2_12ab03bf_1121129959140_437795_0" name="JSFAction"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121130089859_573026_83" body="Represents an action taken during a "front-end" event execution on a JSF application." annotatedElement="_9_0_2_12ab03bf_1121129959140_437795_0"/> + <generalization xmi:id="_9_0_2_12ab03bf_1121130078203_559841_72" isSubstitutable="true" general="_9_0_2_12ab03bf_1120792857812_717688_419"/> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1121017764781_122274_334" name="formImplementationName" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121019061562_824451_343" body="The name of the form implementation." annotatedElement="_9_0_2_12ab03bf_1121017764781_122274_334"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1121029565500_805833_441" name="formBeanName" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121029570312_126698_444" body="The name of the bean under which the form is stored." annotatedElement="_9_0_2_12ab03bf_1121029565500_805833_441"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1121017764781_465059_336" name="fullyQualifiedFormImplementationName" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121019061562_997897_347" body="The fully qualified name of the form implementation." annotatedElement="_9_0_2_12ab03bf_1121017764781_465059_336"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1121019745203_551112_434" name="fullyQualifiedFormImplementationPath" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121019747093_841036_440" body="The fully qualified path of the form implementation." annotatedElement="_9_0_2_12ab03bf_1121019745203_551112_434"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1121192540968_731877_179" name="formScope" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121192546625_472315_186" body="The scope of the JSF form (request, session,application,etc)." annotatedElement="_9_0_2_12ab03bf_1121192540968_731877_179"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1121315049203_50560_187" name="formImplementationInterfaceList" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121315052812_544323_190" body="A comma separated list of all the form interfaces which the form implementation implements." annotatedElement="_9_0_2_12ab03bf_1121315049203_50560_187"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1121397989250_869050_3077" name="path" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121397991343_352217_3080" body="The path to this action." annotatedElement="_9_0_2_12ab03bf_1121397989250_869050_3077"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1121398075984_529636_3081" name="pathRoot" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121398077953_626366_3084" body="The path's root." annotatedElement="_9_0_2_12ab03bf_1121398075984_529636_3081"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1121898551156_723412_368" name="messageKey" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121898644953_654880_371" body="The default resource message key for this action." annotatedElement="_9_0_2_12ab03bf_1121898551156_723412_368"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1121902091406_586383_454" name="documentationKey" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121902134937_986036_460" body="A resource message key suited for the action''s documentation." annotatedElement="_9_0_2_12ab03bf_1121902091406_586383_454"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1121902106906_985211_456" name="documentationValue" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121902134937_894812_462" body="The resource messsage value suited for the action''s documentation." annotatedElement="_9_0_2_12ab03bf_1121902106906_985211_456"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1121961935671_327294_481" name="triggerName" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121961946031_581512_488" body="The name of the trigger that triggers that action." annotatedElement="_9_0_2_12ab03bf_1121961935671_327294_481"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1121998281250_654016_505" name="viewFragmentPath" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121998283546_167186_508" body="The path to the view fragment corresponding to this action" annotatedElement="_9_0_2_12ab03bf_1121998281250_654016_505"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1122563336812_210719_0" name="tableLinkName" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1122563483078_232049_104" body="The name of the table link specified for this action." annotatedElement="_9_0_2_12ab03bf_1122563336812_210719_0"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1122563528625_361287_105" name="tableLinkColumnName" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1122563578218_97973_110" body="The name of the column targetted by this action." annotatedElement="_9_0_2_12ab03bf_1122563528625_361287_105"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1122563576453_185549_107" name="tableLink" visibility="public" type="_9_0_1fe00f9_1119336925531_736816_6" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1122563578218_102855_112" body="Indicates if a table link name has been specified and it properly targets a table page-variable from the input page." annotatedElement="_9_0_2_12ab03bf_1122563576453_185549_107"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1122592600125_374842_281" name="hyperlink" visibility="public" type="_9_0_1fe00f9_1119336925531_736816_6" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1122592603265_146357_284" body="Indicates whether or not this action is represented by clicking on a hyperlink." annotatedElement="_9_0_2_12ab03bf_1122592600125_374842_281"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1122746598781_149275_604" name="actionClassName" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1122746703250_84770_609" body="The name of the action class that executes this action." annotatedElement="_9_0_2_12ab03bf_1122746598781_149275_604"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1122746688515_457698_606" name="fullyQualifiedActionClassPath" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1122746703250_574516_611" body="The fully qualified path to the action class that execute this action." annotatedElement="_9_0_2_12ab03bf_1122746688515_457698_606"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1122766607984_930141_612" name="controllerAction" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1122766748156_922666_617" body="The name of the action on the controller that executions this action." annotatedElement="_9_0_2_12ab03bf_1122766607984_930141_612"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1122770742015_230981_620" name="fullyQualifiedActionClassName" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1122770786078_116772_625" body="The fully qualified name of the action class that execute this action." annotatedElement="_9_0_2_12ab03bf_1122770742015_230981_620"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1122906001625_861200_629" name="resettable" visibility="public" type="_9_0_1fe00f9_1119336925531_736816_6" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1122906007453_869495_632" body="Indicates whether or not the values passed along with this action can be reset or not." annotatedElement="_9_0_2_12ab03bf_1122906001625_861200_629"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1123253720562_190317_294" name="formKey" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1123253728968_312954_297" body="The key that stores the form in which information is passed from one action to another." annotatedElement="_9_0_2_12ab03bf_1123253720562_190317_294"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1124149500734_295841_119" name="tableAction" visibility="public" type="_9_0_1fe00f9_1119336925531_736816_6" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1124149502703_173614_145" body="Indicates that this action works on all rows of the table from the table link relation." annotatedElement="_9_0_2_12ab03bf_1124149500734_295841_119"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1124747122046_264114_265" name="validationRequired" visibility="public" type="_9_0_1fe00f9_1119336925531_736816_6" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1124747127500_706614_268" body="Indicates whether or not at least one parameter on this action requires validation." annotatedElement="_9_0_2_12ab03bf_1124747122046_264114_265"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1125616466453_535950_105" name="popup" visibility="public" type="_9_0_1fe00f9_1119336925531_736816_6" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1125616479281_779353_133" body="Indicates if this action forwards to a popup. Only applied when the target is a final state pointing to another use case." annotatedElement="_9_0_2_12ab03bf_1125616466453_535950_105"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1125890570859_845540_123" name="formResetRequired" visibility="public" type="_9_0_1fe00f9_1119336925531_736816_6" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1125890576031_422134_152" body="Indicates if at least one parameter on the form requires being reset." annotatedElement="_9_0_2_12ab03bf_1125890570859_845540_123"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1125938337437_336600_153" name="formReset" visibility="public" type="_9_0_1fe00f9_1119336925531_736816_6" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1125938341234_201038_156" body="Whether or not the entire form should be reset (all action parameters on the form)." annotatedElement="_9_0_2_12ab03bf_1125938337437_336600_153"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_5_1_12ab03bf_1128783973359_103590_0" name="formImplementationGetter" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_5_1_12ab03bf_1128783976031_929854_31" body="The signature of the accessor method that returns the form implementation instance." annotatedElement="_9_5_1_12ab03bf_1128783973359_103590_0"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_5_1_12ab03bf_1128882029921_124090_0" name="formSerialVersionUID" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_5_1_12ab03bf_1128882035000_782493_33" body="The calcuated serial version UID for this action's form." annotatedElement="_9_5_1_12ab03bf_1128882029921_124090_0"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_5_1_12ab03bf_1148061111265_91306_3" name="finalStateTarget" visibility="public" type="_9_0_1fe00f9_1119336925531_736816_6" isReadOnly="true"> + <ownedComment xmi:id="_9_5_1_12ab03bf_1148061159546_44612_38" body="Indicates whether or not a final state is the target of this action." annotatedElement="_9_5_1_12ab03bf_1148061111265_91306_3"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_5_1_12ab03bf_1148066077406_268194_109" name="fromOutcome" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_5_1_12ab03bf_1148066080531_741699_144" body="The name that corresponds to the from-outcome in an navigational rule." annotatedElement="_9_5_1_12ab03bf_1148066077406_268194_109"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_5_1_12ab03bf_1156178309125_554511_137" name="warningMessagesPresent" visibility="public" type="_9_0_1fe00f9_1119336925531_736816_6" isReadOnly="true"> + <ownedComment xmi:id="_9_5_1_12ab03bf_1156178336015_914200_146" body="Whether or not any warning messages are present." annotatedElement="_9_5_1_12ab03bf_1156178309125_554511_137"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_5_1_12ab03bf_1156178309140_645089_138" name="warningMessages" visibility="public" type="_9_0_1fe00f9_1119336925531_817948_60" isReadOnly="true"> + <ownedComment xmi:id="_9_5_1_12ab03bf_1156178336015_486960_148" body="Any messages used to indicate a warning." annotatedElement="_9_5_1_12ab03bf_1156178309140_645089_138"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_5_1_12ab03bf_1156178309140_985399_139" name="successMessagesPresent" visibility="public" type="_9_0_1fe00f9_1119336925531_736816_6" isReadOnly="true"> + <ownedComment xmi:id="_9_5_1_12ab03bf_1156178336015_575190_150" body="Indicates whether or not any success messags are present." annotatedElement="_9_5_1_12ab03bf_1156178309140_985399_139"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_5_1_12ab03bf_1156178309140_463421_140" name="successMessages" visibility="public" type="_9_0_1fe00f9_1119336925531_817948_60" isReadOnly="true"> + <ownedComment xmi:id="_9_5_1_12ab03bf_1156178336015_325784_152" body="Messages used to indicate successful execution." annotatedElement="_9_5_1_12ab03bf_1156178309140_463421_140"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_8fd0290_1196855344151_116864_30" name="needsFileUpload" visibility="public" type="_9_0_1fe00f9_1119336925531_736816_6" isReadOnly="true"/> + <ownedAttribute xmi:id="_9_0_8fd0290_1283619435889_224323_0" name="triggerMethodName" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_8fd0290_1283619528383_455008_2" body="The name of the method to be executed when this action is triggered." annotatedElement="_9_0_8fd0290_1283619435889_224323_0"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_8fd0290_1333364431926_458757_0" name="dialog" visibility="public" type="_9_0_1fe00f9_1119336925531_736816_6" isReadOnly="true"> + <ownedComment xmi:id="_9_0_8fd0290_1333364551085_2736_3" body="Indicates if this action forwards to a dialog (use case runs in different conversation scope). Only applied when the target is a final state pointing to another use case." annotatedElement="_9_0_8fd0290_1333364431926_458757_0"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1122563747500_791156_114" name="tableLinkParameter" visibility="public" type="_9_0_2_12ab03bf_1121887007140_658808_322" isReadOnly="true" association="_9_0_2_12ab03bf_1122563747500_41702_115"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1122563965125_31293_155" body="If the action is a table link then this property represents the table to which is being linked." annotatedElement="_9_0_2_12ab03bf_1122563747500_791156_114"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1124035510015_450825_137" name="hiddenParameters" visibility="public" type="_9_0_2_12ab03bf_1121887007140_658808_322" isOrdered="true" isReadOnly="true" association="_9_0_2_12ab03bf_1124035510015_780910_138"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1124035578484_8680_181" body="All parameters that are of hidden input type." annotatedElement="_9_0_2_12ab03bf_1124035510015_450825_137"/> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_17_0_6_8fd0290_1366636814470_443919_2865" name="" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_17_0_6_8fd0290_1366636814470_96279_2864" name=""/> + </ownedAttribute> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_9_0_2_12ab03bf_1121377580440_489284_2626" name="JSFController"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121378836002_816292_2657" body="Represents a controller for a JSF application." annotatedElement="_9_0_2_12ab03bf_1121377580440_489284_2626"/> + <generalization xmi:id="_9_0_2_12ab03bf_1121377640971_232089_2642" isSubstitutable="true" general="_9_0_2_12ab03bf_1120167034531_347865_28"/> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1121378825799_752253_2653" name="implementationName" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121378836018_400023_2659" body="The implementation name of this controller." annotatedElement="_9_0_2_12ab03bf_1121378825799_752253_2653"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1121378825815_674068_2654" name="fullyQualifiedImplementationName" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121378836018_790989_2661" body="The fully qualified implementation name of this controller." annotatedElement="_9_0_2_12ab03bf_1121378825815_674068_2654"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1121379684065_454496_2662" name="fullyQualifiedImplementationPath" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121379723236_879892_2665" body="The fully qualified path to the controller implemention file." annotatedElement="_9_0_2_12ab03bf_1121379684065_454496_2662"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1121380077393_137410_2666" name="beanName" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121380079690_743357_2669" body="The bean name of this controller (this is what is stored in the JSF configuration file)." annotatedElement="_9_0_2_12ab03bf_1121380077393_137410_2666"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_8fd0290_1230573928943_207150_0" name="controllerSerialVersionUID" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_8fd0290_1230573951344_334941_2" body="The calculated serial version UID for this controller." annotatedElement="_9_0_8fd0290_1230573928943_207150_0"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_8fd0290_1334932986284_974948_206" name="allServices" visibility="public" type="_9_0_1fe00f9_1119336925531_331753_26" isReadOnly="true"> + <ownedComment xmi:id="_9_0_8fd0290_1334933053401_569552_214" body="All services the controller needs." annotatedElement="_9_0_8fd0290_1334932986284_974948_206"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_8fd0290_1334932470923_116913_43" name="servicesPackagesReferences" visibility="public" type="_d860307_1071505297814_60220_1019" isOrdered="true" isReadOnly="true" association="_9_0_8fd0290_1334932470923_439911_44"> + <ownedComment xmi:id="_9_0_8fd0290_1334932558640_914636_89" body="References to packages containing services this controller depends" annotatedElement="_9_0_8fd0290_1334932470923_116913_43"/> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_17_0_6_8fd0290_1366636814535_546425_2883" name="" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_17_0_6_8fd0290_1366636814534_564729_2882" name=""/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_5_1_12ab03bf_1128289118531_895857_305" name="sessionObjectReferences" visibility="public" type="_d860307_1071505297814_60220_1019" isOrdered="true" isReadOnly="true" association="_9_5_1_12ab03bf_1128289118531_989553_306"> + <ownedComment xmi:id="_9_5_1_12ab03bf_1128289193640_352933_348" body="All dependencies to VOs to be kept in the session." annotatedElement="_9_5_1_12ab03bf_1128289118531_895857_305"/> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_17_0_6_8fd0290_1366636814495_284872_2873" name="" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_17_0_6_8fd0290_1366636814495_872096_2872" name=""/> + </ownedAttribute> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_9_0_2_12ab03bf_1121395464593_689720_2822" name="JSFFinalState"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121395552265_177472_2851" body="Represents a final state in a JSF use case." annotatedElement="_9_0_2_12ab03bf_1121395464593_689720_2822"/> + <generalization xmi:id="_9_0_2_12ab03bf_1121395500171_577059_2838" isSubstitutable="true" general="_9_0_2_12ab03bf_1120835338500_225560_590"/> + <ownedAttribute xmi:id="_9_0_2_12ab03bf_1121395538984_661011_2849" name="path" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_2_12ab03bf_1121395552265_709618_2853" body="The path to which this final state points." annotatedElement="_9_0_2_12ab03bf_1121395538984_661011_2849"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_8fd0290_1333800558483_31793_0" name="targetControllerFullyQualifiedName" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_8fd0290_1333800636980_443837_4" body="The target controller to which this final state points." annotatedElement="_9_0_8fd0290_1333800558483_31793_0"/> + </ownedAttribute> + <ownedAttribute xmi:id="_9_0_8fd0290_1333800559826_977527_1" name="targetControllerBeanName" visibility="public" type="_9_0_1fe00f9_1119336925531_364079_66" isReadOnly="true"> + <ownedComment xmi:id="_9_0_8fd0290_1333800636981_442873_6" body="The controller bean ... [truncated message content] |