ontomde-uml2-struts 1.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.
@@ -0,0 +1,308 @@
1
+ #
2
+ # xml form
3
+ #
4
+ # adding methods to generate xml form for use by xml client such as Flex.
5
+ #
6
+ #
7
+
8
+ module Muml_Class
9
+
10
+ #name of the java class used to store helper methods
11
+ #for xml form generation.
12
+ STRUTS_XMLFORM_HELPER="xmda.struts.XMLFormHelper"
13
+
14
+ def struts_getXMLFormHelper!
15
+ helper=umlx_getOrCreateClass(STRUTS_XMLFORM_HELPER)
16
+ if(helper.java_customCode.empty?)
17
+ helper.umlx_external=RDF_FALSE
18
+ helper.java_import_add("org.apache.struts.util.LabelValueBean")
19
+ helper.db_isTransient=RDF_TRUE
20
+ helper.struts_isForm=RDF_FALSE
21
+ helper.java_customCode= %{
22
+ public static void xmlForm_field(StringBuffer sb, String label, Object value) {
23
+ //Default behavior is to call toString.
24
+ //Customization should be coded in StrutsForm when using Struts.
25
+ xmlForm_field(sb,label,value==null ? null : value.toString());
26
+ }
27
+
28
+ //static java.text.SimpleDateFormat dfDate=new java.text.SimpleDateFormat("yyyy/MM/dd",java.util.Locale.ENGLISH);
29
+ //static java.text.SimpleDateFormat dfTimestamp=new java.text.SimpleDateFormat("yyyy/MM/dd HH:mm:ss",java.util.Locale.ENGLISH);
30
+ public static void xmlForm_field(StringBuffer sb, String label, java.util.Date value) {
31
+ xmlForm_field(sb,label,value==null ? null : #{STRUTS_TIMESTAMP_FORMATER_INSTANCE}.format(value));
32
+ }
33
+
34
+ public static void xmlForm_field(StringBuffer sb, String label, Enum<?> value) {
35
+ xmlForm_field(sb,label,value==null ? null : value.getClass().getCanonicalName()+"."+value.toString());
36
+ }
37
+
38
+ public static void xmlForm_field(StringBuffer sb, String label, int value) {
39
+ xmlForm_field(sb,label,Integer.toString(value));
40
+ }
41
+ public static void xmlForm_field(StringBuffer sb, String label, long value) {
42
+ xmlForm_field(sb,label,Long.toString(value));
43
+ }
44
+ public static void xmlForm_field(StringBuffer sb, String label, boolean value) {
45
+ xmlForm_field(sb,label,Boolean.toString(value));
46
+ }
47
+ public static void xmlForm_field(StringBuffer sb, String label, String value) {
48
+ sb.append(" <v n=\\"");
49
+ sb.append(label);
50
+ sb.append("\\">");
51
+ sb.append(value==null ? "<nil/>" : value );
52
+ sb.append("</v>\\n");
53
+ }
54
+
55
+ public static void xmlForm_field_type_Lit(StringBuffer sb, String label,
56
+ byte[] currentValue) {
57
+ //TODO
58
+ }
59
+ public static void xmlForm_field_type_Lit(StringBuffer sb, String label,
60
+ String currentValue) {
61
+ sb.append(" <f n=\\"");
62
+ sb.append(label);
63
+ sb.append("\\">");
64
+ sb.append(currentValue==null ? "<nil/>" :currentValue);
65
+ sb.append("</f>\\n");
66
+ }
67
+
68
+ public static void xmlForm_field_type_Lit(StringBuffer sb, String label, java.util.Date currentValue) {
69
+ sb.append(" <f n=\\"");
70
+ sb.append(label);
71
+ sb.append("\\">");
72
+ sb.append(currentValue==null ? "<nil/>" : #{STRUTS_TIMESTAMP_FORMATER_INSTANCE}.format(currentValue));
73
+ sb.append("</f>\\n");
74
+ }
75
+ public static void xmlForm_field_type_Lit(StringBuffer sb, String label, boolean currentValue) {
76
+ sb.append(" <f n=\\"");
77
+ sb.append(label);
78
+ sb.append("\\">");
79
+ sb.append(currentValue ? "true" : "false");
80
+ sb.append("</f>\\n");
81
+ }
82
+
83
+ public static void xmlForm_field_type_Lit(StringBuffer sb, String label, long currentValue) {
84
+ sb.append(" <f n=\\"");
85
+ sb.append(label);
86
+ sb.append("\\">");
87
+ sb.append(currentValue);
88
+ sb.append("</f>\\n");
89
+ }
90
+
91
+ public static void xmlForm_field_type_Lit(StringBuffer sb, String label, int currentValue) {
92
+ sb.append(" <f n=\\"");
93
+ sb.append(label);
94
+ sb.append("\\">");
95
+ sb.append(currentValue);
96
+ sb.append("</f>\\n");
97
+ }
98
+
99
+ public static boolean xmlForm_field_sug_ifNull(StringBuffer sb, Object item) {
100
+ if (item == null) {
101
+ sb.append(" <o k=\\"nill\\"/>\\n");
102
+ }
103
+ return item != null;
104
+ }
105
+
106
+ public static void xmlForm_field_head(StringBuffer sb, String label,
107
+ String currentValue) {
108
+ sb.append(" <f n=\\"");
109
+ sb.append(label);
110
+ sb.append("\\" k=\\"");
111
+ sb.append(currentValue);
112
+ sb.append("\\">\\n");
113
+ }
114
+
115
+ public static void xmlForm_field_head(StringBuffer sb, String label,
116
+ String[] currentValueMany,String currentValueOne) {
117
+ sb.append(" <f n=\\"");
118
+ sb.append(label);
119
+ sb.append("\\">\\n");
120
+ if (currentValueMany!=null) {
121
+ for (int i = 0; i < currentValueMany.length; i++) {
122
+ String s = currentValueMany[i];
123
+ sb.append(" <s>");
124
+ sb.append(s==null ? "<nil/>" : s);
125
+ sb.append("</s>\\n");
126
+ }
127
+ }
128
+ if (currentValueOne!=null) {
129
+ sb.append(" <s>");
130
+ sb.append(currentValueOne==null ? "<nil/>" : currentValueOne);
131
+ sb.append("</s>\\n");
132
+ }
133
+ }
134
+
135
+ public static void xmlForm_field_tail(StringBuffer sb, String label) {
136
+ sb.append(" </f>\\n");
137
+ }
138
+
139
+ public static void xmlForm_field_type_Enum(StringBuffer sb, String label,
140
+ String currentValue, java.util.List<LabelValueBean> suggestions) {
141
+ xmlForm_field_head(sb, label, currentValue);
142
+ for (LabelValueBean i : suggestions) {
143
+ sb.append(" <o k=\\"");
144
+ sb.append(i.getValue());
145
+ sb.append("\\">");
146
+ sb.append(i.getLabel());
147
+ sb.append("</o>\\n");
148
+ }
149
+ xmlForm_field_tail(sb, label);
150
+ }
151
+
152
+ public static void xmlFormSugOpen(StringBuffer sb, String k) {
153
+ sb.append(" <o k=\\"");
154
+ sb.append(k);
155
+ sb.append("\\">\\n");
156
+ }
157
+
158
+ public static void xmlFormSugClose(StringBuffer sb) {
159
+ sb.append(" </o>\\n");
160
+ }
161
+
162
+ //generates list of valid types for createAndAdd operation
163
+ public static void xmlForm_field_create(java.lang.StringBuffer sb,java.util.List<?> createSug){
164
+ if(createSug!=null) {
165
+ for(Object itemObj : createSug) {
166
+ #{::Muml_Classifier::JAVA_ENUM_INTERFACE_QNAME} item=(#{::Muml_Classifier::JAVA_ENUM_INTERFACE_QNAME})itemObj;
167
+ int i=0;
168
+ if(item!=null) {
169
+ sb.append(" <c k=\\"");
170
+ sb.append(item.name());
171
+ sb.append("\\">");
172
+ sb.append(item.getClass().getCanonicalName());
173
+ sb.append(".");
174
+ sb.append(item.name());
175
+ sb.append("</c>\\n");
176
+ //} else {
177
+ //i=i+1;
178
+ //log.error("!!! null enum"+i);
179
+ }
180
+ }
181
+ }
182
+ }
183
+ }
184
+ end
185
+ return helper
186
+ end
187
+
188
+ #Generate a xml serialization method.
189
+ #Example signature:
190
+ #public void xmlForm_field_type_Roue(StringBuffer sb, String label, String[] currentValue, List<Roue> suggestion) {...}
191
+ def struts_addXmlFormField_type!(form,t)
192
+ m=form.umlx_createAndAddOperation("#{rdf_uri}_fft_#{t.java_Name}","xmlForm_field_type_#{t.java_Name}")
193
+ p=m.umlx_createAndAddParameter("#{m.rdf_uri}_p1","sb")
194
+ p.uml_type=umlx_getOrCreateClass("java.lang.StringBuffer")
195
+
196
+ p=m.umlx_createAndAddParameter("#{m.rdf_uri}_p2","label")
197
+ p.uml_type=umlx_dataType_string
198
+
199
+ p=m.umlx_createAndAddParameter("#{m.rdf_uri}_p3","currentValueMany")
200
+ p.uml_type=umlx_dataType_string
201
+ #p.uml_isOrdered=RDF_TRUE
202
+ #force collection type to Collection.
203
+ p.uml_isUnique=RDF_FALSE
204
+ p.uml_upperValue=umlx_literal(-1)
205
+ p.java_use_Arrays=RDF_TRUE
206
+
207
+ p=m.umlx_createAndAddParameter("#{m.rdf_uri}_p4","currentValueOne")
208
+ p.uml_type=umlx_dataType_string
209
+ #p.uml_upperValue=umlx_literal(-1)
210
+ #p.java_use_Arrays=RDF_TRUE
211
+
212
+ p=m.umlx_createAndAddParameter("#{m.rdf_uri}_p5","suggestion")
213
+ p.uml_upperValue=umlx_literal(-1)
214
+ p.uml_isOrdered=RDF_TRUE
215
+ p.uml_type=t
216
+
217
+ p=m.umlx_createAndAddParameter("#{m.rdf_uri}_p6","createSug")
218
+ p.uml_upperValue=umlx_literal(-1)
219
+ p.uml_isOrdered=RDF_TRUE
220
+ p.uml_type=t.java_enumAssignableDataType_one
221
+
222
+ helper=struts_getXMLFormHelper!.java_Name
223
+
224
+ m.java_code=<<END
225
+ #{helper}.xmlForm_field_head(sb, label, currentValueMany,currentValueOne);
226
+ for (#{t.java_qualifiedName} item : suggestion) {
227
+ if (#{helper}.xmlForm_field_sug_ifNull(sb,item)) {
228
+ #{helper}.xmlFormSugOpen(sb,Long.toString(item.getId()));
229
+ xmlForm_field_row_#{t.java_Name}(sb, item);
230
+ #{helper}.xmlFormSugClose(sb);
231
+ }
232
+ }
233
+ XMLFormHelper.xmlForm_field_create(sb,createSug);
234
+ #{helper}.xmlForm_field_tail(sb, label);
235
+ END
236
+ end
237
+
238
+ #example: public void xmlForm_field_row_Roue(StringBuffer sb, Roue obj) {
239
+ def struts_addXmlFormField_row_type!(form,t)
240
+ helper=struts_getXMLFormHelper!.java_Name
241
+ m=form.umlx_createAndAddOperation("#{rdf_uri}_fft_#{t.java_Name}","xmlForm_field_row_#{t.java_Name}")
242
+ p=m.umlx_createAndAddParameter("#{m.rdf_uri}_p1","sb")
243
+ p.uml_type=umlx_getOrCreateClass("java.lang.StringBuffer")
244
+
245
+ p=m.umlx_createAndAddParameter("#{m.rdf_uri}_p2","obj")
246
+ p.uml_type=t
247
+
248
+ code=""
249
+ t.struts_formAttribute.each { |a|
250
+ code=code+%{#{helper}.xmlForm_field(sb,"#{a.java_Name}",obj.get#{a.java_NameBean}());\n}
251
+ }
252
+ m.java_code=code
253
+ end
254
+
255
+ #example public StringBuffer getAsXML(StringBuffer sb) {
256
+ STRUTS_XML_FORM_PROPERTY="xmlForm"
257
+ STRUTS_XML_FORM_GETTER="getXmlForm"
258
+ def struts_create_getXMLFormOperations!(form)
259
+ return unless context[:generateXMLStrutsForm,false]
260
+ t=form
261
+ helper=struts_getXMLFormHelper!.java_Name
262
+ form.java_import_add(struts_getXMLFormHelper!.java_qualifiedName)
263
+ form.java_import_add("org.apache.struts.util.LabelValueBean")
264
+
265
+ m=form.umlx_createAndAddOperation("#{rdf_uri}_fft_#{t.java_Name}",STRUTS_XML_FORM_GETTER)
266
+ #p=m.umlx_createAndAddParameter("#{m.rdf_uri}_p1","sb")
267
+ #p.uml_type=umlx_getOrCreateClass("java.lang.StringBuffer")
268
+
269
+ p=m.umlx_createAndAddReturnParameter("#{m.rdf_uri}_p2","obj")
270
+ p.uml_type=m.umlx_owner_one.umlx_dataType_string
271
+
272
+ code=<<END
273
+ StringBuffer sb = new StringBuffer();
274
+ END
275
+
276
+ usedTypes=Set.new
277
+ self.struts_formAttribute.each { |a|
278
+ next if a.uml_isReadOnly?
279
+ if a.uml_type_one.kind_of?(Muml_Enumeration)
280
+ code=code+%{#{helper}.xmlForm_field_type_Enum(sb, "#{a.java_Name}", get#{a.java_NameBean}(), get#{a.java_NameBean}Sug());\n}
281
+ elsif a.uml_type_one.kind_of?(Muml_DataType)
282
+ code=code+%{#{helper}.xmlForm_field_type_Lit(sb, "#{a.java_Name}", getReference().get#{a.java_NameBean}());\n}
283
+ elsif a.umlx_manySide?
284
+ code=code+%{xmlForm_field_type_#{a.uml_type_one.java_Name}(sb, "#{a.java_Name}", get#{a.java_NameBean}(),null, getReference().get#{a.java_NameBean}Sug(),#{ a.umlx_isComposite? ? "getReference().getCreateAndAdd#{a.java_NameBean}Sug()":"null"});\n}
285
+ usedTypes.add(a.uml_type_one)
286
+ else
287
+ code=code+%{xmlForm_field_type_#{a.uml_type_one.java_Name}(sb, "#{a.java_Name}", null,get#{a.java_NameBean}(), getReference().get#{a.java_NameBean}Sug(),#{ a.umlx_isComposite? ? "getReference().getCreateAndAdd#{a.java_NameBean}Sug()":"null"});\n}
288
+ usedTypes.add(a.uml_type_one)
289
+ end
290
+ }
291
+ usedTypes.each { |t|
292
+ struts_addXmlFormField_type!(form,t)
293
+ struts_addXmlFormField_row_type!(form,t)
294
+ }
295
+
296
+ code=code+<<END
297
+ //StrutsHelper.xmlForm_field_type_Lit(sb, "marque", getMarque());
298
+ //xmlForm_field_type_Roue(sb, "roues", getRoues(), getReference().getRouesSug());
299
+ //xmlForm_field_type_Moteur(sb, "moteur", getMoteur(), getReference().getMoteurSug());
300
+ END
301
+
302
+ code=code+<<END
303
+ return sb.toString();
304
+ END
305
+ m.java_code=code
306
+ end
307
+
308
+ end
@@ -0,0 +1,34 @@
1
+ require "ontomde-uml2-java"
2
+ #require "ontomde-uml2-jpa"
3
+ #require "ontomde-uml2-jdo"
4
+ require "ontomde-uml2-apaCom"
5
+ #require "ontomde-uml2-struts-javalib"
6
+
7
+ h="#{File.dirname(__FILE__)}/ontomde-uml2-struts"
8
+
9
+ require "#{h}/version.rb"
10
+ #require "#{h}/struts.rb"
11
+ require "#{h}/main.rb"
12
+ require "#{h}/form.rb"
13
+ require "#{h}/action.rb"
14
+ require "#{h}/jsp_index.rb"
15
+ require "#{h}/jsp_edit.rb"
16
+ require "#{h}/jsp_edit_js.rb"
17
+ require "#{h}/jsp_edit_field.rb"
18
+ require "#{h}/webXml.rb"
19
+ require "#{h}/struts-config.rb"
20
+ require "#{h}/validation.rb"
21
+ require "#{h}/validator.rb"
22
+ require "#{h}/MessageResources.rb"
23
+ require "#{h}/footer.rb"
24
+ require "#{h}/header.rb"
25
+ require "#{h}/header_link.rb"
26
+ require "#{h}/localeAction.rb"
27
+ require "#{h}/blob.rb"
28
+ require "#{h}/reloadAction.rb"
29
+ require "#{h}/xmlForm.rb"
30
+ require "#{h}/spring.rb"
31
+ require "#{h}/mappingForBean.rb"
32
+ require "#{h}/mappingForJsp.rb"
33
+ require "#{h}/mappingToJavaHierarchy.rb"
34
+ require "#{h}/exceptionHandling.rb"
File without changes
metadata ADDED
@@ -0,0 +1,112 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ontomde-uml2-struts
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.4
5
+ platform: ruby
6
+ authors:
7
+ - Stephane (Pierre) Carrie
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-03-03 00:00:00 +01:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: ontomde-uml2-java
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - "="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.0.4
23
+ version:
24
+ - !ruby/object:Gem::Dependency
25
+ name: ontomde-uml2-apaCom
26
+ version_requirement:
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - - "="
30
+ - !ruby/object:Gem::Version
31
+ version: 1.0.4
32
+ version:
33
+ - !ruby/object:Gem::Dependency
34
+ name: hoe
35
+ version_requirement:
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 1.5.0
41
+ version:
42
+ description: "ontomde-uml2-struts is library for generating a struts application. == SYNOPSIS: use commande line provided in ontomde-uml2-javaFrontEnd. == INSTALL:"
43
+ email: stephanepierre.carrie@orange-ftgroup.com
44
+ executables: []
45
+
46
+ extensions: []
47
+
48
+ extra_rdoc_files:
49
+ - History.txt
50
+ - Manifest.txt
51
+ - README.txt
52
+ files:
53
+ - History.txt
54
+ - Manifest.txt
55
+ - README.txt
56
+ - Rakefile
57
+ - lib/ontomde-uml2-struts.rb
58
+ - lib/ontomde-uml2-struts/version.rb
59
+ - lib/ontomde-uml2-struts/header.rb
60
+ - lib/ontomde-uml2-struts/struts-config.rb
61
+ - lib/ontomde-uml2-struts/jsp_edit_field.rb
62
+ - lib/ontomde-uml2-struts/exceptionHandling.rb
63
+ - lib/ontomde-uml2-struts/jsp_edit_js.rb
64
+ - lib/ontomde-uml2-struts/mappingToJavaHierarchy.rb
65
+ - lib/ontomde-uml2-struts/jsp_index.rb
66
+ - lib/ontomde-uml2-struts/validator.rb
67
+ - lib/ontomde-uml2-struts/blob.rb
68
+ - lib/ontomde-uml2-struts/main.rb
69
+ - lib/ontomde-uml2-struts/xmlForm.rb
70
+ - lib/ontomde-uml2-struts/footer.rb
71
+ - lib/ontomde-uml2-struts/action.rb
72
+ - lib/ontomde-uml2-struts/mappingForJsp.rb
73
+ - lib/ontomde-uml2-struts/spring.rb
74
+ - lib/ontomde-uml2-struts/form.rb
75
+ - lib/ontomde-uml2-struts/mappingForBean.rb
76
+ - lib/ontomde-uml2-struts/MessageResources.rb
77
+ - lib/ontomde-uml2-struts/header_link.rb
78
+ - lib/ontomde-uml2-struts/validation.rb
79
+ - lib/ontomde-uml2-struts/jsp_edit.rb
80
+ - lib/ontomde-uml2-struts/webXml.rb
81
+ - lib/ontomde-uml2-struts/reloadAction.rb
82
+ - lib/ontomde-uml2-struts/localeAction.rb
83
+ - test/test_ontomde-uml2-struts.rb
84
+ has_rdoc: true
85
+ homepage: http://ontomde.rubyforge.org
86
+ post_install_message:
87
+ rdoc_options:
88
+ - --main
89
+ - README.txt
90
+ require_paths:
91
+ - lib
92
+ required_ruby_version: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: 1.8.6
97
+ version:
98
+ required_rubygems_version: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: 1.0.0
103
+ version:
104
+ requirements: []
105
+
106
+ rubyforge_project: ontomde
107
+ rubygems_version: 1.0.1
108
+ signing_key:
109
+ specification_version: 2
110
+ summary: OntoMDE struts generator cartridge
111
+ test_files:
112
+ - test/test_ontomde-uml2-struts.rb