ontomde-uml2-struts 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -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