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.
Files changed (100) hide show
  1. data/History.txt +11 -0
  2. data/Manifest.txt +1 -51
  3. data/lib/ontomde-java.rb +2 -0
  4. data/lib/ontomde-java/crank.rb +8 -8
  5. data/lib/ontomde-java/crank/crankJpa.rb +58 -8
  6. data/lib/ontomde-java/crank/main.rb +38 -21
  7. data/lib/ontomde-java/frontend/command.rb +7 -7
  8. data/lib/ontomde-java/frontend/command.rdoc +0 -583
  9. data/lib/ontomde-java/frontend/defaultOptions.rb +12 -7
  10. data/lib/ontomde-java/frontend/options.rb +19 -2
  11. data/lib/ontomde-java/frontend/steps.rb +36 -5
  12. data/lib/ontomde-java/java/accessorCode.rb +250 -94
  13. data/lib/ontomde-java/java/accessorSignature.rb +50 -4
  14. data/lib/ontomde-java/java/annotationOntoMDE.rb +38 -27
  15. data/lib/ontomde-java/java/component.rb +141 -68
  16. data/lib/ontomde-java/java/enumAssignable.rb +46 -5
  17. data/lib/ontomde-java/java/java.rb +111 -40
  18. data/lib/ontomde-java/java/javaDatatypeMapping.rb +35 -1
  19. data/lib/ontomde-java/java/javadoc.rb +35 -22
  20. data/lib/ontomde-java/java/operationAsClass.rb +13 -0
  21. data/lib/ontomde-java/java/security.rb +10 -2
  22. data/lib/ontomde-java/java/stateMachine.rb +137 -74
  23. data/lib/ontomde-java/java/tenant.rb +1 -0
  24. data/lib/ontomde-java/java/xsd.rb +1 -1
  25. data/lib/ontomde-java/jpa/configuration.rb +25 -1
  26. data/lib/ontomde-java/jpa/finder.rb +48 -13
  27. data/lib/ontomde-java/jpa/jpa.rb +30 -14
  28. data/lib/ontomde-java/jpa/mapping.rb +114 -60
  29. data/lib/ontomde-java/jpa/redefined.rb +21 -5
  30. data/lib/ontomde-java/jpa/simulationAutoImplement.rb +1 -1
  31. data/lib/ontomde-java/jpdl/processOperationToClass.rb +1 -2
  32. data/lib/ontomde-java/kbjava/rdfToJava.rb +25 -16
  33. data/lib/ontomde-java/struts.rb +1 -1
  34. data/lib/ontomde-java/struts/MessageResources.rb +15 -6
  35. data/lib/ontomde-java/struts/action.rb +37 -13
  36. data/lib/ontomde-java/struts/form.rb +97 -7
  37. data/lib/ontomde-java/struts/header.rb +7 -3
  38. data/lib/ontomde-java/struts/jsp_edit.rb +54 -24
  39. data/lib/ontomde-java/struts/jsp_edit_js.rb +1 -1
  40. data/lib/ontomde-java/struts/jsp_index.rb +6 -4
  41. data/lib/ontomde-java/struts/mappingForJsp.rb +11 -7
  42. data/lib/ontomde-java/struts/mappingToJavaHierarchy.rb +16 -2
  43. data/lib/ontomde-java/version.rb +1 -1
  44. data/lib/ontomde-java/vmware/vso.rb +329 -0
  45. data/test/test_export_ea7_1_829.rb +5 -0
  46. data/test/test_export_ea7_1_833.rb +5 -0
  47. data/test/test_export_ea7_5_843.rb +5 -0
  48. data/test/test_export_magicDraw.rb +4 -0
  49. data/test/test_export_oe530.rb +1 -1
  50. data/test/test_export_oe600.rb +1 -1
  51. data/test/test_export_rsm60.rb +1 -1
  52. data/test/{uml_test.rb → test_export_unitTests.rb} +6 -1
  53. metadata +9 -56
  54. data/generateRdocFile.sh +0 -16
  55. data/profiling.xls +0 -0
  56. data/test/.classpath +0 -14
  57. data/test/.project +0 -17
  58. data/test/.settings/org.eclipse.jdt.core.prefs +0 -23
  59. data/test/Rakefile +0 -71
  60. data/test/build.xml +0 -34
  61. data/test/classpath.rb +0 -15
  62. data/test/lib/junit-4.1.jar +0 -0
  63. data/test/load1.rb +0 -3
  64. data/test/load2.rb +0 -3
  65. data/test/log4j.properties +0 -46
  66. data/test/model/.project +0 -11
  67. data/test/model/BigProject.mdzip +0 -0
  68. data/test/model/BigProject.mdzip.nt +0 -102866
  69. data/test/model/ClassDiagram.EntArch.gif +0 -0
  70. data/test/model/ClassDiagram.emx.gif +0 -0
  71. data/test/model/ClassDiagram.mdzip.gif +0 -0
  72. data/test/model/model_ea71.bis.ea.xmi +0 -149
  73. data/test/model/model_ea71.ea.xmi +0 -4470
  74. data/test/model/model_ea71.eap +0 -0
  75. data/test/model/model_ea71_README.txt +0 -8
  76. data/test/model/multipleInheritance.emx +0 -466
  77. data/test/model/multipleInheritance.emx.nt +0 -2428
  78. data/test/model/simple1-530.ofp +0 -0
  79. data/test/model/simple1-includedAsReference.emx +0 -169
  80. data/test/model/simple1.emx +0 -3729
  81. data/test/model/simple1.emx.fragments.nt +0 -81
  82. data/test/model/simple1.emx.nt +0 -5760
  83. data/test/model/simple1.mdzip +0 -0
  84. data/test/model/simple1.mdzip.nt +0 -11500
  85. data/test/model/simple1.oe530.nt +0 -1986
  86. data/test/model/simple1.oe600.nt +0 -1627
  87. data/test/src/RuntimeTest.java +0 -656
  88. data/test/src/testsLevel1.java +0 -174
  89. data/test/src/testsLevel2.java +0 -29
  90. data/test/src/testsLevel3.java +0 -40
  91. data/test/test-ea7.sh +0 -15
  92. data/test/test-magicDraw.sh +0 -10
  93. data/test/test-mi.sh +0 -9
  94. data/test/test-oe530.sh +0 -10
  95. data/test/test-oe600.sh +0 -11
  96. data/test/test-rsm.sh +0 -11
  97. data/test/test_export_ea71.rb +0 -5
  98. data/test/trace +0 -419
  99. data/test/uml_test.xls +0 -0
  100. 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=umlx_owner_one
45
- p=p.umlx_getOrCreatePackage(context[:enumAssignableSubPackage,"enumCreate"],p)
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(" #{java_Name}") unless uml_direction_one.isReturn?
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
- if n =~ mapping[0]
340
- return context[:targetDir]+"/"+mapping[1]
341
- end
371
+ next unless n =~ mapping[0]
372
+ rel= "/"+mapping[1]
373
+ break
342
374
  }
343
- return default
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(context[:javaDir])+java_InternalFilePath
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
- uml_ownedLiteral.sort { |a,b| a.java_Name.to_s <=> b.java_Name.to_s }.each { |c|
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(" public #{java_Name}() {\n")
584
- write(" }\n")
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(" public #{java_Name}(#{parameters}) {\n")
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(" }\n")
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
- #iterate java_write on operations
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
- uml_ownedOperation.sort { |a,b| a.java_Name.to_s <=> b.java_Name.to_s }.each { |o| o.java_write}
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
- //TODO: implement method body
1064
- throw new java.lang.RuntimeException("[operation \\"#{java_Name}\\"not implemented]");
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
-