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,103 @@
1
+ module Muml_Property
2
+
3
+ def jpa_addRelationCascadeType(isIncludeType=true)
4
+ if crank_isMasterFromMasterDetail?
5
+ self.java_annotation_add("@xmda.jpa.annotations.MasterDetail")
6
+ self.umlx_owner_one.java_import_add("org.hibernate.annotations.Cascade");
7
+ self.java_annotation_add("@Cascade({org.hibernate.annotations.CascadeType.DELETE_ORPHAN})")
8
+ if (isIncludeType)
9
+ return ",cascade={CascadeType.ALL}"
10
+ else
11
+ return "(cascade={CascadeType.ALL})"
12
+ end
13
+ elsif crank_isDetailFromMasterDetail?
14
+ self.java_annotation_add("@xmda.jpa.annotations.Detail")
15
+ end
16
+
17
+ if (isIncludeType)
18
+ return CRANK_DEFAULT_CASCADE_I
19
+ else
20
+ return CRANK_DEFAULT_CASCADE
21
+ end
22
+ end
23
+
24
+ CRANK_DEFAULT_CASCADE="(cascade={CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH})"
25
+ CRANK_DEFAULT_CASCADE_I=",cascade={CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH}"
26
+
27
+ alias super_jpa_addPersistenceToAssociation! jpa_addPersistenceToAssociation!
28
+ def jpa_addPersistenceToAssociation!(ah)
29
+ super_jpa_addPersistenceToAssociation!(ah)
30
+ end
31
+
32
+ def crank_isMasterFromMasterDetail?
33
+ return true if self.umlx_isComposite?
34
+ return false
35
+ end
36
+ def crank_isDetailFromMasterDetail?
37
+ oe=umlx_otherEnd
38
+ binav=(!oe.nil?) && oe.umlx_isNavigable?
39
+ return false if !binav
40
+ return oe.crank_isMasterFromMasterDetail?
41
+ end
42
+
43
+ end
44
+
45
+
46
+
47
+ module DAO
48
+ DAOInterface="GenericDao"
49
+ DAOQualifiedInterface="org.crank.crud.GenericDao"
50
+
51
+ alias super_jpa_addDAO! jpa_addDAO!
52
+ def jpa_addDAO!
53
+
54
+ if !context[:crank]
55
+ super_jpa_addDAO!
56
+ return
57
+ end
58
+
59
+ log.debug { "adding dao for #{self}" }
60
+ p=umlx_package
61
+
62
+ p_dao=p.umlx_getOrCreatePackage(context[:dbDAOsubPackage,"dao"],p)
63
+ c=p_dao.umlx_createAndAddInterface(rdf_uri+"_dao")
64
+ c.db_isDAO=RDF_TRUE
65
+ c.db_isTransient=RDF_TRUE
66
+ self.java_DAOClass=c
67
+ c.java_persistentClass=self
68
+ c.uml_name=uml_name_one+"DAO"
69
+
70
+ i = umlx_getOrCreateClass("#{DAO::DAOInterface}<#{uml_name_one},Long>");
71
+ i.db_isTransient=RDF_TRUE
72
+ i.java_isGeneric=RDF_TRUE
73
+ c.umlx_createAndAddGeneralization(i)
74
+
75
+ self.jpa_addNamedQuery
76
+
77
+ log.debug { "DAO added: #{c.uml_name} in #{c.umlx_package.uml_name}"}
78
+ c.java_import_add(DAO::DAOQualifiedInterface)
79
+ c.java_import_add("#{self.java_qualifiedName}")
80
+ end
81
+
82
+ def jpa_addNamedQuery
83
+ namedQuery = "@javax.persistence.NamedQueries( {\n"
84
+ namedQuery << " @javax.persistence.NamedQuery( name = \"#{self.java_Name}.readPopulated\",\n"
85
+ namedQuery << " query = \"select distinct #{self.java_Name.downcase} from #{self.java_Name} #{self.java_Name.downcase} "
86
+ umlx_ownedAndInheritedAttribute.each { |a|
87
+ next if a.uml_type_one.db_isTransient?
88
+ next if a.uml_isDerived?
89
+ if !a.umlx_isAttribute?
90
+ namedQuery << jpa_addNamedQueryToAssociation!(a)
91
+ end
92
+ }
93
+ namedQuery << " where #{self.java_Name.downcase}.id=?\" )"
94
+
95
+ namedQuery += "})"
96
+ self.java_annotation_add(namedQuery)
97
+ end
98
+
99
+ def jpa_addNamedQueryToAssociation!(a)
100
+ return "left outer join fetch #{self.java_Name.downcase}.#{a.java_Name} "
101
+ end
102
+
103
+ end
@@ -0,0 +1,83 @@
1
+ module Muml_Classifier
2
+
3
+ def java_generate_equalsAndHash
4
+ ret=Set.new
5
+ uml_ownedAttribute.each {|biz|
6
+ ret << biz if biz.umlx_hasStereotype?("EqualsValue")
7
+ }
8
+ if !ret.empty?
9
+ java_generateEquals(ret, !crank_isTopCrankBean)
10
+ java_generateHashCode(ret)
11
+ end
12
+ end
13
+
14
+
15
+ def java_generateEquals(ret, callSuperEquals)
16
+ me=self.umlx_createAndAddOperation(self.rdf_uri+"_equals")
17
+ me.uml_name="equals"
18
+ # me.uml_class=self
19
+ me.uml_visibility=Cuml_VisibilityKind::Public
20
+ rme=me.umlx_createAndAddReturnParameter("#{me.rdf_uri}_ret")
21
+ rme.uml_type=umlx_getOrCreateDataType("boolean")
22
+ rpe=me.umlx_createAndAddParameter("#{me.rdf_uri}_par", "o")
23
+ rpe.uml_type=umlx_getOrCreateClass("Object")
24
+ me.java_annotation_add("@Override")
25
+ meCode = <<CODE
26
+ if(this == o) {
27
+ return true;
28
+ }
29
+ if(o==null || !(o instanceof #{self.java_Name})) {
30
+ return false;
31
+ }
32
+ CODE
33
+ if callSuperEquals
34
+ meCode << <<CODE
35
+ if !super.equals(o) {
36
+ return false;
37
+ }
38
+ CODE
39
+ end
40
+ meCode << <<CODE
41
+ final #{self.java_Name} _o = (#{self.java_Name}) o;
42
+ CODE
43
+ ret.each { |a|
44
+ meCode << <<CODE
45
+ if (#{a.java_Name} != null ?
46
+ !#{a.java_Name}.equals(_o.#{a.java_Name}) :
47
+ _o.#{a.java_Name} != null) {
48
+ return false;
49
+ }
50
+ CODE
51
+ }
52
+ meCode << <<CODE
53
+ return true;
54
+ CODE
55
+ me.java_code = meCode
56
+ end
57
+
58
+
59
+ def java_generateHashCode(ret)
60
+ me=self.umlx_createAndAddOperation(self.rdf_uri+"_hash")
61
+ me.uml_name="hashCode"
62
+ me.uml_class=self
63
+ me.uml_visibility=Cuml_VisibilityKind::Public
64
+ rme=me.umlx_createAndAddReturnParameter("#{me.rdf_uri}_ret")
65
+ rme.uml_type=umlx_getOrCreateDataType("int")
66
+ me.java_annotation_add("@Override")
67
+ meCode = <<CODE
68
+ final int prime = 31;
69
+ int result = 1;
70
+ CODE
71
+ ret.each { |a|
72
+ meCode << <<CODE
73
+ result = prime * result + ((#{a.java_Name} == null) ? 0 : #{a.java_Name}.hashCode());
74
+ CODE
75
+ }
76
+ meCode << <<CODE
77
+ return result;
78
+ CODE
79
+ me.java_code = meCode
80
+
81
+ end
82
+
83
+ end
@@ -0,0 +1,243 @@
1
+
2
+
3
+ module Muml_Classifier
4
+
5
+ def crank_generate_listing
6
+ mtk_writeSession("#{context[:webContentDir]}/pages/crud/#{self.java_Name}/Listing.xhtml") {
7
+ write <<END
8
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
9
+ <html xmlns="http://www.w3.org/1999/xhtml"
10
+ xmlns:ui="http://java.sun.com/jsf/facelets"
11
+ xmlns:h="http://java.sun.com/jsf/html"
12
+ xmlns:f="http://java.sun.com/jsf/core"
13
+ xmlns:a4j="https://ajax4jsf.dev.java.net/ajax"
14
+ xmlns:rich="http://richfaces.ajax4jsf.org/rich"
15
+ xmlns:c="http://java.sun.com/jstl/core"
16
+ xmlns:crank="http://www.googlecode.com/crank"
17
+ >
18
+ <ui:composition template="/templates/layout.xhtml">
19
+ <ui:define name="javascript">
20
+ <script type="text/javascript" src="${request.contextPath}/js/jquery.js"/>
21
+ <script type="text/javascript" src="${request.contextPath}/js/messages.js"/>
22
+ <script type="text/javascript" src="${request.contextPath}/js/details.js"/>
23
+ </ui:define>
24
+ <ui:define name="content">
25
+
26
+ <h:outputText value="#{self.java_Name}s" styleClass="pageTitle"/>
27
+
28
+ <a4j:region renderRegionOnly="false">
29
+ <a4j:form id="${daoName}ListForm">
30
+ <crank:listing
31
+ paginator="${paginators['#{self.java_Name}']}"
32
+ jsfCrudAdapter="${cruds['#{self.java_Name}']}"
33
+ propertyNames="#{self.crank_listingProperties}"
34
+ pageTitle="${daoName}"
35
+ parentForm="${daoName}ListForm"
36
+ reRender="${daoName}ListForm"
37
+ crud="${cruds['#{self.java_Name}'].controller}"
38
+ END
39
+ if crank_hasCrankBeanChild?
40
+ write <<END
41
+
42
+ clazzs="
43
+ END
44
+ isFirstSubclazz = true
45
+ crank_subCrankBean.each{|c|
46
+ if isFirstSubclazz
47
+ isFirstSubclazz = false
48
+ elsif
49
+ write ","
50
+ end
51
+ write "#{c.java_Name}"
52
+ }
53
+ write "\""
54
+ end
55
+
56
+ write <<END
57
+ />
58
+ </a4j:form>
59
+ </a4j:region>
60
+
61
+
62
+ </ui:define>
63
+ </ui:composition>
64
+ </html>
65
+ END
66
+ }
67
+ end
68
+
69
+
70
+ def crank_generate_form
71
+ mtk_writeSession("#{context[:webContentDir]}/pages/crud/#{self.java_Name}/Form.xhtml") {
72
+ write <<END
73
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
74
+ <html xmlns="http://www.w3.org/1999/xhtml"
75
+ xmlns:ui="http://java.sun.com/jsf/facelets"
76
+ xmlns:h="http://java.sun.com/jsf/html"
77
+ xmlns:f="http://java.sun.com/jsf/core"
78
+ xmlns:a4j="https://ajax4jsf.dev.java.net/ajax"
79
+ xmlns:rich="http://richfaces.ajax4jsf.org/rich"
80
+ xmlns:c="http://java.sun.com/jstl/core"
81
+ xmlns:crank="http://www.googlecode.com/crank"
82
+ xmlns:validation="http://code.google.com/p/krank/validation"
83
+ >
84
+
85
+ <ui:composition template="/templates/layout.xhtml">
86
+ <ui:define name="content">
87
+
88
+ <c:set var="adapter" value="${#{self.java_Name.downcase}Crud}" />
89
+ <c:set var="crud" value="${adapter.controller}" />
90
+
91
+ <span class="pageTitle">#{self.java_Name} Entry Form</span>
92
+
93
+ <a4j:region renderRegionOnly="false">
94
+ <a4j:form
95
+ id="#{self.java_Name.downcase}Form">
96
+
97
+ <crank:form
98
+ crud="${crud}"
99
+ parentForm="#{self.java_Name.downcase}Form"
100
+ propertyNames="#{self.crank_editSimpleProperties}"
101
+ readOnlyProperties="#{self.crank_readOnlyProperties}">
102
+ #{crank_crud_relationship}
103
+ </crank:form>
104
+ </a4j:form>
105
+ </a4j:region>
106
+
107
+ </ui:define>
108
+ </ui:composition>
109
+ </html>
110
+ END
111
+ }
112
+ end
113
+
114
+
115
+ def crank_crud_relationship
116
+ rel = ""
117
+ rels = eachCrankBeanRelations
118
+ rels.each { |a|
119
+ if !a.umlx_isComposite? && !a.java_isManyAssociation?
120
+ rel << crank_simpleRelationHelper(a)
121
+ end
122
+ }
123
+ bManyAsociation = false
124
+ rels.each { |a|
125
+ if !a.umlx_isComposite? && a.java_isManyAssociation?
126
+ if !bManyAsociation
127
+ rel << "<rich:tabPanel width=\"100%\">\n"
128
+ bManyAsociation = true
129
+ end
130
+ rel << " <rich:tab label=\"${crud:createLabel('#{a.java_Name}')}\">\n"
131
+ rel << crank_simpleRelationHelper(a)
132
+ rel << " </rich:tab>\n"
133
+ end
134
+ }
135
+ if bManyAsociation
136
+ rel << "</rich:tabPanel>\n"
137
+ end
138
+ bManyAsociation = false
139
+ rels.each { |a|
140
+ if a.crank_isMasterFromMasterDetail?
141
+ if !bManyAsociation
142
+ rel << "<rich:tabPanel width=\"100%\">\n"
143
+ bManyAsociation = true
144
+ end
145
+ rel << " <rich:tab label=\"${crud:createLabel('#{a.java_Name}')}\">\n"
146
+ rel << crank_masterDetailRelationHelper(a)
147
+ rel << " </rich:tab>\n"
148
+ end
149
+ }
150
+ if bManyAsociation
151
+ rel << "</rich:tabPanel>\n"
152
+ end
153
+ return rel
154
+ end
155
+
156
+ def crank_simpleRelationHelper(a)
157
+ rel=""
158
+ if a.java_isManyAssociation?
159
+ rel += " <crank:selectManyExtended jsfSelectManyController="
160
+ elsif
161
+ rel += " <crank:selectOneListing jsfSelectOneController="
162
+ end
163
+ rel +=<<CODE
164
+ "${#{a.java_Name.downcase}From#{java_Name}To#{a.uml_type_one.java_Name}Controller}"
165
+ propertyNames="#{a.uml_type_one.crank_listingProperties}"
166
+ parentForm="#{self.java_Name.downcase}Form" editRelation="${true}"
167
+ />
168
+
169
+ CODE
170
+ return rel
171
+ end
172
+
173
+ def crank_masterDetailRelationHelper(a)
174
+ rel=<<CODE
175
+ <crank:detailListingExtended detailController="${#{a.java_Name.downcase}From#{java_Name}To#{a.uml_type_one.java_Name}Controller}"
176
+ propertyNames="#{a.uml_type_one.crank_listingProperties}" editRelation="${true}"
177
+ CODE
178
+ if a.uml_type_one.crank_hasCrankBeanChild?
179
+ rel << " clazzs=\""
180
+ isFirstSubclazz = true
181
+ a.uml_type_one.crank_subCrankBean.each{|c|
182
+ if isFirstSubclazz
183
+ isFirstSubclazz = false
184
+ elsif
185
+ rel << ","
186
+ end
187
+ rel << "#{c.java_Name}"
188
+ }
189
+ rel << "\""
190
+ end
191
+ rel << " />\n"
192
+ return rel
193
+ end
194
+
195
+ def crank_listingProperties
196
+ attributes = nil
197
+ umlx_ownedAndInheritedAttribute.each { |a|
198
+ next if a.umlx_isComposite?
199
+ next unless a.umlx_isAttribute?
200
+ #next if a.uml_type_one.db_isTransient?
201
+ next if a.uml_isStatic?
202
+ next if a.uml_isReadOnly?
203
+ next if "id" == "#{a.java_Name}" #TODO Faire mieux
204
+ next if "objectVersion" == "#{a.java_Name}" #TODO Faire mieux
205
+ if attributes.nil?
206
+ attributes = "#{a.java_Name}"
207
+ else
208
+ attributes << ",#{a.java_Name}"
209
+ end
210
+ }
211
+ if (attributes.nil?)
212
+ attributes = ""
213
+ end
214
+ return attributes
215
+ end
216
+
217
+ def crank_readOnlyProperties
218
+ attributes = nil
219
+ umlx_ownedAndInheritedAttribute.each { |a|
220
+ next if a.umlx_isComposite?
221
+ next unless a.umlx_isAttribute?
222
+ #next if a.uml_type_one.db_isTransient?
223
+ next if a.uml_isStatic?
224
+ next if !a.uml_isReadOnly?
225
+ next if "id" == "#{a.java_Name}" #TODO Faire mieux
226
+ next if "objectVersion" == "#{a.java_Name}" #TODO Faire mieux
227
+ if attributes.nil?
228
+ attributes = "#{a.java_Name}"
229
+ else
230
+ attributes << ",#{a.java_Name}"
231
+ end
232
+ }
233
+ if (attributes.nil?)
234
+ attributes = ""
235
+ end
236
+ return attributes
237
+ end
238
+
239
+ def crank_editSimpleProperties
240
+ return crank_listingProperties
241
+ end
242
+
243
+ end
@@ -0,0 +1,113 @@
1
+
2
+ module Mrdf_Repository
3
+
4
+
5
+
6
+
7
+ def crank_faces_header
8
+ write <<END
9
+ <?xml version="1.0"?>
10
+ <faces-config xmlns="http://java.sun.com/xml/ns/javaee"
11
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
12
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"
13
+ version="1.2">
14
+
15
+ <!--
16
+ <lifecycle>
17
+ <phase-listener>org.crank.jsf.support.DebugPhaseListener</phase-listener>
18
+ </lifecycle>
19
+ -->
20
+
21
+ <application>
22
+ <action-listener>org.crank.crud.jsf.support.JsfMessageActionListener</action-listener>
23
+ <variable-resolver>org.springframework.web.jsf.DelegatingVariableResolver</variable-resolver>
24
+ <message-bundle>messages</message-bundle>
25
+ </application>
26
+
27
+ <!--
28
+ <component>
29
+ <component-type>org.crank.javax.faces.SelectOne</component-type>
30
+ <component-class>org.crank.javax.faces.component.UISelectOne</component-class>
31
+ </component>
32
+ <render-kit>
33
+ <renderer>
34
+ <component-family>javax.faces.SelectOne</component-family>
35
+ <renderer-type>org.crank.javax.faces.Listbox</renderer-type>
36
+ <renderer-class>
37
+ org.crank.javax.faces.component.ListboxRenderer
38
+ </renderer-class>
39
+ </renderer>
40
+
41
+ </render-kit>
42
+ -->
43
+
44
+ <navigation-rule>
45
+ <navigation-case>
46
+ <from-outcome>HOME</from-outcome>
47
+ <to-view-id>/pages/Home.xhtml</to-view-id>
48
+ </navigation-case>
49
+ </navigation-rule>
50
+ END
51
+ end
52
+
53
+
54
+ def crank_faces_footer
55
+ if context[:crankXmdaNav]
56
+ write <<END
57
+ <navigation-rule>
58
+ <from-view-id>/pages/crud/*</from-view-id>
59
+ <navigation-case>
60
+ <from-outcome>LISTING</from-outcome>
61
+ <to-view-id>\#{%sCrudProxy.crudViewHandler.calculateListingViewId}</to-view-id>
62
+ </navigation-case>
63
+ <navigation-case>
64
+ <from-outcome>FORM</from-outcome>
65
+ <to-view-id>\#{%sCrudProxy.crudViewHandler.calculateFormViewId}</to-view-id>
66
+ </navigation-case>
67
+ </navigation-rule>
68
+ END
69
+ end
70
+ write <<END
71
+
72
+ </faces-config>
73
+ END
74
+ end
75
+
76
+ def crank_faces_crankbean
77
+ eachCrankBean.each { |c|
78
+ write <<BEAN
79
+ <navigation-rule>
80
+ <navigation-case>
81
+ <from-outcome>#{c.java_Name.upcase}</from-outcome>
82
+ <to-view-id>/pages/crud/#{c.java_Name}/Listing.xhtml</to-view-id>
83
+ </navigation-case>
84
+ </navigation-rule>
85
+
86
+ <navigation-rule>
87
+ <navigation-case>
88
+ <from-outcome>#{c.java_Name.upcase}_FORM</from-outcome>
89
+ <to-view-id>/pages/crud/#{c.java_Name}/Form.xhtml</to-view-id>
90
+ </navigation-case>
91
+ </navigation-rule>
92
+
93
+ BEAN
94
+ if !context[:crankXmdaNav]
95
+ write <<BEAN
96
+ <navigation-rule>
97
+ <from-view-id>/pages/crud/#{c.java_Name}/*</from-view-id>
98
+ <navigation-case>
99
+ <from-outcome>LISTING</from-outcome>
100
+ <to-view-id>/pages/crud/#{c.java_Name}/Listing.xhtml</to-view-id>
101
+ </navigation-case>
102
+ <navigation-case>
103
+ <from-outcome>FORM</from-outcome>
104
+ <to-view-id>/pages/crud/#{c.java_Name}/Form.xhtml</to-view-id>
105
+ </navigation-case>
106
+ </navigation-rule>
107
+
108
+ BEAN
109
+ end
110
+ }
111
+ end
112
+
113
+ end