ontomde-java 2.0.4 → 2.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/Manifest.txt +1 -0
- data/lib/ontomde-java.rb +1 -0
- data/lib/ontomde-java/frontend/command.rb +6 -4
- data/lib/ontomde-java/frontend/defaultOptions.rb +1 -0
- data/lib/ontomde-java/frontend/options.rb +10 -0
- data/lib/ontomde-java/frontend/steps.rb +6 -0
- data/lib/ontomde-java/java/accessorSignature.rb +4 -0
- data/lib/ontomde-java/java/enumAssignable.rb +1 -1
- data/lib/ontomde-java/java/java.rb +11 -4
- data/lib/ontomde-java/java/javadoc.rb +1 -1
- data/lib/ontomde-java/java/refactor.rb +109 -0
- data/lib/ontomde-java/java/xsd.rb +30 -12
- data/lib/ontomde-java/kbjava/rdfToJava.rb +10 -2
- data/lib/ontomde-java/struts/form.rb +2 -2
- data/lib/ontomde-java/struts/jsp_edit.rb +1 -1
- data/lib/ontomde-java/version.rb +1 -1
- data/test/test_export_unitTests.rb +12 -1
- metadata +4 -3
data/Manifest.txt
CHANGED
@@ -49,6 +49,7 @@ lib/ontomde-java/java/java_todo.rdoc
|
|
49
49
|
lib/ontomde-java/java/javadoc.rb
|
50
50
|
lib/ontomde-java/java/meta.rb
|
51
51
|
lib/ontomde-java/java/operationAsClass.rb
|
52
|
+
lib/ontomde-java/java/refactor.rb
|
52
53
|
lib/ontomde-java/java/security.rb
|
53
54
|
lib/ontomde-java/java/stateMachine.rb
|
54
55
|
lib/ontomde-java/java/tenant.rb
|
data/lib/ontomde-java.rb
CHANGED
@@ -41,6 +41,7 @@ require 'ontomde-java/java/xsd.rb'
|
|
41
41
|
require 'ontomde-java/java/xsdCollectionMapping.rb'
|
42
42
|
require 'ontomde-java/java/xsdDatatypeMapping.rb'
|
43
43
|
require 'ontomde-java/java/tenant.rb'
|
44
|
+
require 'ontomde-java/java/refactor.rb'
|
44
45
|
require 'ontomde-java/vmware/vso.rb'
|
45
46
|
|
46
47
|
|
@@ -98,13 +98,15 @@ puts "# # # Begin of debug script"
|
|
98
98
|
puts "# # # Move to original working directory"
|
99
99
|
Dir.chdir(File.dirname(__FILE__))
|
100
100
|
|
101
|
-
puts "# # # requesting ontomde-java version #{Ontomde::Java::VERSION}"
|
102
|
-
gem("ontomde-java","#{Ontomde::Java::VERSION}")
|
103
|
-
|
104
|
-
|
105
101
|
puts "# # # ARGV initialization"
|
106
102
|
#{initARGV}
|
107
103
|
|
104
|
+
if( ! ARGV.include?('--nogem'))
|
105
|
+
puts "# # # requesting ontomde-java version #{Ontomde::Java::VERSION}"
|
106
|
+
require 'rubygems'
|
107
|
+
gem("ontomde-java","#{Ontomde::Java::VERSION}")
|
108
|
+
end
|
109
|
+
|
108
110
|
puts "# # #loading ontomde-java command line script"
|
109
111
|
require 'ontomde-java/frontend/command.rb'
|
110
112
|
|
@@ -441,6 +441,16 @@ def populateMisc(opts,options)
|
|
441
441
|
options[:vsoTargetFile] = v
|
442
442
|
end
|
443
443
|
|
444
|
+
opts.on("--javaRefactorFile JAVA_REFACTOR_FILE",": if sets, generate a file containing information on what was generated. This file is designed to be easy to diff in order to know what to refactor","default: -- #{options[:javaRefactorFile]}") do |v|
|
445
|
+
options[:javaRefactorFile] = v
|
446
|
+
end
|
447
|
+
|
448
|
+
opts.on("--nogem",": internal options. Used in core ontomde developer mode.") do |v|
|
449
|
+
# do nothing.
|
450
|
+
# just ignore the option
|
451
|
+
end
|
452
|
+
|
453
|
+
|
444
454
|
end
|
445
455
|
|
446
456
|
def populateDocumentation(opts,options)
|
@@ -237,6 +237,12 @@ def step_generate_java(model)
|
|
237
237
|
end
|
238
238
|
say "Generating/Updating java files"
|
239
239
|
model.java_generateRepository
|
240
|
+
|
241
|
+
if !model.context[:javaRefactorFile,nil].nil?
|
242
|
+
say "Generating helper file javaRefactorFile"
|
243
|
+
model.java_generateRefactorFile
|
244
|
+
end
|
245
|
+
|
240
246
|
end
|
241
247
|
#write java files to disk
|
242
248
|
def step_generate_xsd(model)
|
@@ -129,6 +129,10 @@ module Muml_Classifier
|
|
129
129
|
m.uml_isStatic=oa.uml_isStatic
|
130
130
|
m.java_use_Arrays=oa.java_use_Arrays
|
131
131
|
|
132
|
+
# propagate deprecated stereotype
|
133
|
+
deprec=oa.umlx_returnStereotypeIfHas("deprecated")
|
134
|
+
m.uml_appliedStereotype_add(deprec) unless deprec.nil?
|
135
|
+
|
132
136
|
if withQualifier
|
133
137
|
oa.uml_qualifier.each { |qual|
|
134
138
|
ip_qual=m.umlx_createAndAddParameter(m.rdf_uri+qual.rdf_uri)
|
@@ -103,7 +103,7 @@ END
|
|
103
103
|
r.uml_type=umlx_dataType_string
|
104
104
|
op.umlx_businessMethod=RDF_FALSE
|
105
105
|
|
106
|
-
op=ret.umlx_createAndAddOperation("#{ret.rdf_uri}
|
106
|
+
op=ret.umlx_createAndAddOperation("#{ret.rdf_uri}_getType}","getType")
|
107
107
|
r=op.umlx_createAndAddReturnParameter("#{op.rdf_uri}_ret","return")
|
108
108
|
r.uml_type=umlx_getOrCreateGeneric("java.lang.Class","?")
|
109
109
|
end
|
@@ -12,6 +12,7 @@ module Mjava_Annotation
|
|
12
12
|
write(a)
|
13
13
|
write("\n")
|
14
14
|
}
|
15
|
+
write("\t@Deprecated\n") if (self.umlx_hasStereotype?("deprecated"))
|
15
16
|
write("\t@Override\n") if (self.kind_of?(Muml_Operation) && !umlx_redefinesMethod.empty? && !umlx_redefinesMethod_one.umlx_owner_one.kind_of?(Muml_Interface) )
|
16
17
|
}
|
17
18
|
end
|
@@ -137,10 +138,10 @@ module Mrdf_Repository
|
|
137
138
|
each { |k,c|
|
138
139
|
next if c.kind_of?(Muml_Stereotype)
|
139
140
|
next unless c.kind_of?(Muml_Class) || c.kind_of?(Muml_Interface)||c.kind_of?(Muml_Enumeration)
|
140
|
-
a << c
|
141
|
+
a << c unless c.java_ignoreMe?
|
141
142
|
}
|
142
143
|
a.each {|c|
|
143
|
-
c.java_transform!
|
144
|
+
c.java_transform!
|
144
145
|
}
|
145
146
|
|
146
147
|
#java_addPersistence!
|
@@ -159,6 +160,7 @@ end
|
|
159
160
|
module Muml_Model
|
160
161
|
def java_generateModel
|
161
162
|
mtk_default_context(:java_generateSetAttributeInitializer=>true) {
|
163
|
+
a=Array.new
|
162
164
|
uml_Class_all.each {|c|
|
163
165
|
#next if c.kind_of?(Muml_Stereotype)
|
164
166
|
next unless c.kind_of?(Muml_Class) || c.kind_of?(Muml_Interface)||c.kind_of?(Muml_Enumeration)
|
@@ -166,13 +168,16 @@ module Muml_Model
|
|
166
168
|
# usefull for generating separtely tests dans model
|
167
169
|
next if c.java_isATestFile? && !context[:includeTestFiles]
|
168
170
|
next if (!c.java_isATestFile?) && context[:excludeNonTestFiles]
|
169
|
-
|
171
|
+
a.push(c)
|
170
172
|
}
|
171
173
|
if context[:generateComponent]
|
172
174
|
uml_Component_all.each { |c|
|
173
|
-
c
|
175
|
+
a.push(c)
|
174
176
|
}
|
175
177
|
end
|
178
|
+
a.eachInThread(self) { |cl|
|
179
|
+
cl.java_generateClassifier
|
180
|
+
}
|
176
181
|
}
|
177
182
|
end
|
178
183
|
end
|
@@ -543,6 +548,7 @@ module Muml_Enumeration
|
|
543
548
|
def java_writeImplements
|
544
549
|
imp=Set.new
|
545
550
|
uml_implementation.each { |g|
|
551
|
+
next if (g.umlx_hasStereotype?("private") )
|
546
552
|
imp.add(g.uml_supplier_one.java_qualifiedName)
|
547
553
|
}
|
548
554
|
java_implements.each { |g|
|
@@ -602,6 +608,7 @@ module Muml_Class
|
|
602
608
|
def java_writeImplements
|
603
609
|
imp=Set.new
|
604
610
|
uml_implementation.each { |g|
|
611
|
+
next if (g.umlx_hasStereotype?("private") )
|
605
612
|
imp.add(g.uml_supplier_one.java_qualifiedName)
|
606
613
|
}
|
607
614
|
java_implements.each { |g|
|
@@ -8,7 +8,7 @@ class String
|
|
8
8
|
def java_writeJavadoc(res)
|
9
9
|
# replace escaped carriage return by true carriage return
|
10
10
|
# remove java comments (we are already inside a javadoc)
|
11
|
-
self.gsub(/\\r
|
11
|
+
self.gsub(/\\r/,"").gsub(/\\n/,"\n").gsub(/\*\//,'--').gsub(/\/\*/,'--').each { |line|
|
12
12
|
res.write("\t * #{line}".tr("\n"," ").rstrip)
|
13
13
|
res.write("\n")
|
14
14
|
}
|
@@ -0,0 +1,109 @@
|
|
1
|
+
|
2
|
+
# refactor generates a single file that contains a report
|
3
|
+
# of what java code was generated.
|
4
|
+
# This file is designed to be easy to diff.
|
5
|
+
#
|
6
|
+
# In order to know what to refactor, version this file
|
7
|
+
# and run a diff on it. You will know what has changed.
|
8
|
+
class String
|
9
|
+
def mtk_xml
|
10
|
+
return self.tr('<','_').tr('>','_')
|
11
|
+
end
|
12
|
+
end
|
13
|
+
module Mrdf_Repository
|
14
|
+
def java_generateRefactorFile
|
15
|
+
s=Set.new
|
16
|
+
p=Set.new
|
17
|
+
uml_Class_all.each {|c|
|
18
|
+
next unless c.kind_of?(Muml_Class) || c.kind_of?(Muml_Interface)||c.kind_of?(Muml_Enumeration)
|
19
|
+
# only generate if requested to do so
|
20
|
+
# usefull for generating separtely tests dans model
|
21
|
+
next if c.java_isATestFile? && !context[:includeTestFiles]
|
22
|
+
next if (!c.java_isATestFile?) && context[:excludeNonTestFiles]
|
23
|
+
s.add(c)
|
24
|
+
p.add(c.umlx_owner_one) if c.umlx_owner_one.kind_of?(Muml_Package)
|
25
|
+
}
|
26
|
+
|
27
|
+
mtk_writeSession(context[:javaRefactorFile]) {
|
28
|
+
write <<END
|
29
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
30
|
+
<refactor>
|
31
|
+
<!--
|
32
|
+
|
33
|
+
Although ontomde tries to behave nicely
|
34
|
+
when generating over existing code with
|
35
|
+
a modified UML model, it is not always
|
36
|
+
possible to handle all cases transparently.
|
37
|
+
|
38
|
+
Therefore, it is sometime best to perform
|
39
|
+
Eclipse code refactoring (or such), prior
|
40
|
+
to running generation with the new model.
|
41
|
+
|
42
|
+
The question is now, what should I refactor ?
|
43
|
+
|
44
|
+
This file is here to help you in this task.
|
45
|
+
|
46
|
+
When processed with diff (such as TortoiseSVN),
|
47
|
+
this file will tell you what to refactor. You
|
48
|
+
will now deleted or modified elements (as well
|
49
|
+
as neewly created elements).
|
50
|
+
|
51
|
+
Please note that you should versionned this file
|
52
|
+
after running generator on a new model.
|
53
|
+
|
54
|
+
This file has been designed to behave nicely
|
55
|
+
with diff and avoid false change information.
|
56
|
+
|
57
|
+
-->
|
58
|
+
END
|
59
|
+
#sort is on rdf_uri because uri does not change
|
60
|
+
#sorting on label is KO
|
61
|
+
s.sort { |a,b| a.rdf_uri <=> b.rdf_uri }.each { |cc|
|
62
|
+
cc.java_writeRefactorData
|
63
|
+
}
|
64
|
+
p.sort { |a,b| a.rdf_uri <=> b.rdf_uri }.each { |cc|
|
65
|
+
cc.java_writeRefactorData
|
66
|
+
}
|
67
|
+
write(%{</refactor>\n})
|
68
|
+
}
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
module Muml_Package
|
73
|
+
def java_writeRefactorData
|
74
|
+
write(%{<#{self.class}\n})
|
75
|
+
write(%{ uri=\"#{rdf_uri}"\n})
|
76
|
+
#write(%{ class="#{self.class}"\n})
|
77
|
+
write(%{ path="#{java_qualifiedName.mtk_xml}"\n})
|
78
|
+
write(%{/>\n})
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
module Muml_Classifier
|
83
|
+
def java_writeRefactorData
|
84
|
+
write(%{<#{self.class}\n})
|
85
|
+
write(%{ uri=\"#{rdf_uri}"\n})
|
86
|
+
#write(%{ class="#{self.class}"\n})
|
87
|
+
write(%{ package="#{umlx_owner_one.rdf_uri}"\n})
|
88
|
+
write(%{ name="#{java_Name.mtk_xml}"\n})
|
89
|
+
write(%{>\n})
|
90
|
+
uml_ownedAttribute.sort {|a,b| a.rdf_uri<=>b.rdf_uri}.each {|a|
|
91
|
+
write(%{ <attribute\n})
|
92
|
+
write(%{ uri=\"#{a.rdf_uri}"\n})
|
93
|
+
# uri is used for type because we track here a change
|
94
|
+
# of parameter type, not a change of type itself.
|
95
|
+
#write(%{ type="#{a.uml_type_one.rdf_uri}"\n})
|
96
|
+
write(%{ name="#{a.java_Name.mtk_xml}"\n})
|
97
|
+
write(%{ />\n})
|
98
|
+
}
|
99
|
+
uml_ownedOperation.sort {|a,b| a.rdf_uri<=>b.rdf_uri}.each {|a|
|
100
|
+
write(%{ <operation\n})
|
101
|
+
write(%{ uri=\"#{a.rdf_uri}"\n})
|
102
|
+
write(%{ name="#{a.java_Name.mtk_xml}"\n})
|
103
|
+
#write(%{ returnType="#{a.umlx_returnResult_one0.rdf_uri}"\n}) unless a.umlx_returnResult_one0.nil?
|
104
|
+
write(%{ />\n})
|
105
|
+
}
|
106
|
+
write(%{</#{self.class}>\n})
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
@@ -18,6 +18,7 @@ module Mxsd_Schema
|
|
18
18
|
types=Set.new
|
19
19
|
xsd_types.each { |clazz|
|
20
20
|
clazz.uml_ownedAttribute.each { |param|
|
21
|
+
next if param.xsd_ignoreMe?
|
21
22
|
types.merge(param.uml_type)
|
22
23
|
}
|
23
24
|
}
|
@@ -25,11 +26,14 @@ module Mxsd_Schema
|
|
25
26
|
end
|
26
27
|
|
27
28
|
def xsd_writeImports
|
29
|
+
empty=true
|
28
30
|
xsd_dependencies.each {|dep|
|
31
|
+
empty=false
|
29
32
|
base=Pathname.new(File.dirname(self.xsd_SchemaName))
|
30
33
|
target=Pathname.new(dep.xsd_SchemaName)
|
31
34
|
write(%{ <xsd:include schemaLocation="#{target.relative_path_from(base)}"/>\n})
|
32
35
|
}
|
36
|
+
write("\n") unless empty
|
33
37
|
end
|
34
38
|
#compute xsd dependencies from file
|
35
39
|
def xsd_computeDependencies!(defaultXSD)
|
@@ -182,20 +186,30 @@ module Mrdf_Repository
|
|
182
186
|
|
183
187
|
#parse model and generate file objects for elements
|
184
188
|
def xsd_generateSchemaElements!
|
189
|
+
|
190
|
+
#compute set of packages with elements of interest
|
185
191
|
packages=Set.new
|
186
192
|
uml_Class_all.each { |c|
|
193
|
+
next if c.xsd_ignoreMe?
|
187
194
|
packages.add(c.umlx_owner_one)
|
188
195
|
}
|
196
|
+
|
197
|
+
#
|
189
198
|
global=Cxsd_Schema.new(self,"uri://globalXSD")
|
199
|
+
|
200
|
+
#Create one xsd schema for each package
|
190
201
|
xsdFiles=Set.new
|
191
202
|
packages.each { |p|
|
192
203
|
f=Cxsd_Schema.new(self,"#{p.rdf_uri}_xsdFile")
|
193
204
|
xsdFiles.add(f)
|
194
205
|
f.xsd_baseName=p
|
195
206
|
p.uml_Class_all.each {|oe|
|
207
|
+
next if oe.xsd_ignoreMe?
|
196
208
|
f.xsd_types_add(oe)
|
197
209
|
}
|
198
210
|
}
|
211
|
+
|
212
|
+
#
|
199
213
|
d=global.nil? ? Cxsd_Schema.new(self,"defaultXSD") : global
|
200
214
|
xsdFiles.each { |xsd|
|
201
215
|
xsd.xsd_computeDependencies!(d)
|
@@ -251,6 +265,7 @@ module Muml_Parameter
|
|
251
265
|
#write(" /* #{uml_lowerValue}..#{uml_upperValue}*/ ")
|
252
266
|
write(" #{xsd_Name}") unless uml_direction_one.isReturn?
|
253
267
|
end
|
268
|
+
|
254
269
|
end
|
255
270
|
|
256
271
|
|
@@ -451,7 +466,7 @@ module Muml_Namespace
|
|
451
466
|
#Example:
|
452
467
|
#* build/package1/package2/NomDeLaClasse.xsd
|
453
468
|
def xsd_SchemaName
|
454
|
-
return "#{xsd_SchemaPath}#{xsd_Name}.xsd"
|
469
|
+
return "#{xsd_SchemaPath}#{xsd_Name}Rec.xsd"
|
455
470
|
end
|
456
471
|
|
457
472
|
|
@@ -475,7 +490,8 @@ module Muml_Namespace
|
|
475
490
|
# * build/package1/package2
|
476
491
|
# * build/package1/package2/UneClasse.xsd
|
477
492
|
def xsd_SchemaPath
|
478
|
-
|
493
|
+
|
494
|
+
return xsd_getContextJavaFilePath(context[:javaRelativeDir])+xsd_InternalFilePath
|
479
495
|
end
|
480
496
|
|
481
497
|
# Returns the internal path where to generate file for this object.
|
@@ -527,13 +543,8 @@ module Muml_Namespace
|
|
527
543
|
#* returns true if this class name is in JAVA_IGNORE_ROOT_PACKAGE_NAME
|
528
544
|
def xsd_ignoreMe?(ignoreExternal=true)
|
529
545
|
#puts "ignore=#{self.class} #{self.uml_name}"
|
530
|
-
|
531
|
-
return
|
532
|
-
return true if umlx_external? && ignoreExternal
|
533
|
-
JAVA_IGNORE_NAMESPACE.each { |ns|
|
534
|
-
return true if qn.index(ns)==0
|
535
|
-
}
|
536
|
-
return false;
|
546
|
+
return true if java_ignoreMe?(ignoreExternal)
|
547
|
+
return struts_isStruts?
|
537
548
|
end
|
538
549
|
end
|
539
550
|
|
@@ -575,9 +586,9 @@ module Muml_Enumeration
|
|
575
586
|
#Example:
|
576
587
|
#* enum Colors
|
577
588
|
def xsd_writeMetaClassName(&block)
|
578
|
-
write(%{<xsd:simpleType name="#{xsd_qualifiedName}" >\n})
|
589
|
+
write(%{ <xsd:simpleType name="#{xsd_qualifiedName}" >\n})
|
579
590
|
yield
|
580
|
-
write(%{</xsd:simpleType>\n})
|
591
|
+
write(%{ </xsd:simpleType>\n})
|
581
592
|
end
|
582
593
|
|
583
594
|
#write enum body (list of litterals) using xsd_writeClassComment, xsd_writeClassModifiers, xsd_writeMetaClassName.
|
@@ -943,7 +954,7 @@ END
|
|
943
954
|
def xsd_writeAttributes
|
944
955
|
return if kind_of?(Muml_Interface)
|
945
956
|
#sort has been added because ownedAttribute order is random
|
946
|
-
#which
|
957
|
+
#which causes false change detection on versionned file
|
947
958
|
write(%{ <xsd:sequence>\n})
|
948
959
|
uml_ownedAttribute.sort { |a,b| a.xsd_Name.to_s <=> b.xsd_Name.to_s }.each { |o| o.xsd_writeProperty}
|
949
960
|
write(%{ </xsd:sequence>\n})
|
@@ -1167,6 +1178,7 @@ module Muml_Property
|
|
1167
1178
|
#NOTE:
|
1168
1179
|
#* getter/setter/... methods are handled by model transformation
|
1169
1180
|
def xsd_writeProperty
|
1181
|
+
return if xsd_ignoreMe?
|
1170
1182
|
write(%{ <xsd:element name="#{xsd_Name}" type="#{uml_type_one.xsd_qualifiedName}"})
|
1171
1183
|
xsd_writeMinOccurs
|
1172
1184
|
xsd_writeMaxOccurs
|
@@ -1231,6 +1243,12 @@ module Muml_Property
|
|
1231
1243
|
write("transient ")
|
1232
1244
|
end
|
1233
1245
|
|
1246
|
+
def xsd_ignoreMe?
|
1247
|
+
return true if java_ignoreMe?
|
1248
|
+
n=java_Name.to_s
|
1249
|
+
return true if (n=="isLogicallyDeleted") || (n=="objectVersion")
|
1250
|
+
end
|
1251
|
+
|
1234
1252
|
end
|
1235
1253
|
|
1236
1254
|
|
@@ -37,8 +37,8 @@ class Crdf_ProtegeDataModel < Crdf_Repository
|
|
37
37
|
|
38
38
|
#mtk_protected("converter") {
|
39
39
|
umlDataClass.java_customCode= <<END
|
40
|
-
private static java.text.SimpleDateFormat dfCalendar= new java.text.SimpleDateFormat("yyyy
|
41
|
-
private static java.text.SimpleDateFormat dfTimestamp= new java.text.SimpleDateFormat("yyyy
|
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 HH:mm:ss",java.util.Locale.ENGLISH);
|
42
42
|
public java.util.Date convertCalendar(final String s) {
|
43
43
|
try {
|
44
44
|
return dfCalendar.parse(s) ;
|
@@ -76,6 +76,9 @@ END
|
|
76
76
|
|
77
77
|
n=p.umlx_createAndAddClass("#{c.rdf_uri}_junit","junit#{c.kb_UML_DATA_SET_NAME}")
|
78
78
|
|
79
|
+
#propagate use case documentation to test class
|
80
|
+
n.uml_ownedComment=uml_type.uml_ownedComment unless uml_type.uml_ownedComment.empty?
|
81
|
+
|
79
82
|
#Provide a Gui
|
80
83
|
n.umlx_businessMethod=RDF_TRUE
|
81
84
|
#puts "n=#{n.uml_name} busniess=#{n.umlx_businessMethod?}"
|
@@ -208,6 +211,11 @@ class ::Crdfs_Class
|
|
208
211
|
p=self.kbjava_property_one
|
209
212
|
#i=self.kbjava_initMethod_one
|
210
213
|
i=p.java_AttributeGlobalGetter_one
|
214
|
+
|
215
|
+
if kbjava_aliasName.nil?
|
216
|
+
#no alias, getter is private
|
217
|
+
p.java_AttributeGlobalGetter_one.uml_visibility= Cuml_VisibilityKind::Protected
|
218
|
+
end
|
211
219
|
#write "private #{uml_type.java_qualifiedName} #{kbjava_varName}=null;\n"
|
212
220
|
#write "#{kbjava_public ? "public" : "private"} #{uml_type.java_qualifiedName} get#{kbjava_varName}() {"
|
213
221
|
#p=self.kbjava_property_one
|
@@ -313,7 +313,7 @@ module Muml_Property
|
|
313
313
|
a2.uml_type=form.umlx_dataType_string
|
314
314
|
#a2.uml_type=form.umlx_getOrCreateClass("java.lang.Integer")
|
315
315
|
|
316
|
-
sug=form.umlx_createAndAddOperation(form.rdf_uri+"
|
316
|
+
sug=form.umlx_createAndAddOperation(form.rdf_uri+"_sug_"+self.rdf_uri,"get#{self.java_NameBean}Sug")
|
317
317
|
ret=sug.umlx_createAndAddReturnParameter(sug.rdf_uri+"_return")
|
318
318
|
ret.uml_type=form.umlx_getOrCreateClass("#{STRUTS_LVB}")
|
319
319
|
ret.uml_upperValue=form.umlx_literal(-1)
|
@@ -330,7 +330,7 @@ module Muml_Property
|
|
330
330
|
a2.uml_type=form.umlx_dataType_string
|
331
331
|
|
332
332
|
if ! uml_isReadOnly?
|
333
|
-
sug=form.umlx_createAndAddOperation(form.rdf_uri+"
|
333
|
+
sug=form.umlx_createAndAddOperation(form.rdf_uri+"_sug_"+self.rdf_uri,"get#{self.java_NameBean}Sug")
|
334
334
|
ret=sug.umlx_createAndAddReturnParameter(sug.rdf_uri+"_return")
|
335
335
|
ret.uml_type=form.umlx_getOrCreateClass("#{STRUTS_LVB}")
|
336
336
|
ret.uml_upperValue=form.umlx_literal(-1)
|
data/lib/ontomde-java/version.rb
CHANGED
@@ -948,7 +948,18 @@ module TestsStereotypes
|
|
948
948
|
def test_stereotypeOnTargetAssociation
|
949
949
|
hasStereotype(p=find("withQualifierBiNav",Cuml_Property),"teST")
|
950
950
|
end
|
951
|
-
|
951
|
+
|
952
|
+
def test_stereotypeOnImplements
|
953
|
+
c=getComponent
|
954
|
+
found=nil
|
955
|
+
c.uml_implementation.each {|r|
|
956
|
+
return if r.umlx_hasStereotype?("stereotypeOnImplement")
|
957
|
+
found=r
|
958
|
+
}
|
959
|
+
fail "missing implements link on component while looking for stereotypeOnImplement" if found.nil?
|
960
|
+
fail "stereotypeOnImplement not found \n(id=#{found.rdf_uri})"
|
961
|
+
end
|
962
|
+
|
952
963
|
end
|
953
964
|
module TestAggregationKind
|
954
965
|
def test_compositeAssocIsComposition
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ontomde-java
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Orange-labs BIZZ/CIL/SAM
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-04-
|
12
|
+
date: 2009-04-23 00:00:00 +02:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -20,7 +20,7 @@ dependencies:
|
|
20
20
|
requirements:
|
21
21
|
- - "="
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: 2.0.
|
23
|
+
version: 2.0.5
|
24
24
|
version:
|
25
25
|
description: "ontomde-java is a full-featured UML2 to Java5 code generator library. A sample raw UML2 source model is available here: http://ontomde.rubyforge.org/website/demo/java5/index.html. This model is included in a running demonstration available from this page: http://ontomde.rubyforge.org/website/demonstration.html == FEATURES/PROBLEMS: Managed class modifiers * interface implements * single class inheritance * attribute * association * method * inner class"
|
26
26
|
email: stephanepierre.carrie -nospam- @orange-ftgroup.com
|
@@ -84,6 +84,7 @@ files:
|
|
84
84
|
- lib/ontomde-java/java/javadoc.rb
|
85
85
|
- lib/ontomde-java/java/meta.rb
|
86
86
|
- lib/ontomde-java/java/operationAsClass.rb
|
87
|
+
- lib/ontomde-java/java/refactor.rb
|
87
88
|
- lib/ontomde-java/java/security.rb
|
88
89
|
- lib/ontomde-java/java/stateMachine.rb
|
89
90
|
- lib/ontomde-java/java/tenant.rb
|