ontomde-java 2.0.0 → 2.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +11 -0
- data/Manifest.txt +1 -51
- data/lib/ontomde-java.rb +2 -0
- data/lib/ontomde-java/crank.rb +8 -8
- data/lib/ontomde-java/crank/crankJpa.rb +58 -8
- data/lib/ontomde-java/crank/main.rb +38 -21
- data/lib/ontomde-java/frontend/command.rb +7 -7
- data/lib/ontomde-java/frontend/command.rdoc +0 -583
- data/lib/ontomde-java/frontend/defaultOptions.rb +12 -7
- data/lib/ontomde-java/frontend/options.rb +19 -2
- data/lib/ontomde-java/frontend/steps.rb +36 -5
- data/lib/ontomde-java/java/accessorCode.rb +250 -94
- data/lib/ontomde-java/java/accessorSignature.rb +50 -4
- data/lib/ontomde-java/java/annotationOntoMDE.rb +38 -27
- data/lib/ontomde-java/java/component.rb +141 -68
- data/lib/ontomde-java/java/enumAssignable.rb +46 -5
- data/lib/ontomde-java/java/java.rb +111 -40
- data/lib/ontomde-java/java/javaDatatypeMapping.rb +35 -1
- data/lib/ontomde-java/java/javadoc.rb +35 -22
- data/lib/ontomde-java/java/operationAsClass.rb +13 -0
- data/lib/ontomde-java/java/security.rb +10 -2
- data/lib/ontomde-java/java/stateMachine.rb +137 -74
- data/lib/ontomde-java/java/tenant.rb +1 -0
- data/lib/ontomde-java/java/xsd.rb +1 -1
- data/lib/ontomde-java/jpa/configuration.rb +25 -1
- data/lib/ontomde-java/jpa/finder.rb +48 -13
- data/lib/ontomde-java/jpa/jpa.rb +30 -14
- data/lib/ontomde-java/jpa/mapping.rb +114 -60
- data/lib/ontomde-java/jpa/redefined.rb +21 -5
- data/lib/ontomde-java/jpa/simulationAutoImplement.rb +1 -1
- data/lib/ontomde-java/jpdl/processOperationToClass.rb +1 -2
- data/lib/ontomde-java/kbjava/rdfToJava.rb +25 -16
- data/lib/ontomde-java/struts.rb +1 -1
- data/lib/ontomde-java/struts/MessageResources.rb +15 -6
- data/lib/ontomde-java/struts/action.rb +37 -13
- data/lib/ontomde-java/struts/form.rb +97 -7
- data/lib/ontomde-java/struts/header.rb +7 -3
- data/lib/ontomde-java/struts/jsp_edit.rb +54 -24
- data/lib/ontomde-java/struts/jsp_edit_js.rb +1 -1
- data/lib/ontomde-java/struts/jsp_index.rb +6 -4
- data/lib/ontomde-java/struts/mappingForJsp.rb +11 -7
- data/lib/ontomde-java/struts/mappingToJavaHierarchy.rb +16 -2
- data/lib/ontomde-java/version.rb +1 -1
- data/lib/ontomde-java/vmware/vso.rb +329 -0
- data/test/test_export_ea7_1_829.rb +5 -0
- data/test/test_export_ea7_1_833.rb +5 -0
- data/test/test_export_ea7_5_843.rb +5 -0
- data/test/test_export_magicDraw.rb +4 -0
- data/test/test_export_oe530.rb +1 -1
- data/test/test_export_oe600.rb +1 -1
- data/test/test_export_rsm60.rb +1 -1
- data/test/{uml_test.rb → test_export_unitTests.rb} +6 -1
- metadata +9 -56
- data/generateRdocFile.sh +0 -16
- data/profiling.xls +0 -0
- data/test/.classpath +0 -14
- data/test/.project +0 -17
- data/test/.settings/org.eclipse.jdt.core.prefs +0 -23
- data/test/Rakefile +0 -71
- data/test/build.xml +0 -34
- data/test/classpath.rb +0 -15
- data/test/lib/junit-4.1.jar +0 -0
- data/test/load1.rb +0 -3
- data/test/load2.rb +0 -3
- data/test/log4j.properties +0 -46
- data/test/model/.project +0 -11
- data/test/model/BigProject.mdzip +0 -0
- data/test/model/BigProject.mdzip.nt +0 -102866
- data/test/model/ClassDiagram.EntArch.gif +0 -0
- data/test/model/ClassDiagram.emx.gif +0 -0
- data/test/model/ClassDiagram.mdzip.gif +0 -0
- data/test/model/model_ea71.bis.ea.xmi +0 -149
- data/test/model/model_ea71.ea.xmi +0 -4470
- data/test/model/model_ea71.eap +0 -0
- data/test/model/model_ea71_README.txt +0 -8
- data/test/model/multipleInheritance.emx +0 -466
- data/test/model/multipleInheritance.emx.nt +0 -2428
- data/test/model/simple1-530.ofp +0 -0
- data/test/model/simple1-includedAsReference.emx +0 -169
- data/test/model/simple1.emx +0 -3729
- data/test/model/simple1.emx.fragments.nt +0 -81
- data/test/model/simple1.emx.nt +0 -5760
- data/test/model/simple1.mdzip +0 -0
- data/test/model/simple1.mdzip.nt +0 -11500
- data/test/model/simple1.oe530.nt +0 -1986
- data/test/model/simple1.oe600.nt +0 -1627
- data/test/src/RuntimeTest.java +0 -656
- data/test/src/testsLevel1.java +0 -174
- data/test/src/testsLevel2.java +0 -29
- data/test/src/testsLevel3.java +0 -40
- data/test/test-ea7.sh +0 -15
- data/test/test-magicDraw.sh +0 -10
- data/test/test-mi.sh +0 -9
- data/test/test-oe530.sh +0 -10
- data/test/test-oe600.sh +0 -11
- data/test/test-rsm.sh +0 -11
- data/test/test_export_ea71.rb +0 -5
- data/test/trace +0 -419
- data/test/uml_test.xls +0 -0
- data/test/unit_test.rb +0 -6
|
@@ -33,9 +33,9 @@ module Muml_Class
|
|
|
33
33
|
param=context[:db_useExtraTypeParameterForFindAll] ? "(#{self.java_qualifiedName})null" : ""
|
|
34
34
|
tenantClause=''
|
|
35
35
|
if context[:multiTenant]
|
|
36
|
-
tenantClause="#{
|
|
36
|
+
tenantClause="get#{TENANT_FIELD_BEAN_NAME}(),"
|
|
37
37
|
end
|
|
38
|
-
return "#{java_DAOClass_one.java_qualifiedName}.findAll(#{tenantClause}#{param})"
|
|
38
|
+
return "#{java_DAOClass_one.java_qualifiedName}.findAll(#{tenantClause}#{param},0,-1)"
|
|
39
39
|
end
|
|
40
40
|
|
|
41
41
|
#Method redefined from ontomde-java
|
|
@@ -46,7 +46,13 @@ module Muml_Class
|
|
|
46
46
|
#TODO: recherche du composite commun
|
|
47
47
|
#TODO: transient object do not have a valid uniq id
|
|
48
48
|
|
|
49
|
-
#
|
|
49
|
+
# When otherSide has cardinality 1, we do not
|
|
50
|
+
# suggest an element if it is already assigned.
|
|
51
|
+
# Feature is only available when other side is navigable
|
|
52
|
+
# because we don't want a big overhead.
|
|
53
|
+
oe=oa.umlx_otherEnd
|
|
54
|
+
filterOut=!oe.nil? && oe.umlx_isNavigable? && oe.umlx_oneSide?
|
|
55
|
+
|
|
50
56
|
if !oa.umlx_manySide?
|
|
51
57
|
write( %{
|
|
52
58
|
java.util.List<#{oa.uml_type_one.java_qualifiedName}> ret=#{oa.uml_type_one.db_getFindAllCall};
|
|
@@ -54,7 +60,17 @@ java.util.List<#{oa.uml_type_one.java_qualifiedName}> ret=#{oa.uml_type_one.db_g
|
|
|
54
60
|
if(elt!=null && !ret.contains(elt)) {
|
|
55
61
|
ret.add(elt);
|
|
56
62
|
}
|
|
57
|
-
|
|
63
|
+
#{%{java.util.Iterator<?> iter=ret.iterator();
|
|
64
|
+
#{oa.uml_type_one.java_qualifiedName} item=null;
|
|
65
|
+
while(iter.hasNext()){
|
|
66
|
+
item=(#{oa.uml_type_one.java_qualifiedName}) iter.next();
|
|
67
|
+
if(item.get#{oe.java_NameBean}()!=null && item.get#{oe.java_NameBean}()!=this) {
|
|
68
|
+
iter.remove();
|
|
69
|
+
}
|
|
70
|
+
}} if filterOut}
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
return ret;\n})
|
|
58
74
|
else
|
|
59
75
|
write( %{
|
|
60
76
|
java.util.List<#{oa.uml_type_one.java_qualifiedName}> ret=#{oa.uml_type_one.db_getFindAllCall};
|
|
@@ -63,7 +79,7 @@ java.util.List<#{oa.uml_type_one.java_qualifiedName}> ret=#{oa.uml_type_one.db_g
|
|
|
63
79
|
java.util.Iterator<?> iter=get#{oa.java_NameBean}().iterator();
|
|
64
80
|
while(iter.hasNext()){
|
|
65
81
|
item=(#{oa.uml_type_one.java_qualifiedName}) iter.next();
|
|
66
|
-
if(!ret.contains(item)) {
|
|
82
|
+
if(!ret.contains(item) #{"&& (item.get#{oe.java_NameBean}()==null || item.get#{oe.java_NameBean}()==this)" if filterOut} ) {
|
|
67
83
|
ret.add(item);
|
|
68
84
|
}
|
|
69
85
|
}
|
|
@@ -40,7 +40,7 @@ module Muml_Operation
|
|
|
40
40
|
#not a persistent class
|
|
41
41
|
return
|
|
42
42
|
elsif fp.umlx_oneSide?
|
|
43
|
-
self.java_code=%{#{JPA_TEST_CODE_TOP}\nreturn #{fp.uml_type_one.db_getFindAllCall}.get(0);}
|
|
43
|
+
self.java_code=%{#{JPA_TEST_CODE_TOP}\nreturn #{fp.uml_type_one.db_getFindAllCall}.isEmpty() ? null : #{fp.uml_type_one.db_getFindAllCall}.get(0);}
|
|
44
44
|
elsif fp.uml_isOrdered?
|
|
45
45
|
self.java_code=%{#{JPA_TEST_CODE_TOP}\nreturn #{fp.uml_type_one.db_getFindAllCall};}
|
|
46
46
|
else
|
|
@@ -133,8 +133,7 @@ module Muml_Class
|
|
|
133
133
|
#m.uml_isStatic=RDF_TRUE
|
|
134
134
|
|
|
135
135
|
param=m.umlx_createAndAddParameter(m.rdf_uri+"_this","_this")
|
|
136
|
-
i=c.
|
|
137
|
-
i.java_isGeneric=RDF_TRUE
|
|
136
|
+
i=c.umlx_getOrCreateGeneric(DB::EntityInterface,DB::EntityGenericParameter)
|
|
138
137
|
param.uml_type=i
|
|
139
138
|
param.uml_direction=Cuml_ParameterDirectionKind::In
|
|
140
139
|
param.uml_upperValue=umlx_literal(1)
|
|
@@ -91,20 +91,20 @@ END
|
|
|
91
91
|
#also avoid org.junit.* import notused warning in Eclipse
|
|
92
92
|
n.java_customCode="@Test\npublic void replaceWithMeaningfulTest(){}\n"
|
|
93
93
|
|
|
94
|
-
|
|
95
|
-
#TODO merge referenced items
|
|
96
|
-
m.java_code="return this;"
|
|
97
|
-
p=m.umlx_createAndAddReturnParameter(m.rdf_uri+'_ret',"return")
|
|
98
|
-
p.uml_type=n
|
|
99
|
-
m.umlx_businessMethod=RDF_FALSE
|
|
94
|
+
return if uml_type.context[:rel_mapping] == 'none'
|
|
100
95
|
|
|
96
|
+
m=n.umlx_createAndAddOperation(n.rdf_uri+"merge","merge");
|
|
97
|
+
#TODO merge referenced items
|
|
98
|
+
m.java_code="return this;"
|
|
99
|
+
p=m.umlx_createAndAddReturnParameter(m.rdf_uri+'_ret',"return")
|
|
100
|
+
p.uml_type=n
|
|
101
|
+
m.umlx_businessMethod=RDF_FALSE
|
|
101
102
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
103
|
+
persist=n.umlx_createAndAddOperation(n.rdf_uri+"persist","persist");
|
|
104
|
+
persist.java_code="" # #{java_debug(%{log.debug("persisting referenced persistent elements");}\n}"
|
|
105
|
+
p=persist.umlx_createAndAddReturnParameter(persist.rdf_uri+'_ret',"return")
|
|
106
|
+
p.uml_type=n
|
|
107
|
+
persist.umlx_businessMethod=RDF_FALSE
|
|
108
108
|
|
|
109
109
|
#v=n.umlx_createAndAddProperty(n.rdf_uri+"__source","source");
|
|
110
110
|
|
|
@@ -128,7 +128,7 @@ END
|
|
|
128
128
|
u=d.rdf_type.kbjava_uml_model_element(@kbjava_umlSourceModel)
|
|
129
129
|
p=n.umlx_createAndAddProperty(n.rdf_uri+d.rdf_uri,"#{d.kb_UML_INSTANCE_ALIAS}");
|
|
130
130
|
p.uml_type=u
|
|
131
|
-
p.uml_isReadOnly=
|
|
131
|
+
p.uml_isReadOnly=RDF_FALSE
|
|
132
132
|
p.java_code="null"
|
|
133
133
|
|
|
134
134
|
j="#{j}\n set#{p.java_NameBean}(source.get#{p.java_NameBean}());"
|
|
@@ -138,7 +138,7 @@ END
|
|
|
138
138
|
m=n.umlx_createAndAddOperation(n.rdf_uri+"initData","initData")
|
|
139
139
|
m.umlx_businessMethod=RDF_FALSE
|
|
140
140
|
m.java_code="#{j} return this;"
|
|
141
|
-
m.java_annotation_add(%{@SuppressWarnings("unused")})
|
|
141
|
+
#m.java_annotation_add(%{@SuppressWarnings("unused")})
|
|
142
142
|
p=m.umlx_createAndAddReturnParameter(m.rdf_uri+'_ret',"return")
|
|
143
143
|
p.uml_type=n
|
|
144
144
|
|
|
@@ -188,6 +188,7 @@ class ::Crdfs_Class
|
|
|
188
188
|
# Create attributes and every init methods (body expected)
|
|
189
189
|
uml_type.kb_coverage_add(self)
|
|
190
190
|
p=umlDataClass.umlx_createAndAddProperty(umlDataClass.rdf_uri+kbjava_varName,kbjava_varName.to_s)
|
|
191
|
+
p.uml_isReadOnly=RDF_TRUE
|
|
191
192
|
p.uml_type=uml_type
|
|
192
193
|
p.uml_visibility= Cuml_VisibilityKind::Private
|
|
193
194
|
#p.java_noAccessors=RDF_TRUE
|
|
@@ -212,8 +213,8 @@ class ::Crdfs_Class
|
|
|
212
213
|
#p=self.kbjava_property_one
|
|
213
214
|
i.java_code= <<ENDinit
|
|
214
215
|
if(#{p.java_Name}==null){
|
|
215
|
-
#{p.
|
|
216
|
-
#{p.
|
|
216
|
+
#{p.uml_type_one.java_qualifiedName} elt= new #{uml_type.java_qualifiedName}();
|
|
217
|
+
#{p.java_Name}=elt;
|
|
217
218
|
#{mtk_stss{kbjava_writeJavaObjectSetters(dataSource)}}
|
|
218
219
|
}
|
|
219
220
|
return #{p.java_Name};
|
|
@@ -359,6 +360,14 @@ class DatatypeMappingLong < DatatypeMappingOrdinal
|
|
|
359
360
|
return valitem.gsub(/^0*([0-9])/,'\1')
|
|
360
361
|
end
|
|
361
362
|
end
|
|
363
|
+
class DatatypeMappingLongObject < DatatypeMappingOrdinal
|
|
364
|
+
# Protege string to Java code conversions
|
|
365
|
+
def prot_convertToJava(umlprop,valitem)
|
|
366
|
+
#Remove leading 0 (octal)
|
|
367
|
+
return %{new Long("#{valitem.gsub(/^0*([0-9])/,'\1')}")}
|
|
368
|
+
end
|
|
369
|
+
end
|
|
370
|
+
|
|
362
371
|
class DatatypeMappingFile < DatatypeMapping
|
|
363
372
|
# Protege string to Java code conversions
|
|
364
373
|
def prot_convertToJava(umlprop,valitem)
|
data/lib/ontomde-java/struts.rb
CHANGED
|
@@ -20,8 +20,8 @@ require 'ontomde-java/struts/blob.rb'
|
|
|
20
20
|
require 'ontomde-java/struts/reloadAction.rb'
|
|
21
21
|
require 'ontomde-java/struts/xmlForm.rb'
|
|
22
22
|
require 'ontomde-java/struts/spring.rb'
|
|
23
|
-
require 'ontomde-java/struts/mappingForBean.rb'
|
|
24
23
|
require 'ontomde-java/struts/mappingForJsp.rb'
|
|
25
24
|
require 'ontomde-java/struts/mappingToJavaHierarchy.rb'
|
|
26
25
|
require 'ontomde-java/struts/exceptionHandling.rb'
|
|
26
|
+
require 'ontomde-java/struts/mappingForBean.rb'
|
|
27
27
|
|
|
@@ -87,13 +87,14 @@ def writeMessagesFromModel(locale,fillFromModel=false,test=false)
|
|
|
87
87
|
write "# Enumerations\n"
|
|
88
88
|
write "# *********************\n"
|
|
89
89
|
uml_Class_all.each {|c|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
90
|
+
if c.kind_of?(Muml_Enumeration)
|
|
91
|
+
java_genEnumMsgRes(c,fillFromModel,locale)
|
|
92
|
+
else
|
|
93
|
+
c.uml_nestedClassifier.each { |nc|
|
|
94
|
+
next unless nc.kind_of?(Muml_Enumeration)
|
|
95
|
+
java_genEnumMsgRes(nc,fillFromModel,locale)
|
|
96
96
|
}
|
|
97
|
+
end
|
|
97
98
|
}
|
|
98
99
|
|
|
99
100
|
write "# *********************\n"
|
|
@@ -101,6 +102,14 @@ def writeMessagesFromModel(locale,fillFromModel=false,test=false)
|
|
|
101
102
|
write "# *********************\n"
|
|
102
103
|
|
|
103
104
|
end
|
|
105
|
+
def java_genEnumMsgRes(c,fillFromModel,locale)
|
|
106
|
+
msg=c.java_enumAssignableDataType_inv.empty? ? "-- --" : "create and add"
|
|
107
|
+
struts_writeMsgRes("#{c.java_qualifiedName}.#{::Muml_Property::NIL_LVB_RES_KEY}",msg,!fillFromModel,locale)
|
|
108
|
+
|
|
109
|
+
c.uml_ownedLiteral.each {|ol|
|
|
110
|
+
struts_writeMsgRes("#{c.java_qualifiedName}.#{ol.java_Name}",ol.to_s,!fillFromModel,locale)
|
|
111
|
+
}
|
|
112
|
+
end
|
|
104
113
|
|
|
105
114
|
MESSAGE_RES_EN=<<ENDEN
|
|
106
115
|
java.lang.Boolean.true=true
|
|
@@ -14,7 +14,7 @@ module Muml_Classifier
|
|
|
14
14
|
#terminate local treatment and return control to calling controller.
|
|
15
15
|
STRUTS_RETURN_ACTION="returnTo"
|
|
16
16
|
#Resume local treatment avect geting control back from another controler.
|
|
17
|
-
STRUTS_RESUME_ACTION="
|
|
17
|
+
STRUTS_RESUME_ACTION="resumeAct"
|
|
18
18
|
|
|
19
19
|
STRUTS_REFRESH_ACTION="executeRefresh"
|
|
20
20
|
STRUTS_SGBD_STATE="sgbd_state"
|
|
@@ -75,7 +75,7 @@ ENDMETH
|
|
|
75
75
|
|
|
76
76
|
def struts_addActionBiz!
|
|
77
77
|
action=struts_createAndAddActionBase!
|
|
78
|
-
|
|
78
|
+
struts_addStartEditActionBiz!(action)
|
|
79
79
|
|
|
80
80
|
struts_addsetTimeZoneAction!(action)
|
|
81
81
|
struts_addsetSkinAction!(action)
|
|
@@ -114,6 +114,14 @@ ENDMETH
|
|
|
114
114
|
end
|
|
115
115
|
|
|
116
116
|
def struts_addProceedBizAction!(action)
|
|
117
|
+
# form contains a parameter generated from an operation return parameter
|
|
118
|
+
# if true, proceed has no return to display. Thus, return screen is skipped
|
|
119
|
+
hasMethodToClassReturn=false;
|
|
120
|
+
struts_formAttribute.each { |a|
|
|
121
|
+
hasMethodToClassReturn=a.java_isMethodToClassReturn?
|
|
122
|
+
break if hasMethodToClassReturn
|
|
123
|
+
}
|
|
124
|
+
|
|
117
125
|
proceed=action.struts_createAndAddExecuteOperation(STRUTS_PROCEED_ACTION)
|
|
118
126
|
proceed.java_code=<<ENDMETH
|
|
119
127
|
#{struts_formCastJavaCode}
|
|
@@ -121,13 +129,28 @@ ENDMETH
|
|
|
121
129
|
form.getReference().proceed();
|
|
122
130
|
form.initFromReference();
|
|
123
131
|
form.set#{STRUTS_DISPATCH_FIELD_METH}("#{STRUTS_CREATE_ACTION}");
|
|
124
|
-
|
|
132
|
+
#{!hasMethodToClassReturn ? "return returnTo(mapping, abstractForm, request, response);": %{return new org.apache.struts.action.ActionForward("/pages/#{java_InternalFilePath}form/#{java_Name}#{STRUTS_RESULTS_FWD}.jsp",false);}}
|
|
125
133
|
ENDMETH
|
|
126
134
|
end
|
|
127
135
|
|
|
128
136
|
STRUTS_SESSION_KEY_EditAction="objToEdit"
|
|
137
|
+
JUMP_TO_PROCEED=<<ENDSKIP
|
|
138
|
+
if (form.getReference().get#{STRUTS_APPLY_TO_PROP}()!=null) {
|
|
139
|
+
//form contains only #{STRUTS_APPLY_TO_PROP} field and it is not null
|
|
140
|
+
//skip input screen and jump to #{STRUTS_PROCEED_ACTION}
|
|
141
|
+
return #{STRUTS_PROCEED_ACTION}(mapping, abstractForm, request, response);
|
|
142
|
+
}
|
|
143
|
+
ENDSKIP
|
|
129
144
|
|
|
130
|
-
def
|
|
145
|
+
def struts_addStartEditActionBiz!(action)
|
|
146
|
+
#puts "############# #{uml_name} #{struts_formAttribute.length}"
|
|
147
|
+
# add code to skip input screen when no user input is necessary
|
|
148
|
+
# (first attribute is applyTo)
|
|
149
|
+
optCode= struts_formAttribute(false,true).length > 0 ? '' : JUMP_TO_PROCEED
|
|
150
|
+
return struts_addStartEditAction!(action,optCode)
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
def struts_addStartEditAction!(action,optCode="")
|
|
131
154
|
edit=action.struts_createAndAddExecuteOperation(STRUTS_ACTION_STARTEDIT)
|
|
132
155
|
edit.java_code= <<ENDCODE
|
|
133
156
|
#{struts_formCastJavaCode}
|
|
@@ -136,7 +159,7 @@ ENDMETH
|
|
|
136
159
|
session.removeAttribute("#{STRUTS_SESSION_KEY_EditAction}");
|
|
137
160
|
form.setReference(obj);
|
|
138
161
|
form.initFromReference();
|
|
139
|
-
form.setSgbd_state("#{STRUTS_UPDATE_ACTION}");
|
|
162
|
+
form.setSgbd_state("#{STRUTS_UPDATE_ACTION}"); #{optCode}
|
|
140
163
|
return mapping.findForward("#{STRUTS_INPUT_FWD}");
|
|
141
164
|
ENDCODE
|
|
142
165
|
end
|
|
@@ -250,6 +273,14 @@ ENDCODE
|
|
|
250
273
|
end
|
|
251
274
|
|
|
252
275
|
|
|
276
|
+
PROCEED_ACTION_CODE=<<ENDTPL
|
|
277
|
+
String msg="unexpected value for #{STRUTS_SGBD_STATE_PROP} in #{STRUTS_PROCEED_ACTION}";
|
|
278
|
+
log.error(msg);
|
|
279
|
+
org.apache.struts.action.ActionErrors ae=new org.apache.struts.action.ActionErrors();
|
|
280
|
+
ae.add("Error processing request",new org.apache.struts.action.ActionMessage("errors.ioException",msg));
|
|
281
|
+
saveErrors(request, ae);
|
|
282
|
+
return mapping.findForward("#{STRUTS_INPUT_FWD}");
|
|
283
|
+
ENDTPL
|
|
253
284
|
|
|
254
285
|
def struts_addProceedAction!(action)
|
|
255
286
|
proca=action.struts_createAndAddExecuteOperation(STRUTS_PROCEED_ACTION)
|
|
@@ -261,14 +292,7 @@ String s=form.get#{STRUTS_SGBD_STATE_PROP}();
|
|
|
261
292
|
[STRUTS_NEW_ACTION,STRUTS_CREATE_ACTION,STRUTS_UPDATE_ACTION,STRUTS_READ_ACTION,STRUTS_DELETE_ACTION].each {|m|
|
|
262
293
|
j=j+%{if(s.compareTo("#{m}")==0) { return #{m}(mapping,form,request,response); }\n}
|
|
263
294
|
}
|
|
264
|
-
j=j
|
|
265
|
-
String msg="unexpected value for #{STRUTS_SGBD_STATE_PROP} in #{STRUTS_PROCEED_ACTION}";
|
|
266
|
-
log.error(msg);
|
|
267
|
-
org.apache.struts.action.ActionErrors ae=new org.apache.struts.action.ActionErrors();
|
|
268
|
-
ae.add("Error processing request",new org.apache.struts.action.ActionMessage("errors.ioException",msg));
|
|
269
|
-
saveErrors(request, ae);
|
|
270
|
-
return mapping.findForward("#{STRUTS_INPUT_FWD}");
|
|
271
|
-
}
|
|
295
|
+
j=j+PROCEED_ACTION_CODE
|
|
272
296
|
proca.java_code=j
|
|
273
297
|
end
|
|
274
298
|
|
|
@@ -46,7 +46,7 @@ module Muml_Classifier
|
|
|
46
46
|
}
|
|
47
47
|
end
|
|
48
48
|
#every attribute meant to appear in the form.
|
|
49
|
-
def struts_formAttribute(ignoreDbId=false)
|
|
49
|
+
def struts_formAttribute(ignoreDbId=false,ignoreApplyToOrReturn=false)
|
|
50
50
|
#tab=context[:struts_tab,nil]
|
|
51
51
|
|
|
52
52
|
ret=Array.new
|
|
@@ -55,6 +55,7 @@ module Muml_Classifier
|
|
|
55
55
|
cgi.each { |c|
|
|
56
56
|
c.uml_ownedAttribute.each { |a|
|
|
57
57
|
next if a.struts_ignoreInForm?(ignoreDbId)
|
|
58
|
+
next if ignoreApplyToOrReturn && a.java_isMethodToClassApplyToOrReturn?
|
|
58
59
|
ret << a
|
|
59
60
|
}
|
|
60
61
|
}
|
|
@@ -159,15 +160,20 @@ module Muml_Classifier
|
|
|
159
160
|
#log.debug{ "addCopyTo #{self}" }
|
|
160
161
|
form=struts_actionForm_one
|
|
161
162
|
cpt=form.umlx_createAndAddOperation(form.rdf_uri+"_copyTo","copyTo")
|
|
162
|
-
cpt.java_annotation_add(%{@SuppressWarnings("unused")})
|
|
163
|
+
#cpt.java_annotation_add(%{@SuppressWarnings("unused")})
|
|
163
164
|
pcpt=cpt.umlx_createAndAddParameter(cpt.rdf_uri+"_to","_to")
|
|
164
165
|
pcpt.uml_direction=Cuml_ParameterDirectionKind::Inout
|
|
165
166
|
pcpt.uml_type=self
|
|
166
167
|
code="java.util.TimeZone currentTimeZone = java.util.TimeZone.getTimeZone(get#{STRUTS_SETTIMEZONE_BEAN}());"
|
|
168
|
+
code=code+"if(currentTimeZone==null) {}\n" # quick hack to avoid unused/not unused warning
|
|
167
169
|
struts_formAttribute.each { |a|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
170
|
+
if(a.uml_isReadOnly?)
|
|
171
|
+
code=code+"\t\/\/ a.java_NameBean (read-only)\n"
|
|
172
|
+
else
|
|
173
|
+
code=code+"if(this.get#{a.java_NameBean}()!=null) {\n " if(STRUTS_ACCEPT_NULL_FIELD_IN_FORMS)
|
|
174
|
+
code=code+"#{DatatypeMapping.instance.getMapping(a.uml_type_one).getFormCopyTo(a)}"
|
|
175
|
+
code=code+" }//test !=null\n" if(STRUTS_ACCEPT_NULL_FIELD_IN_FORMS)
|
|
176
|
+
end
|
|
171
177
|
}
|
|
172
178
|
|
|
173
179
|
cpt.java_code=code
|
|
@@ -194,7 +200,7 @@ module Muml_Classifier
|
|
|
194
200
|
def struts_addInitFrom!
|
|
195
201
|
form=struts_actionForm_one
|
|
196
202
|
inf=form.umlx_createAndAddOperation(form.rdf_uri+"_initFrom","initFrom")
|
|
197
|
-
inf.java_annotation_add(%{@SuppressWarnings("unused")})
|
|
203
|
+
#inf.java_annotation_add(%{@SuppressWarnings("unused")})
|
|
198
204
|
pinf=inf.umlx_createAndAddParameter(inf.rdf_uri+"_from","_from")
|
|
199
205
|
pinf.uml_type=self
|
|
200
206
|
pinf.uml_direction=Cuml_ParameterDirectionKind::In
|
|
@@ -277,9 +283,14 @@ module Muml_Property
|
|
|
277
283
|
struts_addActionFormAttributeEnumeration!(form)
|
|
278
284
|
elsif uml_type_one.kind_of?(Muml_DataType)
|
|
279
285
|
a2=struts_copyAsFormField!(form)
|
|
280
|
-
|
|
286
|
+
|
|
287
|
+
#Force cardinality to one (array of primitive is handeld has multi-line text)
|
|
288
|
+
a2.uml_upperValue=form.umlx_literal(1)
|
|
289
|
+
|
|
281
290
|
tpl=DatatypeMapping.instance.getMapping(uml_type_one)
|
|
282
291
|
a2.uml_type=tpl.getFormType(form)
|
|
292
|
+
|
|
293
|
+
|
|
283
294
|
else
|
|
284
295
|
struts_addActionFormAttributeReference!(form)
|
|
285
296
|
|
|
@@ -431,6 +442,85 @@ public static java.util.List<#{STRUTS_LVB}> #{STRUTS_FORM_HELPER_ENUMTOLVB}(fina
|
|
|
431
442
|
throw(e);
|
|
432
443
|
}
|
|
433
444
|
}
|
|
445
|
+
@SuppressWarnings("unchecked")
|
|
446
|
+
public static <T> java.util.Set<T> toBean(T[] t, java.util.Set<T> nullCast) {
|
|
447
|
+
java.util.Set<T> ret = null;
|
|
448
|
+
if (t != null) {
|
|
449
|
+
ret = (java.util.Set<T>) new java.util.HashSet<T>();
|
|
450
|
+
for (int i = 0; i < t.length; i++) {
|
|
451
|
+
ret.add(t[i]);
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
return ret;
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
@SuppressWarnings("unchecked")
|
|
458
|
+
public static <T> java.util.List<T> toBean(T[] t, java.util.List<T> nullCast) {
|
|
459
|
+
java.util.List<T> ret = null;
|
|
460
|
+
if (t != null) {
|
|
461
|
+
// alternative: java.util.Arrays.asList
|
|
462
|
+
|
|
463
|
+
ret = (java.util.List<T>) new java.util.ArrayList<T>();
|
|
464
|
+
for (int i = 0; i < t.length; i++) {
|
|
465
|
+
ret.add(t[i]);
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
return ret;
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
public static boolean toBean(String t, boolean nullCast) {
|
|
472
|
+
return t.compareTo("true") == 0;
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
public static String toForm(boolean t) {
|
|
476
|
+
return t ? "true" : "false";
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
@SuppressWarnings("unchecked")
|
|
480
|
+
public static <T> T[] toForm(java.util.Set<T> t) {
|
|
481
|
+
return (T[]) t.toArray();
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
@SuppressWarnings("unchecked")
|
|
485
|
+
public static <T> T[] toForm(java.util.List<T> t) {
|
|
486
|
+
return (T[]) t.toArray();
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
/**
|
|
490
|
+
* Map an array of value to a multi-line text
|
|
491
|
+
* (meant for string[])
|
|
492
|
+
* @param <T>
|
|
493
|
+
* @param t
|
|
494
|
+
* @return
|
|
495
|
+
*/
|
|
496
|
+
@SuppressWarnings("unchecked")
|
|
497
|
+
public static <T> String toFormArrayAsStringLine(java.util.Collection<T> t) {
|
|
498
|
+
java.lang.StringBuffer sb=new java.lang.StringBuffer();
|
|
499
|
+
for (java.util.Iterator iterator = t.iterator(); iterator.hasNext();) {
|
|
500
|
+
T t2 = (T) iterator.next();
|
|
501
|
+
sb.append(t2.toString());
|
|
502
|
+
sb.append(ARRAY_SEPARATOR);
|
|
503
|
+
}
|
|
504
|
+
return sb.toString();
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
|
|
508
|
+
public static String ARRAY_SEPARATOR="\\n";
|
|
509
|
+
|
|
510
|
+
@SuppressWarnings("unchecked")
|
|
511
|
+
public static java.util.Set<String> toBean(String t, java.util.Set<String> nullCast) {
|
|
512
|
+
java.util.Set<String> ret = null;
|
|
513
|
+
if (t != null) {
|
|
514
|
+
String[] tline=t.split(ARRAY_SEPARATOR);
|
|
515
|
+
ret = (java.util.Set<String>) new java.util.HashSet<String>();
|
|
516
|
+
for (int i = 0; i < tline.length; i++) {
|
|
517
|
+
ret.add(tline[i]);
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
return ret;
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
|
|
434
524
|
ENDCODE
|
|
435
525
|
|
|
436
526
|
def struts_getFormHelper
|