ontomde-demo-flex 1.0.6
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +2 -0
- data/Manifest.txt +35 -0
- data/README.txt +79 -0
- data/Rakefile +22 -0
- data/bin/ontomde-demo-flex-install +11 -0
- data/demo/1-unpack.bat +6 -0
- data/demo/1-unpack.sh +5 -0
- data/demo/2-generate.bat +4 -0
- data/demo/2-generate.sh +5 -0
- data/demo/3-flex.bat +4 -0
- data/demo/3-flex.sh +4 -0
- data/demo/4-start-webapp.bat +7 -0
- data/demo/4-start-webapp.sh +4 -0
- data/demo/9-eclipse.bat +5 -0
- data/demo/9-eclipse.sh +6 -0
- data/demo/domain/pom.xml +61 -0
- data/demo/ear/pom.xml +160 -0
- data/demo/flex2_sdk/README.txt +7 -0
- data/demo/flex2_sdk/flex2_sdk_hf1_download.URL +2 -0
- data/demo/mda/clean-generated.sh +24 -0
- data/demo/mda/pom.xml +182 -0
- data/demo/mda/src/main/mda/customDataTypes.rb +5 -0
- data/demo/mda/src/main/mda/dbDiscriminatorCache.rb +74 -0
- data/demo/mda/src/main/mda/javaMapping.rb-notused +302 -0
- data/demo/mda/src/main/mda/mda.rb +0 -0
- data/demo/mda/src/main/model/.project +11 -0
- data/demo/mda/src/main/model/model.emx +1779 -0
- data/demo/mda/src/main/model/model.emx.nt +3575 -0
- data/demo/mda/src/main/model/model.emx.nt_kb.pprj +1496 -0
- data/demo/mda/src/main/model/model.emx.nt_kb.rdf +25 -0
- data/demo/mda/src/main/model/model.emx.nt_kb.rdfs +2242 -0
- data/demo/mda/src/main/resources/formatter.properties +260 -0
- data/demo/pom.xml +102 -0
- data/demo/webapp/pom.xml +126 -0
- data/lib/ontomde-demo-flex.rb +1 -0
- metadata +99 -0
@@ -0,0 +1,24 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
cd `dirname $0`
|
4
|
+
|
5
|
+
D="`date +%Y-%m-%d-%H-%M`"
|
6
|
+
Z="deleted-$D.zip"
|
7
|
+
T="$D.timestamp"
|
8
|
+
L="$D.TOBEDELETED"
|
9
|
+
|
10
|
+
find ../domain/src -path '*/.svn/*' -prune \
|
11
|
+
-or \( -type d -not -path '*/.svn/*' -empty -delete \) \
|
12
|
+
-or -name "*.java" -exec grep --silent XMDA_BEGIN_reverse {} \; \( -exec grep --silent XMDA_BEGIN_reverse=\"yes\" {} \; -exec echo KEEP : {} \; \
|
13
|
+
-or -exec echo DELETE: {} \; \) | tee $L | grep -v DELETE
|
14
|
+
|
15
|
+
find ../webapp/src -path '*/.svn/*' -prune \
|
16
|
+
-or \( -type d -not -path '*/.svn/*' -empty -delete \) \
|
17
|
+
-or -name "*.java" -exec grep --silent XMDA_BEGIN_reverse {} \; \( -exec grep --silent XMDA_BEGIN_reverse=\"yes\" {} \; -exec echo KEEP : {} \; \
|
18
|
+
-or -exec echo DELETE: {} \; \) | tee $L | grep -v DELETE
|
19
|
+
|
20
|
+
#empty directory are removed by zip
|
21
|
+
cat $L | sed 's/^DELETE: *//g' | zip -m $Z -@
|
22
|
+
rm $L
|
23
|
+
|
24
|
+
echo "deleted file have been moved to $Z"
|
data/demo/mda/pom.xml
ADDED
@@ -0,0 +1,182 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
3
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
4
|
+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
5
|
+
<parent>
|
6
|
+
<artifactId>projectbase</artifactId>
|
7
|
+
<groupId>ontomde.sample</groupId>
|
8
|
+
<version>1.0-SNAPSHOT</version>
|
9
|
+
</parent>
|
10
|
+
<modelVersion>4.0.0</modelVersion>
|
11
|
+
<artifactId>mda</artifactId>
|
12
|
+
<packaging>pom</packaging>
|
13
|
+
<name>Model</name>
|
14
|
+
|
15
|
+
<build>
|
16
|
+
<defaultGoal>process-sources</defaultGoal>
|
17
|
+
<plugins>
|
18
|
+
<plugin>
|
19
|
+
<artifactId>maven-antrun-plugin</artifactId>
|
20
|
+
<executions>
|
21
|
+
<execution>
|
22
|
+
<id>generate-sources</id>
|
23
|
+
<phase>generate-sources</phase>
|
24
|
+
<goals>
|
25
|
+
<goal>run</goal>
|
26
|
+
</goals>
|
27
|
+
<configuration>
|
28
|
+
<tasks>
|
29
|
+
<echo>
|
30
|
+
-------- Ontomde Library
|
31
|
+
Version lib=${ontomde.lib.version} --------
|
32
|
+
</echo>
|
33
|
+
<echo>
|
34
|
+
- Generate Protege Data Files -
|
35
|
+
</echo>
|
36
|
+
|
37
|
+
<exec
|
38
|
+
executable="ontomde-umlToProtege${ontomde.extension}"
|
39
|
+
failonerror="true">
|
40
|
+
<arg value="${ontomde.generator.version.underscore}" /> <arg value="--no-verbose" />
|
41
|
+
<arg value="--nt" />
|
42
|
+
<arg
|
43
|
+
value="${basedir}/src/main/model/model.emx.nt" />
|
44
|
+
</exec>
|
45
|
+
<exec
|
46
|
+
executable="ontomde-java${ontomde.extension}"
|
47
|
+
failonerror="true">
|
48
|
+
<arg value="${ontomde.generator.version.underscore}" /> <arg value="--no-verbose" />
|
49
|
+
<arg value="--no-verbose" />
|
50
|
+
|
51
|
+
<arg value="-m" />
|
52
|
+
<arg value="jpa" />
|
53
|
+
<arg value="--ddl_mode" />
|
54
|
+
<!-- database will be created every time -->
|
55
|
+
<arg value="create" />
|
56
|
+
<!-- update -->
|
57
|
+
<!-- unzip is not available (manual unzip required) -->
|
58
|
+
<arg value="--useUnzip" />
|
59
|
+
<!-- a default implementation will be generate for every method when possible -->
|
60
|
+
<arg
|
61
|
+
value="--simulateNotImplementedMethods" />
|
62
|
+
<arg
|
63
|
+
value="--withAutoImplementProperty" />
|
64
|
+
<arg
|
65
|
+
value="--withAutoImplementOperation" />
|
66
|
+
<!-- deactivate enum as string -->
|
67
|
+
<arg value="--no-withEnumAsString" />
|
68
|
+
<!-- use uml datatype to java type mapping -->
|
69
|
+
<arg value="--load" />
|
70
|
+
<arg value="src/main/mda/mda.rb" />
|
71
|
+
<!-- run generator internal checks -->
|
72
|
+
<arg value="--message-check" />
|
73
|
+
<!-- use uml model source -->
|
74
|
+
<arg value="--nt" />
|
75
|
+
<arg
|
76
|
+
value="src/main/model/model.emx.nt" />
|
77
|
+
<!-- generate application in target directory -->
|
78
|
+
<arg value="--targetDir" />
|
79
|
+
<arg
|
80
|
+
value="${basedir}${file.separator}..${file.separator}" />
|
81
|
+
<arg
|
82
|
+
value="--webContentRelativeDir" />
|
83
|
+
<arg value="webapp/src/main/webapp" />
|
84
|
+
<arg value="--javaRelativeDir" />
|
85
|
+
<arg value="domain/src/main/java/" />
|
86
|
+
<arg value="--jpaConfigDir" />
|
87
|
+
<arg
|
88
|
+
value="domain/src/main/resources" />
|
89
|
+
<arg value="--webResourcesDir" />
|
90
|
+
<arg
|
91
|
+
value="webapp/src/main/resources/" />
|
92
|
+
<arg value="--javaFilePathRegexp" />
|
93
|
+
<arg
|
94
|
+
value="\-disabled-.methods\.@webapp/src/main/java/" />
|
95
|
+
<arg value="--javaFilePathRegexp" />
|
96
|
+
<arg
|
97
|
+
value="\.struts\.@webapp/src/main/java/" />
|
98
|
+
<arg value="--javaFilePathRegexp" />
|
99
|
+
<arg
|
100
|
+
value="\.as\.@webapp/src/main/flex/" />
|
101
|
+
|
102
|
+
<arg value="--no-logFileWrite" />
|
103
|
+
<arg value="--dbTypeDiscriminator" />
|
104
|
+
<arg value="int" />
|
105
|
+
<arg value="--load" />
|
106
|
+
<arg
|
107
|
+
value="src/main/mda/dbDiscriminatorCache.rb" />
|
108
|
+
<arg value="--load"/>
|
109
|
+
<arg value="src/main/mda/customDataTypes.rb"/>
|
110
|
+
<arg
|
111
|
+
value="--dbDiscriminatorCacheRelFile" />
|
112
|
+
<arg
|
113
|
+
value="src/main/mda/dbDiscriminatorCache.rb" />
|
114
|
+
<arg
|
115
|
+
value="--no-generateAntBuildFile" />
|
116
|
+
<arg value="--struts" />
|
117
|
+
<arg value="--flex" />
|
118
|
+
<arg value="--generateXMLStrutsForm" />
|
119
|
+
<arg value="--backTrace" />
|
120
|
+
<arg value="--testDataRDF" />
|
121
|
+
<arg value="src/main/model/model.emx.nt_kb.rdf" />
|
122
|
+
<!-- url should be changed url as desired -->
|
123
|
+
<arg value="--rsm6WebDocURI"/> <arg value="../umldoc/"/>
|
124
|
+
</exec>
|
125
|
+
|
126
|
+
<!--
|
127
|
+
<copy
|
128
|
+
todir="../webapp/src/main/webapp">
|
129
|
+
<fileset
|
130
|
+
dir="../${ontomde.home}/shared/JavaProject-WebContent" />
|
131
|
+
</copy>
|
132
|
+
<copy
|
133
|
+
todir="../webapp/src/main/webapp/WEB-INF">
|
134
|
+
<fileset
|
135
|
+
dir="../${ontomde.home}/shared/JavaProject-WEB-INF" />
|
136
|
+
</copy>
|
137
|
+
<copy
|
138
|
+
file="../${ontomde.home}/shared/JavaProject-java/displayTag.properties"
|
139
|
+
todir="../webapp/src/main/resources">
|
140
|
+
</copy>
|
141
|
+
<copy
|
142
|
+
file="../${ontomde.home}/shared/JavaProject-java/contextConfigDerby.properties-sample"
|
143
|
+
tofile="../webapp/src/main/resources/contextConfigDerby.properties" />
|
144
|
+
-->
|
145
|
+
</tasks>
|
146
|
+
</configuration>
|
147
|
+
</execution>
|
148
|
+
|
149
|
+
</executions>
|
150
|
+
</plugin>
|
151
|
+
<!--
|
152
|
+
<plugin>
|
153
|
+
<groupId>ontomde</groupId>
|
154
|
+
<artifactId>formatter-maven-plugin</artifactId>
|
155
|
+
<configuration>
|
156
|
+
<formatterConfigFile>${basedir}\src\main\resources\formatter.properties</formatterConfigFile>
|
157
|
+
<javaDirs>
|
158
|
+
<javaDir>${basedir}\..\domain\src\main\java</javaDir>
|
159
|
+
<javaDir>${basedir}\..\webapp\src\main\java</javaDir>
|
160
|
+
</javaDirs>
|
161
|
+
</configuration>
|
162
|
+
<executions>
|
163
|
+
<execution>
|
164
|
+
<id>format-sources</id>
|
165
|
+
<phase>process-sources</phase>
|
166
|
+
<goals>
|
167
|
+
<goal>formatter</goal>
|
168
|
+
</goals>
|
169
|
+
</execution>
|
170
|
+
|
171
|
+
</executions>
|
172
|
+
</plugin>
|
173
|
+
-->
|
174
|
+
|
175
|
+
</plugins>
|
176
|
+
</build>
|
177
|
+
|
178
|
+
<properties>
|
179
|
+
|
180
|
+
</properties>
|
181
|
+
</project>
|
182
|
+
|
@@ -0,0 +1,74 @@
|
|
1
|
+
# saved discriminator numbers
|
2
|
+
# This file is read and rewritten by generator
|
3
|
+
def declarePredefinedDiscrimators()
|
4
|
+
# first parameter is java qualified class name
|
5
|
+
# second parameter is the identifier used in database
|
6
|
+
# when different java type are stored in a
|
7
|
+
# single table and need to be differenciated.
|
8
|
+
db_disc("package1.AdresseType2",0)
|
9
|
+
db_disc("package1.Contrat",1)
|
10
|
+
db_disc("xmda.test.methods.UserDatagetsession_1MPC",2)
|
11
|
+
db_disc("package1.Session",3)
|
12
|
+
db_disc("xmda.test.methods.UserDatagetDUPONT1MPC",4)
|
13
|
+
db_disc("xmda.test.methods.UserDatagetDUPONT2MPC",5)
|
14
|
+
db_disc("package1.AdresseType1",6)
|
15
|
+
db_disc("package1.Client",7)
|
16
|
+
db_disc("xmda.test.UserData",9)
|
17
|
+
db_disc("package1.Adresse",10)
|
18
|
+
db_disc("xmda.test.methods.UserDatainit__ns_8_strutsAndTest_emx_nt_kb_Instance_10002MPC",14)
|
19
|
+
db_disc("package1.Femme",15)
|
20
|
+
db_disc("package1.Homme",16)
|
21
|
+
db_disc("xmda.test.methods.UserDatainitDUPONT2MPC",17)
|
22
|
+
db_disc("xmda.test.methods.UserDatainitsession_1MPC",18)
|
23
|
+
db_disc("xmda.test.methods.UserDatainitDUPONT1MPC",19)
|
24
|
+
db_disc("package1.methods.ClientajoutRapideContratMPC",20)
|
25
|
+
db_disc("java.lang.Class",21)
|
26
|
+
db_disc("com.jbpm.wrapper.process.Process",22)
|
27
|
+
db_disc("package1.Deliver",25)
|
28
|
+
db_disc("xmda.bpm.client.Process<>",30)
|
29
|
+
db_disc("package1.DeliverBis",31)
|
30
|
+
db_disc("xmda.bpm.client.Process<String>",32)
|
31
|
+
db_disc("package1.GraphVizDemo",33)
|
32
|
+
db_disc("package1.BinaryFile",34)
|
33
|
+
end
|
34
|
+
# ###########################
|
35
|
+
# END OF USER MODIFIABLE ZONE
|
36
|
+
# ###########################
|
37
|
+
|
38
|
+
|
39
|
+
|
40
|
+
# Conversion to model URI
|
41
|
+
def db_disc(k,v)
|
42
|
+
::Muml_Class::DB_DISCRIMINATOR[::Muml_Class::DB_URI_ALIAS[k]]=v
|
43
|
+
end
|
44
|
+
::Muml_Class::DB_URI_ALIAS.merge!({
|
45
|
+
%{com.jbpm.wrapper.process.Process} => %{com.jbpm.wrapper.process.Process} ,
|
46
|
+
%{java.lang.Class} => %{java.lang.Class} ,
|
47
|
+
%{package1.Deliver} => %{ukb__BZ1m8Ja5Edy8MdcZyeb5Kw_proc} ,
|
48
|
+
%{package1.Femme} => %{ukb__DmkocIC5Edykv_1FYm8uuQ} ,
|
49
|
+
%{package1.AdresseType1} => %{ukb__OwYN4EDQEdyns9CNPlmfXw} ,
|
50
|
+
%{package1.Adresse} => %{ukb__RHhQkDuPEdyltIorAFYEcg} ,
|
51
|
+
%{package1.AdresseType2} => %{ukb__VQg6EEDQEdyns9CNPlmfXw} ,
|
52
|
+
%{package1.DeliverBis} => %{ukb__XwnHEIu1EdyxkaPAgImFEg} ,
|
53
|
+
%{package1.Homme} => %{ukb___gYPIIC4Edykv_1FYm8uuQ} ,
|
54
|
+
%{package1.BinaryFile} => %{ukb__gLWKwKKKEdy9rpjqfOC8lg} ,
|
55
|
+
%{package1.Session} => %{ukb__jQ4fIDuOEdyltIorAFYEcg} ,
|
56
|
+
%{package1.Contrat} => %{ukb__p4-NcDuOEdyltIorAFYEcg} ,
|
57
|
+
%{package1.Client} => %{ukb__rtzBEDuOEdyltIorAFYEcg} ,
|
58
|
+
%{package1.methods.ClientajoutRapideContratMPC} => %{ukb__rtzBEDuOEdyltIorAFYEcgukb__ozRUMDuPEdyltIorAFYEcg_mpc} ,
|
59
|
+
%{package1.GraphVizDemo} => %{ukb__xEb28MkaEdyiw7_cul5zvw} ,
|
60
|
+
%{xmda.bpm.client.Process<>} => %{xmda.bpm.client.Process<>} ,
|
61
|
+
%{xmda.bpm.client.Process<String>} => %{xmda.bpm.client.Process<String>} ,
|
62
|
+
%{xmda.test.UserData} => %{xmda.test.UserData} ,
|
63
|
+
%{xmda.test.methods.UserDatagetDUPONT1MPC} => %{xmda.test.UserDatagetDUPONT1_mpc} ,
|
64
|
+
%{xmda.test.methods.UserDatagetDUPONT2MPC} => %{xmda.test.UserDatagetDUPONT2_mpc} ,
|
65
|
+
%{xmda.test.methods.UserDatagetsession_1MPC} => %{xmda.test.UserDatagetsession_1_mpc} ,
|
66
|
+
%{xmda.test.methods.UserDatainit__ns_8_strutsAndTest_emx_nt_kb_Instance_10002MPC} => %{xmda.test.UserDatainit__ns_8_strutsAndTest_emx_nt_kb_Instance_10002_mpc} ,
|
67
|
+
%{xmda.test.methods.UserDatainitDUPONT1MPC} => %{xmda.test.UserDataxmda.test.UserDatainitDUPONT1_mpc} ,
|
68
|
+
%{xmda.test.methods.UserDatainitDUPONT2MPC} => %{xmda.test.UserDataxmda.test.UserDatainitDUPONT2_mpc} ,
|
69
|
+
%{xmda.test.methods.UserDatainitsession_1MPC} => %{xmda.test.UserDataxmda.test.UserDatainitsession_1_mpc} ,
|
70
|
+
})
|
71
|
+
declarePredefinedDiscrimators();
|
72
|
+
#free ressources
|
73
|
+
def declarePredefinedDiscrimators()
|
74
|
+
end
|
@@ -0,0 +1,302 @@
|
|
1
|
+
#Template used for jsp input field generation
|
2
|
+
|
3
|
+
#wrapper to easylly create a new datatype mapping
|
4
|
+
#* umlDataTypeName is the name of the data type in source uml model
|
5
|
+
#* baseMapping is the base definition mapping to derive from
|
6
|
+
#* regexp is the string regexp used for display
|
7
|
+
def addDataTypeMapping(umlDataTypeName,baseMapping,regexp=nil,&block)
|
8
|
+
rubyName=umlDataTypeName.tr('^a-zA-Z0-9','_')
|
9
|
+
s=%{
|
10
|
+
class Java_mapping_#{rubyName} < #{baseMapping.name}
|
11
|
+
include Singleton
|
12
|
+
def appliesTo?(datatype)
|
13
|
+
return datatype.uml_name.to_s=="#{umlDataTypeName}"
|
14
|
+
end
|
15
|
+
#{regexp.nil? ? "" : %{
|
16
|
+
def getValidationRegexp
|
17
|
+
return /#{regexp.source}/
|
18
|
+
end
|
19
|
+
}
|
20
|
+
}
|
21
|
+
end
|
22
|
+
Java_mapping_#{rubyName}.class_eval( &block ) unless block.nil?
|
23
|
+
|
24
|
+
Java_mapping_#{rubyName}.instance #register
|
25
|
+
}
|
26
|
+
t=eval s
|
27
|
+
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
class Java_mapping
|
32
|
+
include Singleton
|
33
|
+
def getMappings
|
34
|
+
return @@types
|
35
|
+
end
|
36
|
+
@@types=Array.new
|
37
|
+
def initialize
|
38
|
+
return if self.class==Java_mapping
|
39
|
+
@@types << self
|
40
|
+
log.debug { %{registered(##{@@types.size}): #{self.class}} }
|
41
|
+
end
|
42
|
+
#returns true if this templates applies to datatype
|
43
|
+
def appliesTo?(datatype)
|
44
|
+
# inheriting class should redefine this method
|
45
|
+
log.error %{appliesTo? not implemented for #{self.class}}
|
46
|
+
return false
|
47
|
+
end
|
48
|
+
def getTemplate(datatype)
|
49
|
+
@@types.each {|t|
|
50
|
+
next unless t.appliesTo?(datatype)
|
51
|
+
return t
|
52
|
+
}
|
53
|
+
if !datatype.context[:silentlyForceUnknownDatatypeToString,false]
|
54
|
+
msg= %{No template #{self.class} found for datatype "#{datatype}"}
|
55
|
+
log.error msg unless log_already_displayed?(msg)
|
56
|
+
end
|
57
|
+
|
58
|
+
return Java_mapping_Text.instance
|
59
|
+
#return Java_mapping_error.instance
|
60
|
+
end
|
61
|
+
|
62
|
+
def getJavaType
|
63
|
+
# inheriting class should redefine this method
|
64
|
+
log.error %{getJavaType not implemented for #{self.class}}
|
65
|
+
return %{/* TODO: implement ruby getJavaType for #{self.class}*/}
|
66
|
+
end
|
67
|
+
|
68
|
+
# max length of this element represented as a string
|
69
|
+
attr :maxStringLength
|
70
|
+
attr_writer :maxStringLength
|
71
|
+
@maxStringLength=nil
|
72
|
+
|
73
|
+
def getValidationRegexp
|
74
|
+
#log.error %{getValidationRegexp not implemented for #{self.class}}
|
75
|
+
return nil #%{/* TODO: implement ruby getValidationRegexp for #{self.class}*/}
|
76
|
+
end
|
77
|
+
end
|
78
|
+
class Java_mapping_Text < Java_mapping
|
79
|
+
include Singleton
|
80
|
+
|
81
|
+
#default string length
|
82
|
+
@maxStringLength=10
|
83
|
+
|
84
|
+
MATCHING_UML_NAME=["String","string"]
|
85
|
+
#MATCHING_JAVA_NAME=["String","java.lang.String"]
|
86
|
+
def appliesTo?(datatype)
|
87
|
+
return true if MATCHING_UML_NAME.include?(datatype.uml_name_one)
|
88
|
+
#return true if MATCHING_JAVA_NAME.include?(datatype.java_qualifiedName)
|
89
|
+
return false
|
90
|
+
end
|
91
|
+
|
92
|
+
def getJavaType
|
93
|
+
return "java.lang.String"
|
94
|
+
end
|
95
|
+
end
|
96
|
+
class Java_mapping_Ordinal < Java_mapping_Text
|
97
|
+
include Singleton
|
98
|
+
end
|
99
|
+
|
100
|
+
class Java_mapping_Integer < Java_mapping_Ordinal
|
101
|
+
include Singleton
|
102
|
+
MATCHING_UML_NAME=["integer","Integer","int"]
|
103
|
+
#MATCHING_JAVA_NAME=[]
|
104
|
+
def appliesTo?(datatype)
|
105
|
+
return true if MATCHING_UML_NAME.include?(datatype.uml_name_one)
|
106
|
+
# return true if MATCHING_JAVA_NAME.include?(datatype.java_qualifiedName)
|
107
|
+
return false
|
108
|
+
end
|
109
|
+
|
110
|
+
|
111
|
+
def getJavaType
|
112
|
+
return "int"
|
113
|
+
end
|
114
|
+
|
115
|
+
end
|
116
|
+
class Java_mapping_Long < Java_mapping_Ordinal
|
117
|
+
include Singleton
|
118
|
+
MATCHING_UML_NAME=["long"]
|
119
|
+
#MATCHING_JAVA_NAME=[]
|
120
|
+
def appliesTo?(datatype)
|
121
|
+
return true if MATCHING_UML_NAME.include?(datatype.uml_name_one)
|
122
|
+
# return true if MATCHING_JAVA_NAME.include?(datatype.java_qualifiedName)
|
123
|
+
return false
|
124
|
+
end
|
125
|
+
def getJavaType
|
126
|
+
return "long"
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
|
131
|
+
class Java_mapping_File < Java_mapping
|
132
|
+
include Singleton
|
133
|
+
MATCHING_UML_NAME=["file"]
|
134
|
+
def appliesTo?(datatype)
|
135
|
+
return false unless datatype.kind_of?(Muml_DataType)
|
136
|
+
return true if MATCHING_UML_NAME.include?(datatype.uml_name_one)
|
137
|
+
#return datatype.struts_isBlob?
|
138
|
+
#return ["image"].include?(datatype.java_qualifiedName)
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
class Java_mapping_Boolean < Java_mapping
|
143
|
+
include Singleton
|
144
|
+
MATCHING_UML_NAME=["Boolean"]
|
145
|
+
#MATCHING_JAVA_NAME=[]
|
146
|
+
def appliesTo?(datatype)
|
147
|
+
return true if MATCHING_UML_NAME.include?(datatype.uml_name_one)
|
148
|
+
# return true if MATCHING_JAVA_NAME.include?(datatype.java_qualifiedName)
|
149
|
+
return false
|
150
|
+
end
|
151
|
+
|
152
|
+
#name of the key used by struts to referece
|
153
|
+
#current bean in session.
|
154
|
+
STRUTS_BEAN_KEY= "org.apache.struts.taglib.html.BEAN";
|
155
|
+
|
156
|
+
|
157
|
+
def getJavaType
|
158
|
+
return "boolean"
|
159
|
+
end
|
160
|
+
|
161
|
+
end
|
162
|
+
|
163
|
+
#struts jsp template for a timestamp datatype.
|
164
|
+
#A timestamp is a precise periode in time, including date,hours,minutes and seconds.
|
165
|
+
#NOTE:
|
166
|
+
# "Date" datatype name is discourage because it is ambiguous.
|
167
|
+
# (a java date is a timestamp)
|
168
|
+
# Calendar and TimeStamp should be prefered.
|
169
|
+
class Java_mapping_TimeStamp < Java_mapping
|
170
|
+
include Singleton
|
171
|
+
MATCHING_UML_NAME=["TimeStamp","Date"]
|
172
|
+
#MATCHING_JAVA_NAME=[]
|
173
|
+
def appliesTo?(datatype)
|
174
|
+
return true if MATCHING_UML_NAME.include?(datatype.uml_name_one)
|
175
|
+
#return true if MATCHING_JAVA_NAME.include?(datatype.java_qualifiedName)
|
176
|
+
return false
|
177
|
+
end
|
178
|
+
def getValidationRegexp
|
179
|
+
return nil
|
180
|
+
end
|
181
|
+
def getJavaType
|
182
|
+
return "java.util.Date"
|
183
|
+
end
|
184
|
+
|
185
|
+
end
|
186
|
+
|
187
|
+
#struts jsp template for a Calendar datatype.
|
188
|
+
#A Calendar datatype is a calendar date, not including hours,minutes and seconds
|
189
|
+
#A Calendar is not to be mistaken for a TimeStamp
|
190
|
+
#NOTE:
|
191
|
+
# "Date" datatype name is not used because it is ambiguous.
|
192
|
+
# Calendar and TimeStamp are used instead
|
193
|
+
class Java_mapping_Calendar < Java_mapping
|
194
|
+
include Singleton
|
195
|
+
MATCHING_UML_NAME=["Calendar"]
|
196
|
+
#MATCHING_JAVA_NAME=[]
|
197
|
+
def appliesTo?(datatype)
|
198
|
+
return true if MATCHING_UML_NAME.include?(datatype.uml_name_one)
|
199
|
+
#return true if MATCHING_JAVA_NAME.include?(datatype.java_qualifiedName)
|
200
|
+
return false
|
201
|
+
end
|
202
|
+
|
203
|
+
def getValidationRegexp
|
204
|
+
return nil
|
205
|
+
end
|
206
|
+
def getJavaType
|
207
|
+
return "java.util.Date"
|
208
|
+
end
|
209
|
+
|
210
|
+
end
|
211
|
+
|
212
|
+
|
213
|
+
|
214
|
+
|
215
|
+
class Java_mapping_GenericClass < Java_mapping
|
216
|
+
include Singleton
|
217
|
+
def appliesTo?(datatype)
|
218
|
+
return false if datatype.kind_of?(Muml_Enumeration)
|
219
|
+
return false if datatype.kind_of?(Muml_DataType)
|
220
|
+
#return true if datatype.kind_of?(Muml_Class)
|
221
|
+
return true
|
222
|
+
end
|
223
|
+
|
224
|
+
def getFormCopyTo(field)
|
225
|
+
a=field
|
226
|
+
if a.umlx_oneSide?
|
227
|
+
return %{_to.set#{a.java_NameBean}(this.get#{a.java_NameBean}().compareTo("nil")==0 ? null : #{a.uml_type_one.java_DAOClass_one.java_qualifiedName}.find(Long.parseLong(this.get#{a.java_NameBean}())));\n}
|
228
|
+
else # many
|
229
|
+
cm=a.java_getCollectionMapping
|
230
|
+
return <<END333
|
231
|
+
{ // UML: #{field.uml_name}
|
232
|
+
String[] src=this.get#{a.java_NameBean}();
|
233
|
+
#{cm.addCollectionInterface(a.uml_type_one.java_qualifiedName)} newCol= #{cm.addNew(a.uml_type_one.java_qualifiedName)};
|
234
|
+
int max=src==null ? 0 : src.length;
|
235
|
+
#{a.uml_type_one.java_qualifiedName} item=null;
|
236
|
+
for(int i=0; i<max;i++) {
|
237
|
+
//log.error("loading : "+src[i]);
|
238
|
+
if(src[i]==null) continue;
|
239
|
+
item=#{a.uml_type_one.java_DAOClass_one.java_qualifiedName}.find(Long.parseLong(src[i]));
|
240
|
+
newCol.add(item);
|
241
|
+
}
|
242
|
+
_to.set#{a.java_NameBean}(newCol);
|
243
|
+
}
|
244
|
+
END333
|
245
|
+
end
|
246
|
+
end
|
247
|
+
def getFormInitFrom(field)
|
248
|
+
a=field
|
249
|
+
if a.umlx_oneSide?
|
250
|
+
return %{this.set#{a.java_NameBean}(_from.get#{a.java_NameBean}()==null? "nil" : Long.toString(_from.get#{a.java_NameBean}().getId()));\n}
|
251
|
+
else
|
252
|
+
return %{
|
253
|
+
{ /*STRUTS:2001*/
|
254
|
+
this.set#{a.java_NameBean}(null);
|
255
|
+
Iterator<?> iter=_from.get#{a.java_NameBean}().iterator();
|
256
|
+
#{a.uml_type_one.java_qualifiedName} item=null;
|
257
|
+
while(iter.hasNext()){
|
258
|
+
item=(#{a.uml_type_one.java_qualifiedName})iter.next();
|
259
|
+
this.add#{a.java_NameBean}(Long.toString(item.getId()));
|
260
|
+
}
|
261
|
+
}
|
262
|
+
}
|
263
|
+
end
|
264
|
+
end
|
265
|
+
def getJavaType
|
266
|
+
mkfljmlkdq
|
267
|
+
end
|
268
|
+
|
269
|
+
end
|
270
|
+
|
271
|
+
class Java_mapping_GenericEnum < Java_mapping
|
272
|
+
include Singleton
|
273
|
+
def appliesTo?(datatype)
|
274
|
+
return true if datatype.kind_of?(Muml_Enumeration)
|
275
|
+
return false
|
276
|
+
end
|
277
|
+
|
278
|
+
|
279
|
+
NULL_ENUM_VALUE_AS_STRING="nil"
|
280
|
+
def getFormCopyTo(field)
|
281
|
+
a=field
|
282
|
+
return %{_to.set#{a.java_NameBean}(this.get#{a.java_NameBean}().compareTo("#{NULL_ENUM_VALUE_AS_STRING}")!=0 ? Enum.valueOf(#{a.uml_type_one.java_qualifiedName}.class,this.get#{a.java_NameBean}()):null);\n}
|
283
|
+
end
|
284
|
+
def getFormInitFrom(field)
|
285
|
+
#return "this.set#{field.java_NameBean}(_from.get#{field.java_NameBean}()==null ? -1 :_from.get#{field.java_NameBean}().ordinal());\n"
|
286
|
+
return %{this.set#{field.java_NameBean}(_from.get#{field.java_NameBean}()==null ? "#{NULL_ENUM_VALUE_AS_STRING}" :_from.get#{field.java_NameBean}().name());\n}
|
287
|
+
end
|
288
|
+
|
289
|
+
|
290
|
+
end
|
291
|
+
Java_mapping_GenericEnum.instance #register
|
292
|
+
|
293
|
+
Java_mapping_Calendar.instance #register
|
294
|
+
Java_mapping_Text.instance #register
|
295
|
+
Java_mapping_File.instance #register
|
296
|
+
Java_mapping_Boolean.instance #register
|
297
|
+
Java_mapping_TimeStamp.instance #register
|
298
|
+
Java_mapping_GenericClass.instance #register
|
299
|
+
Java_mapping_Long.instance #register
|
300
|
+
Java_mapping_Integer.instance #register
|
301
|
+
|
302
|
+
|