ontomde-uml2-flex 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.
- data/History.txt +5 -0
- data/Manifest.txt +12 -0
- data/README.txt +40 -0
- data/Rakefile +21 -0
- data/lib/ontomde-uml2-flex/Editor.mxml.as.rb +184 -0
- data/lib/ontomde-uml2-flex/Editor.mxml.rb +701 -0
- data/lib/ontomde-uml2-flex/ImportationAS.rb +40 -0
- data/lib/ontomde-uml2-flex/ValueObjectAS.rb +338 -0
- data/lib/ontomde-uml2-flex/fileTypes.rb +19 -0
- data/lib/ontomde-uml2-flex/main.rb +347 -0
- data/lib/ontomde-uml2-flex/version.rb +8 -0
- data/lib/ontomde-uml2-flex.rb +14 -0
- data/test/test_ontomde-uml2-flex.rb +0 -0
- metadata +84 -0
@@ -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_Model::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_Model
|
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_Model
|
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
|
+
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'ontomde-uml2-java'
|
2
|
+
require 'ontomde-uml2-struts'
|
3
|
+
|
4
|
+
#require "#{h}/doNotModify/main.rb"
|
5
|
+
#require "#{h}/main.rb"
|
6
|
+
#require "#{h}/fileTypes.rb"
|
7
|
+
|
8
|
+
h="#{File.dirname(__FILE__)}/ontomde-uml2-flex"
|
9
|
+
|
10
|
+
require "#{h}/version.rb"
|
11
|
+
require "#{h}/ValueObjectAS.rb"
|
12
|
+
require "#{h}/Editor.mxml.rb"
|
13
|
+
require "#{h}/Editor.mxml.as.rb"
|
14
|
+
require "#{h}/ImportationAS.rb"
|
File without changes
|
metadata
ADDED
@@ -0,0 +1,84 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ontomde-uml2-flex
|
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-struts
|
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: hoe
|
26
|
+
version_requirement:
|
27
|
+
version_requirements: !ruby/object:Gem::Requirement
|
28
|
+
requirements:
|
29
|
+
- - ">="
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: 1.5.0
|
32
|
+
version:
|
33
|
+
description: "== FEATURES/PROBLEMS: == SYNOPSIS: == REQUIREMENTS: * flex sdk must be downloaded from http://flex.org == INSTALL:"
|
34
|
+
email: stephanepierre.carrie@orange-ftgroup.com
|
35
|
+
executables: []
|
36
|
+
|
37
|
+
extensions: []
|
38
|
+
|
39
|
+
extra_rdoc_files:
|
40
|
+
- History.txt
|
41
|
+
- Manifest.txt
|
42
|
+
- README.txt
|
43
|
+
files:
|
44
|
+
- History.txt
|
45
|
+
- Manifest.txt
|
46
|
+
- README.txt
|
47
|
+
- Rakefile
|
48
|
+
- lib/ontomde-uml2-flex.rb
|
49
|
+
- lib/ontomde-uml2-flex/version.rb
|
50
|
+
- lib/ontomde-uml2-flex/Editor.mxml.as.rb
|
51
|
+
- lib/ontomde-uml2-flex/ValueObjectAS.rb
|
52
|
+
- lib/ontomde-uml2-flex/ImportationAS.rb
|
53
|
+
- lib/ontomde-uml2-flex/main.rb
|
54
|
+
- lib/ontomde-uml2-flex/Editor.mxml.rb
|
55
|
+
- lib/ontomde-uml2-flex/fileTypes.rb
|
56
|
+
has_rdoc: true
|
57
|
+
homepage: http://ontomde.rubyforge.org
|
58
|
+
post_install_message:
|
59
|
+
rdoc_options:
|
60
|
+
- --main
|
61
|
+
- README.txt
|
62
|
+
require_paths:
|
63
|
+
- lib
|
64
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 1.8.6
|
69
|
+
version:
|
70
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: 1.0.0
|
75
|
+
version:
|
76
|
+
requirements: []
|
77
|
+
|
78
|
+
rubyforge_project: ontomde
|
79
|
+
rubygems_version: 1.0.1
|
80
|
+
signing_key:
|
81
|
+
specification_version: 2
|
82
|
+
summary: OntoMDE Flex generator cartridge
|
83
|
+
test_files:
|
84
|
+
- test/test_ontomde-uml2-flex.rb
|