ontomde-demo-flex 1.0.6
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.
- 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
|
+
|