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,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
+