ontomde-java 2.0.0

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 (157) hide show
  1. data/History.txt +10 -0
  2. data/Manifest.txt +156 -0
  3. data/README.txt +98 -0
  4. data/Rakefile +21 -0
  5. data/bin/ontomde-java +5 -0
  6. data/generateRdocFile.sh +16 -0
  7. data/lib/ontomde-java.rb +45 -0
  8. data/lib/ontomde-java/crank.rb +13 -0
  9. data/lib/ontomde-java/crank/context.rb +384 -0
  10. data/lib/ontomde-java/crank/crankJpa.rb +103 -0
  11. data/lib/ontomde-java/crank/equals.rb +83 -0
  12. data/lib/ontomde-java/crank/facelets.rb +243 -0
  13. data/lib/ontomde-java/crank/facesconfig.rb +113 -0
  14. data/lib/ontomde-java/crank/helper.rb +46 -0
  15. data/lib/ontomde-java/crank/main.rb +51 -0
  16. data/lib/ontomde-java/crank/menu.rb +39 -0
  17. data/lib/ontomde-java/crank/menu2.rb +78 -0
  18. data/lib/ontomde-java/crank/validation.rb +34 -0
  19. data/lib/ontomde-java/ejb2.rb +3 -0
  20. data/lib/ontomde-java/ejb2/main-ejb2.rb +194 -0
  21. data/lib/ontomde-java/flex.rb +7 -0
  22. data/lib/ontomde-java/flex/Editor.mxml.as.rb +184 -0
  23. data/lib/ontomde-java/flex/Editor.mxml.rb +701 -0
  24. data/lib/ontomde-java/flex/ImportationAS.rb +40 -0
  25. data/lib/ontomde-java/flex/ValueObjectAS.rb +338 -0
  26. data/lib/ontomde-java/flex/fileTypes.rb +19 -0
  27. data/lib/ontomde-java/flex/main.rb +347 -0
  28. data/lib/ontomde-java/frontend/command.rb +324 -0
  29. data/lib/ontomde-java/frontend/command.rdoc +583 -0
  30. data/lib/ontomde-java/frontend/defaultOptions.rb +124 -0
  31. data/lib/ontomde-java/frontend/options.rb +555 -0
  32. data/lib/ontomde-java/frontend/steps.rb +287 -0
  33. data/lib/ontomde-java/java/accessorCode.rb +528 -0
  34. data/lib/ontomde-java/java/accessorSignature.rb +347 -0
  35. data/lib/ontomde-java/java/annotationOntoMDE.rb +88 -0
  36. data/lib/ontomde-java/java/apache.rb +34 -0
  37. data/lib/ontomde-java/java/build.rb +80 -0
  38. data/lib/ontomde-java/java/collectionMapping.rb +112 -0
  39. data/lib/ontomde-java/java/component.rb +446 -0
  40. data/lib/ontomde-java/java/contextualize.rb +43 -0
  41. data/lib/ontomde-java/java/enumAssignable.rb +75 -0
  42. data/lib/ontomde-java/java/enumCompatibilityLayer.rb +195 -0
  43. data/lib/ontomde-java/java/equals.rb +91 -0
  44. data/lib/ontomde-java/java/groovy.rb +95 -0
  45. data/lib/ontomde-java/java/java.rb +1329 -0
  46. data/lib/ontomde-java/java/java.rdoc +78 -0
  47. data/lib/ontomde-java/java/javaDatatypeMapping.rb +156 -0
  48. data/lib/ontomde-java/java/javaHelper.rb +25 -0
  49. data/lib/ontomde-java/java/java_todo.rdoc +3 -0
  50. data/lib/ontomde-java/java/javadoc.rb +254 -0
  51. data/lib/ontomde-java/java/meta.rb +28 -0
  52. data/lib/ontomde-java/java/operationAsClass.rb +144 -0
  53. data/lib/ontomde-java/java/security.rb +260 -0
  54. data/lib/ontomde-java/java/stateMachine.rb +415 -0
  55. data/lib/ontomde-java/java/tenant.rb +65 -0
  56. data/lib/ontomde-java/java/xsd.rb +1363 -0
  57. data/lib/ontomde-java/java/xsdCollectionMapping.rb +112 -0
  58. data/lib/ontomde-java/java/xsdDatatypeMapping.rb +103 -0
  59. data/lib/ontomde-java/jpa.rb +17 -0
  60. data/lib/ontomde-java/jpa/configuration.rb +176 -0
  61. data/lib/ontomde-java/jpa/finder.rb +102 -0
  62. data/lib/ontomde-java/jpa/jpa.rb +531 -0
  63. data/lib/ontomde-java/jpa/jpa.rdoc +20 -0
  64. data/lib/ontomde-java/jpa/locking.rb +18 -0
  65. data/lib/ontomde-java/jpa/mapping.rb +314 -0
  66. data/lib/ontomde-java/jpa/redefined.rb +77 -0
  67. data/lib/ontomde-java/jpa/simulationAutoImplement.rb +54 -0
  68. data/lib/ontomde-java/jpdl.rb +9 -0
  69. data/lib/ontomde-java/jpdl/bpm.pprj +1745 -0
  70. data/lib/ontomde-java/jpdl/bpm.rdf +140 -0
  71. data/lib/ontomde-java/jpdl/bpm.rdfs +231 -0
  72. data/lib/ontomde-java/jpdl/constant.rb +5 -0
  73. data/lib/ontomde-java/jpdl/graphic.rb +52 -0
  74. data/lib/ontomde-java/jpdl/jpdl.rb +281 -0
  75. data/lib/ontomde-java/jpdl/jpdl_deploy.rb +114 -0
  76. data/lib/ontomde-java/jpdl/main.rb +348 -0
  77. data/lib/ontomde-java/jpdl/main.rdoc +2 -0
  78. data/lib/ontomde-java/jpdl/processOperationToClass.rb +316 -0
  79. data/lib/ontomde-java/kbjava.rb +6 -0
  80. data/lib/ontomde-java/kbjava/rdfToJava.rb +407 -0
  81. data/lib/ontomde-java/struts.rb +27 -0
  82. data/lib/ontomde-java/struts/MessageResources.rb +359 -0
  83. data/lib/ontomde-java/struts/action.rb +883 -0
  84. data/lib/ontomde-java/struts/blob.rb +11 -0
  85. data/lib/ontomde-java/struts/exceptionHandling.rb +167 -0
  86. data/lib/ontomde-java/struts/footer.rb +128 -0
  87. data/lib/ontomde-java/struts/form.rb +450 -0
  88. data/lib/ontomde-java/struts/header.rb +37 -0
  89. data/lib/ontomde-java/struts/header_link.rb +39 -0
  90. data/lib/ontomde-java/struts/jsp_edit.rb +870 -0
  91. data/lib/ontomde-java/struts/jsp_edit_field.rb +1 -0
  92. data/lib/ontomde-java/struts/jsp_edit_js.rb +124 -0
  93. data/lib/ontomde-java/struts/jsp_index.rb +136 -0
  94. data/lib/ontomde-java/struts/localeAction.rb +641 -0
  95. data/lib/ontomde-java/struts/main.rb +41 -0
  96. data/lib/ontomde-java/struts/mappingForBean.rb +132 -0
  97. data/lib/ontomde-java/struts/mappingForJsp.rb +272 -0
  98. data/lib/ontomde-java/struts/mappingToJavaHierarchy.rb +87 -0
  99. data/lib/ontomde-java/struts/reloadAction.rb +33 -0
  100. data/lib/ontomde-java/struts/spring.rb +89 -0
  101. data/lib/ontomde-java/struts/struts-config.rb +232 -0
  102. data/lib/ontomde-java/struts/validation.rb +116 -0
  103. data/lib/ontomde-java/struts/validator.rb +341 -0
  104. data/lib/ontomde-java/struts/webXml.rb +195 -0
  105. data/lib/ontomde-java/struts/xmlForm.rb +308 -0
  106. data/lib/ontomde-java/version.rb +5 -0
  107. data/profiling.xls +0 -0
  108. data/test/.classpath +14 -0
  109. data/test/.project +17 -0
  110. data/test/.settings/org.eclipse.jdt.core.prefs +23 -0
  111. data/test/Rakefile +71 -0
  112. data/test/build.xml +34 -0
  113. data/test/classpath.rb +15 -0
  114. data/test/lib/junit-4.1.jar +0 -0
  115. data/test/load1.rb +3 -0
  116. data/test/load2.rb +3 -0
  117. data/test/log4j.properties +46 -0
  118. data/test/model/.project +11 -0
  119. data/test/model/BigProject.mdzip +0 -0
  120. data/test/model/BigProject.mdzip.nt +102866 -0
  121. data/test/model/ClassDiagram.EntArch.gif +0 -0
  122. data/test/model/ClassDiagram.emx.gif +0 -0
  123. data/test/model/ClassDiagram.mdzip.gif +0 -0
  124. data/test/model/model_ea71.bis.ea.xmi +149 -0
  125. data/test/model/model_ea71.ea.xmi +4470 -0
  126. data/test/model/model_ea71.eap +0 -0
  127. data/test/model/model_ea71_README.txt +8 -0
  128. data/test/model/multipleInheritance.emx +466 -0
  129. data/test/model/multipleInheritance.emx.nt +2428 -0
  130. data/test/model/simple1-530.ofp +0 -0
  131. data/test/model/simple1-includedAsReference.emx +169 -0
  132. data/test/model/simple1.emx +3729 -0
  133. data/test/model/simple1.emx.fragments.nt +81 -0
  134. data/test/model/simple1.emx.nt +5760 -0
  135. data/test/model/simple1.mdzip +0 -0
  136. data/test/model/simple1.mdzip.nt +11500 -0
  137. data/test/model/simple1.oe530.nt +1986 -0
  138. data/test/model/simple1.oe600.nt +1627 -0
  139. data/test/src/RuntimeTest.java +656 -0
  140. data/test/src/testsLevel1.java +174 -0
  141. data/test/src/testsLevel2.java +29 -0
  142. data/test/src/testsLevel3.java +40 -0
  143. data/test/test-ea7.sh +15 -0
  144. data/test/test-magicDraw.sh +10 -0
  145. data/test/test-mi.sh +9 -0
  146. data/test/test-oe530.sh +10 -0
  147. data/test/test-oe600.sh +11 -0
  148. data/test/test-rsm.sh +11 -0
  149. data/test/test_export_ea71.rb +5 -0
  150. data/test/test_export_oe530.rb +4 -0
  151. data/test/test_export_oe600.rb +4 -0
  152. data/test/test_export_rsm60.rb +4 -0
  153. data/test/trace +419 -0
  154. data/test/uml_test.rb +1434 -0
  155. data/test/uml_test.xls +0 -0
  156. data/test/unit_test.rb +6 -0
  157. metadata +224 -0
