ontomde-uml2-crank 1.0.6
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +5 -0
- data/Manifest.txt +16 -0
- data/README.txt +50 -0
- data/Rakefile +32 -0
- data/lib/ontomde-uml2-crank.rb +19 -0
- data/lib/ontomde-uml2-crank/context.rb +384 -0
- data/lib/ontomde-uml2-crank/crankJpa.rb +103 -0
- data/lib/ontomde-uml2-crank/equals.rb +83 -0
- data/lib/ontomde-uml2-crank/facelets.rb +243 -0
- data/lib/ontomde-uml2-crank/facesconfig.rb +113 -0
- data/lib/ontomde-uml2-crank/helper.rb +46 -0
- data/lib/ontomde-uml2-crank/main.rb +53 -0
- data/lib/ontomde-uml2-crank/menu.rb +39 -0
- data/lib/ontomde-uml2-crank/menu2.rb +78 -0
- data/lib/ontomde-uml2-crank/validation.rb +34 -0
- data/lib/ontomde-uml2-crank/version.rb +7 -0
- metadata +88 -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,53 @@
|
|
1
|
+
module Mrdf_Model
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
def eachCrankBean(ret=Set.new)
|
6
|
+
uml_Class_all.each { |c|
|
7
|
+
next if c.kind_of?(Muml_Enumeration)
|
8
|
+
next if c.kind_of?(Muml_Interface)
|
9
|
+
next if c.java_ignoreMe?
|
10
|
+
next if c.db_isTransient?
|
11
|
+
# next if c.uml_isAbstract?
|
12
|
+
ret.add(c)
|
13
|
+
}
|
14
|
+
return ret.sort{ |a,b| a <=> b}
|
15
|
+
end
|
16
|
+
|
17
|
+
|
18
|
+
def crank_generate_ForEachBean
|
19
|
+
crank_generate_facesconfig
|
20
|
+
crank_generate_home
|
21
|
+
eachCrankBean.each { |c|
|
22
|
+
c.crank_generate_listing
|
23
|
+
c.crank_generate_form
|
24
|
+
}
|
25
|
+
end
|
26
|
+
|
27
|
+
#Called after java transformation
|
28
|
+
def crank_generate_ForEachBeanAfterTransform
|
29
|
+
umlx_reserved_model.crank_generate_context
|
30
|
+
eachCrankBean.each { |c|
|
31
|
+
c.crank_generate_validation
|
32
|
+
c.java_generate_equalsAndHash
|
33
|
+
}
|
34
|
+
end
|
35
|
+
|
36
|
+
|
37
|
+
def crank_generate_home
|
38
|
+
mtk_writeSession("#{context[:webContentDir]}/pages/Menu.xhtml") {
|
39
|
+
crank_home_header
|
40
|
+
crank_home_crankbean
|
41
|
+
crank_home_footer
|
42
|
+
}
|
43
|
+
end
|
44
|
+
|
45
|
+
def crank_generate_facesconfig
|
46
|
+
mtk_writeSession("#{context[:webContentDir]}/WEB-INF/faces-config.xml") {
|
47
|
+
crank_faces_header
|
48
|
+
crank_faces_crankbean
|
49
|
+
crank_faces_footer
|
50
|
+
}
|
51
|
+
end
|
52
|
+
|
53
|
+
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_Model
|
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=JavaMapping.instance.getTemplate(self)
|
25
|
+
tpl.crank_validation_annotation
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
class JavaMapping
|
31
|
+
def crank_validation_annotation
|
32
|
+
return nil
|
33
|
+
end
|
34
|
+
end
|
metadata
ADDED
@@ -0,0 +1,88 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ontomde-uml2-crank
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.6
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Philippe Dubosc
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2008-03-25 00:00:00 +01:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: ontomde-uml2-java
|
17
|
+
version_requirement:
|
18
|
+
version_requirements: !ruby/object:Gem::Requirement
|
19
|
+
requirements:
|
20
|
+
- - "="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 1.0.6
|
23
|
+
version:
|
24
|
+
- !ruby/object:Gem::Dependency
|
25
|
+
name: ontomde-uml2-apaCom
|
26
|
+
version_requirement:
|
27
|
+
version_requirements: !ruby/object:Gem::Requirement
|
28
|
+
requirements:
|
29
|
+
- - "="
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: 1.0.6
|
32
|
+
version:
|
33
|
+
description: FIX (describe your package)
|
34
|
+
email: philippe.dubosc@orange-ftgroup.com
|
35
|
+
executables: []
|
36
|
+
|
37
|
+
extensions: []
|
38
|
+
|
39
|
+
extra_rdoc_files:
|
40
|
+
- History.txt
|
41
|
+
- Manifest.txt
|
42
|
+
- README.txt
|
43
|
+
files:
|
44
|
+
- History.txt
|
45
|
+
- Manifest.txt
|
46
|
+
- README.txt
|
47
|
+
- Rakefile
|
48
|
+
- lib/ontomde-uml2-crank.rb
|
49
|
+
- lib/ontomde-uml2-crank/context.rb
|
50
|
+
- lib/ontomde-uml2-crank/crankJpa.rb
|
51
|
+
- lib/ontomde-uml2-crank/equals.rb
|
52
|
+
- lib/ontomde-uml2-crank/facelets.rb
|
53
|
+
- lib/ontomde-uml2-crank/facesconfig.rb
|
54
|
+
- lib/ontomde-uml2-crank/helper.rb
|
55
|
+
- lib/ontomde-uml2-crank/main.rb
|
56
|
+
- lib/ontomde-uml2-crank/menu.rb
|
57
|
+
- lib/ontomde-uml2-crank/menu2.rb
|
58
|
+
- lib/ontomde-uml2-crank/validation.rb
|
59
|
+
- lib/ontomde-uml2-crank/version.rb
|
60
|
+
has_rdoc: true
|
61
|
+
homepage: FIX (describe your package)
|
62
|
+
post_install_message:
|
63
|
+
rdoc_options:
|
64
|
+
- --main
|
65
|
+
- README.txt
|
66
|
+
require_paths:
|
67
|
+
- lib
|
68
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
69
|
+
requirements:
|
70
|
+
- - ">="
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: 1.8.6
|
73
|
+
version:
|
74
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
75
|
+
requirements:
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: "0"
|
79
|
+
version:
|
80
|
+
requirements: []
|
81
|
+
|
82
|
+
rubyforge_project: ontomde
|
83
|
+
rubygems_version: 1.0.1
|
84
|
+
signing_key:
|
85
|
+
specification_version: 2
|
86
|
+
summary: OntoMDE Crank generator cartridge
|
87
|
+
test_files: []
|
88
|
+
|