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.
- data/History.txt +10 -0
- data/Manifest.txt +156 -0
- data/README.txt +98 -0
- data/Rakefile +21 -0
- data/bin/ontomde-java +5 -0
- data/generateRdocFile.sh +16 -0
- data/lib/ontomde-java.rb +45 -0
- data/lib/ontomde-java/crank.rb +13 -0
- data/lib/ontomde-java/crank/context.rb +384 -0
- data/lib/ontomde-java/crank/crankJpa.rb +103 -0
- data/lib/ontomde-java/crank/equals.rb +83 -0
- data/lib/ontomde-java/crank/facelets.rb +243 -0
- data/lib/ontomde-java/crank/facesconfig.rb +113 -0
- data/lib/ontomde-java/crank/helper.rb +46 -0
- data/lib/ontomde-java/crank/main.rb +51 -0
- data/lib/ontomde-java/crank/menu.rb +39 -0
- data/lib/ontomde-java/crank/menu2.rb +78 -0
- data/lib/ontomde-java/crank/validation.rb +34 -0
- data/lib/ontomde-java/ejb2.rb +3 -0
- data/lib/ontomde-java/ejb2/main-ejb2.rb +194 -0
- data/lib/ontomde-java/flex.rb +7 -0
- data/lib/ontomde-java/flex/Editor.mxml.as.rb +184 -0
- data/lib/ontomde-java/flex/Editor.mxml.rb +701 -0
- data/lib/ontomde-java/flex/ImportationAS.rb +40 -0
- data/lib/ontomde-java/flex/ValueObjectAS.rb +338 -0
- data/lib/ontomde-java/flex/fileTypes.rb +19 -0
- data/lib/ontomde-java/flex/main.rb +347 -0
- data/lib/ontomde-java/frontend/command.rb +324 -0
- data/lib/ontomde-java/frontend/command.rdoc +583 -0
- data/lib/ontomde-java/frontend/defaultOptions.rb +124 -0
- data/lib/ontomde-java/frontend/options.rb +555 -0
- data/lib/ontomde-java/frontend/steps.rb +287 -0
- data/lib/ontomde-java/java/accessorCode.rb +528 -0
- data/lib/ontomde-java/java/accessorSignature.rb +347 -0
- data/lib/ontomde-java/java/annotationOntoMDE.rb +88 -0
- data/lib/ontomde-java/java/apache.rb +34 -0
- data/lib/ontomde-java/java/build.rb +80 -0
- data/lib/ontomde-java/java/collectionMapping.rb +112 -0
- data/lib/ontomde-java/java/component.rb +446 -0
- data/lib/ontomde-java/java/contextualize.rb +43 -0
- data/lib/ontomde-java/java/enumAssignable.rb +75 -0
- data/lib/ontomde-java/java/enumCompatibilityLayer.rb +195 -0
- data/lib/ontomde-java/java/equals.rb +91 -0
- data/lib/ontomde-java/java/groovy.rb +95 -0
- data/lib/ontomde-java/java/java.rb +1329 -0
- data/lib/ontomde-java/java/java.rdoc +78 -0
- data/lib/ontomde-java/java/javaDatatypeMapping.rb +156 -0
- data/lib/ontomde-java/java/javaHelper.rb +25 -0
- data/lib/ontomde-java/java/java_todo.rdoc +3 -0
- data/lib/ontomde-java/java/javadoc.rb +254 -0
- data/lib/ontomde-java/java/meta.rb +28 -0
- data/lib/ontomde-java/java/operationAsClass.rb +144 -0
- data/lib/ontomde-java/java/security.rb +260 -0
- data/lib/ontomde-java/java/stateMachine.rb +415 -0
- data/lib/ontomde-java/java/tenant.rb +65 -0
- data/lib/ontomde-java/java/xsd.rb +1363 -0
- data/lib/ontomde-java/java/xsdCollectionMapping.rb +112 -0
- data/lib/ontomde-java/java/xsdDatatypeMapping.rb +103 -0
- data/lib/ontomde-java/jpa.rb +17 -0
- data/lib/ontomde-java/jpa/configuration.rb +176 -0
- data/lib/ontomde-java/jpa/finder.rb +102 -0
- data/lib/ontomde-java/jpa/jpa.rb +531 -0
- data/lib/ontomde-java/jpa/jpa.rdoc +20 -0
- data/lib/ontomde-java/jpa/locking.rb +18 -0
- data/lib/ontomde-java/jpa/mapping.rb +314 -0
- data/lib/ontomde-java/jpa/redefined.rb +77 -0
- data/lib/ontomde-java/jpa/simulationAutoImplement.rb +54 -0
- data/lib/ontomde-java/jpdl.rb +9 -0
- data/lib/ontomde-java/jpdl/bpm.pprj +1745 -0
- data/lib/ontomde-java/jpdl/bpm.rdf +140 -0
- data/lib/ontomde-java/jpdl/bpm.rdfs +231 -0
- data/lib/ontomde-java/jpdl/constant.rb +5 -0
- data/lib/ontomde-java/jpdl/graphic.rb +52 -0
- data/lib/ontomde-java/jpdl/jpdl.rb +281 -0
- data/lib/ontomde-java/jpdl/jpdl_deploy.rb +114 -0
- data/lib/ontomde-java/jpdl/main.rb +348 -0
- data/lib/ontomde-java/jpdl/main.rdoc +2 -0
- data/lib/ontomde-java/jpdl/processOperationToClass.rb +316 -0
- data/lib/ontomde-java/kbjava.rb +6 -0
- data/lib/ontomde-java/kbjava/rdfToJava.rb +407 -0
- data/lib/ontomde-java/struts.rb +27 -0
- data/lib/ontomde-java/struts/MessageResources.rb +359 -0
- data/lib/ontomde-java/struts/action.rb +883 -0
- data/lib/ontomde-java/struts/blob.rb +11 -0
- data/lib/ontomde-java/struts/exceptionHandling.rb +167 -0
- data/lib/ontomde-java/struts/footer.rb +128 -0
- data/lib/ontomde-java/struts/form.rb +450 -0
- data/lib/ontomde-java/struts/header.rb +37 -0
- data/lib/ontomde-java/struts/header_link.rb +39 -0
- data/lib/ontomde-java/struts/jsp_edit.rb +870 -0
- data/lib/ontomde-java/struts/jsp_edit_field.rb +1 -0
- data/lib/ontomde-java/struts/jsp_edit_js.rb +124 -0
- data/lib/ontomde-java/struts/jsp_index.rb +136 -0
- data/lib/ontomde-java/struts/localeAction.rb +641 -0
- data/lib/ontomde-java/struts/main.rb +41 -0
- data/lib/ontomde-java/struts/mappingForBean.rb +132 -0
- data/lib/ontomde-java/struts/mappingForJsp.rb +272 -0
- data/lib/ontomde-java/struts/mappingToJavaHierarchy.rb +87 -0
- data/lib/ontomde-java/struts/reloadAction.rb +33 -0
- data/lib/ontomde-java/struts/spring.rb +89 -0
- data/lib/ontomde-java/struts/struts-config.rb +232 -0
- data/lib/ontomde-java/struts/validation.rb +116 -0
- data/lib/ontomde-java/struts/validator.rb +341 -0
- data/lib/ontomde-java/struts/webXml.rb +195 -0
- data/lib/ontomde-java/struts/xmlForm.rb +308 -0
- data/lib/ontomde-java/version.rb +5 -0
- data/profiling.xls +0 -0
- data/test/.classpath +14 -0
- data/test/.project +17 -0
- data/test/.settings/org.eclipse.jdt.core.prefs +23 -0
- data/test/Rakefile +71 -0
- data/test/build.xml +34 -0
- data/test/classpath.rb +15 -0
- data/test/lib/junit-4.1.jar +0 -0
- data/test/load1.rb +3 -0
- data/test/load2.rb +3 -0
- data/test/log4j.properties +46 -0
- data/test/model/.project +11 -0
- data/test/model/BigProject.mdzip +0 -0
- data/test/model/BigProject.mdzip.nt +102866 -0
- data/test/model/ClassDiagram.EntArch.gif +0 -0
- data/test/model/ClassDiagram.emx.gif +0 -0
- data/test/model/ClassDiagram.mdzip.gif +0 -0
- data/test/model/model_ea71.bis.ea.xmi +149 -0
- data/test/model/model_ea71.ea.xmi +4470 -0
- data/test/model/model_ea71.eap +0 -0
- data/test/model/model_ea71_README.txt +8 -0
- data/test/model/multipleInheritance.emx +466 -0
- data/test/model/multipleInheritance.emx.nt +2428 -0
- data/test/model/simple1-530.ofp +0 -0
- data/test/model/simple1-includedAsReference.emx +169 -0
- data/test/model/simple1.emx +3729 -0
- data/test/model/simple1.emx.fragments.nt +81 -0
- data/test/model/simple1.emx.nt +5760 -0
- data/test/model/simple1.mdzip +0 -0
- data/test/model/simple1.mdzip.nt +11500 -0
- data/test/model/simple1.oe530.nt +1986 -0
- data/test/model/simple1.oe600.nt +1627 -0
- data/test/src/RuntimeTest.java +656 -0
- data/test/src/testsLevel1.java +174 -0
- data/test/src/testsLevel2.java +29 -0
- data/test/src/testsLevel3.java +40 -0
- data/test/test-ea7.sh +15 -0
- data/test/test-magicDraw.sh +10 -0
- data/test/test-mi.sh +9 -0
- data/test/test-oe530.sh +10 -0
- data/test/test-oe600.sh +11 -0
- data/test/test-rsm.sh +11 -0
- data/test/test_export_ea71.rb +5 -0
- data/test/test_export_oe530.rb +4 -0
- data/test/test_export_oe600.rb +4 -0
- data/test/test_export_rsm60.rb +4 -0
- data/test/trace +419 -0
- data/test/uml_test.rb +1434 -0
- data/test/uml_test.xls +0 -0
- data/test/unit_test.rb +6 -0
- metadata +224 -0
@@ -0,0 +1,347 @@
|
|
1
|
+
|
2
|
+
module Muml_Property
|
3
|
+
#do not generate property accessors if true
|
4
|
+
rdf_safe_attr_reader_many :java_noAccessors
|
5
|
+
rdf_safe_attr_reader_many :java_isSuggester
|
6
|
+
|
7
|
+
#do not generate a suggester for this element
|
8
|
+
rdf_safe_attr_reader_many :java_noSuggester
|
9
|
+
|
10
|
+
rdf_safe_attr_reader_many :java_createAndAddSuggester
|
11
|
+
end
|
12
|
+
|
13
|
+
module Muml_Classifier
|
14
|
+
# Performs a model transformation to add
|
15
|
+
# * attribute getter
|
16
|
+
# * attribute setter
|
17
|
+
# * attribute remover
|
18
|
+
# * attribute appender
|
19
|
+
# * attribute suggester
|
20
|
+
#
|
21
|
+
#NOTE:
|
22
|
+
#* java_transform! is skipped if context[:java_transform] is false (default=true)
|
23
|
+
def java_transform!
|
24
|
+
uml_ownedAttribute.each { |oa|
|
25
|
+
java_addAccessorsFor!(oa)
|
26
|
+
}
|
27
|
+
end
|
28
|
+
|
29
|
+
#Adds accessors when needed for UML properties.
|
30
|
+
#
|
31
|
+
#Reference: #java_transform!
|
32
|
+
def java_addAccessors!
|
33
|
+
java_transform!
|
34
|
+
end
|
35
|
+
|
36
|
+
# Adds accessors for uml property oa passed as parameter.
|
37
|
+
#
|
38
|
+
#Reference:
|
39
|
+
# * java_addGlobalGetter!
|
40
|
+
# * java_addGlobalSetter!
|
41
|
+
# * java_addQualifiedPutter!
|
42
|
+
# * java_addQualifiedGetter!
|
43
|
+
# * java_addAppender!
|
44
|
+
# * java_addCreateAndAppender!
|
45
|
+
# * java_addWithIndexAppender!
|
46
|
+
# * java_addAppenderQualifier!
|
47
|
+
# * java_addRemover!
|
48
|
+
# * java_addSuggester!
|
49
|
+
# * java_addSuggesterType!
|
50
|
+
# * java_addCreater!
|
51
|
+
def java_addAccessorsFor!(oa)
|
52
|
+
#log.debug { "-------java.transform:Accessor for #{self.uml_name}.#{oa.uml_name}" }
|
53
|
+
return unless context[:java_transform,true]
|
54
|
+
return if oa.java_noAccessors?
|
55
|
+
|
56
|
+
oa.uml_visibility=Cuml_VisibilityKind::Private
|
57
|
+
|
58
|
+
#prevent multiple accessor addition.
|
59
|
+
#useful when a transformation has manually launch
|
60
|
+
#java_addAccessorFor! (ex: to set a custom getter code)
|
61
|
+
return unless oa.java_getter_property_inv.empty?
|
62
|
+
java_addGlobalGetter!(oa)
|
63
|
+
java_addGlobalSetter!(oa)
|
64
|
+
java_addQualifiedPutter!(oa)
|
65
|
+
java_addQualifiedGetter!(oa)
|
66
|
+
java_addAppender!(oa)
|
67
|
+
java_addCreateAndAppender!(oa)
|
68
|
+
java_addWithIndexAppender!(oa)
|
69
|
+
java_addAppenderQualifier!(oa)
|
70
|
+
java_addRemover!(oa)
|
71
|
+
java_addSuggester!(oa)
|
72
|
+
java_addSuggesterType!(oa)
|
73
|
+
java_addCreater!(oa)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
|
78
|
+
module Muml_Classifier
|
79
|
+
|
80
|
+
# Helper method for creating an accessor method related to a property.
|
81
|
+
def java_createAndAddMethodFromProperty(oa,mName,withQualifier,uri_suffix="")
|
82
|
+
m=umlx_createAndAddOperation(oa.rdf_uri+"_#{mName}"+uri_suffix)
|
83
|
+
m.uml_name="#{mName}#{oa.java_NameBean}"
|
84
|
+
m.uml_class=self
|
85
|
+
m.uml_visibility=Cuml_VisibilityKind::Public
|
86
|
+
m.uml_isStatic=oa.uml_isStatic
|
87
|
+
m.java_use_Arrays=oa.java_use_Arrays
|
88
|
+
|
89
|
+
if withQualifier
|
90
|
+
oa.uml_qualifier.each { |qual|
|
91
|
+
ip_qual=m.umlx_createAndAddParameter(m.rdf_uri+qual.rdf_uri)
|
92
|
+
ip_qual.java_use_Arrays=oa.java_use_Arrays
|
93
|
+
qual.umlx_copyToAttributeProperty(ip_qual)
|
94
|
+
ip_qual.uml_name=qual.uml_name
|
95
|
+
ip_qual.uml_direction=Cuml_ParameterDirectionKind::In
|
96
|
+
}
|
97
|
+
oe=oa.umlx_otherEnd
|
98
|
+
if((!oe.nil?) && oe.umlx_isNavigable?)
|
99
|
+
oe.uml_qualifier.each { |qual|
|
100
|
+
ip_qual=m.umlx_createAndAddParameter(m.rdf_uri+qual.rdf_uri)
|
101
|
+
ip_qual.java_use_Arrays=oa.java_use_Arrays
|
102
|
+
qual.umlx_copyToAttributeProperty(ip_qual)
|
103
|
+
ip_qual.uml_name=qual.uml_name
|
104
|
+
ip_qual.uml_direction=Cuml_ParameterDirectionKind::In
|
105
|
+
}
|
106
|
+
end
|
107
|
+
end
|
108
|
+
return m
|
109
|
+
end
|
110
|
+
|
111
|
+
# returns a string containing the name of getter parameter relative to a uml parameter.
|
112
|
+
def getterParameterName(oa)
|
113
|
+
return "i#{oa.java_NameProperty}"
|
114
|
+
|
115
|
+
end
|
116
|
+
|
117
|
+
# Adds a putter for parameter oa using a model transformation. (manages addition to a hastable):
|
118
|
+
#
|
119
|
+
#NOTE:
|
120
|
+
# * This code is generated when a *qualifier* is defined in model.
|
121
|
+
# * Languages do not not handled multiple key Hastable.
|
122
|
+
# * A new operation is puttered to the UML model. The operation then generated using standard operation generator.
|
123
|
+
# * operation is only generated for multi-valued property
|
124
|
+
#
|
125
|
+
#WARNING:
|
126
|
+
# * bi-directional cannot be handled with qualifier because association key is not known.
|
127
|
+
# * a TODO note is added in the code in case model is bi-directional so developper knows something has to be done.
|
128
|
+
#
|
129
|
+
#EXAMPLE 1: (uml_upperValue==1)
|
130
|
+
# Class3 putRoleClass3(String key) {
|
131
|
+
# ...
|
132
|
+
# }
|
133
|
+
#
|
134
|
+
#EXAMPLE 2 (uml_upperValue==*):
|
135
|
+
# Set<Class3> putRoleClass3(String key) {
|
136
|
+
# ...
|
137
|
+
# }
|
138
|
+
def java_addQualifiedPutter!(oa)
|
139
|
+
return unless context[:java_addQualifiedPutter,true]
|
140
|
+
return if oa.uml_qualifier.empty?
|
141
|
+
return unless !oa.uml_isDerived?
|
142
|
+
|
143
|
+
putter=java_createAndAddMethodFromProperty(oa,"put",true,'_qual')
|
144
|
+
ip=putter.umlx_createAndAddParameter(putter.rdf_uri+"_in")
|
145
|
+
ip.java_use_Arrays=oa.java_use_Arrays
|
146
|
+
oa.umlx_copyToAttributeProperty(ip)
|
147
|
+
ip.uml_name=getterParameterName(oa)
|
148
|
+
ip.uml_direction=Cuml_ParameterDirectionKind::In
|
149
|
+
oe=oa.umlx_otherEnd
|
150
|
+
putter.java_code= mtk_stss { java_writeQualifiedPutterBody(oa) }
|
151
|
+
return putter
|
152
|
+
end
|
153
|
+
|
154
|
+
# Adds a suggester for parameter oa using a model transformation.
|
155
|
+
#
|
156
|
+
#NOTE:
|
157
|
+
# * A new operation is added to the UML model. The operation then generated using standard operation generator.
|
158
|
+
# * A suggester returns a set of possible value for the parameter.
|
159
|
+
# * Suggester is not generated for datatypes (string, int, ...)
|
160
|
+
# * A default suggester is generated for enum that return every enum values
|
161
|
+
# * A default non functional suggester is generated for objects.
|
162
|
+
def java_addSuggester!(oa)
|
163
|
+
return if oa.java_isSuggester?
|
164
|
+
return if oa.java_noSuggester?
|
165
|
+
return if oa.uml_isReadOnly?
|
166
|
+
#log.debug { "add suggester (#{oa}) self=#{self}" }
|
167
|
+
return unless context[:java_addSuggester,true]
|
168
|
+
return if oa.uml_type_one.kind_of?(Muml_DataType) && !oa.uml_type_one.kind_of?(Muml_Enumeration)
|
169
|
+
|
170
|
+
#sug=umlx_createAndAddProperty("#{oa.rdf_uri}_sugP","#{oa.uml_name}Sug2")
|
171
|
+
#sug2.uml_type=oa.uml_type
|
172
|
+
#sug2.uml_upperValue=umlx_literal(-1)
|
173
|
+
#sug2.uml_lowerValue=umlx_literal(0)
|
174
|
+
#sug2.uml_isOrdered=RDF_TRUE
|
175
|
+
#sug2.uml_isDerived=RDF_TRUE
|
176
|
+
#sug2.java_isSuggester=RDF_TRUE
|
177
|
+
|
178
|
+
|
179
|
+
sug=java_createAndAddMethodFromProperty(oa,"sug",false)
|
180
|
+
#suggester is a defined as a bean property so it can be used with tools such as struts.
|
181
|
+
sug.uml_name="get#{oa.java_NameBean}Sug"
|
182
|
+
#java_createAndAddMethodParameterFromProperty(oa,true)
|
183
|
+
|
184
|
+
rp=sug.umlx_createAndAddParameter(sug.rdf_uri+"_p1")
|
185
|
+
#rp.java_use_Arrays=oa.java_use_Arrays
|
186
|
+
oa.umlx_copyToAttributeProperty(rp)
|
187
|
+
rp.uml_name="return"
|
188
|
+
rp.uml_direction=Cuml_ParameterDirectionKind::Return
|
189
|
+
rp.uml_upperValue=umlx_literal(-1)
|
190
|
+
rp.uml_lowerValue=umlx_literal(0)
|
191
|
+
rp.uml_isOrdered=RDF_TRUE
|
192
|
+
|
193
|
+
if(oa.uml_type_one.kind_of?(Muml_Enumeration))
|
194
|
+
sug.java_code=mtk_stss{ java_writeSuggesterBodyEnum(oa) }
|
195
|
+
else
|
196
|
+
sug.java_code=mtk_stss{ java_writeSuggesterBody(oa) }
|
197
|
+
end
|
198
|
+
return sug
|
199
|
+
end
|
200
|
+
|
201
|
+
# adds a suggester for creator.
|
202
|
+
# Returns an enum of possible types.
|
203
|
+
#
|
204
|
+
#Reference:
|
205
|
+
# * #java_writeSuggesterTypeBodyEnum
|
206
|
+
# * #java_createAndAddMethodFromProperty
|
207
|
+
# * #umlx_createAndAddParameter
|
208
|
+
def java_addSuggesterType!(oa)
|
209
|
+
#log.debug { "add suggester (#{oa}) self=#{self}" }
|
210
|
+
return if oa.uml_isReadOnly?
|
211
|
+
return unless context[:withEnumAssignable]
|
212
|
+
return unless context[:java_addSuggester,true]
|
213
|
+
return if oa.uml_type_one.kind_of?(Muml_DataType) && !oa.uml_type_one.kind_of?(Muml_Enumeration)
|
214
|
+
return unless oa.umlx_isComposite?
|
215
|
+
sug=java_createAndAddMethodFromProperty(oa,"createAndAddSug",false)
|
216
|
+
#suggester is a defined as a bean property so it can be used with tools such as struts.
|
217
|
+
sug.uml_name="getCreateAndAdd#{oa.java_NameBean}Sug"
|
218
|
+
rp=sug.umlx_createAndAddParameter(sug.rdf_uri+"_p1")
|
219
|
+
#rp.java_use_Arrays=oa.java_use_Arrays
|
220
|
+
oa.umlx_copyToAttributeProperty(rp)
|
221
|
+
rp.uml_type=oa.uml_type_one.java_enumAssignableDataType
|
222
|
+
rp.uml_name="return"
|
223
|
+
rp.uml_direction=Cuml_ParameterDirectionKind::Return
|
224
|
+
rp.uml_upperValue=umlx_literal(-1)
|
225
|
+
rp.uml_lowerValue=umlx_literal(0)
|
226
|
+
rp.uml_isOrdered=RDF_TRUE
|
227
|
+
|
228
|
+
isCreateAndAdd=true
|
229
|
+
sug.java_code=mtk_stss{ java_writeSuggesterTypeBodyEnum(oa,isCreateAndAdd) }
|
230
|
+
oa.java_createAndAddSuggester=sug
|
231
|
+
return sug
|
232
|
+
end
|
233
|
+
|
234
|
+
# Adds a getter for parameter oa using a model transformation.
|
235
|
+
#
|
236
|
+
#NOTE:
|
237
|
+
# * A new operation is added to the UML model. The operation then generated using standard operation generator.
|
238
|
+
# * If property is part of a *bidirectional* association, code is generated to update automaticaly the other side of the association.
|
239
|
+
# * If property is multivalued, the operation returns a set.
|
240
|
+
def java_addGlobalGetter!(oa)
|
241
|
+
return unless context[:java_addGlobalGetter,true]
|
242
|
+
#return if oa.uml_isDerived?
|
243
|
+
#return unless oa.uml_isReadOnly?
|
244
|
+
return unless oa.java_AttributeGlobalGetter.empty?
|
245
|
+
get=java_createAndAddMethodFromProperty(oa,"get",false)
|
246
|
+
get.java_getter_property=oa
|
247
|
+
oa.java_AttributeGlobalGetter=get
|
248
|
+
|
249
|
+
rp=get.umlx_createAndAddParameter(get.rdf_uri+"_p1")
|
250
|
+
rp.java_use_Arrays=oa.java_use_Arrays
|
251
|
+
oa.umlx_copyToAttributeProperty(rp)
|
252
|
+
rp.uml_name="return"
|
253
|
+
rp.uml_direction=Cuml_ParameterDirectionKind::Return
|
254
|
+
rp.uml_qualifier=oa.uml_qualifier
|
255
|
+
get.java_code=mtk_stss {java_writeGlobalGetterBody(oa) }
|
256
|
+
return get
|
257
|
+
end
|
258
|
+
|
259
|
+
# Adds a setter for parameter oa using a model transformation.
|
260
|
+
#
|
261
|
+
#NOTE:
|
262
|
+
# * A new operation is added to the UML model. The operation then generated using standard operation generator.
|
263
|
+
# * If property is part of a *bidirectional* association, code is generated to update automaticaly the other side of the association.
|
264
|
+
# * If property is multivalued, the operation takes a set as an argument. For single value access use appender and remover.
|
265
|
+
#
|
266
|
+
#Reference:
|
267
|
+
# * #java_writeGlobalSetterBody
|
268
|
+
def java_addGlobalSetter!(oa)
|
269
|
+
return unless context[:java_addGlobalSetter,true]
|
270
|
+
return unless oa.java_AttributeGlobalSetter.empty?
|
271
|
+
# a setter is generated for derived attribute as it may be implemented.
|
272
|
+
#return unless !oa.uml_isDerived?
|
273
|
+
set=java_createAndAddMethodFromProperty(oa,"set",false)
|
274
|
+
set.java_setter_property=oa
|
275
|
+
oa.java_AttributeGlobalSetter=set
|
276
|
+
|
277
|
+
ip=set.umlx_createAndAddParameter(set.rdf_uri+"_in")
|
278
|
+
ip.java_use_Arrays=oa.java_use_Arrays
|
279
|
+
oa.umlx_copyToAttributeProperty(ip)
|
280
|
+
ip.uml_name=getterParameterName(oa)
|
281
|
+
ip.uml_direction=Cuml_ParameterDirectionKind::In
|
282
|
+
ip.uml_qualifier=oa.uml_qualifier
|
283
|
+
oe=oa.umlx_otherEnd
|
284
|
+
set.java_code=mtk_stss{java_writeGlobalSetterBody(oa)}
|
285
|
+
return set
|
286
|
+
end
|
287
|
+
|
288
|
+
# adds a qualified getter for uml property oa.
|
289
|
+
#
|
290
|
+
#Reference:
|
291
|
+
# * #java_writeQualifiedGetterBody
|
292
|
+
def java_addQualifiedGetter!(oa)
|
293
|
+
return unless context[:java_addQualifiedGetter,true]
|
294
|
+
return if oa.uml_qualifier.empty?
|
295
|
+
return unless !oa.uml_isDerived?
|
296
|
+
|
297
|
+
getter=java_createAndAddMethodFromProperty(oa,"get",true,'_qual')
|
298
|
+
|
299
|
+
rp=getter.umlx_createAndAddParameter(getter.rdf_uri+"_p1")
|
300
|
+
rp.java_use_Arrays=oa.java_use_Arrays
|
301
|
+
oa.umlx_copyToAttributeProperty(rp)
|
302
|
+
rp.uml_name="return"
|
303
|
+
rp.uml_direction=Cuml_ParameterDirectionKind::Return
|
304
|
+
|
305
|
+
getter.java_code=mtk_stss{java_writeQualifiedGetterBody(oa)}
|
306
|
+
return getter
|
307
|
+
end
|
308
|
+
|
309
|
+
# adds a indexed appender method for uml property oa.
|
310
|
+
#
|
311
|
+
#Example:
|
312
|
+
# * void addYourProperty( keyType key, valueObject)
|
313
|
+
#
|
314
|
+
#Reference:
|
315
|
+
# * #java_addWithIndexAppenderBody
|
316
|
+
def java_addWithIndexAppender!(oa)
|
317
|
+
return unless context[:java_addAppender,true]
|
318
|
+
return if oa.umlx_upperValueIsOne?
|
319
|
+
#return unless oa.uml_qualifier.empty?
|
320
|
+
return unless oa.uml_isOrdered?
|
321
|
+
return if oa.java_isSuggester?
|
322
|
+
return if oa.uml_isReadOnly?
|
323
|
+
#return if oa.umlx_isComposite?
|
324
|
+
add=java_createAndAddMethodFromProperty(oa,"add",true,"wi")
|
325
|
+
|
326
|
+
ip2=Cuml_Parameter.new(rdf_Repository,add.rdf_uri+"_in")
|
327
|
+
ip2.uml_name="_index"
|
328
|
+
ip2.uml_direction=Cuml_ParameterDirectionKind::In
|
329
|
+
ip2.uml_upperValue=umlx_literal(1);
|
330
|
+
ip2.uml_lowerValue=umlx_literal(1);
|
331
|
+
ip2.uml_type=umlx_dataType_integer
|
332
|
+
add.uml_ownedParameter_add(ip2)
|
333
|
+
oe=oa.umlx_otherEnd
|
334
|
+
|
335
|
+
ip=Cuml_Parameter.new(rdf_Repository,add.rdf_uri+"_in")
|
336
|
+
ip.uml_name=getterParameterName(oa)
|
337
|
+
ip.uml_direction=Cuml_ParameterDirectionKind::In
|
338
|
+
ip.uml_upperValue=umlx_literal(1);
|
339
|
+
ip.uml_lowerValue=umlx_literal(1);
|
340
|
+
ip.uml_type=oa.uml_type
|
341
|
+
add.uml_ownedParameter_add(ip)
|
342
|
+
|
343
|
+
add.java_code = mtk_stss{java_addWithIndexAppenderBody(oa,oe,ip,ip2)}
|
344
|
+
return add
|
345
|
+
end
|
346
|
+
end
|
347
|
+
|
@@ -0,0 +1,88 @@
|
|
1
|
+
|
2
|
+
module Muml_Element
|
3
|
+
JAVA_ANNO_ONTOMDE_QNAME="xmda.annotationOntoMDE.OntoMDE"
|
4
|
+
end
|
5
|
+
|
6
|
+
|
7
|
+
module Mrdf_Repository
|
8
|
+
|
9
|
+
def java_addJavaAnnotationOntoMDE!
|
10
|
+
uml_Class_all.each {|c|
|
11
|
+
c.java_getJavaAnnotationOntoMDE
|
12
|
+
}
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
|
17
|
+
|
18
|
+
module Muml_Classifier
|
19
|
+
|
20
|
+
def java_getJavaAnnotationOntoMDE
|
21
|
+
anno=umlx_getOrCreateClass(JAVA_ANNO_ONTOMDE_QNAME)
|
22
|
+
if(anno.java_customCode.empty?)
|
23
|
+
anno.umlx_createAndAddComment(anno.rdf_uri+"comment", %{
|
24
|
+
Annotation used to specify which code sections should be overridden or preserved by OntoMDE MDA code generator.<p/>
|
25
|
+
<p/>For example, @OntoMDE(reverse = { imports,javadoc } , uri="..." ) tells OntoMDE to preserve import and javadoc sections. Sections <b>not</b> listed in reverse list are <b>overwritten</b> by generator.
|
26
|
+
<p/>Annotation may be used on class,interface, enum inner-class, methods and attributes.
|
27
|
+
<p/>Reverse zones types are: <b>imports</b> for class imports, <b>javadoc</b>, <b>annotations</b> and <b>code</b> for function code body.
|
28
|
+
<p/>Please note that uri contains a unique key used by generator to identify the element that should never be modified.
|
29
|
+
})
|
30
|
+
anno.umlx_external=RDF_FALSE
|
31
|
+
anno.uml_appliedStereotype_add(anno.umlx_getOrCreateStereotype("JavaAnnotation"))
|
32
|
+
anno.java_customCode= <<ENDCODE
|
33
|
+
public enum ZoneCode {
|
34
|
+
/*
|
35
|
+
* This annotation is used to instruct ontoMDE code generator that none
|
36
|
+
* of the section related to this code construct must be preserve.
|
37
|
+
*/
|
38
|
+
nothing,
|
39
|
+
/*
|
40
|
+
* This annotation is used to instruct ontoMDE code generator to
|
41
|
+
* preserve the import section related to this code construct, instead
|
42
|
+
* of overwriting it.
|
43
|
+
*/
|
44
|
+
imports,
|
45
|
+
/*
|
46
|
+
* This annotation is used to instruct ontoMDE code generator to
|
47
|
+
* preserve the javadoc section related to this code construct, instead
|
48
|
+
* of overwriting it
|
49
|
+
*/
|
50
|
+
javadoc,
|
51
|
+
/*
|
52
|
+
* This annotation is used to instruct ontoMDE code generator to
|
53
|
+
* preserve the annotation section related to this code construct,
|
54
|
+
* instead of overwriting it
|
55
|
+
*/
|
56
|
+
annotations,
|
57
|
+
/*
|
58
|
+
* This annotation is used to instruct ontoMDE code generator to
|
59
|
+
* preserve the annotation section related to all the parameter of
|
60
|
+
* this code construct, instead of overwriting it.
|
61
|
+
*/
|
62
|
+
anno_param,
|
63
|
+
/*
|
64
|
+
* This annotation is used to instruct ontoMDE code generator to
|
65
|
+
* preserve the code body section related to this code construct,
|
66
|
+
* instead of overwriting it
|
67
|
+
*/
|
68
|
+
code
|
69
|
+
}
|
70
|
+
|
71
|
+
/*
|
72
|
+
* List of code section type that ontoMDE code will preserve on next
|
73
|
+
* generation. If empty, no element will be preserved. In other word, if
|
74
|
+
* empty, every element will be overwritten.
|
75
|
+
*/
|
76
|
+
ZoneCode[] reverse();
|
77
|
+
|
78
|
+
/*
|
79
|
+
* URI used to identify uniquely model element related to this java
|
80
|
+
* construct.
|
81
|
+
*/
|
82
|
+
String uri();
|
83
|
+
ENDCODE
|
84
|
+
|
85
|
+
end
|
86
|
+
return anno;
|
87
|
+
end
|
88
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
|
2
|
+
module Muml_Class
|
3
|
+
def apaCom_addLogger!
|
4
|
+
log=umlx_createAndAddProperty(rdf_uri+"log","log");
|
5
|
+
log.java_noAccessors=RDF_TRUE
|
6
|
+
log.uml_isStatic=RDF_TRUE
|
7
|
+
#log.jpa_transient=RDF_TRUE
|
8
|
+
log.db_isTransient=RDF_TRUE
|
9
|
+
log.java_isTransient=RDF_TRUE
|
10
|
+
log.uml_type=umlx_getOrCreateClass("org.apache.commons.logging.Log");
|
11
|
+
log.uml_type_one.db_isTransient=RDF_TRUE
|
12
|
+
|
13
|
+
#log.java_code="org.apache.commons.logging.LogFactory.getFactory().getInstance(this.getClass().getName())"
|
14
|
+
log.java_code=%{org.apache.commons.logging.LogFactory.getFactory().getInstance("#{java_qualifiedName}")}
|
15
|
+
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
module Muml_Element
|
21
|
+
def java_warn(msg)
|
22
|
+
return "if(log.isWarnEnabled()){log.warn(#{msg});}"
|
23
|
+
end
|
24
|
+
def java_debug(msg)
|
25
|
+
return "if(log.isDebugEnabled()){log.debug(#{msg});}"
|
26
|
+
end
|
27
|
+
def java_error(msg)
|
28
|
+
return "if(log.isErrorEnabled()){log.error(#{msg});}"
|
29
|
+
end
|
30
|
+
def java_info(msg)
|
31
|
+
return "if(log.isInfoEnabled()){log.info(#{msg});}"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|