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,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, &nbsp;@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
+