ontomde-java 2.0.0

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.
Files changed (157) hide show
  1. data/History.txt +10 -0
  2. data/Manifest.txt +156 -0
  3. data/README.txt +98 -0
  4. data/Rakefile +21 -0
  5. data/bin/ontomde-java +5 -0
  6. data/generateRdocFile.sh +16 -0
  7. data/lib/ontomde-java.rb +45 -0
  8. data/lib/ontomde-java/crank.rb +13 -0
  9. data/lib/ontomde-java/crank/context.rb +384 -0
  10. data/lib/ontomde-java/crank/crankJpa.rb +103 -0
  11. data/lib/ontomde-java/crank/equals.rb +83 -0
  12. data/lib/ontomde-java/crank/facelets.rb +243 -0
  13. data/lib/ontomde-java/crank/facesconfig.rb +113 -0
  14. data/lib/ontomde-java/crank/helper.rb +46 -0
  15. data/lib/ontomde-java/crank/main.rb +51 -0
  16. data/lib/ontomde-java/crank/menu.rb +39 -0
  17. data/lib/ontomde-java/crank/menu2.rb +78 -0
  18. data/lib/ontomde-java/crank/validation.rb +34 -0
  19. data/lib/ontomde-java/ejb2.rb +3 -0
  20. data/lib/ontomde-java/ejb2/main-ejb2.rb +194 -0
  21. data/lib/ontomde-java/flex.rb +7 -0
  22. data/lib/ontomde-java/flex/Editor.mxml.as.rb +184 -0
  23. data/lib/ontomde-java/flex/Editor.mxml.rb +701 -0
  24. data/lib/ontomde-java/flex/ImportationAS.rb +40 -0
  25. data/lib/ontomde-java/flex/ValueObjectAS.rb +338 -0
  26. data/lib/ontomde-java/flex/fileTypes.rb +19 -0
  27. data/lib/ontomde-java/flex/main.rb +347 -0
  28. data/lib/ontomde-java/frontend/command.rb +324 -0
  29. data/lib/ontomde-java/frontend/command.rdoc +583 -0
  30. data/lib/ontomde-java/frontend/defaultOptions.rb +124 -0
  31. data/lib/ontomde-java/frontend/options.rb +555 -0
  32. data/lib/ontomde-java/frontend/steps.rb +287 -0
  33. data/lib/ontomde-java/java/accessorCode.rb +528 -0
  34. data/lib/ontomde-java/java/accessorSignature.rb +347 -0
  35. data/lib/ontomde-java/java/annotationOntoMDE.rb +88 -0
  36. data/lib/ontomde-java/java/apache.rb +34 -0
  37. data/lib/ontomde-java/java/build.rb +80 -0
  38. data/lib/ontomde-java/java/collectionMapping.rb +112 -0
  39. data/lib/ontomde-java/java/component.rb +446 -0
  40. data/lib/ontomde-java/java/contextualize.rb +43 -0
  41. data/lib/ontomde-java/java/enumAssignable.rb +75 -0
  42. data/lib/ontomde-java/java/enumCompatibilityLayer.rb +195 -0
  43. data/lib/ontomde-java/java/equals.rb +91 -0
  44. data/lib/ontomde-java/java/groovy.rb +95 -0
  45. data/lib/ontomde-java/java/java.rb +1329 -0
  46. data/lib/ontomde-java/java/java.rdoc +78 -0
  47. data/lib/ontomde-java/java/javaDatatypeMapping.rb +156 -0
  48. data/lib/ontomde-java/java/javaHelper.rb +25 -0
  49. data/lib/ontomde-java/java/java_todo.rdoc +3 -0
  50. data/lib/ontomde-java/java/javadoc.rb +254 -0
  51. data/lib/ontomde-java/java/meta.rb +28 -0
  52. data/lib/ontomde-java/java/operationAsClass.rb +144 -0
  53. data/lib/ontomde-java/java/security.rb +260 -0
  54. data/lib/ontomde-java/java/stateMachine.rb +415 -0
  55. data/lib/ontomde-java/java/tenant.rb +65 -0
  56. data/lib/ontomde-java/java/xsd.rb +1363 -0
  57. data/lib/ontomde-java/java/xsdCollectionMapping.rb +112 -0
  58. data/lib/ontomde-java/java/xsdDatatypeMapping.rb +103 -0
  59. data/lib/ontomde-java/jpa.rb +17 -0
  60. data/lib/ontomde-java/jpa/configuration.rb +176 -0
  61. data/lib/ontomde-java/jpa/finder.rb +102 -0
  62. data/lib/ontomde-java/jpa/jpa.rb +531 -0
  63. data/lib/ontomde-java/jpa/jpa.rdoc +20 -0
  64. data/lib/ontomde-java/jpa/locking.rb +18 -0
  65. data/lib/ontomde-java/jpa/mapping.rb +314 -0
  66. data/lib/ontomde-java/jpa/redefined.rb +77 -0
  67. data/lib/ontomde-java/jpa/simulationAutoImplement.rb +54 -0
  68. data/lib/ontomde-java/jpdl.rb +9 -0
  69. data/lib/ontomde-java/jpdl/bpm.pprj +1745 -0
  70. data/lib/ontomde-java/jpdl/bpm.rdf +140 -0
  71. data/lib/ontomde-java/jpdl/bpm.rdfs +231 -0
  72. data/lib/ontomde-java/jpdl/constant.rb +5 -0
  73. data/lib/ontomde-java/jpdl/graphic.rb +52 -0
  74. data/lib/ontomde-java/jpdl/jpdl.rb +281 -0
  75. data/lib/ontomde-java/jpdl/jpdl_deploy.rb +114 -0
  76. data/lib/ontomde-java/jpdl/main.rb +348 -0
  77. data/lib/ontomde-java/jpdl/main.rdoc +2 -0
  78. data/lib/ontomde-java/jpdl/processOperationToClass.rb +316 -0
  79. data/lib/ontomde-java/kbjava.rb +6 -0
  80. data/lib/ontomde-java/kbjava/rdfToJava.rb +407 -0
  81. data/lib/ontomde-java/struts.rb +27 -0
  82. data/lib/ontomde-java/struts/MessageResources.rb +359 -0
  83. data/lib/ontomde-java/struts/action.rb +883 -0
  84. data/lib/ontomde-java/struts/blob.rb +11 -0
  85. data/lib/ontomde-java/struts/exceptionHandling.rb +167 -0
  86. data/lib/ontomde-java/struts/footer.rb +128 -0
  87. data/lib/ontomde-java/struts/form.rb +450 -0
  88. data/lib/ontomde-java/struts/header.rb +37 -0
  89. data/lib/ontomde-java/struts/header_link.rb +39 -0
  90. data/lib/ontomde-java/struts/jsp_edit.rb +870 -0
  91. data/lib/ontomde-java/struts/jsp_edit_field.rb +1 -0
  92. data/lib/ontomde-java/struts/jsp_edit_js.rb +124 -0
  93. data/lib/ontomde-java/struts/jsp_index.rb +136 -0
  94. data/lib/ontomde-java/struts/localeAction.rb +641 -0
  95. data/lib/ontomde-java/struts/main.rb +41 -0
  96. data/lib/ontomde-java/struts/mappingForBean.rb +132 -0
  97. data/lib/ontomde-java/struts/mappingForJsp.rb +272 -0
  98. data/lib/ontomde-java/struts/mappingToJavaHierarchy.rb +87 -0
  99. data/lib/ontomde-java/struts/reloadAction.rb +33 -0
  100. data/lib/ontomde-java/struts/spring.rb +89 -0
  101. data/lib/ontomde-java/struts/struts-config.rb +232 -0
  102. data/lib/ontomde-java/struts/validation.rb +116 -0
  103. data/lib/ontomde-java/struts/validator.rb +341 -0
  104. data/lib/ontomde-java/struts/webXml.rb +195 -0
  105. data/lib/ontomde-java/struts/xmlForm.rb +308 -0
  106. data/lib/ontomde-java/version.rb +5 -0
  107. data/profiling.xls +0 -0
  108. data/test/.classpath +14 -0
  109. data/test/.project +17 -0
  110. data/test/.settings/org.eclipse.jdt.core.prefs +23 -0
  111. data/test/Rakefile +71 -0
  112. data/test/build.xml +34 -0
  113. data/test/classpath.rb +15 -0
  114. data/test/lib/junit-4.1.jar +0 -0
  115. data/test/load1.rb +3 -0
  116. data/test/load2.rb +3 -0
  117. data/test/log4j.properties +46 -0
  118. data/test/model/.project +11 -0
  119. data/test/model/BigProject.mdzip +0 -0
  120. data/test/model/BigProject.mdzip.nt +102866 -0
  121. data/test/model/ClassDiagram.EntArch.gif +0 -0
  122. data/test/model/ClassDiagram.emx.gif +0 -0
  123. data/test/model/ClassDiagram.mdzip.gif +0 -0
  124. data/test/model/model_ea71.bis.ea.xmi +149 -0
  125. data/test/model/model_ea71.ea.xmi +4470 -0
  126. data/test/model/model_ea71.eap +0 -0
  127. data/test/model/model_ea71_README.txt +8 -0
  128. data/test/model/multipleInheritance.emx +466 -0
  129. data/test/model/multipleInheritance.emx.nt +2428 -0
  130. data/test/model/simple1-530.ofp +0 -0
  131. data/test/model/simple1-includedAsReference.emx +169 -0
  132. data/test/model/simple1.emx +3729 -0
  133. data/test/model/simple1.emx.fragments.nt +81 -0
  134. data/test/model/simple1.emx.nt +5760 -0
  135. data/test/model/simple1.mdzip +0 -0
  136. data/test/model/simple1.mdzip.nt +11500 -0
  137. data/test/model/simple1.oe530.nt +1986 -0
  138. data/test/model/simple1.oe600.nt +1627 -0
  139. data/test/src/RuntimeTest.java +656 -0
  140. data/test/src/testsLevel1.java +174 -0
  141. data/test/src/testsLevel2.java +29 -0
  142. data/test/src/testsLevel3.java +40 -0
  143. data/test/test-ea7.sh +15 -0
  144. data/test/test-magicDraw.sh +10 -0
  145. data/test/test-mi.sh +9 -0
  146. data/test/test-oe530.sh +10 -0
  147. data/test/test-oe600.sh +11 -0
  148. data/test/test-rsm.sh +11 -0
  149. data/test/test_export_ea71.rb +5 -0
  150. data/test/test_export_oe530.rb +4 -0
  151. data/test/test_export_oe600.rb +4 -0
  152. data/test/test_export_rsm60.rb +4 -0
  153. data/test/trace +419 -0
  154. data/test/uml_test.rb +1434 -0
  155. data/test/uml_test.xls +0 -0
  156. data/test/unit_test.rb +6 -0
  157. metadata +224 -0