@@ -0,0 +1,46 @@
1
+
2
+
3
+ module Muml_Classifier
4
+ #returns every type assignable to this classifier
5
+ #(this includes self and any class deriving from it)
6
+ def umlx_ownedAndInheritedAttribute(ret=Set.new)
7
+ uml_ownedAttribute.each {|biz|
8
+ ret << biz
9
+ }
10
+ uml_generalization.each { |g|
11
+ next if g.kind_of?(Muml_Interface)
12
+ g.uml_general_one.umlx_ownedAndInheritedAttribute(ret)
13
+ }
14
+ return ret
15
+ end
16
+
17
+ def crank_isTopCrankBean
18
+ uml_generalization.each { |g|
19
+ next if g.kind_of?(Muml_Interface)
20
+ return false if !g.uml_general_one.db_isTransient?
21
+ }
22
+ return true;
23
+ end
24
+
25
+ def crank_hasCrankBeanChild?
26
+ uml_general_inv.each { |g|
27
+ return true
28
+ }
29
+ return false
30
+ end
31
+
32
+ #Include the class too
33
+ def crank_subCrankBean(ret=Set.new, abstractIncluded=false)
34
+ umlx_assignableClassifier().sort{ |a,b| a <=> b}.each{ |c|
35
+ ret.add(c) if abstractIncluded || !c.uml_isAbstract?
36
+ }
37
+ return ret
38
+ end
39
+ end
40
+
41
+ module Muml_NamedElement
42
+ def <=>(other)
43
+ "#{self.java_Name}" <=> "#{other.java_Name}"
44
+ end
45
+
46
+ end
@@ -0,0 +1,51 @@
1
+ module Mrdf_Repository
2
+
3
+ def eachCrankBean(ret=Set.new)
4
+ uml_Class_all.each { |c|
5
+ next if c.kind_of?(Muml_Enumeration)
6
+ next if c.kind_of?(Muml_Interface)
7
+ next if c.java_ignoreMe?
8
+ next if c.db_isTransient?
9
+ # next if c.uml_isAbstract?
10
+ ret.add(c)
11
+ }
12
+ return ret.sort{ |a,b| a <=> b}
13
+ end
14
+
15
+
16
+ def crank_generate_ForEachBean
17
+ crank_generate_facesconfig
18
+ crank_generate_home
19
+ eachCrankBean.each { |c|
20
+ c.crank_generate_listing
21
+ c.crank_generate_form
22
+ }
23
+ end
24
+
25
+ #Called after java transformation
26
+ def crank_generate_ForEachBeanAfterTransform
27
+ umlx_reserved_model.crank_generate_context
28
+ eachCrankBean.each { |c|
29
+ c.crank_generate_validation
30
+ c.java_generate_equalsAndHash
31
+ }
32
+ end
33
+
34
+
35
+ def crank_generate_home
36
+ mtk_writeSession("#{context[:webContentDir]}/pages/Menu.xhtml") {
37
+ crank_home_header
38
+ crank_home_crankbean
39
+ crank_home_footer
40
+ }
41
+ end
42
+
43
+ def crank_generate_facesconfig
44
+ mtk_writeSession("#{context[:webContentDir]}/WEB-INF/faces-config.xml") {
45
+ crank_faces_header
46
+ crank_faces_crankbean
47
+ crank_faces_footer
48
+ }
49
+ end
50
+
51
+ end
@@ -0,0 +1,39 @@
1
+
2
+ module Mrdf_Model
3
+
4
+
5
+
6
+
7
+ def crank_home_header
8
+ write <<END
9
+ <ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
10
+ xmlns:h="http://java.sun.com/jsf/html"
11
+ >
12
+ <h:form>
13
+ <div class="blocmenu">
14
+
15
+ <h2>Menu Principal</h2>
16
+ <ul>
17
+
18
+ END
19
+ end
20
+
21
+
22
+ def crank_home_footer
23
+ write <<FOOTER
24
+ </ul>
25
+ </div>
26
+ </h:form>
27
+ </ui:composition>
28
+ FOOTER
29
+ end
30
+
31
+ def crank_home_crankbean
32
+ eachCrankBean.each { |c|
33
+ write <<BEAN
34
+ <li><h:commandLink action="#{c.java_Name.upcase}" value="#{c.java_Name}s" styleClass="titleCommandLink"/></li>
35
+ BEAN
36
+ }
37
+ end
38
+
39
+ end
@@ -0,0 +1,78 @@
1
+
2
+ module Mrdf_Repository
3
+
4
+
5
+ def crank_home_header
6
+ write <<END
7
+ <ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
8
+ xmlns:h="http://java.sun.com/jsf/html"
9
+ xmlns:f="http://java.sun.com/jsf/core"
10
+ xmlns:a4j="https://ajax4jsf.dev.java.net/ajax"
11
+ xmlns:rich="http://richfaces.ajax4jsf.org/rich"
12
+ xmlns:c="http://java.sun.com/jstl/core"
13
+ xmlns:crank="http://www.googlecode.com/crank"
14
+ >
15
+ <h:form>
16
+ <rich:panelMenu>
17
+ END
18
+ end
19
+
20
+
21
+ def crank_home_footer
22
+ write <<FOOTER
23
+ </rich:panelMenu>
24
+ </h:form>
25
+ </ui:composition>
26
+ FOOTER
27
+ end
28
+
29
+ def crank_home_crankbean
30
+ pkg=Hash.new
31
+ eachCrankBean.each {|c|
32
+ p=c.uml_ownedMember_inv_one
33
+ pkg[p]=Array.new if pkg[p].nil?
34
+ pkg[p] << c
35
+ }
36
+ pkg.keys.sort {|a,b| a.uml_name.to_s <=> b.uml_name.to_s }.each { |p|
37
+ write <<BEAN
38
+ <rich:panelMenuGroup label="#{p.java_qualifiedName}" iconExpanded="triangleDown" iconCollapsed="triangleUp">
39
+ BEAN
40
+ clazz = pkg[p].sort { |a,b| a.uml_name.to_s <=> b.uml_name.to_s }
41
+ clazz.each {|c|
42
+ c.crank_class_submenu if c.crank_isTopCrankBean
43
+ }
44
+ write <<BEAN
45
+ </rich:panelMenuGroup>
46
+ BEAN
47
+ }
48
+ end
49
+ end
50
+
51
+ module Muml_Class
52
+ def crank_class_submenu
53
+ subClazz = Set.new
54
+ crank_subCrankBean(subClazz, true)
55
+ if crank_isTopCrankBean && subClazz.length>1
56
+ write <<BEAN
57
+ <rich:panelMenuGroup label="#{self.java_Name}" iconExpanded="triangleDown" iconCollapsed="triangleUp">
58
+ BEAN
59
+ subClazz.sort { |a,b| a.uml_name.to_s <=> b.uml_name.to_s }.each{|c|
60
+ c.crank_menu_item
61
+ }
62
+ write <<BEAN
63
+ </rich:panelMenuGroup>
64
+ BEAN
65
+ elsif
66
+ crank_menu_item
67
+ end
68
+ end
69
+
70
+ def crank_menu_item
71
+ write <<BEAN
72
+ <rich:panelMenuItem submitMode="none">
73
+ <h:commandLink action="#{self.java_Name.upcase}" value="#{self.java_Name}" styleClass="titleCommandLink"/>
74
+ </rich:panelMenuItem>
75
+ BEAN
76
+ end
77
+ end
78
+
@@ -0,0 +1,34 @@
1
+
2
+
3
+ module Muml_Classifier
4
+
5
+ def crank_generate_validation
6
+ uml_ownedAttribute.each { |a|
7
+ #next if a.umlx_isComposite?
8
+ #next unless a.umlx_isAttribute?
9
+
10
+ if a.umlx_hasStereotype?('Required')
11
+ a.java_annotation_add("@org.crank.annotations.validation.Required")
12
+ end
13
+ if a.uml_type_one.kind_of?(Muml_DataType) && !a.uml_type_one.crank_validation_annotation.nil?
14
+ a.java_annotation_add(a.uml_type_one.crank_validation_annotation)
15
+ end
16
+ }
17
+ end
18
+
19
+ end
20
+
21
+ module Muml_DataType
22
+
23
+ def crank_validation_annotation
24
+ tpl=DatatypeMapping.instance.getTemplate(self)
25
+ tpl.crank_validation_annotation
26
+ end
27
+
28
+ end
29
+
30
+ class DatatypeMapping
31
+ def crank_validation_annotation
32
+ return nil
33
+ end
34
+ end
@@ -0,0 +1,3 @@
1
+ require 'ontomde-java'
2
+ require 'ontomde-java/ejb2/main-ejb2.rb'
3
+
@@ -0,0 +1,194 @@
1
+ #
2
+ # ejb2 generator
3
+ #
4
+ module Mrdf_Model
5
+ def ejb2_services
6
+ ca=Array.new
7
+ uml_Class_all.each { |c|
8
+ next unless c.kind_of?(Muml_Class)
9
+ next unless c.umlx_hasStereotype?('Service')
10
+ ca << c
11
+ }
12
+ return ca
13
+ end
14
+
15
+ def ejb2_transform!
16
+ return unless context[:ejb2]
17
+ ejb2_services.each { |c|
18
+ c.ejb2_transform!
19
+ }
20
+ ejb2_generateConfig #TODO
21
+ ejb2_generateJonasConfig
22
+ end
23
+
24
+
25
+ def ejb2_target_ejbconf
26
+ return context[:target_ejbconf,"#{context[:build]}META-INF"]
27
+ end
28
+ def ejb2_generateConfig
29
+ mtk_writeSession(context[:ejbJarFile,"#{ejb2_target_ejbconf}/ejb-jar.xml"]) {
30
+ ejb2_writeConfig
31
+ }
32
+ end
33
+
34
+ def ejb2_writeConfig
35
+ write <<END
36
+ <?xml version="1.0"?>
37
+ <!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN' 'http://java.sun.com/dtd/ejb-jar_2_0.dtd'>
38
+
39
+ <ejb-jar>
40
+ <enterprise-beans>
41
+ END
42
+ ejb2_services.each { |c|
43
+ write <<END
44
+ <!-- #{c.ejb_Name} -->
45
+ <session>
46
+ <ejb-name>#{c.ejb_Name}</ejb-name>
47
+ <home>#{c.ejb_home_one.java_qualifiedName}</home>
48
+ <remote>#{c.ejb_remote_one.java_qualifiedName}</remote>
49
+ <ejb-class>#{c.ejb_bean_one.java_qualifiedName}</ejb-class>
50
+ <session-type>Stateless</session-type>
51
+ <transaction-type>Container</transaction-type>
52
+ </session>
53
+ END
54
+ }
55
+ write <<END
56
+ </enterprise-beans>
57
+ <assembly-descriptor>
58
+ END
59
+ ejb2_services.each { |c|
60
+ write <<END
61
+ <!-- #{c.ejb_Name} -->
62
+ <container-transaction>
63
+ <method>
64
+ <ejb-name>#{c.ejb_Name}</ejb-name>
65
+ <method-name>*</method-name>
66
+ </method>
67
+ <trans-attribute>Required</trans-attribute>
68
+ </container-transaction>
69
+ END
70
+ }
71
+ write <<END
72
+ </assembly-descriptor>
73
+ </ejb-jar>
74
+ END
75
+
76
+ end
77
+ def ejb2_generateJonasConfig
78
+ mtk_writeSession(context[:ejbJonasJarFile,"#{ejb2_target_ejbconf}/jonas-ejb-jar.xml"]) {
79
+ ejb2_writeJonasConfig
80
+ }
81
+ end
82
+
83
+ def ejb2_writeJonasConfig
84
+ write <<END
85
+ <?xml version="1.0"?>
86
+ <jonas-ejb-jar
87
+ xmlns="http://www.objectweb.org/jonas/ns"
88
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
89
+ xsi:schemaLocation="http://www.objectweb.org/jonas/ns http://www.objectweb.org/jonas/ns/jonas-ejb-jar_4_0.xsd" >
90
+ END
91
+
92
+ ejb2_services.each { |c|
93
+ write <<END
94
+ <!-- #{c.ejb_Name} -->
95
+ <jonas-session>
96
+ <ejb-name>#{c.ejb_Name}</ejb-name>
97
+ <jndi-name>odn.#{c.ejb_remote_one.java_Name}</jndi-name>
98
+ <session-timeout>60</session-timeout>
99
+ </jonas-session>
100
+ END
101
+ }
102
+
103
+ write <<END
104
+ </jonas-ejb-jar>
105
+ END
106
+ end
107
+ end
108
+
109
+ module Muml_Class
110
+ #ejb_Home class related to this ejb service
111
+ rdf_safe_attr_reader_many :ejb_home
112
+ #
113
+ #ejb_remote interface related to this ejb service
114
+ rdf_safe_attr_reader_many :ejb_remote
115
+ #
116
+ #ejb_bean related to this ejb service
117
+ rdf_safe_attr_reader_many :ejb_bean
118
+
119
+ #process this java bean to :
120
+ #* generate the proper ejb interfaces,
121
+ #* add required exceptions,
122
+ #* add required interface implementations
123
+ #* ...
124
+ def ejb2_transform!
125
+ log.debug { "processing ejb service: #{self}" }
126
+ ejb2_createRemoteInterface!
127
+ ejb2_createHomeInterface!
128
+ ejb2_createBean!
129
+ end
130
+
131
+ #Return an alias name for this class"
132
+ def ejb_Name
133
+ return "#{java_Name}EJB"
134
+ end
135
+
136
+ #creates a bean class for this service class
137
+ #(this implementation just appends bean to the class name)
138
+ def ejb2_createBean!
139
+ self.ejb_bean=self
140
+ self.uml_name="#{self.uml_name}Bean"
141
+ ejb2_addOperationExceptions!(umlx_getOrCreateInterface("java.rmi.RemoteException"))
142
+ end
143
+
144
+ #creates a home interface for this service class
145
+ def ejb2_createHomeInterface!
146
+ log.debug { "creating ejb home interface for: #{self}" }
147
+ h=self.umlx_owner_one.umlx_createAndAddInterface("#{self.rdf_uri}_ejbHome","#{uml_name}Home")
148
+ h.umlx_createAndAddGeneralization(umlx_getOrCreateInterface("javax.ejb.EJBHome"))
149
+ self.ejb_home=h
150
+
151
+ cr=h.umlx_createAndAddOperation("#{h.rdf_uri}_create","create")
152
+ cr.uml_raisedException_add(umlx_getOrCreateInterface("javax.ejb.CreateException"))
153
+ cr.uml_raisedException_add(umlx_getOrCreateInterface("java.rmi.RemoteException"))
154
+ crret=cr.umlx_createAndAddReturnParameter("#{cr.rdf_uri}_ret","return")
155
+ crret.uml_type=self.ejb_remote_one
156
+ end
157
+
158
+ #creates a remote interface for this service class
159
+ def ejb2_createRemoteInterface!
160
+ log.debug { "creating ejb remote interface for: #{self}" }
161
+ r=self.umlx_owner_one.umlx_createAndAddInterface("#{self.rdf_uri}_ejbRemote","#{uml_name}")
162
+ r.umlx_createAndAddGeneralization(umlx_getOrCreateInterface("javax.ejb.EJBObject"))
163
+ self.ejb_remote=r
164
+ ejb2_copyMethodsTo!(ejb_remote_one,"ejbRemote",umlx_getOrCreateInterface("java.rmi.RemoteException"))
165
+ end
166
+
167
+ def ejb2_copyMethodsTo!(ejb,uri_suffix,exception)
168
+ uml_ownedOperation.each { |sop|
169
+ op=ejb.umlx_createAndAddOperation("#{sop.rdf_uri}_#{uri_suffix}","#{sop.uml_name}")
170
+ op.uml_raisedException_add(exception)
171
+ sop.uml_ownedParameter.each { |sp|
172
+ p=op.umlx_createAndAddParameter("#{sp.rdf_uri}_#{uri_suffix}",sp.uml_name)
173
+ sp.umlx_copyToAttributeProperty(p)
174
+ p.uml_type=sp.uml_type
175
+ p.uml_direction=sp.uml_direction
176
+ p.uml_isUnique=sp.uml_isUnique
177
+ p.uml_isOrdered=sp.uml_isOrdered
178
+ p.java_use_Arrays=sp.java_use_Arrays
179
+ p.uml_upperValue=sp.uml_upperValue
180
+ p.uml_lowerValue=sp.uml_lowerValue
181
+ }
182
+ }
183
+ end
184
+ #adds exception to every operation
185
+ def ejb2_addOperationExceptions!(exception)
186
+ uml_ownedOperation.each { |op|
187
+ op.uml_raisedException_add(exception)
188
+ }
189
+ end
190
+ end
191
+
192
+
193
+
194
+