ontomde-uml2-kbjava 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 +8 -0
- data/README.txt +43 -0
- data/Rakefile +22 -0
- data/lib/ontomde-uml2-kbjava.rb +7 -0
- data/lib/ontomde-uml2-kbjava/rdfToJava.rb +398 -0
- data/lib/ontomde-uml2-kbjava/version.rb +7 -0
- data/test/test_ontomde-uml2-kbjava.rb +0 -0
- metadata +89 -0
data/History.txt
ADDED
data/Manifest.txt
ADDED
data/README.txt
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
ontomde-uml2-kbjava
|
2
|
+
by Stephane (Pierre) Carrie
|
3
|
+
http://ontomde.rubyforge.org
|
4
|
+
|
5
|
+
== DESCRIPTION:
|
6
|
+
|
7
|
+
ontomde-uml2-kbjava is a library to generate tests data as java code and java junit from Prot�g� 2000 data project generated with ontomde-uml2-kb.
|
8
|
+
|
9
|
+
ontomde-uml2-kbjava should be used through ontomde-java-frontend command line utility.
|
10
|
+
|
11
|
+
== FEATURES/PROBLEMS:
|
12
|
+
|
13
|
+
* generator assumes JPA persistence is used.
|
14
|
+
|
15
|
+
== SYNOPSIS:
|
16
|
+
|
17
|
+
== REQUIREMENTS:
|
18
|
+
|
19
|
+
== INSTALL:
|
20
|
+
|
21
|
+
* (windows) gem install ontomode-uml2-kbjava
|
22
|
+
* (unix) sudo gem install ontomode-uml2-kbjava
|
23
|
+
|
24
|
+
Additional information is available on ontoMDE web site :
|
25
|
+
http://ontomde.rubyforge.org/website/download.html
|
26
|
+
== LICENSE:
|
27
|
+
|
28
|
+
Copyright (C) 2008 Orange-labs
|
29
|
+
38 rue General Leclerc
|
30
|
+
92130 ISSY LES MOULINEAUX, France
|
31
|
+
|
32
|
+
This program is free software: you can redistribute it and/or modify
|
33
|
+
it under the terms of the GNU Affero General Public License as
|
34
|
+
published by the Free Software Foundation, either version 3 of the
|
35
|
+
License, or (at your option) any later version.
|
36
|
+
|
37
|
+
This program is distributed in the hope that it will be useful,
|
38
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
39
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
40
|
+
GNU Affero General Public License for more details.
|
41
|
+
|
42
|
+
You should have received a copy of the GNU Affero General Public License
|
43
|
+
along with this program. If not, see http://www.gnu.org/licenses/.
|
data/Rakefile
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
# -*- ruby -*-
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'hoe'
|
5
|
+
require './lib/ontomde-uml2-kbjava/version.rb'
|
6
|
+
|
7
|
+
Hoe.new('ontomde-uml2-kbjava', Ontomde::Uml2::Kbjava::VERSION) do |p|
|
8
|
+
p.rubyforge_name = 'ontomde'
|
9
|
+
p.author = 'Stephane (Pierre) Carrie'
|
10
|
+
p.email = 'stephanepierre.carrie@orange-ftgroup.com'
|
11
|
+
p.summary = 'OntoMDE Protege 2000 java data-test cartridge'
|
12
|
+
p.description = p.paragraphs_of('README.txt', 2..5).join("\n\n")
|
13
|
+
p.url="http://ontomde.rubyforge.org"
|
14
|
+
p.changes = p.paragraphs_of('History.txt', 0..1).join("\n\n")
|
15
|
+
p.extra_deps=[
|
16
|
+
['ontomde-uml2-kb',"= #{Ontomde::Uml2::Kbjava::VERSION}"],
|
17
|
+
['ontomde-uml2-java',"= #{Ontomde::Uml2::Kbjava::VERSION}"]
|
18
|
+
]
|
19
|
+
p.spec_extras={ :required_ruby_version => '>=1.8.6' ,:required_rubygems_version => '>=1.0.0'}
|
20
|
+
end
|
21
|
+
|
22
|
+
# vim: syntax=Ruby
|
@@ -0,0 +1,398 @@
|
|
1
|
+
#This module is meant to be applied
|
2
|
+
#to a protege 2000 knowledge model
|
3
|
+
class Crdf_ProtegeDataModel < Crdf_Model
|
4
|
+
|
5
|
+
#uml model used to generate this protege data model
|
6
|
+
#attr :umlSourceModel
|
7
|
+
attr_accessor :kbjava_umlSourceModel
|
8
|
+
|
9
|
+
#Generates a DataSet
|
10
|
+
#default generation path may be overriden by providing appropriate context.
|
11
|
+
def kbjava_generate
|
12
|
+
mtk_default_context(:dataTestClassName=>'UserData',:dataTestPackageName => 'xmda.test') {
|
13
|
+
|
14
|
+
dc=@kbjava_umlSourceModel.umlx_reserved_model.umlx_getOrCreateClass("#{context[:dataTestPackageName]}.#{context[:dataTestClassName]}")
|
15
|
+
dc.umlx_external=RDF_FALSE
|
16
|
+
|
17
|
+
#No Gui is provided for TestData (class is too big)
|
18
|
+
dc.umlx_businessMethod=RDF_FALSE
|
19
|
+
|
20
|
+
#UserData must be transient because UserData links
|
21
|
+
#eventually to many many many objects and this
|
22
|
+
#would generate has many columns in database
|
23
|
+
#and as many joins.
|
24
|
+
dc.db_isTransient=RDF_TRUE
|
25
|
+
|
26
|
+
kbjava_addData!(dc)
|
27
|
+
}
|
28
|
+
end
|
29
|
+
|
30
|
+
|
31
|
+
|
32
|
+
#writes all in one java class which will contain all of
|
33
|
+
#our test instances loaded from source protege data model.
|
34
|
+
def kbjava_addData!(umlDataClass)
|
35
|
+
#write "package #{context[:dataTestPackageName]};\n"
|
36
|
+
#write("public class #{context[:dataTestClassName]} {\n")
|
37
|
+
|
38
|
+
#mtk_protected("converter") {
|
39
|
+
umlDataClass.java_customCode= <<END
|
40
|
+
private static java.text.SimpleDateFormat dfCalendar= new java.text.SimpleDateFormat("yyyy/MM/dd",java.util.Locale.ENGLISH);
|
41
|
+
private static java.text.SimpleDateFormat dfTimestamp= new java.text.SimpleDateFormat("yyyy/MM/dd",java.util.Locale.ENGLISH);
|
42
|
+
public java.util.Date convertCalendar(final String s) {
|
43
|
+
try {
|
44
|
+
return dfCalendar.parse(s) ;
|
45
|
+
} catch (java.text.ParseException e) {
|
46
|
+
throw new java.lang.RuntimeException(e);
|
47
|
+
}
|
48
|
+
}
|
49
|
+
public java.util.Date convertTimestamp(final String s) {
|
50
|
+
try {
|
51
|
+
return dfTimestamp.parse(s) ;
|
52
|
+
} catch (java.text.ParseException e) {
|
53
|
+
throw new java.lang.RuntimeException(e);
|
54
|
+
}
|
55
|
+
}
|
56
|
+
|
57
|
+
END
|
58
|
+
|
59
|
+
#}
|
60
|
+
[true,false].each {|stepOne|
|
61
|
+
self.each { |k,c|
|
62
|
+
next unless c.kbjava_isUmlObject?
|
63
|
+
c.kbjava_writeJavaObject(@kbjava_umlSourceModel, self,umlDataClass,stepOne)
|
64
|
+
}}
|
65
|
+
#write "}"
|
66
|
+
#@kbjava_umlSourceModel.kbjava_computeCoverage
|
67
|
+
end
|
68
|
+
|
69
|
+
def kbjava_generateJavaJunit!
|
70
|
+
self.each { |k,c|
|
71
|
+
next unless c.kind_of?(Mkb_UML_TEST_DATA_SET)
|
72
|
+
uml_type=c.rdf_type.kbjava_uml_model_element(@kbjava_umlSourceModel)
|
73
|
+
p=uml_type.umlx_owner_one
|
74
|
+
p=p.umlx_getOrCreatePackage(context[:kbjava_junitSubPackage,"junitUseCase"],p)
|
75
|
+
p=p.umlx_getOrCreatePackage(uml_type.java_Name.to_s,p)
|
76
|
+
|
77
|
+
n=p.umlx_createAndAddClass("#{c.rdf_uri}_junit","junit#{c.kb_UML_DATA_SET_NAME}")
|
78
|
+
|
79
|
+
#Provide a Gui
|
80
|
+
n.umlx_businessMethod=RDF_TRUE
|
81
|
+
puts "n=#{n.uml_name} busniess=#{n.umlx_businessMethod?}"
|
82
|
+
#n.apaCom_addLogger!
|
83
|
+
n.db_isTransient=RDF_TRUE
|
84
|
+
#n.struts_isForm=RDF_FALSE
|
85
|
+
n.umlx_external=RDF_FALSE
|
86
|
+
n.java_import='org.junit.Test'
|
87
|
+
#n.java_import_add('java.io.PrintWriter');
|
88
|
+
#n.java_import_add('java.io.StringWriter');
|
89
|
+
n.java_isATestFile=RDF_TRUE
|
90
|
+
|
91
|
+
#also avoid org.junit.* import notused warning in Eclipse
|
92
|
+
n.java_customCode="@Test\npublic void replaceWithMeaningfulTest(){}\n"
|
93
|
+
|
94
|
+
m=n.umlx_createAndAddOperation(n.rdf_uri+"merge","merge");
|
95
|
+
#TODO merge referenced items
|
96
|
+
m.java_code="return this;"
|
97
|
+
p=m.umlx_createAndAddReturnParameter(m.rdf_uri+'_ret',"return")
|
98
|
+
p.uml_type=n
|
99
|
+
m.umlx_businessMethod=RDF_FALSE
|
100
|
+
|
101
|
+
|
102
|
+
persist=n.umlx_createAndAddOperation(n.rdf_uri+"persist","persist");
|
103
|
+
persist.java_code="" # #{java_debug(%{log.debug("persisting referenced persistent elements");}\n}"
|
104
|
+
p=persist.umlx_createAndAddReturnParameter(persist.rdf_uri+'_ret',"return")
|
105
|
+
p.uml_type=n
|
106
|
+
persist.umlx_businessMethod=RDF_FALSE
|
107
|
+
|
108
|
+
|
109
|
+
#v=n.umlx_createAndAddProperty(n.rdf_uri+"__source","source");
|
110
|
+
|
111
|
+
#ds="#{context[:dataTestPackageName]}.#{context[:dataTestClassName]}"
|
112
|
+
#TODO: remove hard coded
|
113
|
+
ds="xmda.test.UserData"
|
114
|
+
#v.uml_type=n.umlx_getOrCreateClass(ds)
|
115
|
+
#v.java_code="null"
|
116
|
+
|
117
|
+
j=<<END
|
118
|
+
// using one single source object
|
119
|
+
// enables objects retrieved to be linked together.
|
120
|
+
// Objects retrieved with a new source will *not* be linked together.
|
121
|
+
#{ds} source=new #{ds}();
|
122
|
+
END
|
123
|
+
c.kb_UML_DATA.each { |d|
|
124
|
+
if d.kb_UML_INSTANCE_ALIAS.empty?
|
125
|
+
log.warn("data ignored in junit #{c} because of missing UML_INSTANCE_ALIAS")
|
126
|
+
next
|
127
|
+
end
|
128
|
+
u=d.rdf_type.kbjava_uml_model_element(@kbjava_umlSourceModel)
|
129
|
+
p=n.umlx_createAndAddProperty(n.rdf_uri+d.rdf_uri,"#{d.kb_UML_INSTANCE_ALIAS}");
|
130
|
+
p.uml_type=u
|
131
|
+
p.uml_isReadOnly=RDF_TRUE
|
132
|
+
p.java_code="null"
|
133
|
+
|
134
|
+
j="#{j}\n set#{p.java_NameBean}(source.get#{p.java_NameBean}());"
|
135
|
+
persist.java_code="#{persist.java_code.to_s} get#{p.java_NameBean}().persist();\n"
|
136
|
+
}
|
137
|
+
|
138
|
+
m=n.umlx_createAndAddOperation(n.rdf_uri+"initData","initData")
|
139
|
+
m.umlx_businessMethod=RDF_FALSE
|
140
|
+
m.java_code="#{j} return this;"
|
141
|
+
m.java_annotation_add(%{@SuppressWarnings("unused")})
|
142
|
+
p=m.umlx_createAndAddReturnParameter(m.rdf_uri+'_ret',"return")
|
143
|
+
p.uml_type=n
|
144
|
+
|
145
|
+
persist.java_code="#{persist.java_code.to_s} return this;\n"
|
146
|
+
}
|
147
|
+
end
|
148
|
+
|
149
|
+
end
|
150
|
+
|
151
|
+
class Ckb_UML_SLOT < ::Crdf_Property
|
152
|
+
end
|
153
|
+
|
154
|
+
#
|
155
|
+
class Ckb_UML_METACLASS < Crdfs_Class
|
156
|
+
def kbjava_uml_model_element(umlSourceModelParam)
|
157
|
+
r=umlSourceModelParam[::UriNamespace.instance.urialias(@kb_UML_URI.to_s)]
|
158
|
+
return r unless r.nil?
|
159
|
+
puts("WARNING: uml item not found for uri=--#{@kb_UML_URI}--")
|
160
|
+
return nil
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
164
|
+
class ::Crdfs_Class
|
165
|
+
|
166
|
+
def kbjava_umlSourceModel
|
167
|
+
return rdf_model.kbjava_umlSourceModel
|
168
|
+
end
|
169
|
+
|
170
|
+
#uml model used to generate this protege data model
|
171
|
+
rdf_safe_attr_reader_many :kbjava_property
|
172
|
+
#rdf_safe_attr_reader_many :kbjava_initMethod
|
173
|
+
def kbjava_writeJavaObject(umlSourceModelParam, dataSource,umlDataClass,stepOne)
|
174
|
+
uml_type=rdf_type.kbjava_uml_model_element(umlSourceModelParam)
|
175
|
+
|
176
|
+
return if uml_type.kind_of?(Muml_UseCase)
|
177
|
+
|
178
|
+
if stepOne
|
179
|
+
# Create attributes and every init methods (body expected)
|
180
|
+
uml_type.kb_coverage_add(self)
|
181
|
+
p=umlDataClass.umlx_createAndAddProperty(umlDataClass.rdf_uri+kbjava_varName,kbjava_varName.to_s)
|
182
|
+
p.uml_type=uml_type
|
183
|
+
p.uml_visibility= Cuml_VisibilityKind::Private
|
184
|
+
#p.java_noAccessors=RDF_TRUE
|
185
|
+
self.kbjava_property=p
|
186
|
+
|
187
|
+
#init method
|
188
|
+
#p=self.kbjava_property_one
|
189
|
+
#i=umlDataClass.umlx_createAndAddOperation(umlDataClass.rdf_uri+"init"+kbjava_varName,"init#{kbjava_varName}")
|
190
|
+
#i.uml_visibility= kbjava_isPublic? ? Cuml_VisibilityKind::Public : Cuml_VisibilityKind::Private
|
191
|
+
#r=i.umlx_createAndAddReturnParameter(i.rdf_uri+"ret","_return")
|
192
|
+
#r.uml_type=p.uml_type_one
|
193
|
+
#self.kbjava_initMethod=i
|
194
|
+
|
195
|
+
umlDataClass.java_addGlobalGetter!(p)
|
196
|
+
else
|
197
|
+
# Create init methods body
|
198
|
+
p=self.kbjava_property_one
|
199
|
+
#i=self.kbjava_initMethod_one
|
200
|
+
i=p.java_AttributeGlobalGetter_one
|
201
|
+
#write "private #{uml_type.java_qualifiedName} #{kbjava_varName}=null;\n"
|
202
|
+
#write "#{kbjava_public ? "public" : "private"} #{uml_type.java_qualifiedName} get#{kbjava_varName}() {"
|
203
|
+
#p=self.kbjava_property_one
|
204
|
+
i.java_code= <<ENDinit
|
205
|
+
if(#{p.java_Name}==null){
|
206
|
+
#{p.java_Name}= new #{uml_type.java_qualifiedName}();
|
207
|
+
#{p.uml_type_one.java_qualifiedName} elt= #{p.java_Name};
|
208
|
+
#{mtk_stss{kbjava_writeJavaObjectSetters(dataSource)}}
|
209
|
+
}
|
210
|
+
return #{p.java_Name};
|
211
|
+
ENDinit
|
212
|
+
|
213
|
+
# overide getter with init
|
214
|
+
end
|
215
|
+
end
|
216
|
+
|
217
|
+
# Returns test object variable name which will be used to store this test object.
|
218
|
+
# Return uri if test object has no name.
|
219
|
+
def kbjava_varName
|
220
|
+
return kbjava_aliasName.nil? ? uri : kbjava_aliasName
|
221
|
+
end
|
222
|
+
|
223
|
+
#
|
224
|
+
def kbjava_aliasName
|
225
|
+
s=@kb_UML_INSTANCE_ALIAS
|
226
|
+
return nil if s.nil? || s.empty?
|
227
|
+
return s.to_s
|
228
|
+
end
|
229
|
+
|
230
|
+
def kbjava_isPublic?
|
231
|
+
return !kbjava_aliasName.nil?
|
232
|
+
end
|
233
|
+
|
234
|
+
def kbjava_uml_property_values(dataSource)
|
235
|
+
ret=Hash.new
|
236
|
+
instance_variables.each {
|
237
|
+
|m|
|
238
|
+
next if ["@kbjava_property","@kb_UML_URI","@kb_UML_LABEL","@rdfs_label","@ext_isReferencedBy","@rdfs_subClassOf", "@kb_UML_INSTANCE_ALIAS","@kb_UML_REFERENCED_USE_CASE","@kb_inv_UML_REFERENCED_USE_CASE","@kb_UML_USE_CASE_ENV"].include?(m)
|
239
|
+
|
240
|
+
var = instance_variable_get(m)
|
241
|
+
rawval = self.instance_variable_get(m)
|
242
|
+
|
243
|
+
next unless rawval.kind_of?(ArrayOrSingleElement)
|
244
|
+
|
245
|
+
protprop_ident=m[1,m.length] #remove leading @
|
246
|
+
protprop_uri=getRubyNameInverse(protprop_ident)
|
247
|
+
protprop=dataSource[protprop_uri]
|
248
|
+
|
249
|
+
umluri=protprop.instance_variable_get("@kb_UML_URI").to_s
|
250
|
+
umlurialiased=::UriNamespace.instance.urialias(umluri)
|
251
|
+
umlprop=kbjava_umlSourceModel[umlurialiased]
|
252
|
+
|
253
|
+
if umlprop.nil?
|
254
|
+
log.warn { "uml prop not found for slot '#{m}' umluri='#{umluri}' umluriprop='#{umlurialiased}'" }
|
255
|
+
next
|
256
|
+
end
|
257
|
+
ret[umlprop]=rawval
|
258
|
+
}
|
259
|
+
return ret
|
260
|
+
end
|
261
|
+
|
262
|
+
def kbjava_writeJavaObjectSetters(dataSource)
|
263
|
+
kbjava_uml_property_values(dataSource).each {
|
264
|
+
|umlprop,rawval|
|
265
|
+
umlprop.kb_coverage_add(rawval)
|
266
|
+
rawval.each {|v|
|
267
|
+
kbjava_writeJavaObjectSetter(umlprop,v)
|
268
|
+
}
|
269
|
+
}
|
270
|
+
end
|
271
|
+
|
272
|
+
def kbjava_writeJavaObjectSetter(umlprop,valitem)
|
273
|
+
return if umlprop.uml_name.empty?
|
274
|
+
return unless umlprop.umlx_isNavigable?
|
275
|
+
|
276
|
+
#t=umlprop.uml_type_one.java_qualifiedName
|
277
|
+
|
278
|
+
m=JavaMapping.instance.getTemplate(umlprop.uml_type_one)
|
279
|
+
v=m.prot_convertToJava(umlprop,valitem)
|
280
|
+
#i=m.prot_init(umlprop,valitem)
|
281
|
+
|
282
|
+
#puts "i='#{i}'"
|
283
|
+
meth=umlprop.umlx_upperValueIsOne? ? "set" : "add"
|
284
|
+
#write " #{i}/* tpl-kbjava01 */\n"
|
285
|
+
write "// read only " if umlprop.uml_isReadOnly?
|
286
|
+
write " elt.#{meth}#{umlprop.java_NameBean}(#{v});\n"
|
287
|
+
end
|
288
|
+
end
|
289
|
+
|
290
|
+
module Muml_Element
|
291
|
+
rdf_safe_attr_reader_many :kb_coverage
|
292
|
+
end
|
293
|
+
module Mrdf_Model
|
294
|
+
def kbjava_computeCoverage
|
295
|
+
puts "COVERAGE REPORT"
|
296
|
+
puts %{class|property|hit|min hit\n}
|
297
|
+
ret=Array.new
|
298
|
+
uml_Class_all.each { |c|
|
299
|
+
|
300
|
+
next if c.uml_isAbstract?
|
301
|
+
next if c.kind_of?(Cuml_Enumeration)
|
302
|
+
next if c.uml_ownedAttribute.empty?
|
303
|
+
puts %{#{c.uml_name}|id|#{c.kb_coverage.size}|1\n}
|
304
|
+
c.uml_ownedAttribute.each {|a|
|
305
|
+
max=a.uml_type_one.kind_of?(Muml_Enumeration) ? a.uml_type_one.uml_ownedLiteral.size : "1"
|
306
|
+
puts %{#{c.uml_name}|#{a.uml_name}|#{a.kb_coverage.size}|#{max}\n}
|
307
|
+
ret<< { "class" => c.uml_name,"property"=> a.uml_name, "hit" =>a.kb_coverage.size, "minhit" => max}
|
308
|
+
}
|
309
|
+
|
310
|
+
}
|
311
|
+
puts "COVERAGE REPORT END"
|
312
|
+
return ret
|
313
|
+
end
|
314
|
+
end
|
315
|
+
|
316
|
+
module Mrdf_Resource
|
317
|
+
def kbjava_isUmlObject?
|
318
|
+
c=self
|
319
|
+
# filters out Protege meta-model element
|
320
|
+
return false if (c.kind_of?(Ckb_UML_METACLASS))||(c.kind_of?(Ckb_UML_SLOT))
|
321
|
+
# filters out rdf root elements
|
322
|
+
return false if (c.class==Crdf_Resource) || (c.class==Crdf_Property)
|
323
|
+
return true
|
324
|
+
end
|
325
|
+
end
|
326
|
+
|
327
|
+
class JavaMapping
|
328
|
+
def prot_init(umlprop,valitem)
|
329
|
+
return ""
|
330
|
+
end
|
331
|
+
end
|
332
|
+
|
333
|
+
class JavaMappingText < JavaMapping
|
334
|
+
# Protege string to Java code conversions
|
335
|
+
def prot_convertToJava(umlprop,valitem)
|
336
|
+
return %{"#{valitem}"}
|
337
|
+
end
|
338
|
+
end
|
339
|
+
class JavaMappingInteger < JavaMappingOrdinal
|
340
|
+
# Protege string to Java code conversions
|
341
|
+
def prot_convertToJava(umlprop,valitem)
|
342
|
+
#Remove leading 0 (octal)
|
343
|
+
return valitem.gsub(/^0*([0-9])/,'\1')
|
344
|
+
end
|
345
|
+
end
|
346
|
+
class JavaMappingLong < JavaMappingOrdinal
|
347
|
+
# Protege string to Java code conversions
|
348
|
+
def prot_convertToJava(umlprop,valitem)
|
349
|
+
#Remove leading 0 (octal)
|
350
|
+
return valitem.gsub(/^0*([0-9])/,'\1')
|
351
|
+
end
|
352
|
+
end
|
353
|
+
class JavaMappingFile < JavaMapping
|
354
|
+
# Protege string to Java code conversions
|
355
|
+
def prot_convertToJava(umlprop,valitem)
|
356
|
+
# ??
|
357
|
+
return valitem
|
358
|
+
end
|
359
|
+
end
|
360
|
+
class JavaMappingBoolean < JavaMapping
|
361
|
+
# Protege string to Java code conversions
|
362
|
+
def prot_convertToJava(umlprop,valitem)
|
363
|
+
return valitem
|
364
|
+
end
|
365
|
+
end
|
366
|
+
class JavaMappingTimeStamp < JavaMapping
|
367
|
+
# Protege string to Java code conversions
|
368
|
+
def prot_convertToJava(umlprop,valitem)
|
369
|
+
return %{convertTimestamp("#{valitem}")}
|
370
|
+
end
|
371
|
+
end
|
372
|
+
class JavaMappingCalendar < JavaMapping
|
373
|
+
# Protege string to Java code conversions
|
374
|
+
def prot_convertToJava(umlprop,valitem)
|
375
|
+
return %{convertCalendar("#{valitem}")}
|
376
|
+
end
|
377
|
+
end
|
378
|
+
class JavaMappingGenericClass < JavaMapping
|
379
|
+
# Protege string to Java code conversions
|
380
|
+
def prot_convertToJava(umlprop,valitem)
|
381
|
+
return "#{valitem.kbjava_property_one.java_AttributeGlobalGetter_one.java_Name}()"
|
382
|
+
end
|
383
|
+
def prot_init(umlprop,valitem)
|
384
|
+
return ""
|
385
|
+
#return "init#{umlprop.java_NameBean}();/* #{umlprop.class} */"
|
386
|
+
end
|
387
|
+
end
|
388
|
+
class JavaMappingGenericEnum < JavaMapping
|
389
|
+
# Protege string to Java code conversions
|
390
|
+
def prot_convertToJava(umlprop,valitem)
|
391
|
+
lit=nil
|
392
|
+
umlprop.uml_type_one.uml_ownedLiteral.each { |i|
|
393
|
+
next if i.to_s!=valitem.to_s
|
394
|
+
lit=i
|
395
|
+
}
|
396
|
+
return "#{umlprop.uml_type_one.java_qualifiedName}.#{lit.java_Name}"
|
397
|
+
end
|
398
|
+
end
|
File without changes
|
metadata
ADDED
@@ -0,0 +1,89 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ontomde-uml2-kbjava
|
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-kb
|
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: ontomde-uml2-java
|
26
|
+
version_requirement:
|
27
|
+
version_requirements: !ruby/object:Gem::Requirement
|
28
|
+
requirements:
|
29
|
+
- - "="
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: 1.0.4
|
32
|
+
version:
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: hoe
|
35
|
+
version_requirement:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.5.0
|
41
|
+
version:
|
42
|
+
description: "ontomde-uml2-kbjava is a library to generate tests data as java code and java junit from Prot\xE9g\xE9 2000 data project generated with ontomde-uml2-kb. ontomde-uml2-kbjava should be used through ontomde-java-frontend command line utility. == FEATURES/PROBLEMS: * generator assumes JPA persistence is used. == SYNOPSIS:"
|
43
|
+
email: stephanepierre.carrie@orange-ftgroup.com
|
44
|
+
executables: []
|
45
|
+
|
46
|
+
extensions: []
|
47
|
+
|
48
|
+
extra_rdoc_files:
|
49
|
+
- History.txt
|
50
|
+
- Manifest.txt
|
51
|
+
- README.txt
|
52
|
+
files:
|
53
|
+
- History.txt
|
54
|
+
- Manifest.txt
|
55
|
+
- README.txt
|
56
|
+
- Rakefile
|
57
|
+
- lib/ontomde-uml2-kbjava.rb
|
58
|
+
- lib/ontomde-uml2-kbjava/version.rb
|
59
|
+
- lib/ontomde-uml2-kbjava/rdfToJava.rb
|
60
|
+
- test/test_ontomde-uml2-kbjava.rb
|
61
|
+
has_rdoc: true
|
62
|
+
homepage: http://ontomde.rubyforge.org
|
63
|
+
post_install_message:
|
64
|
+
rdoc_options:
|
65
|
+
- --main
|
66
|
+
- README.txt
|
67
|
+
require_paths:
|
68
|
+
- lib
|
69
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: 1.8.6
|
74
|
+
version:
|
75
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - ">="
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: 1.0.0
|
80
|
+
version:
|
81
|
+
requirements: []
|
82
|
+
|
83
|
+
rubyforge_project: ontomde
|
84
|
+
rubygems_version: 1.0.1
|
85
|
+
signing_key:
|
86
|
+
specification_version: 2
|
87
|
+
summary: OntoMDE Protege 2000 java data-test cartridge
|
88
|
+
test_files:
|
89
|
+
- test/test_ontomde-uml2-kbjava.rb
|