@@ -0,0 +1,27 @@
1
+ require 'ontomde-java'
2
+
3
+ require 'ontomde-java/struts/main.rb'
4
+ require 'ontomde-java/struts/form.rb'
5
+ require 'ontomde-java/struts/action.rb'
6
+ require 'ontomde-java/struts/jsp_index.rb'
7
+ require 'ontomde-java/struts/jsp_edit.rb'
8
+ require 'ontomde-java/struts/jsp_edit_js.rb'
9
+ require 'ontomde-java/struts/jsp_edit_field.rb'
10
+ require 'ontomde-java/struts/webXml.rb'
11
+ require 'ontomde-java/struts/struts-config.rb'
12
+ require 'ontomde-java/struts/validation.rb'
13
+ require 'ontomde-java/struts/validator.rb'
14
+ require 'ontomde-java/struts/MessageResources.rb'
15
+ require 'ontomde-java/struts/footer.rb'
16
+ require 'ontomde-java/struts/header.rb'
17
+ require 'ontomde-java/struts/header_link.rb'
18
+ require 'ontomde-java/struts/localeAction.rb'
19
+ require 'ontomde-java/struts/blob.rb'
20
+ require 'ontomde-java/struts/reloadAction.rb'
21
+ require 'ontomde-java/struts/xmlForm.rb'
22
+ require 'ontomde-java/struts/spring.rb'
23
+ require 'ontomde-java/struts/mappingForBean.rb'
24
+ require 'ontomde-java/struts/mappingForJsp.rb'
25
+ require 'ontomde-java/struts/mappingToJavaHierarchy.rb'
26
+ require 'ontomde-java/struts/exceptionHandling.rb'
27
+
@@ -0,0 +1,359 @@
1
+ # should generator check if every message used is defined ?
2
+ STRUTS_CHECK_MESSAGE_USED=true
3
+ STRUTS_MESSAGE_USED=Set.new
4
+ STRUTS_MESSAGE_DEFINED=Set.new
5
+
6
+ def struts_writeMsg(key)
7
+ STRUTS_MESSAGE_USED.add(key) if STRUTS_CHECK_MESSAGE_USED
8
+ return %{<bean:message key="#{key}"/>}
9
+ end
10
+
11
+ def struts_writeMsgRes(key,msg,writeAsComment,locale)
12
+ write(%{#{key}=#{writeAsComment ? "#{locale}: " : ""}#{msg}\n})
13
+ STRUTS_MESSAGE_DEFINED.add(key) if STRUTS_CHECK_MESSAGE_USED && (!writeAsComment)
14
+ end
15
+
16
+ def struts_messageCheck
17
+ STRUTS_MESSAGE_USED.each { |key|
18
+ next if STRUTS_MESSAGE_DEFINED.include?(key)
19
+ log.error("ressource undefined: #{key}")
20
+ }
21
+ end
22
+
23
+ module Mrdf_Repository
24
+ STRUTS_DEFAULT_LOCALE="fr"
25
+ def struts_messageResources_generate
26
+ ["_fr","_en","_de","_ja","_zu",""].each {|lang|
27
+ f=%{#{context[:webResourcesDir]}/MessageResources#{lang}.properties}
28
+ mtk_writeSession(f) {
29
+ #mtk_protected("GENERIC"){
30
+ if(lang=="_en")
31
+ write MESSAGE_RES_EN
32
+ writeMessagesFromModel(lang)
33
+ elsif(lang=="_de")
34
+ write MESSAGE_RES_DE
35
+ writeMessagesFromModel(lang)
36
+ elsif(lang=="_ja")
37
+ write MESSAGE_RES_JA
38
+ writeMessagesFromModel(lang)
39
+ elsif(lang=="_fr")
40
+ #write MESSAGE_RES_FR
41
+ #writeMessagesFromModel(lang)
42
+ elsif(lang=="_zu")
43
+ write MESSAGE_RES_ZU
44
+ writeMessagesFromModel(lang,true,true)
45
+ elsif(lang=="")
46
+ struts_writeMsgRes(::Mrdf_Repository::STRUTS_SESSION_TIMEOUT_IN_MINUTES_RES,"30",false,"")
47
+ write MESSAGE_RES_FR
48
+ writeMessagesFromModel(lang,true)
49
+ else
50
+ log.error "unknown locale #{lang}"
51
+ end
52
+ #}
53
+ }}
54
+ end
55
+
56
+ def writeMessagesFromModel(locale,fillFromModel=false,test=false)
57
+ uml_Class_all.each {|c|
58
+ next unless c.kind_of?(Muml_Class) #|| c.kind_of?(Muml_Interface)
59
+ next if c.kind_of?(Muml_Stereotype)
60
+ write("#############################\n")
61
+ write("##### #{c.java_qualifiedName}\n")
62
+ write("#############################\n")
63
+
64
+ c.struts_ownedTab.each { |tab|
65
+ struts_writeMsgRes("#{c.java_qualifiedName}.#{tab.java_Name}.tab","#{tab.java_Name}",!fillFromModel,locale)
66
+ }
67
+
68
+ struts_writeMsgRes("#{c.java_qualifiedName}.title","#{c.java_qualifiedName}",!fillFromModel,locale);
69
+ i=-1
70
+ (c.struts_formAttribute+c.struts_formOperation).each {|a|
71
+ msg="#{a.uml_name_one}"
72
+ if fillFromModel && !test
73
+ msg="#{a.uml_name_one}"
74
+ elsif fillFromModel
75
+ msg="#{a.uml_name_one.nil? ? "":a.uml_name_one.upcase}"
76
+ end
77
+ struts_writeMsgRes("#{c.java_qualifiedName}.#{a.java_Name}",msg,!fillFromModel,locale)
78
+ helpmsg=""
79
+ a.uml_ownedComment.each { |comment|
80
+ # comment are used as default help message for default locale.
81
+ helpmsg=comment.uml_body_one0
82
+ }
83
+ struts_writeMsgRes("#{c.java_qualifiedName}.#{a.java_Name}.help",helpmsg,false,locale)
84
+ }}
85
+
86
+ write "# *********************\n"
87
+ write "# Enumerations\n"
88
+ write "# *********************\n"
89
+ uml_Class_all.each {|c|
90
+ next unless c.kind_of?(Muml_Enumeration)
91
+ msg=c.java_enumAssignableDataType_inv.empty? ? "-- --" : "create and add"
92
+ struts_writeMsgRes("#{c.java_qualifiedName}.#{::Muml_Property::NIL_LVB_RES_KEY}",msg,!fillFromModel,locale)
93
+
94
+ c.uml_ownedLiteral.each {|ol|
95
+ struts_writeMsgRes("#{c.java_qualifiedName}.#{ol.java_Name}",ol.to_s,!fillFromModel,locale)
96
+ }
97
+ }
98
+
99
+ write "# *********************\n"
100
+ write "# End of file\n"
101
+ write "# *********************\n"
102
+
103
+ end
104
+
105
+ MESSAGE_RES_EN=<<ENDEN
106
+ java.lang.Boolean.true=true
107
+ java.lang.Boolean.false=false
108
+ button.return=Back
109
+ button.delete=Erase
110
+ button.cancel=Cancel
111
+ button.confirm=Submit
112
+ button.reset=Reset
113
+ button.save=Save
114
+ button.validate=Validate
115
+ userMessage.deleteItem=_en :Are you sure that you want to delete this item ?
116
+ # Errors
117
+ errors.footer=
118
+ errors.header=<h3><font color="red">Validation error</font></h3>You should change the following error(s) before to continue :
119
+ errors.ioException=I/O exception during the error message : {0}
120
+ error.database.missing=<li>The users database is missing. Impossible to validate the connexion privileges.
121
+ errors.required={0} is required.
122
+ errors.minlength={0} can't have less than {1} character.
123
+ errors.maxlength={0} can't have more than {1} character.
124
+ errors.invalid={0} is invalid.
125
+
126
+ errors.byte={0} should be a byte number.
127
+ errors.short={0} should be a short number.
128
+ errors.integer={0} should be an integer number.
129
+ errors.long={0} should be a long number.
130
+ errors.float={0} should be a float number.
131
+ errors.double={0} should be a double number.
132
+
133
+ errors.date={0} isn't a date.
134
+
135
+ errors.range={0} isn't in the interval {1} to {2}.
136
+
137
+ errors.creditcard={0} isn't a valid credit card number.
138
+
139
+ errors.email={0} is an incorrect email address.
140
+
141
+ # Index Page
142
+ index.title=Struts Validator
143
+ index.power=Powered by Struts
144
+
145
+ # default Form
146
+ defaultForm.title=Type form
147
+ defaultForm.title.create=Create the form
148
+ defaultForm.byte.displayname=Byte field
149
+ defaultForm.short.displayname=Short field
150
+ defaultForm.integer.displayname=Integer field
151
+ defaultForm.long.displayname=Long field
152
+ defaultForm.float.displayname=Float field
153
+ defaultForm.floatRange.displayname=Float interval
154
+ defaultForm.double.displayname=Double field
155
+ defaultForm.date.displayname=Date field
156
+ defaultForm.creditCard.displayname=Credit card field
157
+ defaultForm.nested=Nested text
158
+ defaultForm.nested.name.displayname=Name
159
+ defaultForm.selectMessage = EN_Message_Generique
160
+ label.helper.cancel= cancel
161
+ label.helper.none=<i>there is no element to display.</i>
162
+ help.label=Field documentation:
163
+ ENDEN
164
+ MESSAGE_RES_DE=<<ENDDE
165
+ java.lang.Boolean.true=richtige
166
+ java.lang.Boolean.false=unwahrheit
167
+ button.return=Back
168
+ button.delete=L�schen Sie
169
+ button.cancel=L�schen
170
+ button.confirm=Reichen Sie ein
171
+ button.reset=Zur�ckstellen
172
+ button.save=Au�er
173
+ button.validate=de_validate
174
+ userMessage.deleteItem=Sind Sie sicher, dass Sie l�schen wollen dieses Produkt ?
175
+
176
+ # Errors
177
+ errors.footer=
178
+ errors.header=<h3><font color="red">G�ltigkeitserkl�rungst�rung </font></h3>Sie sollten das folgende error(s) vorher �ndern, um fortzufahren :
179
+ errors.ioException=I/H Ausnahme w�hrend der Fehlermeldung : {0}
180
+ error.database.missing=<li>Die Benutzerdatenbank fehlt. Unm�glich, die Berechtigungen zu validieren..
181
+ errors.required={0} wird angefordert.
182
+ errors.minlength={0} {0} kann nicht kleiner als {1} Buchstabe haben.
183
+ errors.maxlength={0} kann nicht mehr als {1} Buchstabe haben.
184
+ errors.invalid={0} ist unzul�ssig.
185
+
186
+ errors.byte={0} sein sollte eine Bytezahl.
187
+ errors.short={0} sein sollte eine kurze Zahl.
188
+ errors.integer={0} sein sollte eine Ganzzahl Zahl.
189
+ errors.long={0} sein sollte eine lange Zahl.
190
+ errors.float={0} sein sollte eine Hin- und Herbewegung Zahl.
191
+ errors.double={0} sein sollte eine doppelte Zahl.
192
+
193
+ errors.date={0} nicht ist ein Datum.
194
+
195
+ errors.range={0} ist nicht im Abstand {1} {2}.
196
+
197
+ errors.creditcard={0} nicht ist eine g�ltige Kreditkarte Zahl.
198
+
199
+ errors.email={0} ist ein falsches email address.
200
+
201
+ # Index Page
202
+ index.title=Struts Validator
203
+ index.power=Vorbei Struts angetrieben
204
+
205
+ # default Form
206
+ defaultForm.title=Art Form
207
+ defaultForm.title.create=Verursachen Sie die Form
208
+ defaultForm.byte.displayname=Eine Byte Feld
209
+ defaultForm.short.displayname=Eine kurze Feld
210
+ defaultForm.integer.displayname=Eine Ganzzahl Feld
211
+ defaultForm.long.displayname=Eine lange Feld
212
+ defaultForm.float.displayname=Eine Hin- und Herbewegung Feld
213
+ defaultForm.floatRange.displayname=Eine Hin- und Herbewegung Abstand
214
+ defaultForm.double.displayname=Eine doppelte Feld
215
+ defaultForm.date.displayname=Datum Feld
216
+ defaultForm.creditCard.displayname=Kreditkarte Feld
217
+ defaultForm.nested=Genisteter Text
218
+ defaultForm.nested.name.displayname=Name
219
+ defaultForm.selectMessage = dl_Message_Generique
220
+ label.helper.cancel= dl_cancel
221
+ label.helper.none= dl:<i>il n'y a pas d'&eacute;l&eacute;�ment &agrave; afficher.</i>
222
+ help.label=Information sur le champs:
223
+ ENDEN
224
+ ENDDE
225
+ MESSAGE_RES_JA=<<ENDJA
226
+ button.delete=Supprimer
227
+ button.cancel=\u30ad\u30e3\u30f3\u30bb\u30eb
228
+ button.confirm=\u78ba\u8a8d
229
+ button.reset=\u30ea\u30bb\u30c3\u30c8
230
+ button.save=\u4fdd\u5b58
231
+ button.validate=??
232
+ userMessage.deleteItem=-ja :Etes-vous s&ucirc;r(e) de vouloir supprimer cet Item ?
233
+ # Errors
234
+ errors.footer=
235
+ errors.header=<h3><font color="red">\u5165\u529b\u30c1\u30a7\u30c3\u30af\u30a8\u30e9\u30fc</font></h3>\u4ee5\u4e0b\u306e\u30a8\u30e9\u30fc\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044:
236
+ errors.ioException=\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8 {0} \u306e\u51fa\u529b\u3067I/O\u4f8b\u5916\u304c\u767a\u751f\u3057\u307e\u3057\u305f
237
+ error.database.missing=<li>\u30e6\u30fc\u30b6\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002\u30ed\u30b0\u30aa\u30f3\u306e\u8a8d\u8a3c\u304c\u51fa\u6765\u307e\u305b\u3093\u3002</li>
238
+ errors.required={0} \u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
239
+ errors.minlength={0} \u306f {1} \u6587\u5b57\u4ee5\u4e0a\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093
240
+ errors.maxlength={0} \u306F {1} \u6587\u5B57\u4EE5\u4E0B\u3067\u306A\u3051\u308C\u3070\u306A\u308A\u307E\u305B\u3093\u3002
241
+ errors.invalid={0} \u306f\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093\u3002
242
+
243
+ errors.byte={0} \u306fbyte\u578b\u3067\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002
244
+ errors.short={0} \u306fshort\u578b\u3067\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002
245
+ errors.integer={0} \u306finteger\u578b\u3067\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002
246
+ errors.long={0} \u306flong\u578b\u3067\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002
247
+ errors.float={0} \u306ffloat\u578b\u3067\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002
248
+ errors.double={0} \u306fdouble\u578b\u3067\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002
249
+
250
+ errors.date={0} \u306f\u65e5\u4ed8\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002
251
+
252
+ errors.range={0} \u306f {1} \u304b\u3089 {2} \u306e\u9593\u3067\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002
253
+
254
+ errors.creditcard={0} \u306F\u6B63\u3057\u3044\u30AF\u30EC\u30B8\u30C3\u30C8\u30FC\u30AB\u30FC\u30C9\u756A\u53F7\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002
255
+
256
+ errors.email={0} \u306F\u6B63\u3057\u3044\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002
257
+
258
+ # Index Page
259
+ index.title=Struts Validator
260
+ index.power=Powered by Struts
261
+
262
+ # Type form
263
+ defaultForm.name.displayname=String\u578B\u30D5\u30A3\u30FC\u30EB\u30C9
264
+ defaultForm.byte.displayname=Byte\u578b\u30d5\u30a3\u30fc\u30eb\u30c9
265
+ defaultForm.checkbox.wouldrecommend=\u304A\u3059\u3059\u3081
266
+ defaultForm.checkbox.used.languages=\u5229\u7528\u30D7\u30ED\u30B0\u30E9\u30E0\u8A00\u8A9E
267
+ defaultForm.creditCard.displayname=\u30af\u30ec\u30b8\u30c3\u30c8\u30fc\u30ab\u30fc\u30c9\u756a\u53f7\u30d5\u30a3\u30fc\u30eb\u30c9
268
+ defaultForm.date.displayname=\u65e5\u4ed8\u578b\u30d5\u30a3\u30fc\u30eb\u30c9
269
+ defaultForm.description=\u30d7\u30ea\u30df\u30c6\u30a3\u30d6\u578b\u306e\u6570\u5b57\u3001integer\u306e\u7bc4\u56f2\u3001\u65e5\u4ed8\u3001\u304a\u3088\u3073\u30af\u30ec\u30b8\u30c3\u30c8\u30ab\u30fc\u30c9\u756a\u53f7\u306e\u5165\u529b\u30c1\u30a7\u30c3\u30af\u306e\u30b5\u30f3\u30d7\u30eb
270
+ defaultForm.double.displayname=Double\u578b\u30d5\u30a3\u30fc\u30eb\u30c9
271
+ defaultForm.float.displayname=Float\u578b\u30d5\u30a3\u30fc\u30eb\u30c9
272
+ defaultForm.floatRange.displayname=Float\u578b\u306e\u7bc4\u56f2\u30c1\u30a7\u30c3\u30af\u30d5\u30a3\u30fc\u30eb\u30c9
273
+ defaultForm.integer.displayname=Integer\u578b\u30d5\u30a3\u30fc\u30eb\u30c9
274
+ defaultForm.long.displayname=Long\u578b\u30d5\u30a3\u30fc\u30eb\u30c9
275
+ defaultForm.nested.name.displayname=\u540d\u524d
276
+ defaultForm.selectMessage = JA_Message_Generique
277
+ label.helper.cancel= cancel
278
+ label.helper.none= JA_NONE
279
+ help.label=jp:Information sur le champs:
280
+ ENDEN
281
+ # default Labels (from model):
282
+ ENDJA
283
+ MESSAGE_RES_FR=<<END
284
+ # **************************************************
285
+ # DO NOT MODIFY THIS FILE (automatically generated)
286
+ # **************************************************
287
+ #
288
+ # To add custom labels, create a MessageResources_fr.properties file
289
+ #
290
+ # **************************************************
291
+ #
292
+ # Correct translations compliments of Regis Brochu
293
+ # Some fields have been added after Regis Brochu
294
+ # translated the file and may have incorrect translation.
295
+ java.lang.Boolean.true=vrai
296
+ java.lang.Boolean.false=faux
297
+ button.return=Retour
298
+ button.delete=Supprimer
299
+ button.cancel=Annuler
300
+ button.confirm=Soumettre
301
+ button.reset=Effacer
302
+ button.save=Sauvegarder
303
+ button.validate=Valider
304
+ userMessage.deleteItem=Etes-vous s&ucirc;r(e) de vouloir supprimer cet Item ?
305
+
306
+ # Errors
307
+ errors.footer=
308
+ errors.header=<h3><font color="red">Erreur de Validation</font></h3>Vous devez corriger l'erreur(s) suivante avant de continuer :
309
+ errors.ioException=Exception d'E/S durant le rendu des messages d'erreur: {0}
310
+ error.message=Nous sommes d&eacute;sol&eacute;s, une erreur technique est survenue.<br>L'&eacute;quipe technique met tout en oeuvre pour la corriger.
311
+ error.database.missing=<li>La base de donn&eacute;es des utilisateurs est manquante. Impossible de valider les privil&egrave;ges de connexion
312
+ errors.required={0} est obligatoire.
313
+ errors.minlength={0} ne peut pas &ecirc;tre moins de {1} caract&egrave;res.
314
+ errors.maxlength={0} ne peut pas &ecirc;tre plus de {1} caract&egrave;res.
315
+ errors.invalid={0} est invalide.
316
+
317
+ errors.byte={0} doit &ecirc;tre un nombre de type byte.
318
+ errors.string={0} doit &ecirc;tre un champ de type texte.
319
+ errors.short={0} doit &ecirc;tre un nombre de type short.
320
+ errors.integer={0} doit &ecirc;tre un nombre de type integer.
321
+ errors.long={0} doit &ecirc;tre un nombre de type long.
322
+ errors.float={0} doit &ecirc;tre un nombre de type float.
323
+ errors.double={0} doit &ecirc;tre un nombre de type double.
324
+
325
+ errors.date={0} n'est pas une date.
326
+
327
+ errors.range={0} n'est pas dans l'intervalle {1} &agrave; {2}.
328
+
329
+ errors.creditcard={0} n'est pas un num�ro de carte de cr&eacute;dit valide.
330
+
331
+ errors.email={0} est une adresse incorrecte de e-mail.
332
+
333
+ # Index Page
334
+ index.title=Struts Validator
335
+ index.power=Actionn� par Struts
336
+
337
+ # default Form
338
+ defaultForm.title=Formulaire de type
339
+ defaultForm.description=Exemple validant quelques nombres primitifs, un intervalle sur la zone de nombre entier, une date, et un nombre de carte de cr&eacute;dit.
340
+ defaultForm.title.create=Cr&eacute;er le formulaire
341
+ defaultForm.byte.displayname=Champ Octet
342
+ defaultForm.short.displayname=Champ Short
343
+ defaultForm.string.displayname=Champ Texte
344
+ defaultForm.integer.displayname=Champ Entier
345
+ defaultForm.long.displayname=Champ Long
346
+ defaultForm.float.displayname=Champ Float
347
+ defaultForm.floatRange.displayname=Champ Float l'intervalle
348
+ defaultForm.double.displayname=Champ Double
349
+ defaultForm.date.displayname=Champ Date
350
+ defaultForm.creditCard.displayname=Champ Carte de cr&eacute;dit
351
+ defaultForm.nested=Embo�t� Texte
352
+ defaultForm.nested.name.displayname=Nom
353
+ defaultForm.selectMessage = FR_Message_Generique
354
+ label.helper.cancel= cancel
355
+ label.helper.none= <i>il n'y a pas d'&eacute;l&eacute;ment &agrave; afficher.</i>
356
+ help.label=Information sur le champs:
357
+ END
358
+ MESSAGE_RES_ZU=""
359
+ end
@@ -0,0 +1,883 @@
1
+
2
+
3
+
4
+ module Muml_Classifier
5
+ STRUTS_NEW_ACTION="newa"
6
+ STRUTS_CREATE_ACTION="sgbd_create"
7
+ STRUTS_UPDATE_ACTION="sgbd_update"
8
+ STRUTS_READ_ACTION="sgbd_read"
9
+ STRUTS_DELETE_ACTION="sgbd_delete"
10
+ STRUTS_PROCEED_ACTION="biz_proceed"
11
+ STRUTS_INPUT_FWD="inputfw"
12
+ STRUTS_RESULTS_FWD="retour" #TODO
13
+
14
+ #terminate local treatment and return control to calling controller.
15
+ STRUTS_RETURN_ACTION="returnTo"
16
+ #Resume local treatment avect geting control back from another controler.
17
+ STRUTS_RESUME_ACTION="resume"
18
+
19
+ STRUTS_REFRESH_ACTION="executeRefresh"
20
+ STRUTS_SGBD_STATE="sgbd_state"
21
+ STRUTS_SGBD_STATE_PROP="Sgbd_state"
22
+ #STRUTS_RETURN_TO_FIELD="jsp_return_to"
23
+ #STRUTS_RETURN_TO_PROP="Jsp_return_to"
24
+
25
+ STRUTS_ACTION_MAPPING="org.apache.struts.action.ActionMapping"
26
+ STRUTS_ACTION_FORWARD="org.apache.struts.action.ActionForward"
27
+
28
+ STRUTS_ACTION_STARTEDIT="startEditAction"
29
+
30
+ #class from which this StrutsAction was generated.
31
+ rdf_safe_attr_reader_many :struts_actionSrc
32
+
33
+ #Creates an add a struts "execute" method of an action bean
34
+ #Names needs not be "execute" thanks to struts dispatch feature.
35
+ def struts_createAndAddExecuteOperation(name)
36
+ action=self
37
+ afo=action.umlx_createAndAddOperation(action.rdf_uri+"_"+name,name)
38
+ p=afo.umlx_createAndAddParameter(afo.rdf_uri+"_to","mapping")
39
+ p.uml_type=umlx_getOrCreateClass(STRUTS_ACTION_MAPPING)
40
+ p=afo.umlx_createAndAddParameter(afo.rdf_uri+"_form","abstractForm")
41
+ p.uml_type=umlx_getOrCreateClass("org.apache.struts.action.ActionForm")
42
+
43
+ p=afo.umlx_createAndAddParameter(afo.rdf_uri+"_request","request")
44
+ p.uml_type=umlx_getOrCreateClass("javax.servlet.http.HttpServletRequest")
45
+
46
+ p=afo.umlx_createAndAddParameter(afo.rdf_uri+"_response","response")
47
+ p.uml_type=umlx_getOrCreateClass("javax.servlet.http.HttpServletResponse")
48
+ p=afo.umlx_createAndAddReturnParameter(afo.rdf_uri+"_return","return")
49
+ p.uml_type=umlx_getOrCreateClass("org.apache.struts.action.ActionForward")
50
+
51
+ return afo
52
+ end
53
+
54
+ #Return java code to be included at the begining of every action execute method.
55
+ #Example:
56
+ # EffectiveFormType form=<EffectiveFormType> abstractForm;
57
+ def struts_formCastJavaCode(action=nil)
58
+ action=struts_actionForm_one if action.nil?
59
+ return <<ENDMETH
60
+ #{action.java_qualifiedName} form=(#{action.java_qualifiedName})abstractForm;
61
+ form.set#{STRUTS_DISPATCH_FIELD_METH}("");
62
+ ENDMETH
63
+ end
64
+
65
+ #Struts Action associated to this class
66
+ rdf_safe_attr_reader_many :struts_action
67
+ def struts_addAction!
68
+ #log.debug { "struts_addAction! #{self}::#{self.class.name}" }
69
+ if struts_bizOperation.empty?
70
+ struts_addActionCRUD!
71
+ else
72
+ struts_addActionBiz!
73
+ end
74
+ end
75
+
76
+ def struts_addActionBiz!
77
+ action=struts_createAndAddActionBase!
78
+ struts_addStartEditAction!(action)
79
+
80
+ struts_addsetTimeZoneAction!(action)
81
+ struts_addsetSkinAction!(action)
82
+ struts_addsetLocaleAction!(action)
83
+ struts_addRefreshAction!(action)
84
+ struts_addNewBizAction!(action)
85
+ struts_addProceedBizAction!(action)
86
+ struts_addTabsBiz!(action)
87
+ struts_addSwitchToFlexAction!(action)
88
+
89
+ struts_addReturnAction!(action)
90
+ #struts_addProceedAction!(action)
91
+ struts_addResumeAction!(action)
92
+ #struts_addNewAction!(action)
93
+ #struts_addCreateAction!(action)
94
+ struts_addReadAction!(action)
95
+ #struts_addUpdateAction!(action)
96
+ #struts_addDeleteAction!(action)
97
+ #struts_addBusinessMethods!(action)
98
+ struts_addCreateAndAddActions!(action)
99
+ struts_addRemoveAndDeleteActions!(action)
100
+
101
+ struts_addFieldMethods!(action)
102
+
103
+ end
104
+
105
+ def struts_addNewBizAction!(action)
106
+ create=action.struts_createAndAddExecuteOperation(STRUTS_NEW_ACTION)
107
+ create.java_code=<<ENDMETH
108
+ #{struts_formCastJavaCode}
109
+ form.setReference(new #{java_qualifiedName}());
110
+ form.initFromReference();
111
+ form.set#{STRUTS_DISPATCH_FIELD_METH}("#{STRUTS_CREATE_ACTION}");
112
+ return mapping.findForward("#{STRUTS_INPUT_FWD}");
113
+ ENDMETH
114
+ end
115
+
116
+ def struts_addProceedBizAction!(action)
117
+ proceed=action.struts_createAndAddExecuteOperation(STRUTS_PROCEED_ACTION)
118
+ proceed.java_code=<<ENDMETH
119
+ #{struts_formCastJavaCode}
120
+ form.copyToReference();
121
+ form.getReference().proceed();
122
+ form.initFromReference();
123
+ form.set#{STRUTS_DISPATCH_FIELD_METH}("#{STRUTS_CREATE_ACTION}");
124
+ return new org.apache.struts.action.ActionForward("/pages/#{java_InternalFilePath}form/#{java_Name}#{STRUTS_RESULTS_FWD}.jsp",false);
125
+ ENDMETH
126
+ end
127
+
128
+ STRUTS_SESSION_KEY_EditAction="objToEdit"
129
+
130
+ def struts_addStartEditAction!(action)
131
+ edit=action.struts_createAndAddExecuteOperation(STRUTS_ACTION_STARTEDIT)
132
+ edit.java_code= <<ENDCODE
133
+ #{struts_formCastJavaCode}
134
+ javax.servlet.http.HttpSession session=request.getSession();
135
+ #{self.java_qualifiedName} obj=(#{self.java_qualifiedName}) session.getAttribute("#{STRUTS_SESSION_KEY_EditAction}");
136
+ session.removeAttribute("#{STRUTS_SESSION_KEY_EditAction}");
137
+ form.setReference(obj);
138
+ form.initFromReference();
139
+ form.setSgbd_state("#{STRUTS_UPDATE_ACTION}");
140
+ return mapping.findForward("#{STRUTS_INPUT_FWD}");
141
+ ENDCODE
142
+ end
143
+
144
+ def struts_createAndAddActionBase!
145
+ p=umlx_owner_one
146
+ p=p.umlx_getOrCreatePackage(context[:strutsActionPackage,context[:strutsActionFormPackage,"struts"]],p)
147
+ action=p.umlx_createAndAddClass(rdf_uri+"_Action")
148
+ action.db_isTransient=RDF_TRUE
149
+
150
+ action.struts_actionSrc=self
151
+ self.struts_action=action
152
+ action.uml_name="#{uml_name}StrutsAction"
153
+ #af=action.umlx_getOrCreateClass("org.apache.struts.action.Action")
154
+ af=action.umlx_getOrCreateClass("org.apache.struts.actions.DispatchAction")
155
+ action.umlx_createAndAddGeneralization(af)
156
+
157
+ action.apaCom_addLogger!
158
+
159
+ #all=action.umlx_createAndAddProperty("#{action.rdf_uri}FORWARD","FORWARD");
160
+ #mtk_context(:struts_tab=> struts_defaultTabId ){
161
+ # all.java_code=%{"/#{struts_jsp_edit_path}"}
162
+ # }
163
+ # all.uml_isStatic=RDF_TRUE;
164
+ # all.uml_type=uml_type=umlx_dataType_string
165
+
166
+ return action
167
+ end
168
+
169
+
170
+
171
+ def struts_addActionCRUD!
172
+ action=struts_createAndAddActionBase!
173
+
174
+ struts_addStartEditAction!(action)
175
+ struts_addsetTimeZoneAction!(action)
176
+ struts_addsetSkinAction!(action)
177
+ struts_addsetLocaleAction!(action)
178
+ struts_addReturnAction!(action)
179
+ struts_addProceedAction!(action)
180
+ struts_addResumeAction!(action)
181
+ struts_addRefreshAction!(action)
182
+ struts_addNewAction!(action)
183
+ struts_addCreateAction!(action)
184
+ struts_addReadAction!(action)
185
+ struts_addUpdateAction!(action)
186
+ struts_addDeleteAction!(action)
187
+
188
+ struts_addCreateAndAddActions!(action)
189
+ struts_addRemoveAndDeleteActions!(action)
190
+ struts_addTabs!(action)
191
+ struts_addSwitchToFlexAction!(action)
192
+
193
+ struts_addFieldMethods!(action)
194
+
195
+ return if db_isTransient?
196
+ struts_addBusinessMethods!(action)
197
+ end
198
+ def struts_addTabs!(action)
199
+ struts_addTabFromInterface!(action)
200
+ struts_addTabAll!(action)
201
+ end
202
+ def struts_addTabsBiz!(action)
203
+ struts_addTabFromInterface!(action)
204
+ struts_addTabAll!(action)
205
+ struts_addTabReturnParameter!(action)
206
+ end
207
+
208
+ def struts_addTabReturnParameter!(action)
209
+ t=Cstruts_tab.new(rdf_Repository,self.rdf_uri+"_tab_return")
210
+ self.struts_ownedTab_add(t);
211
+ t.java_Name=STRUTS_RESULTS_FWD
212
+ self.uml_ownedAttribute.each { |a|
213
+ next if a.struts_ignoreInForm?
214
+ next unless a.java_Name==STRUTS_RESULT_PARAM_NAME
215
+ #next unless a.struts_sourceProperty_one.uml_direction_one.isReturn?
216
+ t.struts_ownedAttribute_add(a);
217
+ break # there can be only one return parameter
218
+ }
219
+ end
220
+
221
+ def struts_addTabFromInterface!(action)
222
+ return if kind_of?(Muml_Interface)
223
+ uml_implementation.each {|imp|
224
+ ie=imp.uml_supplier_one
225
+ next if ie.java_ignoreMe?
226
+ t=Cstruts_tab.new(rdf_Repository,self.rdf_uri+"_tab_"+ie.rdf_uri)
227
+ self.struts_ownedTab_add(t);
228
+ t.java_Name=ie.java_Name
229
+ ie.uml_ownedAttribute.each { |a|
230
+ next if a.struts_ignoreInForm?
231
+ t.struts_ownedAttribute_add(a)
232
+ }
233
+ }
234
+ end
235
+
236
+ #adds a tab with all attributes
237
+ def struts_addTabAll!(action)
238
+ t=Cstruts_tab.new(rdf_Repository,self.rdf_uri+"_taball")
239
+ t.java_Name="all"
240
+ self.struts_ownedTab_add(t);
241
+ cgi=umlx_classifier_generalization_indirect
242
+ cgi.add(self)
243
+ cgi.each { |c|
244
+ c.uml_ownedAttribute.each { |a|
245
+ next if a.struts_ignoreInForm?
246
+ next if a.java_Name==STRUTS_RESULT_PARAM_NAME
247
+ t.struts_ownedAttribute_add(a)
248
+ }
249
+ }
250
+ end
251
+
252
+
253
+
254
+ def struts_addProceedAction!(action)
255
+ proca=action.struts_createAndAddExecuteOperation(STRUTS_PROCEED_ACTION)
256
+ j=%{
257
+ #{struts_formCastJavaCode}
258
+ String s=form.get#{STRUTS_SGBD_STATE_PROP}();
259
+ }
260
+
261
+ [STRUTS_NEW_ACTION,STRUTS_CREATE_ACTION,STRUTS_UPDATE_ACTION,STRUTS_READ_ACTION,STRUTS_DELETE_ACTION].each {|m|
262
+ j=j+%{if(s.compareTo("#{m}")==0) { return #{m}(mapping,form,request,response); }\n}
263
+ }
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
+ }
272
+ proca.java_code=j
273
+ end
274
+
275
+ def struts_addReturnAction!(action)
276
+ reta=action.struts_createAndAddExecuteOperation(STRUTS_RETURN_ACTION)
277
+ reta.java_code=%{
278
+ #{struts_formCastJavaCode}
279
+ javax.servlet.http.HttpSession session=request.getSession();
280
+ String key=form.getReference().getClass().getName()+"_returnTo";
281
+ String url=(String)session.getAttribute(key);
282
+ session.removeAttribute(key);
283
+ if(url==null) {
284
+ // loop on self when reach top of returnTo stack.
285
+ return mapping.findForward("#{STRUTS_INPUT_FWD}");
286
+ }
287
+
288
+ //external redirect is not supported nor desired when FLEX.
289
+ // FLEX: redirect = false , not FLEX: redirected= true
290
+ boolean redirect = request.getParameter("FLEX")==null ;
291
+ return new org.apache.struts.action.ActionForward(url,redirect);
292
+ }
293
+ end
294
+
295
+ def struts_addResumeAction!(action)
296
+ resume=action.struts_createAndAddExecuteOperation(STRUTS_RESUME_ACTION)
297
+ resume.java_code=<<ENDRESCODE
298
+ #{struts_formCastJavaCode}
299
+ #{%{
300
+ long referenceId = form.getReference().getId();
301
+ #{self.java_qualifiedName} reference = #{self.java_qualifiedName}.find(referenceId);
302
+ form.setReference(reference);
303
+ } unless java_DAOClass.empty? }
304
+ form.setSgbd_state("#{STRUTS_UPDATE_ACTION}");
305
+ form.initFromReference();
306
+ return mapping.findForward("#{STRUTS_INPUT_FWD}");
307
+ ENDRESCODE
308
+ end
309
+
310
+ def struts_addNewAction!(action)
311
+ if uml_isAbstract? || kind_of?(Muml_Interface)
312
+ struts_addNewActionNotAvailable!(action)
313
+ else
314
+ struts_addNewActionAvailable!(action)
315
+ end
316
+ end
317
+
318
+ def struts_addNewActionNotAvailable!(action)
319
+ create=action.struts_createAndAddExecuteOperation(STRUTS_NEW_ACTION)
320
+ create.java_code=%{
321
+ throw new java.lang.RuntimeException("new not available for abstract class #{self.java_qualifiedName}");
322
+ }
323
+ end
324
+
325
+
326
+ def struts_addNewActionAvailable!(action)
327
+ create=action.struts_createAndAddExecuteOperation(STRUTS_NEW_ACTION)
328
+ create.java_code= <<ENDMETH
329
+ // Creates a new transient object instance and forwards to an edit page.
330
+ #{struts_formCastJavaCode}
331
+ form.setReference(new #{java_qualifiedName}());
332
+ #{%{ form.getReference().initData();\nform.getReference().persist(); } if self.java_isATestFile? }
333
+ form.initFromReference();
334
+ //form.getReference().persist();
335
+ form.set#{STRUTS_SGBD_STATE_PROP}("#{STRUTS_CREATE_ACTION}");
336
+ #{java_debug(%{"STATE="+form.get#{STRUTS_SGBD_STATE_PROP}()})}
337
+ return mapping.findForward("#{STRUTS_INPUT_FWD}");
338
+ ENDMETH
339
+ end
340
+
341
+
342
+ def struts_addCreateAction!(action)
343
+ create=action.struts_createAndAddExecuteOperation(STRUTS_CREATE_ACTION)
344
+ #note: persist must be before copyTo
345
+ create.java_code=<<ENDMETH
346
+ #{struts_formCastJavaCode}
347
+ form.copyToReference();
348
+ form.setReference(form.getReference().merge());
349
+ form.initFromReference();
350
+ form.set#{STRUTS_SGBD_STATE_PROP}("#{STRUTS_UPDATE_ACTION}");
351
+ return #{STRUTS_RETURN_ACTION}(mapping,form,request,response);
352
+ ENDMETH
353
+ end
354
+
355
+ def struts_addReadAction!(action)
356
+ update=action.struts_createAndAddExecuteOperation(STRUTS_READ_ACTION)
357
+ if java_DAOClass.empty?
358
+ update.java_code=<<ENDMETH
359
+ throw new RuntimeException("method #{update.java_Name} is only available for persistent elements");
360
+ ENDMETH
361
+ else
362
+ update.java_code=<<ENDMETH
363
+ //loads object from database using id and forwards to edit page
364
+ #{struts_formCastJavaCode}
365
+ form.setReference(#{java_DAOClass_one.java_qualifiedName}.find(Long.parseLong(form.getId())));
366
+ form.initFromReference();
367
+ form.set#{STRUTS_SGBD_STATE_PROP}("#{STRUTS_UPDATE_ACTION}");
368
+ return mapping.findForward("#{STRUTS_INPUT_FWD}");
369
+ ENDMETH
370
+ end
371
+ end
372
+
373
+ def struts_addUpdateAction!(action)
374
+ update=action.struts_createAndAddExecuteOperation(STRUTS_UPDATE_ACTION)
375
+ if false #java_DAOClass.empty?
376
+ update.java_code=<<ENDMETH
377
+ throw new RuntimeException("method #{update.java_Name} is only available for persistent elements");
378
+ ENDMETH
379
+ else
380
+ update.java_code=<<ENDMETH
381
+ //update persistent object from html form.
382
+ #{struts_formCastJavaCode}
383
+ form.copyToReference();
384
+ form.setReference(form.getReference().merge());
385
+ form.set#{STRUTS_SGBD_STATE_PROP}("#{STRUTS_UPDATE_ACTION}");
386
+ form.initFromReference();
387
+ return #{STRUTS_RETURN_ACTION}(mapping,form,request,response);
388
+ ENDMETH
389
+ end
390
+ end
391
+ def struts_addDeleteAction!(action)
392
+ update=action.struts_createAndAddExecuteOperation(STRUTS_DELETE_ACTION)
393
+ if false #java_DAOClass.empty?
394
+ update.java_code=<<ENDMETH
395
+ throw new RuntimeException("method #{update.java_Name} is only available for persistent elements");
396
+ ENDMETH
397
+ else
398
+ update.java_code= <<ENDCODE
399
+ #{struts_formCastJavaCode}
400
+ form.copyToReference();
401
+ form.set#{STRUTS_SGBD_STATE_PROP}("#{STRUTS_NEW_ACTION}");
402
+ form.initFromReference();
403
+ return #{STRUTS_RETURN_ACTION}(mapping,form,request,response);
404
+ ENDCODE
405
+ end
406
+ end
407
+
408
+ def struts_addBusinessMethods!(action)
409
+ umlx_ownedAndInheritedOperation.each { |op|
410
+ # private and protected methods are not published
411
+ next if op.uml_visibility_one.isPrivate?
412
+ next if op.uml_isAbstract?
413
+ next if op.uml_visibility_one.isProtected?
414
+ next unless op.umlx_businessMethod?
415
+ next if op.struts_bizOperationReverse.empty?
416
+
417
+ biz=action.struts_createAndAddExecuteOperation("#{op.java_Name}")
418
+ biz.java_code=<<ENDCODE
419
+ #{struts_formCastJavaCode}
420
+ form.copyToReference();
421
+ form.setReference(form.getReference().merge());
422
+ #{op.struts_bizOperationReverse_one.java_qualifiedName} newElt=new #{op.struts_bizOperationReverse_one.java_qualifiedName}();
423
+ newElt.set#{STRUTS_APPLY_TO_PROP}(form.getReference());
424
+ return #{struts_getActionHelper.java_qualifiedName}.transferToStartEditAction(mapping,request,newElt,"#{self.java_Name}");
425
+ ENDCODE
426
+ }
427
+ end
428
+
429
+ def struts_addCreateAndAddActions!(action)
430
+ struts_formAttribute.each { |a|
431
+ next unless a.umlx_isComposite?
432
+ if a.umlx_oneSide?
433
+ struts_addCreateAndAddOneAction!(action,a)
434
+ else
435
+ struts_addCreateAndAddManyAction!(action,a)
436
+ end
437
+ }
438
+ struts_formAttribute.each { |a|
439
+ next if a.umlx_isAttribute?
440
+ if a.umlx_oneSide?
441
+ struts_addEditOneAction!(action,a)
442
+ else
443
+ struts_addEditManyAction!(action,a)
444
+ end
445
+ }
446
+ end
447
+
448
+ def struts_addCreateAndAddOneAction!(action,a)
449
+ struts_addCreateAndAddOneOrManyAction!(action,a,false)
450
+ end
451
+ def struts_addCreateAndAddManyAction!(action,a)
452
+ struts_addCreateAndAddOneOrManyAction!(action,a,true)
453
+ end
454
+
455
+ def struts_addCreateAndAddOneOrManyAction!(action,a,isMany)
456
+ cr=action.struts_createAndAddExecuteOperation("createAndAdd#{a.java_NameBean}")
457
+ cr.java_code=<<ENDCODE
458
+ #{struts_formCastJavaCode}
459
+ #{db_tx_none(%{
460
+ form.copyToReference();
461
+ #{a.uml_type_one.java_enumAssignableDataType_one.java_qualifiedName} reqType=Enum.valueOf(#{a.uml_type_one.java_enumAssignableDataType_one.java_qualifiedName}.class,form.get#{STRUTS_REQUESTED_CREATION_TYPE_FIELD_PROP}());
462
+ form.setReference(form.getReference().merge());
463
+ #{a.uml_type_one.java_qualifiedName} newElt=form.getReference().createAndAdd#{a.java_NameBean}(reqType);
464
+ form.getReference().persist();
465
+ return #{struts_getActionHelper.java_qualifiedName}.transferToStartEditAction(mapping,request,newElt,"#{self.java_Name}");
466
+ })}
467
+ ENDCODE
468
+ end
469
+
470
+ def struts_addEditManyAction!(action,a)
471
+ cr=action.struts_createAndAddExecuteOperation("edit#{a.java_NameBean}")
472
+ e=struts_getFunctionalException
473
+ cr.java_code= <<ENDCODE
474
+ #{struts_formCastJavaCode}
475
+ #{%{
476
+ long referenceId = form.getReference().getId();
477
+ #{self.java_qualifiedName} reference = #{self.java_qualifiedName}.find(referenceId);
478
+ form.setReference(reference);
479
+ } unless java_DAOClass.empty? }
480
+
481
+ form.copyToReference();
482
+ String sid=request.getParameter("#{STRUTS_REQUESTED_TAB}");
483
+ long id=Long.parseLong(sid);
484
+
485
+ #{a.uml_type_one.java_qualifiedName} elt=null;
486
+
487
+ {
488
+ java.util.Iterator<?> iter=form.getReference().get#{a.java_NameBean}().iterator();
489
+ while(iter.hasNext()) {
490
+ elt=(#{a.uml_type_one.java_qualifiedName})iter.next();
491
+ if (elt.getId()!=id) continue;
492
+ break;
493
+ }
494
+ #{e.java_qualifiedName} exceptionToFire = new #{e.java_qualifiedName}("/pages/#{java_InternalFilePath}form/#{java_Name}all.jsp","Internal error. #{cr.java_qualifiedName} called on null element");
495
+ #{struts_getActionHelper.java_qualifiedName}.checkNotNull(elt,exceptionToFire);
496
+
497
+ }
498
+ return #{struts_getActionHelper.java_qualifiedName}.transferToStartEditAction(mapping,request,elt,"#{self.java_Name}");
499
+ ENDCODE
500
+ end
501
+
502
+ def struts_addEditOneAction!(action,a)
503
+ cr=action.struts_createAndAddExecuteOperation("edit#{a.java_NameBean}")
504
+ e=struts_getFunctionalException
505
+ cr.java_code= <<ENDCODE
506
+ #{struts_formCastJavaCode}
507
+ #{%{
508
+ long referenceId = form.getReference().getId();
509
+ #{self.java_qualifiedName} reference = #{self.java_qualifiedName}.find(referenceId);
510
+ form.setReference(reference);
511
+ } unless java_DAOClass.empty?}
512
+
513
+ form.copyToReference();
514
+ //form.setReference(form.getReference().merge());
515
+
516
+ #{a.uml_type_one.java_qualifiedName} elt=form.getReference().get#{a.java_NameBean}();
517
+
518
+ #{e.java_qualifiedName} exceptionToFire = new #{e.java_qualifiedName}("/pages/#{java_InternalFilePath}form/#{java_Name}all.jsp","Internal error. #{cr.java_qualifiedName} called on null element");
519
+ #{struts_getActionHelper.java_qualifiedName}.checkNotNull(elt,exceptionToFire);
520
+
521
+ return #{struts_getActionHelper.java_qualifiedName}.transferToStartEditAction(mapping,request,elt,"#{self.java_Name}");
522
+ ENDCODE
523
+ end
524
+
525
+ def struts_addRemoveAndDeleteActions!(action)
526
+ struts_formAttribute.each { |a|
527
+ #next unless a.umlx_isComposite?
528
+ #next unless a.umlx_isAssociation?
529
+ next if a.umlx_isAttribute?
530
+ if a.umlx_oneSide?
531
+ struts_addRemoveAndDeleteOneAction!(action,a)
532
+ else
533
+ struts_addRemoveAndDeleteManyAction!(action,a)
534
+ end
535
+ struts_addOneOrManyAction!(action,a)
536
+ }
537
+ end
538
+
539
+ def struts_addOneOrManyAction!(action,a)
540
+ return if a.uml_isReadOnly?
541
+ meth=action.struts_createAndAddExecuteOperation("add#{a.java_NameBean}")
542
+ if false #java_DAOClass.empty?
543
+ meth.java_code=<<ENDMETH
544
+ throw new RuntimeException("method #{meth.java_Name} is only available for persistent elements");
545
+ ENDMETH
546
+ else
547
+ meth.java_code= <<ENDMETH
548
+ #{struts_formCastJavaCode}
549
+ String sid=request.getParameter("#{STRUTS_REQUESTED_TAB}");
550
+ long id=Long.parseLong(sid);
551
+
552
+ form.copyToReference();
553
+ form.setReference(form.getReference().merge());
554
+ #{struts_findElt(a,true)}
555
+ if(elt!=null) {
556
+ form.getReference().#{a.umlx_oneSide? ? "set":"add"}#{a.java_NameBean}(elt);
557
+ //TODO: delete element
558
+ }
559
+ form.initFromReference();
560
+ return mapping.findForward("#{STRUTS_INPUT_FWD}");
561
+ ENDMETH
562
+ end
563
+ end
564
+
565
+ def struts_addRemoveAndDeleteOneAction!(action,a)
566
+ return if a.uml_isReadOnly?
567
+ del=action.struts_createAndAddExecuteOperation("removeAndDelete#{a.java_NameBean}")
568
+ del.java_code= <<END_DEL_CODE
569
+ #{struts_formCastJavaCode}
570
+ #{db_tx_none(%{
571
+ //String sid=request.getParameter("#{STRUTS_REQUESTED_TAB}");
572
+ //long id=Long.parseLong(sid);
573
+ //#{a.uml_type_one.java_qualifiedName} elt=null;
574
+ form.copyToReference();
575
+ form.setReference(form.getReference().merge());
576
+ form.getReference().set#{a.java_NameBean}(null);
577
+ //TODO: delete element
578
+ form.initFromReference();
579
+ })}
580
+ return mapping.findForward("#{STRUTS_INPUT_FWD}");
581
+ END_DEL_CODE
582
+ end
583
+
584
+ def struts_findElt(a,findFromSug=false)
585
+ sug=findFromSug ? "Sug" : ""
586
+ cr=a
587
+ e=struts_getFunctionalException
588
+ return <<ENDCODE
589
+ #{a.uml_type_one.java_qualifiedName} elt=null;
590
+ {
591
+ java.util.Iterator<?> iter=form.getReference().get#{a.java_NameBean}#{sug}().iterator();
592
+ while(iter.hasNext()) {
593
+ elt=(#{a.uml_type_one.java_qualifiedName})iter.next();
594
+ if(elt.getId()!=id) continue;
595
+ break;
596
+ }
597
+ }
598
+ #{e.java_qualifiedName} exceptionToFire = new #{e.java_qualifiedName}("/pages/#{java_InternalFilePath}form/#{java_Name}#{STRUTS_RESULTS_FWD}.jsp","Internal error. #{cr.java_qualifiedName} called on null element");
599
+ #{struts_getActionHelper.java_qualifiedName}.checkNotNull(elt,exceptionToFire);
600
+ ENDCODE
601
+ end
602
+
603
+
604
+
605
+ def struts_addRemoveAndDeleteManyAction!(action,a)
606
+ return if a.uml_isReadOnly?
607
+ del=action.struts_createAndAddExecuteOperation("removeAndDelete#{a.java_NameBean}")
608
+ del.java_code= <<ENDJCODE
609
+ #{struts_formCastJavaCode}
610
+ #{db_tx_none(%{
611
+ String sid=request.getParameter("#{STRUTS_REQUESTED_TAB}");
612
+ long id=Long.parseLong(sid);
613
+
614
+ form.copyToReference();
615
+ form.setReference(form.getReference().merge());
616
+ #{struts_findElt(a)}
617
+ if(elt!=null) {
618
+ form.getReference().remove#{a.java_NameBean}(elt);
619
+ //TODO: delete element
620
+ }
621
+ form.initFromReference();
622
+
623
+ })}
624
+ return mapping.findForward("#{STRUTS_INPUT_FWD}");
625
+ ENDJCODE
626
+ end
627
+
628
+ def struts_addSwitchToFlexAction!(action)
629
+ return unless context[:generateXMLStrutsForm]
630
+ create=action.struts_createAndAddExecuteOperation(::Muml_Class::STRUTS_SWITH_TO_FLEX_ACTION)
631
+ create.java_code= <<JCODE
632
+ #{struts_formCastJavaCode}
633
+ String z="#{Muml_Class::STRUTS_SWITCH_TO_FLEX_FORWARD}";
634
+ #{STRUTS_ACTION_FORWARD} am=mapping.findForward(z);
635
+ #{db_tx_none(%{
636
+ form.copyToReference();
637
+ form.setReference(form.getReference().merge());
638
+ if(am==null) {
639
+ #{java_error(%{"ActionMapping not found for '"+z+"'"})}
640
+ return mapping.findForward("#{STRUTS_INPUT_FWD}");
641
+ }
642
+ })}
643
+ request.getSession().setAttribute("flex_action",request.getRequestURI());
644
+ request.getSession().setAttribute("flex_locale",getLocale(request).getLanguage());
645
+ return am;
646
+ JCODE
647
+ end
648
+
649
+ def struts_addRefreshAction!(action)
650
+ meth=action.struts_createAndAddExecuteOperation(STRUTS_REFRESH_ACTION)
651
+ meth.java_code=<<ENDMETH
652
+ #{struts_formCastJavaCode}
653
+ String z=request.getParameter("#{STRUTS_REQUESTED_TAB}");
654
+ #{STRUTS_ACTION_FORWARD} am=mapping.findForward(z);
655
+ form.copyToReference();
656
+ form.setReference(form.getReference().merge());
657
+ if(am==null) {
658
+ #{java_error(%{"ActionMapping not found for '"+z+"'"})}
659
+ return mapping.findForward("#{STRUTS_INPUT_FWD}");
660
+ }
661
+ return am;
662
+ ENDMETH
663
+ end
664
+ def struts_addFieldMethods!(action)
665
+ form=struts_actionForm_one
666
+ struts_formAttribute.each {|a|
667
+ tpl=DatatypeMapping.instance.getMapping(a.uml_type_one)
668
+ tpl.addActionFieldMethod!(a,action,form)
669
+ }
670
+ end
671
+
672
+ STRUTS_SETSKIN_ACTION="setSkin"
673
+ STRUTS_SETTIMEZONE_ACTION="setTimeZone"
674
+ STRUTS_SETLOCALE_ACTION="setLocale"
675
+ def struts_addsetTimeZoneAction!(action)
676
+ mpc=self
677
+ cpt=action.struts_createAndAddExecuteOperation(STRUTS_SETTIMEZONE_ACTION)
678
+ cpt.java_code=<<ENDCODE
679
+ #{struts_formCastJavaCode}
680
+ //form.copyToReference();
681
+ String newTimeZoneId = form.getStruts_tz();
682
+ #{struts_getActionHelper.java_qualifiedName}.changeTimeZoneAction_s1(form,mapping,request, newTimeZoneId);
683
+ form.setReference(form.getReference().merge());
684
+ return #{struts_getActionHelper.java_qualifiedName}.changeTimeZoneAction_s2(form,mapping,request, newTimeZoneId);
685
+ ENDCODE
686
+ end
687
+ def struts_addsetSkinAction!(action)
688
+ mpc=self
689
+ cpt=action.struts_createAndAddExecuteOperation(STRUTS_SETSKIN_ACTION)
690
+ #TODO cpt.java_code=
691
+ end
692
+ def struts_addsetLocaleAction!(action)
693
+ mpc=self
694
+ cpt=action.struts_createAndAddExecuteOperation(STRUTS_SETLOCALE_ACTION)
695
+ cpt.java_code=%{
696
+ #{struts_formCastJavaCode}
697
+ form.copyToReference();
698
+ return #{struts_getActionHelper.java_qualifiedName}.changeLocaleAction(mapping,getLocale(request),request,form.getStrutsLanguage(),form.getStrutsCountry());
699
+ }
700
+ end
701
+ end
702
+ module Muml_Element
703
+ def db_tx_none(java_code)
704
+ return java_code
705
+ end
706
+
707
+ STRUTS_ACTION_HELPER="xmda.struts.ActionHelper"
708
+
709
+ def struts_getActionHelper
710
+ helper=umlx_getOrCreateClass(STRUTS_ACTION_HELPER)
711
+ if(helper.java_customCode.empty?)
712
+ helper.apaCom_addLogger!
713
+ helper.umlx_external=RDF_FALSE
714
+ #helper.java_import_add(STRUTS_LVB)
715
+ helper.db_isTransient=RDF_TRUE
716
+ helper.struts_isForm=RDF_FALSE
717
+ helper.java_customCode= <<ENDCODE
718
+
719
+ public static final String STRUTS_INPUT_FWD="#{::Muml_Classifier::STRUTS_INPUT_FWD}";
720
+
721
+ public static void changeTimeZoneAction_s1(final #{::Muml_Classifier::STRUTS_FORM_INTERFACE} form,final org.apache.struts.action.ActionMapping mapping,final javax.servlet.http.HttpServletRequest request,final String newTimeZoneId) {
722
+ String oldTimeZoneId = xmda.tags.helpers.XMDARequestUtils.getUserTimeZone(request, null).getID();
723
+ //String newTimeZoneId = form.get#{Muml_Classifier::STRUTS_SETTIMEZONE_BEAN}();
724
+
725
+ // we change the the timezone.
726
+ xmda.struts.ActionHelper.changeTimeZone(mapping, java.util.TimeZone.getDefault(),request,newTimeZoneId);
727
+
728
+ // We transform the current timestamp dates in the form to the GMT
729
+ // format
730
+ // using the old time zone id in the method "copyToReference".
731
+ form.set#{Muml_Classifier::STRUTS_SETTIMEZONE_BEAN}(oldTimeZoneId);
732
+ form.copyToReference();
733
+ }
734
+
735
+ public static org.apache.struts.action.ActionForward changeTimeZoneAction_s2(final #{::Muml_Classifier::STRUTS_FORM_INTERFACE} form,final org.apache.struts.action.ActionMapping mapping,final javax.servlet.http.HttpServletRequest request,final String newTimeZoneId) {
736
+ //String newTimeZoneId = form.get#{Muml_Classifier::STRUTS_SETTIMEZONE_BEAN}();
737
+ form.set#{Muml_Classifier::STRUTS_SETTIMEZONE_BEAN}(newTimeZoneId);
738
+ form.initFromReference();
739
+
740
+ return mapping.findForward(STRUTS_INPUT_FWD);
741
+ }
742
+
743
+
744
+ public static void changeTimeZone(
745
+ final org.apache.struts.action.ActionMapping mapping, java.util.TimeZone timeZone,
746
+ final javax.servlet.http.HttpServletRequest request, final String timeZoneDisplayName) {
747
+
748
+ boolean isTimeZone = ((timeZoneDisplayName != null) && (timeZoneDisplayName.length() > 0));
749
+
750
+ if (isTimeZone) {
751
+ timeZone = java.util.TimeZone.getTimeZone(timeZoneDisplayName);
752
+ }
753
+ request.getSession().setAttribute(xmda.tags.helpers.XMDAStrutsGlobals.TIMEZONE_KEY,
754
+ timeZone);
755
+
756
+ log.debug("selected timeZone = " + timeZone.getDisplayName());
757
+ // return mapping.findForward("inputfw");
758
+ }
759
+
760
+ public static String getCurrentTab(final org.apache.struts.action.ActionMapping mapping,final String bizClassName) {
761
+ String path=mapping.findForward(STRUTS_INPUT_FWD).getPath();
762
+ // path=/pages/comftpass/application/form/Applicationall.jsp
763
+ String s=bizClassName;
764
+ //int i=path.indexOf(s);
765
+ int bi=path.indexOf(s)+s.length();
766
+ int ei=path.indexOf(".jsp");
767
+
768
+ String currentTab=path.substring(bi,ei);
769
+ #{java_debug(%{"currentTab= >"+currentTab+"< path="+path})}
770
+ return currentTab;
771
+ }
772
+
773
+ public static org.apache.struts.action.ActionForward changeLocaleAction(final org.apache.struts.action.ActionMapping mapping,java.util.Locale locale,final javax.servlet.http.HttpServletRequest request,final String language,final String country) {
774
+
775
+ boolean isLanguage = ((language != null) && (language.length() > 0));
776
+ boolean isCountry = ((country != null) && (country.length() > 0));
777
+
778
+ if ((isLanguage) && (isCountry)) {
779
+ locale = new java.util.Locale(language, country);
780
+ } else if (isLanguage) {
781
+ locale = new java.util.Locale(language, "");
782
+ }
783
+ request.getSession().setAttribute(org.apache.struts.Globals.LOCALE_KEY, locale);
784
+ return mapping.findForward("#{Muml_Classifier::STRUTS_INPUT_FWD}");
785
+ }
786
+
787
+ public static org.apache.struts.action.ActionForward transferToStartEditAction(final org.apache.struts.action.ActionMapping mapping,final javax.servlet.http.HttpServletRequest request,final Object alienElement,final String parentFwd) {
788
+ javax.servlet.http.HttpSession session = request.getSession();
789
+ String currentTab = getCurrentTab(mapping, parentFwd);
790
+ // an extraneous "/" is added for forward (not needed for redirect)
791
+ String returnTo = "/"+parentFwd + currentTab
792
+ + "-submit.do?doWhat=#{Muml_Classifier::STRUTS_RESUME_ACTION}";
793
+
794
+ session.setAttribute("#{Muml_Classifier::STRUTS_SESSION_KEY_EditAction}", alienElement);
795
+ session.setAttribute( alienElement.getClass().getName() + "_returnTo", returnTo);
796
+ return mapping.findForward(alienElement.getClass().getSimpleName()+"#{Muml_Class::STRUTS_EDIT_FWD_POSTFIX}");
797
+ }
798
+
799
+ public static void checkNotNull(final Object elt, #{struts_getFunctionalException.java_qualifiedName} exceptionToFire) {
800
+ if (elt == null) {
801
+ throw exceptionToFire;
802
+ }
803
+ }
804
+ /*
805
+ * dump image contained in image variable to web browser.
806
+ * Forward to #{Muml_Class::NOGIF_FORWARD} if image is null.
807
+ */
808
+ public static org.apache.struts.action.ActionForward writeGif(final org.apache.struts.action.ActionMapping mapping,final javax.servlet.http.HttpServletResponse response, byte image[]) {
809
+ if (image != null) {
810
+ response.setContentType("image/gif");
811
+ try {
812
+ response.getOutputStream().write(image);
813
+ } catch (java.io.IOException ioe) {
814
+ throw new RuntimeException(ioe);
815
+ }
816
+ return null;
817
+ } else {
818
+ // image will display as text if loaded directly
819
+ // ie: not trough <img src=>
820
+ response.setContentType("image/gif");
821
+ return mapping.findForward("#{Muml_Class::NOGIF_FORWARD}");
822
+ }
823
+ }
824
+
825
+ /*
826
+ * dump image contained in image variable to web browser.
827
+ * Forward to #{Muml_Class::NOGIF_FORWARD} if image is null.
828
+ */
829
+ public static org.apache.struts.action.ActionForward writeGraphviz(final org.apache.struts.action.ActionMapping mapping,final javax.servlet.http.HttpServletResponse response,final String graphvizDotFile) {
830
+ if (graphvizDotFile!= null) {
831
+ response.setContentType("image/gif");
832
+ try {
833
+ com.ft.cil.graphe.Graphe graphe=new com.ft.cil.graphe.Graphe(graphvizDotFile);
834
+ //note: function renaming : (Stream is a byte array)
835
+ response.getOutputStream().write(graphe.getImageStream());
836
+ } catch (java.io.IOException ioe) {
837
+ throw new RuntimeException(ioe);
838
+ }
839
+ return null;
840
+ } else {
841
+ // image will display as text if loaded directly
842
+ // ie: not trough <img src=>
843
+ response.setContentType("image/gif");
844
+ return mapping.findForward("#{Muml_Class::NOGIF_FORWARD}");
845
+ }
846
+ }
847
+
848
+ /*
849
+ * dump image contained in image variable to web browser.
850
+ * Forward to #{Muml_Class::NOGIF_FORWARD} if image is null.
851
+ */
852
+
853
+ public static org.apache.struts.action.ActionForward writeGraphvizMap(final org.apache.struts.action.ActionMapping mapping,final javax.servlet.http.HttpServletResponse response,final String graphvizDotFile) {
854
+ response.setContentType("text/html");
855
+ if (graphvizDotFile!= null) {
856
+
857
+ try {
858
+ com.ft.cil.graphe.Graphe graphe=new com.ft.cil.graphe.Graphe(graphvizDotFile);
859
+ //note: function renaming : (Stream is a byte array)
860
+ javax.servlet.ServletOutputStream out=response.getOutputStream();
861
+ out.write("<html><head><title>usemap</title></head><body><map name=\\"myMap\\">\\n".getBytes());
862
+ out.write(graphe.getImageMap());
863
+ out.write("</map></body></html>\\n".getBytes());
864
+ } catch (java.io.IOException ioe) {
865
+ throw new RuntimeException(ioe);
866
+ }
867
+ } else {
868
+
869
+ // image will display as text if loaded directly
870
+ // ie: not trough <img src=>
871
+
872
+ }
873
+ // do not forward to a jsp, output has already been written.
874
+ return null;
875
+ }
876
+
877
+ ENDCODE
878
+
879
+ end
880
+ return helper;
881
+ end
882
+ end
883
+