ontomde-java 2.0.0 → 2.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 +11 -0
- data/Manifest.txt +1 -51
- data/lib/ontomde-java.rb +2 -0
- data/lib/ontomde-java/crank.rb +8 -8
- data/lib/ontomde-java/crank/crankJpa.rb +58 -8
- data/lib/ontomde-java/crank/main.rb +38 -21
- data/lib/ontomde-java/frontend/command.rb +7 -7
- data/lib/ontomde-java/frontend/command.rdoc +0 -583
- data/lib/ontomde-java/frontend/defaultOptions.rb +12 -7
- data/lib/ontomde-java/frontend/options.rb +19 -2
- data/lib/ontomde-java/frontend/steps.rb +36 -5
- data/lib/ontomde-java/java/accessorCode.rb +250 -94
- data/lib/ontomde-java/java/accessorSignature.rb +50 -4
- data/lib/ontomde-java/java/annotationOntoMDE.rb +38 -27
- data/lib/ontomde-java/java/component.rb +141 -68
- data/lib/ontomde-java/java/enumAssignable.rb +46 -5
- data/lib/ontomde-java/java/java.rb +111 -40
- data/lib/ontomde-java/java/javaDatatypeMapping.rb +35 -1
- data/lib/ontomde-java/java/javadoc.rb +35 -22
- data/lib/ontomde-java/java/operationAsClass.rb +13 -0
- data/lib/ontomde-java/java/security.rb +10 -2
- data/lib/ontomde-java/java/stateMachine.rb +137 -74
- data/lib/ontomde-java/java/tenant.rb +1 -0
- data/lib/ontomde-java/java/xsd.rb +1 -1
- data/lib/ontomde-java/jpa/configuration.rb +25 -1
- data/lib/ontomde-java/jpa/finder.rb +48 -13
- data/lib/ontomde-java/jpa/jpa.rb +30 -14
- data/lib/ontomde-java/jpa/mapping.rb +114 -60
- data/lib/ontomde-java/jpa/redefined.rb +21 -5
- data/lib/ontomde-java/jpa/simulationAutoImplement.rb +1 -1
- data/lib/ontomde-java/jpdl/processOperationToClass.rb +1 -2
- data/lib/ontomde-java/kbjava/rdfToJava.rb +25 -16
- data/lib/ontomde-java/struts.rb +1 -1
- data/lib/ontomde-java/struts/MessageResources.rb +15 -6
- data/lib/ontomde-java/struts/action.rb +37 -13
- data/lib/ontomde-java/struts/form.rb +97 -7
- data/lib/ontomde-java/struts/header.rb +7 -3
- data/lib/ontomde-java/struts/jsp_edit.rb +54 -24
- data/lib/ontomde-java/struts/jsp_edit_js.rb +1 -1
- data/lib/ontomde-java/struts/jsp_index.rb +6 -4
- data/lib/ontomde-java/struts/mappingForJsp.rb +11 -7
- data/lib/ontomde-java/struts/mappingToJavaHierarchy.rb +16 -2
- data/lib/ontomde-java/version.rb +1 -1
- data/lib/ontomde-java/vmware/vso.rb +329 -0
- data/test/test_export_ea7_1_829.rb +5 -0
- data/test/test_export_ea7_1_833.rb +5 -0
- data/test/test_export_ea7_5_843.rb +5 -0
- data/test/test_export_magicDraw.rb +4 -0
- data/test/test_export_oe530.rb +1 -1
- data/test/test_export_oe600.rb +1 -1
- data/test/test_export_rsm60.rb +1 -1
- data/test/{uml_test.rb → test_export_unitTests.rb} +6 -1
- metadata +9 -56
- data/generateRdocFile.sh +0 -16
- data/profiling.xls +0 -0
- data/test/.classpath +0 -14
- data/test/.project +0 -17
- data/test/.settings/org.eclipse.jdt.core.prefs +0 -23
- data/test/Rakefile +0 -71
- data/test/build.xml +0 -34
- data/test/classpath.rb +0 -15
- data/test/lib/junit-4.1.jar +0 -0
- data/test/load1.rb +0 -3
- data/test/load2.rb +0 -3
- data/test/log4j.properties +0 -46
- data/test/model/.project +0 -11
- data/test/model/BigProject.mdzip +0 -0
- data/test/model/BigProject.mdzip.nt +0 -102866
- data/test/model/ClassDiagram.EntArch.gif +0 -0
- data/test/model/ClassDiagram.emx.gif +0 -0
- data/test/model/ClassDiagram.mdzip.gif +0 -0
- data/test/model/model_ea71.bis.ea.xmi +0 -149
- data/test/model/model_ea71.ea.xmi +0 -4470
- data/test/model/model_ea71.eap +0 -0
- data/test/model/model_ea71_README.txt +0 -8
- data/test/model/multipleInheritance.emx +0 -466
- data/test/model/multipleInheritance.emx.nt +0 -2428
- data/test/model/simple1-530.ofp +0 -0
- data/test/model/simple1-includedAsReference.emx +0 -169
- data/test/model/simple1.emx +0 -3729
- data/test/model/simple1.emx.fragments.nt +0 -81
- data/test/model/simple1.emx.nt +0 -5760
- data/test/model/simple1.mdzip +0 -0
- data/test/model/simple1.mdzip.nt +0 -11500
- data/test/model/simple1.oe530.nt +0 -1986
- data/test/model/simple1.oe600.nt +0 -1627
- data/test/src/RuntimeTest.java +0 -656
- data/test/src/testsLevel1.java +0 -174
- data/test/src/testsLevel2.java +0 -29
- data/test/src/testsLevel3.java +0 -40
- data/test/test-ea7.sh +0 -15
- data/test/test-magicDraw.sh +0 -10
- data/test/test-mi.sh +0 -9
- data/test/test-oe530.sh +0 -10
- data/test/test-oe600.sh +0 -11
- data/test/test-rsm.sh +0 -11
- data/test/test_export_ea71.rb +0 -5
- data/test/trace +0 -419
- data/test/uml_test.xls +0 -0
- data/test/unit_test.rb +0 -6
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
#
|
|
3
3
|
module Muml_Element
|
|
4
4
|
JAVA_ENUM_INTERFACE_QNAME="xmda.java.JavaEnumSig"
|
|
5
|
+
JAVA_ENUM_ASSIGN_INTERFACE_QNAME="xmda.java.JavaEnumAssignSig"
|
|
5
6
|
end
|
|
6
7
|
|
|
7
8
|
|
|
@@ -36,21 +37,45 @@ module Muml_Classifier
|
|
|
36
37
|
|
|
37
38
|
|
|
38
39
|
# String used to replace dot in enum literals
|
|
39
|
-
JAVA_MAGIC_DOT_STRING='_dot_'
|
|
40
|
+
#JAVA_MAGIC_DOT_STRING='_dot_'
|
|
40
41
|
|
|
41
42
|
# add an enum assignable for this model element
|
|
42
43
|
def java_addEnumAssignable!
|
|
44
|
+
return if self.java_qualifiedName.to_s==java_getJavaEnumInterface.java_qualifiedName.to_s
|
|
43
45
|
#log.debug { "java_addEnumAssignable! for #{self}::#{self.class.name}" }
|
|
44
|
-
p=
|
|
45
|
-
|
|
46
|
-
|
|
46
|
+
p=nil
|
|
47
|
+
#if self.kind_of?(Muml_Interface)
|
|
48
|
+
#then
|
|
49
|
+
# p=umlx_owner_one
|
|
50
|
+
# p=p.umlx_getOrCreatePackage(context[:enumAssignableSubPackage,"enumCreate"],p)
|
|
51
|
+
#else
|
|
52
|
+
p=self
|
|
53
|
+
#end
|
|
47
54
|
ret=p.umlx_createAndAddEnumeration(self.rdf_uri+"_enumAssignable","#{uml_name} Assignable")
|
|
48
55
|
ret.umlx_createAndAddImplementation(java_getJavaEnumInterface)
|
|
56
|
+
ret.umlx_createAndAddImplementation(java_getJavaEnumAssignInterface)
|
|
49
57
|
self.java_enumAssignableDataType=ret
|
|
58
|
+
ret.java_customCode= <<END
|
|
59
|
+
\t\tClass<?> type;
|
|
60
|
+
|
|
61
|
+
\t\tpublic Class<?> getType() {
|
|
62
|
+
\t\t\treturn type;
|
|
63
|
+
\t\t}
|
|
64
|
+
|
|
65
|
+
\t\t#{ret.java_Name}(Class<?> _type) {
|
|
66
|
+
\t\t\tthis.type = _type;
|
|
67
|
+
\t\t}
|
|
68
|
+
|
|
69
|
+
\t\t#{ret.java_Name}() {
|
|
70
|
+
\t\t\tthis.type = null;
|
|
71
|
+
\t\t}
|
|
72
|
+
END
|
|
50
73
|
|
|
51
74
|
umlx_assignableClassifier.each { |c|
|
|
52
75
|
next if c.uml_isAbstract?
|
|
53
|
-
ret.umlx_createAndAddLiteral(c.java_qualifiedName.to_s.gsub(/\./,JAVA_MAGIC_DOT_STRING));
|
|
76
|
+
#lit=ret.umlx_createAndAddLiteral(c.java_qualifiedName.to_s.gsub(/\./,JAVA_MAGIC_DOT_STRING));
|
|
77
|
+
lit=ret.umlx_createAndAddLiteral(c.java_Name)
|
|
78
|
+
lit.java_initParameterValue_add("#{c.java_qualifiedName}.class")
|
|
54
79
|
}
|
|
55
80
|
|
|
56
81
|
return ret
|
|
@@ -68,6 +93,22 @@ module Muml_Classifier
|
|
|
68
93
|
end
|
|
69
94
|
return ret
|
|
70
95
|
end
|
|
96
|
+
# return enum interface for this model element. (creates it if necessary).
|
|
97
|
+
def java_getJavaEnumAssignInterface
|
|
98
|
+
ret=umlx_getOrCreateInterface(JAVA_ENUM_ASSIGN_INTERFACE_QNAME)
|
|
99
|
+
if ret.uml_ownedOperation.empty?
|
|
100
|
+
ret.umlx_external="false"
|
|
101
|
+
op=ret.umlx_createAndAddOperation("#{ret.rdf_uri}_name}","name")
|
|
102
|
+
r=op.umlx_createAndAddReturnParameter("#{op.rdf_uri}_ret","return")
|
|
103
|
+
r.uml_type=umlx_dataType_string
|
|
104
|
+
op.umlx_businessMethod=RDF_FALSE
|
|
105
|
+
|
|
106
|
+
op=ret.umlx_createAndAddOperation("#{ret.rdf_uri}_name}","getType")
|
|
107
|
+
r=op.umlx_createAndAddReturnParameter("#{op.rdf_uri}_ret","return")
|
|
108
|
+
r.uml_type=umlx_getOrCreateGeneric("java.lang.Class","?")
|
|
109
|
+
end
|
|
110
|
+
return ret
|
|
111
|
+
end
|
|
71
112
|
|
|
72
113
|
|
|
73
114
|
end
|
|
@@ -8,10 +8,11 @@ module Mjava_Annotation
|
|
|
8
8
|
def java_writeAnnotation
|
|
9
9
|
mtk_protected(Mrdf_Resource::NOREVERSE,'annotations',context[:hasGlobalReverse]) {
|
|
10
10
|
java_annotation.each {|a|
|
|
11
|
+
write("\t")
|
|
11
12
|
write(a)
|
|
12
13
|
write("\n")
|
|
13
14
|
}
|
|
14
|
-
write("@Override\n") if (self.kind_of?(Muml_Operation) && !umlx_redefinesMethod.empty? && !umlx_redefinesMethod_one.umlx_owner_one.kind_of?(Muml_Interface) )
|
|
15
|
+
write("\t@Override\n") if (self.kind_of?(Muml_Operation) && !umlx_redefinesMethod.empty? && !umlx_redefinesMethod_one.umlx_owner_one.kind_of?(Muml_Interface) )
|
|
15
16
|
}
|
|
16
17
|
end
|
|
17
18
|
|
|
@@ -77,7 +78,7 @@ module Muml_Parameter
|
|
|
77
78
|
write("final ") if uml_direction_one.isIn? # the best we can do with java
|
|
78
79
|
write("#{java_propertyAssociationType} ")
|
|
79
80
|
#write(" /* #{uml_lowerValue}..#{uml_upperValue}*/ ")
|
|
80
|
-
write("
|
|
81
|
+
write("#{java_Name}") unless uml_direction_one.isReturn?
|
|
81
82
|
end
|
|
82
83
|
end
|
|
83
84
|
|
|
@@ -254,11 +255,22 @@ END
|
|
|
254
255
|
|
|
255
256
|
end
|
|
256
257
|
|
|
258
|
+
# JAVA_NAME_ALIAS={
|
|
259
|
+
# /Virtual/=> 'Virt' ,
|
|
260
|
+
# /Resource/ => 'Res' }
|
|
261
|
+
|
|
257
262
|
#Returns this element uml_name after applying java_safeName on it.
|
|
258
263
|
@java_Name_cache=nil
|
|
259
264
|
def java_Name
|
|
260
265
|
return @java_Name_cache unless @java_Name_cache.nil?
|
|
261
266
|
s=java_safeName(uml_name.to_s)
|
|
267
|
+
|
|
268
|
+
# JAVA_NAME_ALIAS.each { |k,v|
|
|
269
|
+
# ps=s
|
|
270
|
+
# s=s.gsub(k,v)
|
|
271
|
+
# #puts "#{ps} -> #{s}" if s!=ps
|
|
272
|
+
# }
|
|
273
|
+
|
|
262
274
|
b=context[:java_fixNameCase,true]
|
|
263
275
|
if !b
|
|
264
276
|
# do nothing
|
|
@@ -330,17 +342,41 @@ should begin with a #{isDowncase ? "downcase": "upcase"} character.
|
|
|
330
342
|
end
|
|
331
343
|
|
|
332
344
|
module Muml_Namespace
|
|
345
|
+
def java_getContextJavaFilePath()
|
|
346
|
+
d=context[:javaDir,nil]
|
|
347
|
+
return d unless d.nil?
|
|
333
348
|
|
|
334
|
-
def java_getContextJavaFilePath(default=nil)
|
|
335
349
|
n=java_qualifiedName.to_s
|
|
350
|
+
#root namespace name
|
|
351
|
+
rns=nil
|
|
352
|
+
rnso=umlx_rootNamespace_one0
|
|
353
|
+
#puts "rnso=#{rnso}" unless rnso.nil?
|
|
354
|
+
rns=rnso.uml_name.to_s+'/' unless rnso.nil?
|
|
355
|
+
rns=context[:defaultRootDir]+"/" if rns.nil?
|
|
356
|
+
|
|
357
|
+
#Hack Override package name for some generated elements
|
|
358
|
+
rns='webapp/' if n.include?('struts')
|
|
359
|
+
|
|
360
|
+
mappingPathHash=context[:javaMappingPathForRootContainer, {} ]
|
|
361
|
+
if ! mappingPathHash.nil?
|
|
362
|
+
override_rns=mappingPathHash[rns]
|
|
363
|
+
rns=override_rns unless override_rns.nil?
|
|
364
|
+
end
|
|
365
|
+
|
|
366
|
+
rel=context[:javaRelativeDir,""]
|
|
367
|
+
|
|
368
|
+
# override javaRelative
|
|
336
369
|
jfp=context[:javaFilePathRegexp,nil]
|
|
337
|
-
return default if jfp.nil?
|
|
338
370
|
jfp.each { |mapping|
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
371
|
+
next unless n =~ mapping[0]
|
|
372
|
+
rel= "/"+mapping[1]
|
|
373
|
+
break
|
|
342
374
|
}
|
|
343
|
-
|
|
375
|
+
|
|
376
|
+
#puts "rns=#{rns}"
|
|
377
|
+
#puts "rel=#{rel}"
|
|
378
|
+
#puts "td rns+rel=#{context[:targetDir]}|#{rns}|#{rel}|"
|
|
379
|
+
return context[:targetDir]+rns+rel
|
|
344
380
|
end
|
|
345
381
|
# Returns the path where to generate file for this object.
|
|
346
382
|
#
|
|
@@ -351,7 +387,7 @@ module Muml_Namespace
|
|
|
351
387
|
# * build/package1/package2
|
|
352
388
|
# * build/package1/package2/UneClasse.java
|
|
353
389
|
def java_FilePath
|
|
354
|
-
return java_getContextJavaFilePath(
|
|
390
|
+
return java_getContextJavaFilePath()+java_InternalFilePath
|
|
355
391
|
end
|
|
356
392
|
|
|
357
393
|
# Returns the internal path where to generate file for this object.
|
|
@@ -454,6 +490,11 @@ module Muml_Enumeration
|
|
|
454
490
|
write("enum #{java_Name}")
|
|
455
491
|
end
|
|
456
492
|
|
|
493
|
+
#returns literals in a controlled ordered
|
|
494
|
+
def java_ownedLiteral
|
|
495
|
+
return uml_ownedLiteral.sort { |a,b| a.java_Name.to_s <=> b.java_Name.to_s }
|
|
496
|
+
end
|
|
497
|
+
|
|
457
498
|
#write enum body (list of litterals) using java_writeClassComment, java_writeClassModifiers, java_writeMetaClassName.
|
|
458
499
|
#
|
|
459
500
|
#Example:
|
|
@@ -462,13 +503,13 @@ module Muml_Enumeration
|
|
|
462
503
|
java_writeClassComment
|
|
463
504
|
java_writeJavadoc
|
|
464
505
|
java_writeAnnotation
|
|
465
|
-
java_writeMdatkAnno(['imports','javadoc','annotations']) if context[:hasGlobalReverse]
|
|
506
|
+
java_writeMdatkAnno(['imports','javadoc','annotations','custom_code']) if context[:hasGlobalReverse]
|
|
466
507
|
java_writeClassModifiers
|
|
467
508
|
java_writeMetaClassName
|
|
468
509
|
java_writeImplements
|
|
469
|
-
write("{\n")
|
|
510
|
+
write(" {\n")
|
|
470
511
|
sep=""
|
|
471
|
-
|
|
512
|
+
java_ownedLiteral.each { |c|
|
|
472
513
|
write(sep);
|
|
473
514
|
c.java_write
|
|
474
515
|
sep=",\n"
|
|
@@ -529,7 +570,9 @@ module Muml_Class
|
|
|
529
570
|
#java_implements_add("java.io.Serializable");
|
|
530
571
|
s=umlx_getOrCreateClass("java.io.Serializable")
|
|
531
572
|
umlx_createAndAddImplementation(s)
|
|
532
|
-
|
|
573
|
+
java_addSerialVersionUID!
|
|
574
|
+
end
|
|
575
|
+
def java_addSerialVersionUID!
|
|
533
576
|
p=umlx_createAndAddProperty(rdf_uri+"_serialVersionUID","serialVersionUID");
|
|
534
577
|
p.uml_visibility=::Cuml_VisibilityKind::Private
|
|
535
578
|
p.uml_isStatic=RDF_TRUE
|
|
@@ -580,8 +623,8 @@ module Muml_Class
|
|
|
580
623
|
#
|
|
581
624
|
#TODO: associations, et filtrer attributs static
|
|
582
625
|
def java_writeConstructors
|
|
583
|
-
write("
|
|
584
|
-
write("
|
|
626
|
+
write("public #{java_Name}() {\n")
|
|
627
|
+
write("}\n")
|
|
585
628
|
#TODO: associations ??, filtrer static
|
|
586
629
|
if (!uml_ownedAttribute.empty?)
|
|
587
630
|
parameters = ""
|
|
@@ -596,13 +639,13 @@ module Muml_Class
|
|
|
596
639
|
if (!parameters.empty?)
|
|
597
640
|
write("\n")
|
|
598
641
|
parameters = parameters.slice(1, parameters.length)
|
|
599
|
-
write("
|
|
642
|
+
write("public #{java_Name}(#{parameters}) {\n")
|
|
600
643
|
uml_ownedAttribute.each { |o|
|
|
601
644
|
if o.umlx_isAttribute?
|
|
602
645
|
write(" set#{o.java_NameBean}(#{o.java_NameProperty});\n")
|
|
603
646
|
end
|
|
604
647
|
}
|
|
605
|
-
write("
|
|
648
|
+
write("\t}\n")
|
|
606
649
|
end
|
|
607
650
|
end
|
|
608
651
|
end
|
|
@@ -750,7 +793,7 @@ module Muml_Classifier
|
|
|
750
793
|
java_writeClassComment
|
|
751
794
|
java_writeJavadoc
|
|
752
795
|
java_writeAnnotation
|
|
753
|
-
java_writeMdatkAnno(['imports','javadoc','annotations']) if context[:hasGlobalReverse]
|
|
796
|
+
java_writeMdatkAnno(['imports','javadoc','annotations','custom_code']) if context[:hasGlobalReverse]
|
|
754
797
|
java_writeClassModifiers
|
|
755
798
|
java_writeMetaClassName
|
|
756
799
|
java_writeTemplateParameter
|
|
@@ -768,7 +811,7 @@ module Muml_Classifier
|
|
|
768
811
|
|
|
769
812
|
mtk_context(:innerClass=>true) {
|
|
770
813
|
uml_nestedClassifier.each { |c|
|
|
771
|
-
next unless c.kind_of?(Muml_Class)
|
|
814
|
+
next unless c.kind_of?(Muml_Class) || c.kind_of?(Muml_Enumeration)
|
|
772
815
|
#filter out Collaboration
|
|
773
816
|
c.java_write
|
|
774
817
|
}
|
|
@@ -780,9 +823,8 @@ module Muml_Classifier
|
|
|
780
823
|
#add add a custom code zone
|
|
781
824
|
#that is usefull for out of model code.
|
|
782
825
|
def java_writeCustomCode
|
|
783
|
-
mtk_protected(Mrdf_Resource::NOREVERSE,'custom_code') {
|
|
826
|
+
mtk_protected(Mrdf_Resource::NOREVERSE,'custom_code',true) {
|
|
784
827
|
write !java_customCode.empty? ? java_customCode : <<END
|
|
785
|
-
// Please use this area for out-of-model code.
|
|
786
828
|
END
|
|
787
829
|
}
|
|
788
830
|
write("\n\n")
|
|
@@ -827,6 +869,11 @@ END
|
|
|
827
869
|
#Example:
|
|
828
870
|
# extends Class2,Class3
|
|
829
871
|
def java_writeExtends(isTemplateParameter=false)
|
|
872
|
+
#HACK for handling of faulty EA models
|
|
873
|
+
if (!uml_name.to_s.index('FIX_UML_MODEL_unknown_exception',0).nil?)
|
|
874
|
+
java_extends_add('java.lang.Exception')
|
|
875
|
+
end
|
|
876
|
+
|
|
830
877
|
ext=Set.new
|
|
831
878
|
nbrInterface=0;
|
|
832
879
|
|
|
@@ -917,11 +964,18 @@ END
|
|
|
917
964
|
#default java imports
|
|
918
965
|
JAVA_DEFAULT_IMPORTS=[ ];
|
|
919
966
|
|
|
920
|
-
|
|
921
|
-
def java_writeOperations
|
|
967
|
+
def java_ownedOperation
|
|
922
968
|
#sort has been added because ownedOperation order is random
|
|
923
969
|
#which is cause false change detection on versionned file
|
|
924
|
-
|
|
970
|
+
#
|
|
971
|
+
# uri has been added because of method overloading
|
|
972
|
+
# ' ' is added to preserve natural order (ex: xxx, xxxSug)
|
|
973
|
+
return uml_ownedOperation.sort { |a,b| (a.java_Name.to_s+' '+a.rdf_uri) <=> (b.java_Name.to_s+' '+b.rdf_uri) }
|
|
974
|
+
end
|
|
975
|
+
|
|
976
|
+
#iterate java_write on operations
|
|
977
|
+
def java_writeOperations
|
|
978
|
+
java_ownedOperation.each { |o| o.java_write}
|
|
925
979
|
end
|
|
926
980
|
|
|
927
981
|
#iterate java_write on attributes
|
|
@@ -964,23 +1018,41 @@ module Muml_Operation
|
|
|
964
1018
|
#is operation synchronised
|
|
965
1019
|
rdf_safe_attr_reader_many :java_isSynchronised
|
|
966
1020
|
|
|
1021
|
+
#writes a static initializer bloc from eclipse
|
|
1022
|
+
def java_writeStaticInitializer
|
|
1023
|
+
#java_writeJavadoc
|
|
1024
|
+
#java_writeAnnotation
|
|
1025
|
+
#java_writeMethodParameters
|
|
1026
|
+
#java_writeMethodModifiers (do not want public to popup)
|
|
1027
|
+
java_writeStaticModifier
|
|
1028
|
+
#write("static ")
|
|
1029
|
+
#java_writeMethodThrows
|
|
1030
|
+
mtk_protected(Mrdf_Resource::NOREVERSE,'static_init') {
|
|
1031
|
+
java_writeMethodBody(true)
|
|
1032
|
+
}
|
|
1033
|
+
end
|
|
1034
|
+
|
|
1035
|
+
|
|
967
1036
|
#write java operation skeleton.
|
|
968
1037
|
# (Uses java_writeMethodModifiers, java_writeMethodReturnType, java_writeMethodParameters, java_writeMethodThrows, java_writeMethodBody)
|
|
969
1038
|
def java_write
|
|
970
1039
|
write("\n")
|
|
1040
|
+
return java_writeStaticInitializer if umlx_isConstructor? && uml_isStatic?
|
|
1041
|
+
|
|
971
1042
|
java_writeJavadoc
|
|
972
1043
|
java_writeAnnotation
|
|
973
1044
|
java_writeMdatkAnno(!(uml_isAbstract? || context[:java_interface])?['javadoc','annotations','annoparam0','0']:['javadoc','annotations','annoparam0']) if context[:hasGlobalReverse]
|
|
1045
|
+
write("\t")
|
|
974
1046
|
java_writeMethodModifiers
|
|
975
1047
|
|
|
976
|
-
if(umlx_isConstructor?)
|
|
1048
|
+
if( umlx_isConstructor?)
|
|
977
1049
|
write("#{umlx_class_one.java_Name}")
|
|
978
1050
|
else
|
|
979
1051
|
java_writeMethodReturnType
|
|
980
1052
|
write("#{java_Name}")
|
|
981
1053
|
end
|
|
982
|
-
java_writeMethodParameters
|
|
983
|
-
java_writeMethodThrows
|
|
1054
|
+
java_writeMethodParameters
|
|
1055
|
+
java_writeMethodThrows
|
|
984
1056
|
java_writeMethodBody
|
|
985
1057
|
end
|
|
986
1058
|
|
|
@@ -991,8 +1063,6 @@ module Muml_Operation
|
|
|
991
1063
|
#* abstract public
|
|
992
1064
|
#* public static
|
|
993
1065
|
def java_writeMethodModifiers
|
|
994
|
-
|
|
995
|
-
|
|
996
1066
|
if !umlx_class_one.kind_of?(Muml_Interface)
|
|
997
1067
|
uml_visibility.each { |v|
|
|
998
1068
|
write(v.java_visibilityModifiers)
|
|
@@ -1040,28 +1110,28 @@ module Muml_Operation
|
|
|
1040
1110
|
#NOTE:
|
|
1041
1111
|
#* The default generated operation throws a RuntimeException
|
|
1042
1112
|
#* mtk_protected is used to allow inline java code modification (with Eclipse)
|
|
1043
|
-
def java_writeMethodBody
|
|
1113
|
+
def java_writeMethodBody(skipNotImplemented=false)
|
|
1044
1114
|
if uml_isAbstract? || context[:java_interface]
|
|
1045
1115
|
write(";\n")
|
|
1046
1116
|
else
|
|
1047
|
-
write("{\n");
|
|
1117
|
+
write(" {\n");
|
|
1048
1118
|
mtk_protected(Mrdf_Resource::NOREVERSE,'0',context[:hasGlobalReverse]) {
|
|
1049
1119
|
if ! java_code_one0.nil?
|
|
1050
1120
|
write java_code
|
|
1051
1121
|
else
|
|
1052
|
-
java_writeMethodBodyNotImplemented
|
|
1122
|
+
java_writeMethodBodyNotImplemented unless skipNotImplemented
|
|
1053
1123
|
end
|
|
1054
1124
|
write("\n")
|
|
1055
1125
|
}
|
|
1056
|
-
write("}\n");
|
|
1126
|
+
write("\t}\n");
|
|
1057
1127
|
end
|
|
1058
1128
|
end
|
|
1059
1129
|
|
|
1060
1130
|
#writes default code for a method not implemented
|
|
1061
1131
|
def java_writeMethodBodyNotImplemented
|
|
1062
1132
|
write <<END
|
|
1063
|
-
|
|
1064
|
-
|
|
1133
|
+
\t\t//TODO: implement method body
|
|
1134
|
+
\t\tthrow new java.lang.RuntimeException("[operation \\"#{java_Name}\\"not implemented]");
|
|
1065
1135
|
END
|
|
1066
1136
|
end
|
|
1067
1137
|
|
|
@@ -1136,21 +1206,22 @@ module Muml_Property
|
|
|
1136
1206
|
#NOTE:
|
|
1137
1207
|
#* getter/setter/... methods are handled by model transformation
|
|
1138
1208
|
def java_write
|
|
1209
|
+
write("\n")
|
|
1139
1210
|
if !uml_isDerived?
|
|
1140
1211
|
java_writePropertyComment
|
|
1141
1212
|
java_writeJavadoc
|
|
1142
1213
|
java_writeAnnotation
|
|
1143
1214
|
java_writeMdatkAnno(['javadoc','annotations']) if context[:hasGlobalReverse]
|
|
1144
|
-
write("
|
|
1215
|
+
write("\t");
|
|
1145
1216
|
java_writePropertyModifiers
|
|
1146
1217
|
write("#{java_propertyAssociationType}")
|
|
1147
1218
|
write(" #{java_NameProperty}")
|
|
1148
1219
|
|
|
1149
1220
|
if !java_code.empty?
|
|
1150
|
-
write"= #{java_code}"
|
|
1221
|
+
write" = #{java_code}"
|
|
1151
1222
|
elsif(context[:java_generateSetAttributeInitializer])
|
|
1152
1223
|
if (!umlx_upperValueIsOne?) && uml_qualifier.empty? && java_use_Arrays?
|
|
1153
|
-
write("= new ");
|
|
1224
|
+
write(" = new ");
|
|
1154
1225
|
write(uml_type_one.java_qualifiedName)
|
|
1155
1226
|
write("[1]")
|
|
1156
1227
|
elsif (!umlx_upperValueIsOne?) && uml_qualifier.empty?
|
|
@@ -1158,11 +1229,11 @@ module Muml_Property
|
|
|
1158
1229
|
write(java_propertyAssociationConcreteType)
|
|
1159
1230
|
write("()")
|
|
1160
1231
|
elsif umlx_upperValueIsOne? && !uml_qualifier.empty?
|
|
1161
|
-
write("= new ");
|
|
1232
|
+
write(" = new ");
|
|
1162
1233
|
write(java_propertyAssociationConcreteType)
|
|
1163
1234
|
write("()")
|
|
1164
1235
|
elsif !umlx_upperValueIsOne? && !uml_qualifier.empty?
|
|
1165
|
-
#write("= new ");
|
|
1236
|
+
#write(" = new ");
|
|
1166
1237
|
#write(java_propertyAssociationConcreteType)
|
|
1167
1238
|
#write("()")
|
|
1168
1239
|
end
|
|
@@ -4,11 +4,34 @@ class DatatypeMapping
|
|
|
4
4
|
log.error %{java_getType not implemented for #{self.class}}
|
|
5
5
|
return %{/* TODO: implement ruby java_getType for #{self.class}*/}
|
|
6
6
|
end
|
|
7
|
+
def java_getUndefinedValue
|
|
8
|
+
return "null /* undefined */"
|
|
9
|
+
end
|
|
7
10
|
end
|
|
8
11
|
class DatatypeMappingText < DatatypeMapping
|
|
9
12
|
def java_getType
|
|
10
13
|
return "java.lang.String"
|
|
11
14
|
end
|
|
15
|
+
def java_getUndefinedValue
|
|
16
|
+
return %{""}
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def getFormCopyTo(field)
|
|
20
|
+
if field.umlx_oneSide?
|
|
21
|
+
super
|
|
22
|
+
else
|
|
23
|
+
return %{_to.set#{field.java_NameBean}(xmda.struts.FormHelper.toBean(this.get#{field.java_NameBean}(),_to.get#{field.java_NameBean}()));\n}
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
def getFormInitFrom(field)
|
|
27
|
+
if field.umlx_oneSide?
|
|
28
|
+
super
|
|
29
|
+
else
|
|
30
|
+
# return %{this.set#{field.java_NameBean}(_from.get#{field.java_NameBean}().toArray(new #{java_getType}[_from.get#{field.java_NameBean}().size()]));\n}
|
|
31
|
+
return %{this.set#{field.java_NameBean}(xmda.struts.FormHelper.toFormArrayAsStringLine(_from.get#{field.java_NameBean}()));\n}
|
|
32
|
+
toFormArrayAsStringLine
|
|
33
|
+
end
|
|
34
|
+
end
|
|
12
35
|
end
|
|
13
36
|
|
|
14
37
|
class DatatypeMappingLargeText < DatatypeMappingText
|
|
@@ -18,6 +41,9 @@ class DatatypeMappingMimeType < DatatypeMappingText
|
|
|
18
41
|
end
|
|
19
42
|
|
|
20
43
|
class DatatypeMappingOrdinal < DatatypeMappingText
|
|
44
|
+
def java_getUndefinedValue
|
|
45
|
+
return "-1"
|
|
46
|
+
end
|
|
21
47
|
end
|
|
22
48
|
|
|
23
49
|
class DatatypeMappingInteger < DatatypeMappingOrdinal
|
|
@@ -36,6 +62,9 @@ class DatatypeMappingLongObject < DatatypeMappingOrdinal
|
|
|
36
62
|
def java_getType
|
|
37
63
|
return "Long"
|
|
38
64
|
end
|
|
65
|
+
def java_getUndefinedValue
|
|
66
|
+
return %{null}
|
|
67
|
+
end
|
|
39
68
|
end
|
|
40
69
|
class DatatypeMappingFile < DatatypeMapping
|
|
41
70
|
def java_getType
|
|
@@ -51,6 +80,9 @@ class DatatypeMappingBoolean < DatatypeMapping
|
|
|
51
80
|
def java_getType
|
|
52
81
|
return "boolean"
|
|
53
82
|
end
|
|
83
|
+
def java_getUndefinedValue
|
|
84
|
+
return %{false}
|
|
85
|
+
end
|
|
54
86
|
end
|
|
55
87
|
|
|
56
88
|
class DatatypeMappingTimeStamp < DatatypeMapping
|
|
@@ -145,6 +177,9 @@ class DatatypeMappingIMG < DatatypeMappingBLOB
|
|
|
145
177
|
end
|
|
146
178
|
|
|
147
179
|
class DatatypeMappingGRAPHVIZ < DatatypeMappingLargeText
|
|
180
|
+
def java_getUndefinedValue
|
|
181
|
+
return %{"digraph {\\n u1 [label=\\"graphviz script generation method\\"]\\n u2[label=\\"is not yet\\"]\\n u3[label=\\"implemented in this project\\"] \\n u1->u2->u3\\n}"}
|
|
182
|
+
end
|
|
148
183
|
end
|
|
149
184
|
|
|
150
185
|
class DatatypeMappingPassword < DatatypeMappingText
|
|
@@ -153,4 +188,3 @@ end
|
|
|
153
188
|
class DatatypeMappingEmailAddress < DatatypeMappingText
|
|
154
189
|
end
|
|
155
190
|
|
|
156
|
-
|