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