|
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] |