ontomde-java 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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,40 @@
1
+
2
+
3
+ module Mrdf_Repository
4
+
5
+ # EXAMPLE
6
+ # // ActionScript file
7
+ # import src.package1.Adresse;
8
+ # import src.package1.AdresseType2;
9
+ # import src.package1.AdresseType1;
10
+ # import src.package1.Session;
11
+ # import src.package1.Client;
12
+ # import src.package1.Contrat;
13
+ # import src.package1.methods.ClientajoutRapideContratMPC;
14
+ #
15
+ #
16
+ #
17
+ # cpForm:AdresseType1;
18
+ # cpForm:AdresseType2;
19
+ # cpForm:Adresse;
20
+ # cpForm:ClientajoutRapideContratMPC;
21
+ # cpForm:Contrat;
22
+ # cpForm:Client;
23
+ # cpForm:Session;
24
+ def flex_generateImportationAS
25
+ mtk_writeSession("#{context[:javaDir]}/importation.as"){
26
+ flex_writeImportationAS
27
+ }
28
+ end
29
+ def flex_writeImportationAS
30
+ write("// Action Script file used to force inclusion of view into .swf\n")
31
+ struts_viewableClassifier(true).each { |b|
32
+ write("import #{Muml_Class::FLEX_NS_PREFIX}#{b.java_qualifiedName};\n")
33
+ }
34
+ write("\n//force inclusion of class in .swf by creating dummy instances\n")
35
+ struts_viewableClassifier(true).each { |b|
36
+ write("cpForm:#{b.java_Name};\n")
37
+ }
38
+ write("// eof \n")
39
+ end
40
+ end
@@ -0,0 +1,338 @@
1
+
2
+ module Mrdf_Repository
3
+ def flex_generateVO
4
+ struts_viewableClassifier(false).each { |b|
5
+ b.flex_generateVO
6
+ }
7
+ end
8
+ end
9
+
10
+ module Muml_Class
11
+ def flex_generateVO
12
+ mtk_writeSession("#{java_FileName.to_s.gsub(/\.[^.\/]*$/,"")}VO.as") {
13
+ flex_writeVO
14
+ }
15
+ end
16
+
17
+
18
+ def flex_NameVO
19
+ return "#{java_Name}VO"
20
+ end
21
+ FLEX_NS_PREFIX=STRUTS_XML_VIEW_PREFIX
22
+ def flex_writeVO
23
+ importSet=Set.new
24
+ flex_ownedAttributeSet.each { |c|
25
+ t=c.uml_type_one
26
+ next if t.kind_of?(Muml_DataType)
27
+ importSet.add(t)
28
+ }
29
+
30
+ importString=""
31
+ importSet.each { |t|
32
+ importString="#{importString}\n import #{FLEX_NS_PREFIX}#{t.java_qualifiedName}VO;"
33
+ }
34
+
35
+ before= <<ENDHEAD
36
+ package #{FLEX_NS_PREFIX}#{umlx_owner_one.java_qualifiedName}
37
+ {
38
+ import mx.collections.ArrayCollection;
39
+ import utils.DeserializeXMLUtil;
40
+ #{importString}
41
+ [Bindable]
42
+ public class #{flex_NameVO}
43
+ {
44
+ ENDHEAD
45
+
46
+ after= <<ENDBOTTOM
47
+ }
48
+ }
49
+ ENDBOTTOM
50
+
51
+ encloseWrite(before,after) {
52
+ flex_writeVO_vars
53
+ flex_writeVO_initFromXML
54
+ flex_writeVO_initItemFromXML
55
+ flex_writeVO_getParameter
56
+ }
57
+ end
58
+
59
+ def flex_writeVO_vars
60
+ flex_ownedAttributeSet.each { |prop|
61
+ tpl=DatatypeMapping.instance.getMapping(prop.uml_type_one)
62
+ tpl.flex_writeVO_vars_datatype(prop)
63
+ }
64
+ end
65
+
66
+ #Generates variable declaration
67
+ def flex_writeVO_initFromXML
68
+ before= <<ENDHEAD
69
+ //initialisation du formulaire a partir du XML recu de l'application Struts
70
+ public function initFromXML(source:XML):void{
71
+ ENDHEAD
72
+
73
+ after= <<ENDBOTTOM
74
+ } // end initFromXML
75
+ ENDBOTTOM
76
+
77
+ encloseWrite(before,after) {
78
+ flex_ownedAttributeSet.each { |prop|
79
+ tpl=DatatypeMapping.instance.getMapping(prop.uml_type_one)
80
+ tpl.flex_writeVO_initFromXML_mapping(prop)
81
+ }
82
+ }
83
+ end
84
+
85
+
86
+ # EXAMPLES:
87
+ # nom = utils.DeserializeXMLUtil.getOptionAttributValue(source, 'nom');
88
+ # id= DeserializeXMLUtil.getOptionAttributValue(source, 'id');
89
+ # //recuperation de la valeur de type date de l'atribut x de l'option
90
+ # datedenaissance = DeserializeXMLUtil.getOptionDateAttributValue(source, 'datedenaissance');
91
+ def flex_writeVO_initItemFromXML
92
+ before= <<ENDHEAD
93
+ //initialisation d'un item du type de la class pour etre referencer dans les VOs a partir des options du XML
94
+ public function initItemFromXML(source:XMLList):void{
95
+ ENDHEAD
96
+
97
+ after=<<ENDBOTTOM
98
+ } // initItemFromXML
99
+ ENDBOTTOM
100
+
101
+ encloseWrite(before,after) {
102
+ flex_ownedAttributeSet.each { |prop|
103
+ tpl=DatatypeMapping.instance.getMapping(prop.uml_type_one)
104
+ tpl.flex_writeVO_initItemFromXML_mapping(prop)
105
+ }
106
+ }
107
+ end
108
+ def flex_writeVO_getParameter
109
+ before=<<ENDHEAD
110
+ //parametres complementaires à passer aux requetes concernant cette objet
111
+ public function getParameter():Object{
112
+ var param:Object= {};
113
+ ENDHEAD
114
+
115
+ after=<<ENDBOTTOM
116
+ return param;
117
+ } // getParameter
118
+ ENDBOTTOM
119
+
120
+ encloseWrite(before,after) {
121
+ flex_ownedAttributeSet.each { |prop|
122
+ tpl=DatatypeMapping.instance.getMapping(prop.uml_type_one)
123
+ tpl.flex_writeVO_getParameter(prop)
124
+ }}
125
+
126
+ end
127
+
128
+ end
129
+
130
+ class DatatypeMapping
131
+ def flex_writeVO_vars_datatype(prop)
132
+ prop.write("<!-- # no mapping for #{prop.java_Name} errcode=1 (#{self.class}) -->\n")
133
+ end
134
+ def flex_writeVO_getParameter(prop)
135
+ prop.write("<!-- # no mapping for #{prop.java_Name} errcode=2 (#{self.class}) -->\n")
136
+ end
137
+ def flex_writeVO_initItemFromXML_mapping(prop)
138
+ prop.write("<!-- # no mapping for #{prop.java_Name} errcode=3 (#{self.class}) -->\n")
139
+ end
140
+
141
+ def flex_writeVO_initFromXML_mapping(prop)
142
+ prop.write("<!-- # no mapping for #{prop.java_Name} errcode=4 (#{self.class}) -->\n")
143
+ end
144
+ def flex_writeMXML_vo_mapping(prop)
145
+ puts("WARNING: Unknown flex_writeMXML_vo_mapping for property #{prop.java_Name} and mapping=#{self.class}")
146
+ #ignore element
147
+ #prop.write("<!-- # no mapping for #{prop.java_Name} errcode=5 (#{self.class}) -->\n")
148
+ end
149
+ def flex_writeMXML_Form_item_property(prop)
150
+ prop.write("<!-- # no mapping for #{prop.java_Name} errcode=6 (#{self.class}) -->\n")
151
+ end
152
+ def flex_writeMXML_Form_item_property_column(prop)
153
+ prop.write("<!-- # no mapping for #{prop.java_Name} errcode=7 (#{self.class}) -->\n")
154
+ end
155
+ end
156
+
157
+ class DatatypeMappingBoolean < DatatypeMapping
158
+ def flex_writeVO_vars_datatype(prop)
159
+ prop.write("public var #{prop.java_Name}:Boolean;\n")
160
+ end
161
+ def flex_writeVO_getParameter(prop)
162
+ prop.write("param.#{prop.java_Name} = #{prop.java_Name};\n")
163
+ end
164
+
165
+ # EXAMPLES:
166
+ # isX = DeserializeXMLUtil.getFormBooleanAttributValue(source, 'isX');
167
+ def flex_writeVO_initFromXML_mapping(prop)
168
+ prop.write("#{prop.java_Name} = DeserializeXMLUtil.getFormBooleanAttributValue(source, '#{prop.java_Name}');\n")
169
+ end
170
+
171
+ def flex_writeVO_initItemFromXML_mapping(prop)
172
+ prop.write("#{prop.java_Name}=DeserializeXMLUtil.getOptionBooleanAttributValue(source,'#{prop.java_Name}');\n")
173
+ end
174
+ end
175
+
176
+ class DatatypeMappingText < DatatypeMapping
177
+ # EXAMPLES:
178
+ # public var nom:String;
179
+ # public var id:String;
180
+ def flex_writeVO_vars_datatype(prop)
181
+ prop.write("public var #{prop.java_Name}:String;\n")
182
+ end
183
+
184
+ # EXAMPLE:
185
+ # param.nom = nom;
186
+ def flex_writeVO_getParameter(prop)
187
+ prop.write("param.#{prop.java_Name} = #{prop.java_Name};\n")
188
+ end
189
+
190
+ # nom = DeserializeXMLUtil.getFormAttributValue(source, 'nom');
191
+ # id = DeserializeXMLUtil.getFormAttributValue(source, 'id');
192
+ def flex_writeVO_initFromXML_mapping(prop)
193
+ prop.write("#{prop.java_Name} = DeserializeXMLUtil.getFormAttributValue(source, '#{prop.java_Name}');\n")
194
+ end
195
+ def flex_writeVO_initItemFromXML_mapping(prop)
196
+ prop.write("#{prop.java_Name}=DeserializeXMLUtil.getOptionAttributValue(source,'#{prop.java_Name}');\n")
197
+ end
198
+ end
199
+ class DatatypeMappingOrdinal < DatatypeMappingText
200
+ # EXAMPLES:
201
+ # public var datedenaissance:Number;
202
+ def flex_writeVO_vars_datatype(prop)
203
+ prop.write("public var #{prop.java_Name}:Number;\n")
204
+ end
205
+ # EXAMPLE:
206
+ # DeserializeXMLUtil.getFormNumberAttributValue(source, 'numero');
207
+ def flex_writeVO_initFromXML_mapping(prop)
208
+ prop.write("#{prop.java_Name} = DeserializeXMLUtil.getFormNumberAttributValue(source, '#{prop.java_Name}');\n")
209
+ end
210
+ # EXAMPLE:
211
+ # numero=DeserializeXMLUtil.getOptionNumberAttributValue(source,'numero');
212
+ def flex_writeVO_initItemFromXML_mapping(prop)
213
+ prop.write("#{prop.java_Name}=DeserializeXMLUtil.getOptionNumberAttributValue(source,'#{prop.java_Name}');\n")
214
+ end
215
+ end
216
+
217
+ class DatatypeMappingTimeStamp < DatatypeMapping
218
+ # EXAMPLES:
219
+ # public var datedenaissance:Date;
220
+ def flex_writeVO_vars_datatype(prop)
221
+ prop.write("public var #{prop.java_Name}:Date;\n")
222
+ end
223
+ # EXAMPLES:
224
+ # param.datedenaissance = utils.DateUtil.FormatForDatabase(datedenaissance);
225
+ def flex_writeVO_getParameter(prop)
226
+ prop.write("param.#{prop.java_Name} = utils.DateUtil.FormatForDatabase(#{prop.java_Name});\n")
227
+ end
228
+
229
+ # EXAMPLES:
230
+ # datedenaissance = DeserializeXMLUtil.getFormDateAttributValue(source, 'datedenaissance');
231
+ def flex_writeVO_initFromXML_mapping(prop)
232
+ prop.write("#{prop.java_Name} = DeserializeXMLUtil.getFormDateAttributValue(source, '#{prop.java_Name}');\n")
233
+ end
234
+ def flex_writeVO_initItemFromXML_mapping(prop)
235
+ prop.write("#{prop.java_Name}=DeserializeXMLUtil.getOptionDateAttributValue(source,'#{prop.java_Name}');\n")
236
+ end
237
+ end
238
+
239
+ # EXAMPLES:
240
+ # public var datedenaissance:Date;
241
+ class DatatypeMappingCalendar < DatatypeMapping
242
+ def flex_writeVO_vars_datatype(prop)
243
+ prop.write("public var #{prop.java_Name}:Date;\n")
244
+ end
245
+
246
+ # EXAMPLES:
247
+ # param.datedenaissance = utils.DateUtil.FormatForDatabase(datedenaissance);
248
+ def flex_writeVO_getParameter(prop)
249
+ prop.write("param.#{prop.java_Name} = utils.DateUtil.FormatForDatabase(#{prop.java_Name});\n")
250
+ end
251
+
252
+ # EXAMPLES:
253
+ # datedenaissance = DeserializeXMLUtil.getFormDateAttributValue(source, 'datedenaissance');
254
+ def flex_writeVO_initFromXML_mapping(prop)
255
+ prop.write("#{prop.java_Name} = DeserializeXMLUtil.getFormDateAttributValue(source, '#{prop.java_Name}');\n")
256
+ end
257
+
258
+ def flex_writeVO_initItemFromXML_mapping(prop)
259
+ prop.write("#{prop.java_Name}=DeserializeXMLUtil.getOptionDateAttributValue(source,'#{prop.java_Name}');\n")
260
+ end
261
+ end
262
+
263
+ class DatatypeMappingGenericEnum < DatatypeMapping
264
+ # EXAMPLES:
265
+ # public var civilite:Object;
266
+ # public var selectedItemCivilite:Object;
267
+ # public var civiliteSug:ArrayCollection;
268
+ def flex_writeVO_vars_datatype(prop)
269
+ prop.write("public var #{prop.java_Name}:Object;\n")
270
+ prop.write("public var #{prop.java_Name}Sug:ArrayCollection;\n")
271
+ prop.write("public var selectedItem#{prop.java_Name}:Object;\n")
272
+ end
273
+
274
+ # EXAMPLES:
275
+ # //key car c'est un item de l'enum
276
+ # param.civilite = civilite.key;
277
+ def flex_writeVO_getParameter(prop)
278
+ prop.write("param.#{prop.java_Name} = #{prop.java_Name}.key;\n")
279
+ end
280
+
281
+ # EXAMPLES:
282
+ # civiliteSug = DeserializeXMLUtil.getFormEnum(source, 'civilite');
283
+ # civilite = DeserializeXMLUtil.getFormEnumAttributSelected(source, 'civilite', civiliteSug);
284
+ def flex_writeVO_initFromXML_mapping(prop)
285
+ prop.write("#{prop.java_Name}Sug = DeserializeXMLUtil.getFormEnum(source, '#{prop.java_Name}');\n")
286
+ prop.write("#{prop.java_Name} = DeserializeXMLUtil.getFormEnumAttributSelected(source, '#{prop.java_Name}', #{prop.java_Name}Sug);\n")
287
+ end
288
+
289
+ def flex_writeVO_initItemFromXML_mapping(prop)
290
+ #nop
291
+ end
292
+ end
293
+
294
+ class DatatypeMappingGenericClass < DatatypeMapping
295
+
296
+ # EXAMPLES:
297
+ # public var adresse:ArrayCollection;
298
+ # public var adressesSug:ArrayCollection;
299
+ # public var dernierContrat:ArrayCollection;
300
+ # public var dernierContratSug:ArrayCollection;
301
+ def flex_writeVO_vars_datatype(prop)
302
+ prop.write("public var #{prop.java_Name}:ArrayCollection;\n")
303
+ if(prop.umlx_isComposite?)
304
+ prop.write("public var #{prop.java_Name}CreateAndAddSug:ArrayCollection;\n")
305
+ prop.write("public var #{prop.java_Name}Sug:ArrayCollection;\n")
306
+ else
307
+ prop.write("public var #{prop.java_Name}Sug:ArrayCollection;\n")
308
+ end
309
+ end
310
+ def flex_writeVO_getParameter(prop)
311
+ prop.write("// #{prop.java_Name}\n")
312
+ end
313
+
314
+ #EXAMPLES:
315
+ # For a composition:
316
+ # adresseSug = DeserializeXMLUtil.getFormAttributeAssignable(source, 'adresse');
317
+ # adresse = DeserializeXMLUtil.getFormAttributSelection(source, 'adresse', AdresseVO);
318
+ # for an association:
319
+ # adresse = DeserializeXMLUtil.getFormAttributSelection(source, 'adresse', AdresseVO);
320
+ # favorisSug = DeserializeXMLUtil.getFormAttributSug(source, 'favoris', ContratVO);
321
+ def flex_writeVO_initFromXML_mapping(prop)
322
+
323
+ if(prop.umlx_isComposite?)
324
+ prop.write("#{prop.java_Name}CreateAndAddSug = DeserializeXMLUtil.getFormAttributeAssignable(source, '#{prop.java_Name}');\n")
325
+ else
326
+ prop.write("#{prop.java_Name}Sug = DeserializeXMLUtil.getFormAttributSug(source, '#{prop.java_Name}',#{prop.uml_type_one.java_Name}VO);\n")
327
+ end
328
+ prop.write("#{prop.java_Name} = DeserializeXMLUtil.getFormAttributSelection(source, '#{prop.java_Name}', #{prop.uml_type_one.java_Name}VO);\n")
329
+ end
330
+
331
+ def flex_writeVO_initItemFromXML_mapping(prop)
332
+ #nop
333
+ end
334
+ end
335
+ #
336
+
337
+
338
+ #
@@ -0,0 +1,19 @@
1
+
2
+ #require 'ontomde-core'
3
+ #
4
+ #
5
+ ##Action Script file type
6
+ #class FileTypeActionScript < FileTypeJava
7
+ # def initialize(ext=".as")
8
+ # super(ext)
9
+ # end
10
+ #end
11
+ #FileTypeActionScript.instance # register
12
+ #
13
+ #class FileTypeJavaScript < FileTypeActionScript
14
+ # def initialize(ext=".js")
15
+ # super(ext)
16
+ # end
17
+ #end
18
+ #FileTypeJavaScript.instance # register
19
+
@@ -0,0 +1,347 @@
1
+ # http://livedocs.adobe.com/specs/actionscript/3/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=as3_specification.html
2
+
3
+ require "rdfmda-uml2"
4
+ require "rdfmda-uml2_java"
5
+
6
+ module Muml_DataType
7
+ #Predefined UML datatype to Java type mapping.
8
+ UML_TO_ACTIONSCRIPT_PRIMITIVE_TYPE_MAPPING.clear
9
+ UML_TO_ACTIONSCRIPT_PRIMITIVE_TYPE_MAPPING.merge!({"byte"=>"byte","short"=>"Number","long"=>"Number","Boolean"=>"boolean","boolean"=>"boolean","int"=>"Number","integer"=>"Number","Integer"=>"Number", "String"=>"String","string"=>"String","date"=>"Date","double"=>"Number","char"=>"char"})
10
+ end
11
+
12
+
13
+
14
+ module Muml_TypedElement
15
+ #ActionScript Collection container type.
16
+ ACTION_SCRIPT_COLLECTION='mx.collections.ArrayCollection'
17
+ end
18
+ module Muml_Classifier
19
+
20
+ # No default import
21
+ ACTIONSCRIPT_DEFAULT_IMPORTS.clear
22
+ ACTIONSCRIPT_DEFAULT_IMPORTS<< Muml_TypedElement::ACTION_SCRIPT_COLLECTION
23
+
24
+ ACTIONSCRIPT_IMPORT_COMPUTED_DEPENDENCIES=true
25
+
26
+ def as_FileName
27
+ return "#{as_FilePath}#{as_Name}.as"
28
+ end
29
+
30
+ def as_writePackageDeclaration(&block)
31
+ p = umlx_package
32
+ if p.nil?
33
+ write("package {\n")
34
+ else
35
+ write("package #{p.as_qualifiedName} {\n")
36
+ end
37
+ yield
38
+ if p.nil?
39
+ write("//end of package *unnamed*\n")
40
+ else
41
+ write("} // end of package #{p.as_qualifiedName};\n")
42
+ end
43
+ end
44
+ def as_FDS_writeConfiguration
45
+ write %{
46
+ <destination id="#{as_destinationName}">
47
+ <adapter ref="#{Mrdf_Repository::ACTIONSCRIPT_JAVA_ADAPTER_ID}"/>
48
+ <properties>
49
+ <source>#{java_qualifiedName}Assembler</source>
50
+ <scope>application</scope>
51
+ <metadata>
52
+ <identity property="id"></identity>
53
+ #{mtk_stss{as_write_metadata()}}
54
+ </metadata>
55
+ <server>
56
+ <fill-method>
57
+ <name>load</name>
58
+ </fill-method>
59
+ <fill-method>
60
+ <name>load</name>
61
+ <params>java.lang.String</params>
62
+ </fill-method>
63
+ <sync-method>
64
+ <name>sync</name>
65
+ </sync-method>
66
+ </server>
67
+ </properties>
68
+ </destination>
69
+ }
70
+ end
71
+ def as_write_metadata
72
+ uml_ownedAttribute.each { |a|
73
+ a.as_write_metadata
74
+ }
75
+ end
76
+ def as_destinationName
77
+ return "dst-#{as_qualifiedName}"
78
+ end
79
+ end
80
+
81
+ module Muml_Property
82
+ def as_lazyMode
83
+ return "false"
84
+ #return "true"
85
+ end
86
+ def as_write_metadata
87
+ if uml_type_one.kind_of?(Muml_DataType)
88
+ write %{ <!-- datatype property="#{as_Name}" -->\n}
89
+ elsif umlx_oneToMany?
90
+ write %{ <one-to-many property="#{as_Name}" destination="#{uml_type_one.as_destinationName}" lazy="#{as_lazyMode}"/>\n}
91
+ elsif umlx_manyToOne?
92
+ write %{ <!-- many-to-one property="#{as_Name}" destination="#{uml_type_one.as_destinationName}" lazy="#{as_lazyMode}"/ -->\n}
93
+ elsif umlx_oneToOne?
94
+ write %{ <!-- one-to-one property="#{as_Name}" destination="#{uml_type_one.as_destinationName}" lazy="#{as_lazyMode}"/ -->\n}
95
+ elsif umlx_manyToMany?
96
+ write %{ <!-- many-to-many property="#{as_Name}" destination="#{uml_type_one.as_destinationName}" lazy="#{as_lazyMode}"/ -->\n}
97
+ else
98
+ write %{ <!-- property="#{as_Name}" destination="#{uml_type_one.as_destinationName}" lazy="#{as_lazyMode}"/ -->\n}
99
+ end
100
+ end
101
+ def as_write
102
+ return if uml_type_one.kind_of?(Muml_Enumeration)
103
+ write("var");
104
+ write(" _#{as_NameProperty}")
105
+ write(":#{as_propertyAssociationType}")
106
+ write(";\n")
107
+ end
108
+ end
109
+
110
+ module Muml_Parameter
111
+ def as_write
112
+ write(" #{as_Name}:") unless uml_direction_one.isReturn?
113
+ write("#{as_propertyAssociationType} ")
114
+ #write(" /* #{uml_lowerValue}..#{uml_upperValue}*/ ")
115
+ end
116
+ end
117
+
118
+ module Muml_Operation
119
+ #Hack
120
+ def as_Name
121
+ s=super
122
+ if !self.as_getter_property.empty?
123
+ return "get #{s[3,s.length]}"
124
+ end
125
+ if !self.as_setter_property.empty?
126
+ return "set #{s[3,s.length]}"
127
+ end
128
+ return s
129
+ end
130
+
131
+ def as_write
132
+ #TODO: decide what to do with functions in actionscript
133
+ #write("\/\/IGNORED: function #{as_Name}\n")
134
+ #return
135
+
136
+ write("\n")
137
+ as_writeAnnotation
138
+ as_writeMethodModifiers
139
+ write("function ");
140
+
141
+ if umlx_isConstructor?
142
+ write("#{umlx_class_one.as_Name}")
143
+ else
144
+ write("#{as_Name}")
145
+ end
146
+ as_writeMethodParameters
147
+ as_writeMethodThrows
148
+
149
+
150
+ as_writeMethodReturnType unless umlx_isConstructor?
151
+
152
+ as_writeMethodBody
153
+ end
154
+
155
+ #write java type parameter (without the name)
156
+ #
157
+ #Example:
158
+ #* void
159
+ #* int
160
+ #* pack1.Class1
161
+ def as_writeParameterType(fp)
162
+ if (fp.nil?)
163
+ # fp.write("void ");
164
+ else
165
+ write(" : ")
166
+ fp.as_write
167
+ #uml_isException (!! a ne pas confondre avec une exception)
168
+ #uml_isOrdered
169
+ #uml_isStream
170
+ #uml_isUnique
171
+ end
172
+ end
173
+
174
+ #writes default code for a method not implemented
175
+ def as_writeMethodBodyNotImplemented
176
+ write <<END
177
+ {
178
+ //TODO: implement method body
179
+ throw new Error("[operation \\"#{as_Name}\\"not implemented]");
180
+ }
181
+ END
182
+ end
183
+ end
184
+
185
+ module Muml_TypedElement
186
+
187
+ #Returns an action script array
188
+ #ActionScript 3 does not support type collection.
189
+ def as_propertyRoleTypeWithGenerics
190
+ jtype=""
191
+ if uml_type.empty?
192
+ jtype="Number /* TODO: FIX:undefined type in uml model */ "
193
+ else
194
+ jtype = uml_type_one.as_qualifiedName
195
+ end
196
+ return umlx_upperValueIsOne? ? jtype : ACTION_SCRIPT_COLLECTION
197
+ end
198
+ end
199
+
200
+ module Mrdf_Repository
201
+ #adds Flex Data Services annotations
202
+ def as_addFDSannotations!
203
+ #must copy before transformation (hash modified runtime error)
204
+ uml_Class_all.each {|c|
205
+ next unless c.kind_of?(Muml_Class) || c.kind_of?(Muml_Interface)||c.kind_of?(Muml_Enumeration)
206
+
207
+ next if c.kind_of?(Muml_Enumeration)
208
+
209
+ if !c.kind_of?(Muml_Interface)
210
+ c.as_annotation_add(%{[Managed]})
211
+ c.as_annotation_add(%{[RemoteClass(alias="#{c.java_qualifiedName}")]})
212
+ end
213
+
214
+ #id persistence
215
+ p=c.umlx_createAndAddProperty(c.rdf_uri+"_auto_id","id")
216
+ #p.java_annotation_add("@Id")
217
+ #p.java_annotation_add("@GeneratedValue")
218
+ p.uml_type=p.umlx_owner_one.umlx_dataType_long
219
+ p.uml_visibility=::Cuml_VisibilityKind::Private
220
+ }
221
+ end
222
+
223
+ def as_FDS_generateConfigurationFile
224
+ mtk_writeSession("#{context[:build]}/data-management-config.xml") {
225
+ as_FDS_writeConfigurationFile
226
+ }
227
+ end
228
+ #
229
+ #writes Flex Data Services configuration file
230
+ def as_FDS_writeConfigurationFile
231
+ write %{<?xml version="1.0" encoding="UTF-8"?>\n}
232
+ as_FDS_write_GeneralConfItems {
233
+ uml_Class_all.each {|c|
234
+ next if c.kind_of?(Muml_Interface)
235
+ next if c.kind_of?(Muml_Enumeration)
236
+ c.as_FDS_writeConfiguration
237
+ }}
238
+ end
239
+
240
+ #Name of action script adapter
241
+ ACTIONSCRIPT_JAVA_ADAPTER_ID="java-dao"
242
+
243
+ def as_FDS_write_GeneralConfItems(&block)
244
+ write %{
245
+ <service id="data-service"
246
+ class="flex.data.DataService"
247
+ messageTypes="flex.data.messages.DataMessage">
248
+
249
+ <adapters>
250
+ <adapter-definition id="actionscript" class="flex.data.adapters.ASObjectAdapter" default="true"/>
251
+ <adapter-definition id="#{ACTIONSCRIPT_JAVA_ADAPTER_ID}" class="flex.data.adapters.JavaAdapter"/>
252
+ </adapters>
253
+
254
+ <default-channels>
255
+ <channel ref="my-rtmp"/>
256
+ </default-channels>
257
+ }
258
+
259
+ yield
260
+
261
+ write( "</service>\n" )
262
+ end
263
+
264
+ end
265
+ module Muml_Enumeration
266
+ #write enum body (list of litterals) using as_writeClassComment, as_writeClassModifiers, as_writeMetaClassName.
267
+ #
268
+ #Example:
269
+ #* { red,blue,green }
270
+ def as_writeClassBody
271
+ as_writeClassComment
272
+ as_writeAnnotation
273
+ as_writeClassModifiers
274
+ as_writeMetaClassName
275
+ write("\n{\n")
276
+ uml_ownedLiteral.each {|c|
277
+ write(%{public static var #{c}:#{as_Name} = new EtatDossier("#{c}");\n})
278
+ }
279
+ write <<END
280
+
281
+ public function #{as_Name}(str:String){
282
+ name=str;
283
+ }
284
+
285
+ public static function getValues():ArrayCollection{
286
+ var values:ArrayCollection = new ArrayCollection();
287
+ END
288
+ uml_ownedLiteral.each {|c|
289
+ write(" values.addItem(#{c});\n");
290
+ }
291
+ write <<END
292
+ return values;
293
+ }
294
+
295
+ public function toString(){
296
+ return name;
297
+ }
298
+ END
299
+
300
+ #as_writeDeclarationSpecificOnBegin
301
+ as_writeAttributes
302
+ write("\n\n")
303
+ #as_writeConstructors
304
+ write("\n\n")
305
+ as_writeOperations
306
+ #as_writeDeclarationSpecificOnEnd
307
+
308
+
309
+
310
+ write("\n}");
311
+ end
312
+ end
313
+
314
+ module Mrdf_Repository
315
+ def as_addFormReference!
316
+ uml_Class_all.each {|a|
317
+ next if a.kind_of?(Muml_Interface)
318
+ next if a.kind_of?(Muml_Enumeration)
319
+ a.as_addFormReference!
320
+ }
321
+ end
322
+ end
323
+ module Muml_Class
324
+ def as_formClass
325
+ return umlx_getOrCreateClass("#{as_qualifiedName}Form")
326
+ end
327
+ def as_addFormReference!
328
+ log.error{"adding flexFormRef for #{self}:#{self.class}"}
329
+ p=umlx_createAndAddProperty("#{self.rdf_uri}_flexFormRef","flexForm")
330
+ p.uml_isReadOnly="true"
331
+
332
+ p.uml_type=as_formClass
333
+ p.umlx_owner_one.as_addAccessorsFor!(p)
334
+ p.as_getter_property_inv.each {|get|
335
+ log.error("maj code")
336
+ get.as_code=<<END
337
+ if(#{p.as_Name}==null){
338
+ #{p.as_Name} = new #{as_formClass.as_Name}();
339
+ #{p.as_Name}.setModif(this);
340
+ }
341
+ return #{p.as_Name};
342
+ END
343
+ }
344
+ end
345
+ end
346
+
347
+