ontomde-java 2.0.4 → 2.0.5
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/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
|