You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by jg...@apache.org on 2008/10/10 22:08:12 UTC
svn commit: r703569 [1/6] - in /ibatis/trunk/java/tools/ibator/core: build/
devlib/ doc/ src/org/apache/ibatis/ibator/api/
src/org/apache/ibatis/ibator/config/ src/org/apache/ibatis/ibator/config/xml/
src/org/apache/ibatis/ibator/generator/ src/org/apa...
Author: jgbutler
Date: Fri Oct 10 13:08:10 2008
New Revision: 703569
URL: http://svn.apache.org/viewvc?rev=703569&view=rev
Log:
[ibator] initial checkin of ibator refactoring. more to come.
Added:
ibatis/trunk/java/tools/ibator/core/build/ant.bat
ibatis/trunk/java/tools/ibator/core/devlib/ant-1.7.1.jar (with props)
ibatis/trunk/java/tools/ibator/core/devlib/ant-junit-1.7.1.jar (with props)
ibatis/trunk/java/tools/ibator/core/devlib/ant-launcher-1.7.1.jar (with props)
ibatis/trunk/java/tools/ibator/core/devlib/ant-nodeps-1.7.1.jar (with props)
ibatis/trunk/java/tools/ibator/core/devlib/ant-trax-1.7.1.jar (with props)
ibatis/trunk/java/tools/ibator/core/doc/MigrationNotes.txt
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/IntrospectedColumn.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/AbstractGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/AbstractGeneratorImpl.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/JavaGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/XmlGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/IntrospectedTableIbatis2Impl.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/XmlConstants.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/dao/
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/dao/DAOGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/dao/elements/
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/dao/elements/CountByExampleMethodGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/dao/elements/DAOElementGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/dao/elements/DAOElementGeneratorBaseImpl.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/dao/elements/DeleteByExampleMethodGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/dao/elements/DeleteByPrimaryKeyMethodGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/dao/elements/InsertMethodGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/dao/elements/InsertSelectiveMethodGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/dao/elements/SelectByExampleWithBLOBsMethodGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/dao/elements/SelectByExampleWithoutBLOBsMethodGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/dao/elements/SelectByPrimaryKeyMethodGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/dao/elements/UpdateByExampleParmsInnerclassGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/dao/elements/UpdateByExampleSelectiveMethodGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/dao/elements/UpdateByExampleWithBLOBsMethodGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/dao/elements/UpdateByExampleWithoutBLOBsMethodGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/dao/elements/UpdateByPrimaryKeySelectiveMethodGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/dao/elements/UpdateByPrimaryKeyWithBLOBsMethodGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/dao/elements/UpdateByPrimaryKeyWithoutBLOBsMethodGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/dao/templates/
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/dao/templates/AbstractDAOTemplate.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/dao/templates/GenericCIDAOTemplate.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/dao/templates/GenericSIDAOTemplate.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/dao/templates/IbatisDAOTemplate.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/dao/templates/SpringDAOTemplate.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/model/
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/model/BaseModelClassGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/model/BaseRecordGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/model/ExampleGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/model/PrimaryKeyGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/model/RecordWithBLOBsGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/model/RootClassInfo.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/SqlMapGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/CountByExampleElementGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/DeleteByExampleElementGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/DeleteByPrimaryKeyElementGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/ExampleWhereClauseElementGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/InsertElementGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/InsertSelectiveElementGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/ResultMapWithBLOBsElementGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/ResultMapWithoutBLOBsElementGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/SelectByExampleWithBLOBsElementGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/SelectByExampleWithoutBLOBsElementGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/SelectByPrimaryKeyElementGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/UpdateByExampleSelectiveElementGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/UpdateByExampleWithBLOBsElementGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/UpdateByExampleWithoutBLOBsElementGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/UpdateByPrimaryKeySelectiveElementGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/UpdateByPrimaryKeyWithBLOBsElementGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/UpdateByPrimaryKeyWithoutBLOBsElementGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/XmlElementGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/generator/ibatis2/sqlmap/elements/XmlElementGeneratorBaseImpl.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/internal/types/JdbcTypeNameTranslator.java
Removed:
ibatis/trunk/java/tools/ibator/core/devlib/ant.jar
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/DAOGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/JavaModelGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/SqlMapGenerator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/config/GeneratorSet.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/config/Java2GeneratorSet.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/config/Java5GeneratorSet.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/internal/db/ColumnDefinition.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/internal/db/ColumnDefinitions.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/internal/db/IntrospectedTableDefaultImpl.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/internal/java/
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/internal/sqlmap/
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/internal/types/ResolvedJavaType.java
Modified:
ibatis/trunk/java/tools/ibator/core/build/build.bat
ibatis/trunk/java/tools/ibator/core/build/build.xml
ibatis/trunk/java/tools/ibator/core/build/clean.bat
ibatis/trunk/java/tools/ibator/core/build/setupCmdLine.bat
ibatis/trunk/java/tools/ibator/core/build/version.properties
ibatis/trunk/java/tools/ibator/core/doc/ReleaseNotes.txt
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/FullyQualifiedTable.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/Ibator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/IbatorPlugin.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/IbatorPluginAdapter.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/IntrospectedTable.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/JavaTypeResolver.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/config/IbatorConfiguration.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/config/IbatorContext.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/config/JavaModelGeneratorConfiguration.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/config/SqlMapGeneratorConfiguration.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/config/xml/IbatorConfigurationParser.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/config/xml/ParserEntityResolver.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/config/xml/ibator-config_1_0.dtd
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/internal/IbatorObjectFactory.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/internal/IbatorPluginAggregator.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/internal/db/DatabaseIntrospector.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/internal/types/JavaTypeResolverDefaultImpl.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/internal/util/messages/messages.properties
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/plugins/EqualsHashCodePlugin.java
ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/plugins/SqlMapConfigPlugin.java
ibatis/trunk/java/tools/ibator/core/testJava2/ibatortest/java2/ibatorConfig.xml
ibatis/trunk/java/tools/ibator/core/testJava5/ibatortest/ibatorConfig.xml
Added: ibatis/trunk/java/tools/ibator/core/build/ant.bat
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/tools/ibator/core/build/ant.bat?rev=703569&view=auto
==============================================================================
--- ibatis/trunk/java/tools/ibator/core/build/ant.bat (added)
+++ ibatis/trunk/java/tools/ibator/core/build/ant.bat Fri Oct 10 13:08:10 2008
@@ -0,0 +1,2 @@
+
+%JAVA_HOME%\bin\java -classpath ..\devlib\ant-launcher-1.7.1.jar org.apache.tools.ant.launch.Launcher -buildfile build.xml %1
\ No newline at end of file
Modified: ibatis/trunk/java/tools/ibator/core/build/build.bat
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/tools/ibator/core/build/build.bat?rev=703569&r1=703568&r2=703569&view=diff
==============================================================================
--- ibatis/trunk/java/tools/ibator/core/build/build.bat (original)
+++ ibatis/trunk/java/tools/ibator/core/build/build.bat Fri Oct 10 13:08:10 2008
@@ -4,4 +4,4 @@
call setupCmdLine.bat
-ant -lib ../devlib
+call ant.bat buildIbator
Modified: ibatis/trunk/java/tools/ibator/core/build/build.xml
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/tools/ibator/core/build/build.xml?rev=703569&r1=703568&r2=703569&view=diff
==============================================================================
--- ibatis/trunk/java/tools/ibator/core/build/build.xml (original)
+++ ibatis/trunk/java/tools/ibator/core/build/build.xml Fri Oct 10 13:08:10 2008
@@ -95,8 +95,7 @@
deprecation="true"
debug="true"
source="1.5"
- target="1.5"
- classpath="../devlib/ant.jar"/>
+ target="1.5"/>
</target>
<target name="build.ibator.jar" depends="build.compile">
@@ -151,8 +150,8 @@
<javac destdir="${ibator.test.bin.dir}"
deprecation="true"
debug="true"
- source="1.4"
- target="1.4">
+ source="1.5"
+ target="1.5">
<src path="${basedir}/../test"/>
<classpath>
<pathelement location="${deploy.files}/ibator.jar"/>
@@ -184,7 +183,7 @@
<mkdir dir="${reports.junit}"/>
<mkdir dir="${work.buildsupport}"/>
- <!-- compile our build support classes -->
+ <!-- compile our build support classes -->
<javac destdir="${work.buildsupport}"
deprecation="true"
debug="true"
@@ -332,14 +331,14 @@
</batchtest>
<classpath>
<pathelement location="${generated.bin.dir.java2}"/>
- <pathelement location="${basedir}/../devlib/ibatis-2.3.3.720.jar" />
- <pathelement location="${basedir}/../devlib/hsqldb1.8.0.7.jar" />
- <pathelement location="${basedir}/../devlib/commons-logging-1.1.1.jar" />
- <pathelement location="${basedir}/../devlib/spring-beans-2.5.5.jar" />
- <pathelement location="${basedir}/../devlib/spring-core-2.5.5.jar" />
- <pathelement location="${basedir}/../devlib/spring-jdbc-2.5.5.jar" />
- <pathelement location="${basedir}/../devlib/spring-orm-2.5.5.jar" />
- <pathelement location="${basedir}/../devlib/spring-tx-2.5.5.jar" />
+ <pathelement location="${basedir}/../devlib/ibatis-2.3.3.720.jar" />
+ <pathelement location="${basedir}/../devlib/hsqldb1.8.0.7.jar" />
+ <pathelement location="${basedir}/../devlib/commons-logging-1.1.1.jar" />
+ <pathelement location="${basedir}/../devlib/spring-beans-2.5.5.jar" />
+ <pathelement location="${basedir}/../devlib/spring-core-2.5.5.jar" />
+ <pathelement location="${basedir}/../devlib/spring-jdbc-2.5.5.jar" />
+ <pathelement location="${basedir}/../devlib/spring-orm-2.5.5.jar" />
+ <pathelement location="${basedir}/../devlib/spring-tx-2.5.5.jar" />
</classpath>
</junit>
</target>
@@ -354,14 +353,14 @@
</batchtest>
<classpath>
<pathelement location="${generated.bin.dir.java5}"/>
- <pathelement location="${basedir}/../devlib/ibatis-2.3.3.720.jar" />
- <pathelement location="${basedir}/../devlib/hsqldb1.8.0.7.jar" />
- <pathelement location="${basedir}/../devlib/commons-logging-1.1.1.jar" />
- <pathelement location="${basedir}/../devlib/spring-beans-2.5.5.jar" />
- <pathelement location="${basedir}/../devlib/spring-core-2.5.5.jar" />
- <pathelement location="${basedir}/../devlib/spring-jdbc-2.5.5.jar" />
- <pathelement location="${basedir}/../devlib/spring-orm-2.5.5.jar" />
- <pathelement location="${basedir}/../devlib/spring-tx-2.5.5.jar" />
+ <pathelement location="${basedir}/../devlib/ibatis-2.3.3.720.jar" />
+ <pathelement location="${basedir}/../devlib/hsqldb1.8.0.7.jar" />
+ <pathelement location="${basedir}/../devlib/commons-logging-1.1.1.jar" />
+ <pathelement location="${basedir}/../devlib/spring-beans-2.5.5.jar" />
+ <pathelement location="${basedir}/../devlib/spring-core-2.5.5.jar" />
+ <pathelement location="${basedir}/../devlib/spring-jdbc-2.5.5.jar" />
+ <pathelement location="${basedir}/../devlib/spring-orm-2.5.5.jar" />
+ <pathelement location="${basedir}/../devlib/spring-tx-2.5.5.jar" />
</classpath>
</junit>
</target>
@@ -376,8 +375,8 @@
</batchtest>
<classpath>
<pathelement location="${generated.source.dir.java5}"/>
- <pathelement location="${basedir}/../devlib/ibatis-2.3.1.710.jar" />
- <pathelement location="${basedir}/../devlib/hsqldb1.8.0.7.jar" />
+ <pathelement location="${basedir}/../devlib/ibatis-2.3.1.710.jar" />
+ <pathelement location="${basedir}/../devlib/hsqldb1.8.0.7.jar" />
</classpath>
</junit>
@@ -390,8 +389,8 @@
</batchtest>
<classpath>
<pathelement location="${generated.source.dir.java2}"/>
- <pathelement location="${basedir}/../devlib/ibatis-2.3.1.710.jar" />
- <pathelement location="${basedir}/../devlib/hsqldb1.8.0.7.jar" />
+ <pathelement location="${basedir}/../devlib/ibatis-2.3.1.710.jar" />
+ <pathelement location="${basedir}/../devlib/hsqldb1.8.0.7.jar" />
</classpath>
</junit>
</target>
Modified: ibatis/trunk/java/tools/ibator/core/build/clean.bat
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/tools/ibator/core/build/clean.bat?rev=703569&r1=703568&r2=703569&view=diff
==============================================================================
--- ibatis/trunk/java/tools/ibator/core/build/clean.bat (original)
+++ ibatis/trunk/java/tools/ibator/core/build/clean.bat Fri Oct 10 13:08:10 2008
@@ -4,4 +4,4 @@
call setupCmdLine.bat
-ant clean
+call ant.bat clean
Modified: ibatis/trunk/java/tools/ibator/core/build/setupCmdLine.bat
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/tools/ibator/core/build/setupCmdLine.bat?rev=703569&r1=703568&r2=703569&view=diff
==============================================================================
--- ibatis/trunk/java/tools/ibator/core/build/setupCmdLine.bat (original)
+++ ibatis/trunk/java/tools/ibator/core/build/setupCmdLine.bat Fri Oct 10 13:08:10 2008
@@ -1,10 +1,5 @@
rem Change the values in this file to the proper directories on your machine
-if defined ANT_HOME goto ant_home_defined
-set ANT_HOME=C:\JavaTools\apache-ant-1.6.5
-set PATH=%PATH%;%ANT_HOME%\bin;
-
-:ant_home_defined
if defined JAVA_HOME goto java_home_defined
set JAVA_HOME=C:\JavaTools\jdk1.5.0_11
Modified: ibatis/trunk/java/tools/ibator/core/build/version.properties
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/tools/ibator/core/build/version.properties?rev=703569&r1=703568&r2=703569&view=diff
==============================================================================
--- ibatis/trunk/java/tools/ibator/core/build/version.properties (original)
+++ ibatis/trunk/java/tools/ibator/core/build/version.properties Fri Oct 10 13:08:10 2008
@@ -1,4 +1,4 @@
#ibator build version info
-#Fri Aug 22 20:41:41 CDT 2008
+#Fri Oct 10 15:00:01 CDT 2008
version=1.2.0
-buildNum=582
+buildNum=612
Added: ibatis/trunk/java/tools/ibator/core/devlib/ant-1.7.1.jar
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/tools/ibator/core/devlib/ant-1.7.1.jar?rev=703569&view=auto
==============================================================================
Binary file - no diff available.
Propchange: ibatis/trunk/java/tools/ibator/core/devlib/ant-1.7.1.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: ibatis/trunk/java/tools/ibator/core/devlib/ant-junit-1.7.1.jar
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/tools/ibator/core/devlib/ant-junit-1.7.1.jar?rev=703569&view=auto
==============================================================================
Binary file - no diff available.
Propchange: ibatis/trunk/java/tools/ibator/core/devlib/ant-junit-1.7.1.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: ibatis/trunk/java/tools/ibator/core/devlib/ant-launcher-1.7.1.jar
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/tools/ibator/core/devlib/ant-launcher-1.7.1.jar?rev=703569&view=auto
==============================================================================
Binary file - no diff available.
Propchange: ibatis/trunk/java/tools/ibator/core/devlib/ant-launcher-1.7.1.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: ibatis/trunk/java/tools/ibator/core/devlib/ant-nodeps-1.7.1.jar
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/tools/ibator/core/devlib/ant-nodeps-1.7.1.jar?rev=703569&view=auto
==============================================================================
Binary file - no diff available.
Propchange: ibatis/trunk/java/tools/ibator/core/devlib/ant-nodeps-1.7.1.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: ibatis/trunk/java/tools/ibator/core/devlib/ant-trax-1.7.1.jar
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/tools/ibator/core/devlib/ant-trax-1.7.1.jar?rev=703569&view=auto
==============================================================================
Binary file - no diff available.
Propchange: ibatis/trunk/java/tools/ibator/core/devlib/ant-trax-1.7.1.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: ibatis/trunk/java/tools/ibator/core/doc/MigrationNotes.txt
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/tools/ibator/core/doc/MigrationNotes.txt?rev=703569&view=auto
==============================================================================
--- ibatis/trunk/java/tools/ibator/core/doc/MigrationNotes.txt (added)
+++ ibatis/trunk/java/tools/ibator/core/doc/MigrationNotes.txt Fri Oct 10 13:08:10 2008
@@ -0,0 +1,10 @@
+1. Attribute "generatorSet" removed from <ibatorContext>,
+ new attribute "targetJRE" with similar meaning
+
+2. introspectedTableImplementation removed from <ibatorContext>
+
+3. type attribute removed from <javaModelGenerator>, <sqlMapGenerator>
+
+4. type attribute changed meaning on <daoGenerator>
+
+5. JavaTypeResolver interface changed
Modified: ibatis/trunk/java/tools/ibator/core/doc/ReleaseNotes.txt
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/tools/ibator/core/doc/ReleaseNotes.txt?rev=703569&r1=703568&r2=703569&view=diff
==============================================================================
--- ibatis/trunk/java/tools/ibator/core/doc/ReleaseNotes.txt (original)
+++ ibatis/trunk/java/tools/ibator/core/doc/ReleaseNotes.txt Fri Oct 10 13:08:10 2008
@@ -5,6 +5,7 @@
1. Fixed the JavaTypeResolver so that an unsupported data type can be
overridden by configuration.
2. Fixed IBATIS-523 - bug in EqualsHashCodePlugin
+3. Fixed IBATIS-542 - upgrade build to Ant 1.7.1
Enhancements:
1. Ibator now includes a plugin machanism that you can use to extend or
@@ -13,12 +14,14 @@
ibator's built-in generators. Plugins are now the preferred method for
extending ibator and we recommend that you do not extend ibator's
built in generators unless absolutely necessary.
-2. Added support for runtimeCatalog and runtimeSchema properties to the
+2. Major refactoring of ibator internals. This has changed
+ the interface for overriding any of the supplied ibator generators.
+3. Added support for runtimeCatalog and runtimeSchema properties to the
table configuration. Thanks to Dan Turkenkopf for the idea and the
patch!
-3. Added abiliy to configure an implementation of IntrospectedTable interface.
+4. Added ability to configure an implementation of IntrospectedTable interface.
This to allow overriding of many default behaviors of ibator.
-4. New method - insertSelective
+5. New method - insertSelective
Changes:
Modified: ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/FullyQualifiedTable.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/FullyQualifiedTable.java?rev=703569&r1=703568&r2=703569&view=diff
==============================================================================
--- ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/FullyQualifiedTable.java (original)
+++ ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/FullyQualifiedTable.java Fri Oct 10 13:08:10 2008
@@ -65,7 +65,7 @@
*
* @param introspectedTableName the actual table name as returned from DatabaseMetaData
*
- * @param domainObjectName the configred domain object name for this table.
+ * @param domainObjectName the configured domain object name for this table.
* If nothing is configured, we'll build the domain object named based
* on the tableName or runtimeTableName.
*
Modified: ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/Ibator.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/Ibator.java?rev=703569&r1=703568&r2=703569&view=diff
==============================================================================
--- ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/Ibator.java (original)
+++ ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/Ibator.java Fri Oct 10 13:08:10 2008
@@ -192,9 +192,10 @@
int totalSteps = 0;
- for (IbatorContext ibatorContext : contextsToRun) {
- totalSteps += ibatorContext.getTotalSteps();
- }
+ // TODO...
+// for (IbatorContext ibatorContext : contextsToRun) {
+// totalSteps += ibatorContext.getTotalSteps();
+// }
callback.setNumberOfSubTasks(totalSteps);
Modified: ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/IbatorPlugin.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/IbatorPlugin.java?rev=703569&r1=703568&r2=703569&view=diff
==============================================================================
--- ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/IbatorPlugin.java (original)
+++ ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/IbatorPlugin.java Fri Oct 10 13:08:10 2008
@@ -25,7 +25,6 @@
import org.apache.ibatis.ibator.api.dom.xml.Document;
import org.apache.ibatis.ibator.api.dom.xml.XmlElement;
import org.apache.ibatis.ibator.config.IbatorContext;
-import org.apache.ibatis.ibator.internal.db.ColumnDefinition;
/**
* This interface defines methods that will be called by ibator at different
@@ -656,7 +655,7 @@
* @param topLevelClass the partially implemented model
* class. You can add additional imported classes to the
* implementation class if necessary.
- * @param columnDefinition ibator's class containing information
+ * @param introspectedColumn ibator's class containing information
* about the column related to this field as introspected from
* the database
* @param introspectedTable ibator's class containing information
@@ -666,7 +665,7 @@
* of multiple plugins, the first plugin returning false
* will disable the calling of further plugins.
*/
- boolean modelFieldGenerated(Field field, TopLevelClass topLevelClass, ColumnDefinition columnDefinition, IntrospectedTable introspectedTable);
+ boolean modelFieldGenerated(Field field, TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable);
/**
* This method is called after the getter, or accessor, method
@@ -677,7 +676,7 @@
* @param topLevelClass the partially implemented model
* class. You can add additional imported classes to the
* implementation class if necessary.
- * @param columnDefinition ibator's class containing information
+ * @param introspectedColumn ibator's class containing information
* about the column related to this field as introspected from
* the database
* @param introspectedTable ibator's class containing information
@@ -687,7 +686,7 @@
* of multiple plugins, the first plugin returning false
* will disable the calling of further plugins.
*/
- boolean modelGetterMethodGenerated(Method method, TopLevelClass topLevelClass, ColumnDefinition columnDefinition, IntrospectedTable introspectedTable);
+ boolean modelGetterMethodGenerated(Method method, TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable);
/**
* This method is called after the setter, or mutator, method
@@ -698,7 +697,7 @@
* @param topLevelClass the partially implemented model
* class. You can add additional imported classes to the
* implementation class if necessary.
- * @param columnDefinition ibator's class containing information
+ * @param introspectedColumn ibator's class containing information
* about the column related to this field as introspected from
* the database
* @param introspectedTable ibator's class containing information
@@ -708,7 +707,7 @@
* of multiple plugins, the first plugin returning false
* will disable the calling of further plugins.
*/
- boolean modelSetterMethodGenerated(Method method, TopLevelClass topLevelClass, ColumnDefinition columnDefinition, IntrospectedTable introspectedTable);
+ boolean modelSetterMethodGenerated(Method method, TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable);
/**
* This method is called after the primary key class is generated by
Modified: ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/IbatorPluginAdapter.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/IbatorPluginAdapter.java?rev=703569&r1=703568&r2=703569&view=diff
==============================================================================
--- ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/IbatorPluginAdapter.java (original)
+++ ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/IbatorPluginAdapter.java Fri Oct 10 13:08:10 2008
@@ -25,7 +25,6 @@
import org.apache.ibatis.ibator.api.dom.xml.Document;
import org.apache.ibatis.ibator.api.dom.xml.XmlElement;
import org.apache.ibatis.ibator.config.IbatorContext;
-import org.apache.ibatis.ibator.internal.db.ColumnDefinition;
/**
* This class includes no-operation methods for almost every method in the
@@ -198,11 +197,11 @@
return true;
}
- public boolean modelFieldGenerated(Field field, TopLevelClass topLevelClass, ColumnDefinition columnDefinition, IntrospectedTable introspectedTable) {
+ public boolean modelFieldGenerated(Field field, TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable) {
return true;
}
- public boolean modelGetterMethodGenerated(Method method, TopLevelClass topLevelClass, ColumnDefinition columnDefinition, IntrospectedTable introspectedTable) {
+ public boolean modelGetterMethodGenerated(Method method, TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable) {
return true;
}
@@ -214,7 +213,7 @@
return true;
}
- public boolean modelSetterMethodGenerated(Method method, TopLevelClass topLevelClass, ColumnDefinition columnDefinition, IntrospectedTable introspectedTable) {
+ public boolean modelSetterMethodGenerated(Method method, TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable) {
return true;
}
Added: ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/IntrospectedColumn.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/IntrospectedColumn.java?rev=703569&view=auto
==============================================================================
--- ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/IntrospectedColumn.java (added)
+++ ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/IntrospectedColumn.java Fri Oct 10 13:08:10 2008
@@ -0,0 +1,390 @@
+/*
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.apache.ibatis.ibator.api;
+
+import java.sql.Types;
+import java.util.StringTokenizer;
+
+import org.apache.ibatis.ibator.api.dom.java.FullyQualifiedJavaType;
+import org.apache.ibatis.ibator.config.IbatorContext;
+import org.apache.ibatis.ibator.internal.types.JdbcTypeNameTranslator;
+import org.apache.ibatis.ibator.internal.util.StringUtility;
+
+/**
+ * This class holds information about an introspected column. The
+ * class has utility methods useful for generating iBATIS objects.
+ *
+ * @author Jeff Butler
+ */
+public class IntrospectedColumn {
+ private String actualColumnName;
+
+ private int jdbcType;
+
+ private String jdbcTypeName;
+
+ private boolean nullable;
+
+ private int length;
+
+ private int scale;
+
+ private boolean identity;
+
+ private String javaProperty;
+
+ private FullyQualifiedJavaType fullyQualifiedJavaType;
+
+ private String tableAlias;
+
+ private String typeHandler;
+
+ private IbatorContext ibatorContext;
+
+ private boolean isColumnNameDelimited;
+
+ /**
+ * Constructs a Column definition. This object holds all the
+ * information about a column that is required to generate
+ * Java objects and SQL maps;
+ *
+ * @param tableAlias The specified table alias, or null. This
+ * value is used to rename and alias column names for select statements
+ */
+ public IntrospectedColumn(String tableAlias, IbatorContext ibatorContext) {
+ super();
+ this.tableAlias = tableAlias;
+ this.ibatorContext = ibatorContext;
+ }
+
+ public int getJdbcType() {
+ return jdbcType;
+ }
+
+ public void setJdbcType(int jdbcType) {
+ this.jdbcType = jdbcType;
+ }
+
+ public int getLength() {
+ return length;
+ }
+
+ public void setLength(int length) {
+ this.length = length;
+ }
+
+ public boolean isNullable() {
+ return nullable;
+ }
+
+ public void setNullable(boolean nullable) {
+ this.nullable = nullable;
+ }
+
+ public int getScale() {
+ return scale;
+ }
+
+ public void setScale(int scale) {
+ this.scale = scale;
+ }
+
+ /*
+ * This method is primarily used for debugging, so we don't externalize the strings
+ */
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+
+ sb.append("Actual Column Name: "); //$NON-NLS-1$
+ sb.append(actualColumnName);
+ sb.append(", JDBC Type: "); //$NON-NLS-1$
+ sb.append(jdbcType);
+ sb.append(", Nullable: "); //$NON-NLS-1$
+ sb.append(nullable);
+ sb.append(", Length: "); //$NON-NLS-1$
+ sb.append(length);
+ sb.append(", Scale: "); //$NON-NLS-1$
+ sb.append(scale);
+ sb.append(", Identity: "); //$NON-NLS-1$
+ sb.append(identity);
+
+ return sb.toString();
+ }
+
+ public void setActualColumnName(String actualColumnName) {
+ this.actualColumnName = actualColumnName;
+ isColumnNameDelimited = StringUtility.stringContainsSpace(actualColumnName);
+ }
+
+ /**
+ * @return Returns the identity.
+ */
+ public boolean isIdentity() {
+ return identity;
+ }
+
+ /**
+ * @param identity
+ * The identity to set.
+ */
+ public void setIdentity(boolean identity) {
+ this.identity = identity;
+ }
+
+ public boolean isBLOBColumn() {
+ String typeName = getJdbcTypeName();
+
+ return "BINARY".equals(typeName) || "BLOB".equals(typeName) //$NON-NLS-1$ //$NON-NLS-2$
+ || "CLOB".equals(typeName) || "LONGVARBINARY".equals(typeName) //$NON-NLS-1$ //$NON-NLS-2$
+ || "LONGVARCHAR".equals(typeName) || "VARBINARY".equals(typeName); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ public boolean isStringColumn() {
+ return fullyQualifiedJavaType.equals(
+ FullyQualifiedJavaType.getStringInstance());
+ }
+
+ public boolean isJdbcCharacterColumn() {
+ return jdbcType == Types.CHAR
+ || jdbcType == Types.CLOB
+ || jdbcType == Types.LONGVARCHAR
+ || jdbcType == Types.VARCHAR;
+ }
+
+ public String getJavaProperty() {
+ return getJavaProperty(null);
+ }
+
+ public String getJavaProperty(String prefix) {
+ if (prefix == null) {
+ return javaProperty;
+ }
+
+ StringBuilder sb = new StringBuilder();
+ sb.append(prefix);
+ sb.append(javaProperty);
+
+ return sb.toString();
+ }
+
+ public void setJavaProperty(String javaProperty) {
+ this.javaProperty = javaProperty;
+ }
+
+ /**
+ * The renamed column name for a select statement. If there
+ * is a table alias, the value will be alias_columnName. This is
+ * appropriate for use in a result map.
+ *
+ * @return the renamed column name
+ */
+ public String getRenamedColumnNameForResultMap() {
+ if (StringUtility.stringHasValue(tableAlias)) {
+ StringBuilder sb = new StringBuilder();
+
+ sb.append(tableAlias);
+ sb.append('_');
+ sb.append(actualColumnName);
+ return sb.toString();
+ } else {
+ return actualColumnName;
+ }
+ }
+
+ /**
+ * The phrase to use in a select list. If there
+ * is a table alias, the value will be
+ * "alias.columnName as alias_columnName"
+ *
+ * @return the proper phrase
+ */
+ public String getSelectListPhrase() {
+ if (StringUtility.stringHasValue(tableAlias)) {
+ StringBuilder sb = new StringBuilder();
+
+ sb.append(getAliasedEscapedColumnName());
+ sb.append(" as "); //$NON-NLS-1$
+ if (isColumnNameDelimited) {
+ sb.append(ibatorContext.getBeginningDelimiter());
+ }
+ sb.append(tableAlias);
+ sb.append('_');
+ sb.append(escapeStringForIbatis(actualColumnName));
+ if (isColumnNameDelimited) {
+ sb.append(ibatorContext.getEndingDelimiter());
+ }
+ return sb.toString();
+ } else {
+ return getEscapedColumnName();
+ }
+ }
+
+ public boolean isJDBCDateColumn() {
+ return fullyQualifiedJavaType.equals(FullyQualifiedJavaType.getDateInstance())
+ && "DATE".equalsIgnoreCase(jdbcTypeName); //$NON-NLS-1$
+ }
+
+ public boolean isJDBCTimeColumn() {
+ return fullyQualifiedJavaType.equals(FullyQualifiedJavaType.getDateInstance())
+ && "TIME".equalsIgnoreCase(jdbcTypeName); //$NON-NLS-1$
+ }
+
+ public String getIbatisFormattedParameterClause() {
+ return getIbatisFormattedParameterClause(null);
+ }
+
+ public String getIbatisFormattedParameterClause(String prefix) {
+ StringBuilder sb = new StringBuilder();
+
+ sb.append('#');
+ sb.append(getJavaProperty(prefix));
+
+ if (StringUtility.stringHasValue(typeHandler)) {
+ sb.append(",jdbcType="); //$NON-NLS-1$
+ sb.append(getJdbcTypeName());
+ sb.append(",handler="); //$NON-NLS-1$
+ sb.append(typeHandler);
+ } else {
+ sb.append(':');
+ sb.append(getJdbcTypeName());
+ }
+
+ sb.append('#');
+
+ return sb.toString();
+ }
+
+ public String getTypeHandler() {
+ return typeHandler;
+ }
+
+ public void setTypeHandler(String typeHandler) {
+ this.typeHandler = typeHandler;
+ }
+
+ private String escapeStringForIbatis(String s) {
+ StringTokenizer st = new StringTokenizer(s, "$#", true); //$NON-NLS-1$
+ StringBuilder sb = new StringBuilder();
+ while (st.hasMoreTokens()) {
+ String token = st.nextToken();
+ if ("$".equals(token)) { //$NON-NLS-1$
+ sb.append("$$"); //$NON-NLS-1$
+ } else if ("#".equals(token)) { //$NON-NLS-1$
+ sb.append("##"); //$NON-NLS-1$
+ } else {
+ sb.append(token);
+ }
+ }
+
+ return sb.toString();
+ }
+
+ public String getActualColumnName() {
+ return actualColumnName;
+ }
+
+ public String getEscapedColumnName() {
+ StringBuilder sb = new StringBuilder();
+ sb.append(escapeStringForIbatis(actualColumnName));
+
+ if (isColumnNameDelimited) {
+ sb.insert(0, ibatorContext.getBeginningDelimiter());
+ sb.append(ibatorContext.getEndingDelimiter());
+ }
+
+ return sb.toString();
+ }
+
+ /**
+ * The aliased column name for a select statement generated by the example clauses.
+ * This is not appropriate for selects in SqlMaps because the column is
+ * not escaped for iBATIS. If there
+ * is a table alias, the value will be alias.columnName.
+ *
+ * This method is used in the Example classes and the returned value will be
+ * in a Java string. So we need to escape double quotes if they are
+ * the delimiters.
+ *
+ * @return the aliased column name
+ */
+ public String getAliasedActualColumnName() {
+ StringBuilder sb = new StringBuilder();
+ if (StringUtility.stringHasValue(tableAlias)) {
+ sb.append(tableAlias);
+ sb.append('.');
+ }
+
+ if (isColumnNameDelimited) {
+ sb.append(StringUtility.escapeStringForJava(ibatorContext.getBeginningDelimiter()));
+ }
+
+ sb.append(actualColumnName);
+
+ if (isColumnNameDelimited) {
+ sb.append(StringUtility.escapeStringForJava(ibatorContext.getEndingDelimiter()));
+ }
+
+ return sb.toString();
+ }
+
+ /**
+ * Calculates the string to use in select phrases in SqlMaps.
+ *
+ * @return the aliased escaped column name
+ */
+ public String getAliasedEscapedColumnName() {
+ if (StringUtility.stringHasValue(tableAlias)) {
+ StringBuilder sb = new StringBuilder();
+
+ sb.append(tableAlias);
+ sb.append('.');
+ sb.append(getEscapedColumnName());
+ return sb.toString();
+ } else {
+ return getEscapedColumnName();
+ }
+ }
+
+ public void setColumnNameDelimited(boolean isColumnNameDelimited) {
+ this.isColumnNameDelimited = isColumnNameDelimited;
+ }
+
+ public boolean isColumnNameDelimited() {
+ return isColumnNameDelimited;
+ }
+
+ public String getJdbcTypeName() {
+ if (jdbcTypeName == null) {
+ jdbcTypeName = JdbcTypeNameTranslator.getJdbcTypeName(jdbcType);
+ }
+
+ return jdbcTypeName;
+ }
+
+ public void setJdbcTypeName(String jdbcTypeName) {
+ this.jdbcTypeName = jdbcTypeName;
+ }
+
+ public FullyQualifiedJavaType getFullyQualifiedJavaType() {
+ return fullyQualifiedJavaType;
+ }
+
+ public void setFullyQualifiedJavaType(
+ FullyQualifiedJavaType fullyQualifiedJavaType) {
+ this.fullyQualifiedJavaType = fullyQualifiedJavaType;
+ }
+}
Modified: ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/IntrospectedTable.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/IntrospectedTable.java?rev=703569&r1=703568&r2=703569&view=diff
==============================================================================
--- ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/IntrospectedTable.java (original)
+++ ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/IntrospectedTable.java Fri Oct 10 13:08:10 2008
@@ -16,15 +16,24 @@
package org.apache.ibatis.ibator.api;
+import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
import org.apache.ibatis.ibator.api.dom.java.FullyQualifiedJavaType;
+import org.apache.ibatis.ibator.config.DAOGeneratorConfiguration;
import org.apache.ibatis.ibator.config.GeneratedKey;
import org.apache.ibatis.ibator.config.IbatorContext;
+import org.apache.ibatis.ibator.config.JavaModelGeneratorConfiguration;
+import org.apache.ibatis.ibator.config.ModelType;
+import org.apache.ibatis.ibator.config.PropertyRegistry;
+import org.apache.ibatis.ibator.config.SqlMapGeneratorConfiguration;
import org.apache.ibatis.ibator.config.TableConfiguration;
-import org.apache.ibatis.ibator.internal.db.ColumnDefinition;
-import org.apache.ibatis.ibator.internal.db.ColumnDefinitions;
+import org.apache.ibatis.ibator.internal.rules.ConditionalModelRules;
+import org.apache.ibatis.ibator.internal.rules.FlatModelRules;
+import org.apache.ibatis.ibator.internal.rules.HierarchicalModelRules;
import org.apache.ibatis.ibator.internal.rules.IbatorRules;
+import org.apache.ibatis.ibator.internal.util.StringUtility;
/**
* Read only interface for dealing with introspected tables.
@@ -32,13 +41,86 @@
* @author Jeff Butler
*
*/
-public interface IntrospectedTable {
- FullyQualifiedTable getFullyQualifiedTable();
- String getSelectByExampleQueryId();
- String getSelectByPrimaryKeyQueryId();
- GeneratedKey getGeneratedKey();
-
- ColumnDefinition getColumn(String columnName);
+public abstract class IntrospectedTable {
+ protected TableConfiguration tableConfiguration;
+ protected FullyQualifiedTable fullyQualifiedTable;
+ protected IbatorContext ibatorContext;
+ private IbatorRules rules;
+ private List<IntrospectedColumn> primaryKeyColumns;
+ private List<IntrospectedColumn> baseColumns;
+ private List<IntrospectedColumn> blobColumns;
+ private boolean hasJDBCDateColumns;
+ private boolean hasJDBCTimeColumns;
+
+ public IntrospectedTable() {
+ super();
+ primaryKeyColumns = new ArrayList<IntrospectedColumn>();
+ baseColumns = new ArrayList<IntrospectedColumn>();
+ blobColumns = new ArrayList<IntrospectedColumn>();
+ }
+
+ public FullyQualifiedTable getFullyQualifiedTable() {
+ return fullyQualifiedTable;
+ }
+
+ public String getSelectByExampleQueryId() {
+ return tableConfiguration.getSelectByExampleQueryId();
+ }
+
+ public String getSelectByPrimaryKeyQueryId() {
+ return tableConfiguration.getSelectByPrimaryKeyQueryId();
+ }
+
+ public GeneratedKey getGeneratedKey() {
+ return tableConfiguration.getGeneratedKey();
+ }
+
+ public IntrospectedColumn getColumn(String columnName) {
+ if (columnName == null) {
+ return null;
+ } else {
+ // search primary key columns
+ for (IntrospectedColumn introspectedColumn : primaryKeyColumns) {
+ if (introspectedColumn.isColumnNameDelimited()) {
+ if (introspectedColumn.getActualColumnName().equals(columnName)) {
+ return introspectedColumn;
+ }
+ } else {
+ if (introspectedColumn.getActualColumnName().equalsIgnoreCase(columnName)) {
+ return introspectedColumn;
+ }
+ }
+ }
+
+ // search base columns
+ for (IntrospectedColumn introspectedColumn : baseColumns) {
+ if (introspectedColumn.isColumnNameDelimited()) {
+ if (introspectedColumn.getActualColumnName().equals(columnName)) {
+ return introspectedColumn;
+ }
+ } else {
+ if (introspectedColumn.getActualColumnName().equalsIgnoreCase(columnName)) {
+ return introspectedColumn;
+ }
+ }
+ }
+
+ // search blob columns
+ for (IntrospectedColumn introspectedColumn : blobColumns) {
+ if (introspectedColumn.isColumnNameDelimited()) {
+ if (introspectedColumn.getActualColumnName().equals(columnName)) {
+ return introspectedColumn;
+ }
+ } else {
+ if (introspectedColumn.getActualColumnName().equalsIgnoreCase(columnName)) {
+ return introspectedColumn;
+ }
+ }
+ }
+
+ return null;
+ }
+ }
/**
* Returns true if any of the columns in the table are JDBC Dates
@@ -46,7 +128,9 @@
*
* @return true if the table contains DATE columns
*/
- boolean hasJDBCDateColumns();
+ public boolean hasJDBCDateColumns() {
+ return hasJDBCDateColumns;
+ }
/**
* Returns true if any of the columns in the table are JDBC Times
@@ -54,7 +138,9 @@
*
* @return true if the table contains TIME columns
*/
- boolean hasJDBCTimeColumns();
+ public boolean hasJDBCTimeColumns() {
+ return hasJDBCTimeColumns;
+ }
/**
* Returns the columns in the primary key. If the
@@ -65,11 +151,17 @@
* @return a List of ColumnDefinition objects for
* columns in the primary key
*/
- List<ColumnDefinition> getPrimaryKeyColumns();
-
- boolean hasPrimaryKeyColumns();
-
- List<ColumnDefinition> getBaseColumns();
+ public List<IntrospectedColumn> getPrimaryKeyColumns() {
+ return primaryKeyColumns;
+ }
+
+ public boolean hasPrimaryKeyColumns() {
+ return primaryKeyColumns.size() > 0;
+ }
+
+ public List<IntrospectedColumn> getBaseColumns() {
+ return baseColumns;
+ }
/**
* Returns all columns in the table (for use by the select by
@@ -78,32 +170,84 @@
* @return a List of ColumnDefinition objects for
* all columns in the table
*/
- List<ColumnDefinition> getAllColumns();
+ public List<IntrospectedColumn> getAllColumns() {
+ List<IntrospectedColumn> answer = new ArrayList<IntrospectedColumn>();
+ answer.addAll(primaryKeyColumns);
+ answer.addAll(baseColumns);
+ answer.addAll(blobColumns);
+
+ return answer;
+ }
/**
- * Returns all columns axcept BLOBs (for use by the select by
+ * Returns all columns except BLOBs (for use by the select by
* example without BLOBs method)
*
* @return a List of ColumnDefinition objects for
* columns in the table that are non BLOBs
*/
- List<ColumnDefinition> getNonBLOBColumns();
-
- int getNonBLOBColumnCount();
-
- List<ColumnDefinition> getNonPrimaryKeyColumns();
-
- List<ColumnDefinition> getBLOBColumns();
-
- boolean hasBLOBColumns();
-
- boolean hasBaseColumns();
-
- IbatorRules getRules();
-
- String getTableConfigurationProperty(String property);
+ public List<IntrospectedColumn> getNonBLOBColumns() {
+ List<IntrospectedColumn> answer = new ArrayList<IntrospectedColumn>();
+ answer.addAll(primaryKeyColumns);
+ answer.addAll(baseColumns);
+
+ return answer;
+ }
+
+ public int getNonBLOBColumnCount() {
+ return primaryKeyColumns.size()
+ + baseColumns.size();
+ }
+
+ public List<IntrospectedColumn> getNonPrimaryKeyColumns() {
+ List<IntrospectedColumn> answer = new ArrayList<IntrospectedColumn>();
+ answer.addAll(baseColumns);
+ answer.addAll(blobColumns);
+
+ return answer;
+ }
+
+ public List<IntrospectedColumn> getBLOBColumns() {
+ return blobColumns;
+ }
+
+ public boolean hasBLOBColumns() {
+ return blobColumns.size() > 0;
+ }
+
+ public boolean hasBaseColumns() {
+ return baseColumns.size() > 0;
+ }
+
+ public IbatorRules getRules() {
+ if (rules == null) {
+ if (tableConfiguration.getModelType() == ModelType.HIERARCHICAL) {
+ rules = new HierarchicalModelRules(tableConfiguration, this);
+ } else if (tableConfiguration.getModelType() == ModelType.FLAT) {
+ rules = new FlatModelRules(tableConfiguration, this);
+ } else {
+ rules = new ConditionalModelRules(tableConfiguration, this);
+ }
+ }
+
+ return rules;
+ }
+
+ public String getTableConfigurationProperty(String property) {
+ return tableConfiguration.getProperty(property);
+ }
+
+ public FullyQualifiedJavaType getPrimaryKeyType() {
+ StringBuilder sb = new StringBuilder();
+ sb.append(getJavaModelPackage());
+ sb.append('.');
+ sb.append(fullyQualifiedTable.getDomainObjectName());
+ sb.append("Key"); //$NON-NLS-1$
- FullyQualifiedJavaType getPrimaryKeyType();
+ FullyQualifiedJavaType fqjt = new FullyQualifiedJavaType(sb.toString());
+
+ return fqjt;
+ }
/**
*
@@ -111,38 +255,231 @@
* key and non-BLOB fields). Note that
* the value will be calculated regardless of whether the table has these columns or not.
*/
- FullyQualifiedJavaType getBaseRecordType();
+ public FullyQualifiedJavaType getBaseRecordType() {
+ StringBuilder sb = new StringBuilder();
+ sb.append(getJavaModelPackage());
+ sb.append('.');
+ sb.append(fullyQualifiedTable.getDomainObjectName());
+
+ FullyQualifiedJavaType fqjt = new FullyQualifiedJavaType(sb.toString());
+
+ return fqjt;
+ }
/**
*
* @return the type for the example class.
*/
- FullyQualifiedJavaType getExampleType();
+ public FullyQualifiedJavaType getExampleType() {
+ StringBuilder sb = new StringBuilder();
+ sb.append(getJavaModelPackage());
+ sb.append('.');
+ sb.append(fullyQualifiedTable.getDomainObjectName());
+ sb.append("Example"); //$NON-NLS-1$
+
+ FullyQualifiedJavaType fqjt = new FullyQualifiedJavaType(sb.toString());
+
+ return fqjt;
+ }
/**
*
* @return the type for the record with BLOBs class. Note that
* the value will be calculated regardless of whether the table has BLOB columns or not.
*/
- FullyQualifiedJavaType getRecordWithBLOBsType();
+ public FullyQualifiedJavaType getRecordWithBLOBsType() {
+ StringBuilder sb = new StringBuilder();
+ sb.append(getJavaModelPackage());
+ sb.append('.');
+ sb.append(fullyQualifiedTable.getDomainObjectName());
+ sb.append("WithBLOBs"); //$NON-NLS-1$
- String getSqlMapFileName();
+ FullyQualifiedJavaType fqjt = new FullyQualifiedJavaType(sb.toString());
+
+ return fqjt;
+ }
+
+ /**
+ * Calculates an SQL Map file name for the table. Typically the name is
+ * "XXXX_SqlMap.xml" where XXXX is the fully qualified table name (delimited
+ * with underscores).
+ *
+ * @return the name of the SqlMap file
+ */
+ public String getSqlMapFileName() {
+ StringBuilder sb = new StringBuilder();
+ sb.append(fullyQualifiedTable.getSqlMapNamespace());
+ sb.append("_SqlMap.xml"); //$NON-NLS-1$
+
+ return sb.toString();
+ }
/**
* Calculates the package for the current table.
*
* @return the package for the SqlMap for the current table
*/
- String getSqlMapPackage();
+ public String getSqlMapPackage() {
+ SqlMapGeneratorConfiguration config = ibatorContext.getSqlMapGeneratorConfiguration();
+
+ StringBuilder sb = new StringBuilder(config.getTargetPackage());
+ if (StringUtility.isTrue(config.getProperty(PropertyRegistry.ANY_ENABLE_SUB_PACKAGES))) {
+ sb.append(fullyQualifiedTable.getSubPackage());
+ }
+
+ return sb.toString();
+ }
+
+ public FullyQualifiedJavaType getDAOImplementationType() {
+ StringBuilder sb = new StringBuilder();
+ sb.append(getDAOPackage());
+ sb.append('.');
+ sb.append(fullyQualifiedTable.getDomainObjectName());
+ sb.append("DAOImpl"); //$NON-NLS-1$
+
+ FullyQualifiedJavaType fqjt = new FullyQualifiedJavaType(sb.toString());
+
+ return fqjt;
+ }
+
+ public FullyQualifiedJavaType getDAOInterfaceType() {
+ StringBuilder sb = new StringBuilder();
+ sb.append(getDAOPackage());
+ sb.append('.');
+ sb.append(fullyQualifiedTable.getDomainObjectName());
+ sb.append("DAO"); //$NON-NLS-1$
+
+ FullyQualifiedJavaType fqjt = new FullyQualifiedJavaType(sb.toString());
+
+ return fqjt;
+ }
+
+ public boolean hasAnyColumns() {
+ return primaryKeyColumns.size() > 0
+ || baseColumns.size() > 0
+ || blobColumns.size() > 0;
+ }
+
+ protected String getDAOPackage() {
+ DAOGeneratorConfiguration config = ibatorContext.getDaoGeneratorConfiguration();
+
+ StringBuilder sb = new StringBuilder();
+ sb.append(config.getTargetPackage());
+ if (StringUtility.isTrue(config.getProperty(PropertyRegistry.ANY_ENABLE_SUB_PACKAGES))) {
+ sb.append(fullyQualifiedTable.getSubPackage());
+ }
+
+ return sb.toString();
+ }
+
+ protected String getJavaModelPackage() {
+ JavaModelGeneratorConfiguration config = ibatorContext.getJavaModelGeneratorConfiguration();
+
+ StringBuilder sb = new StringBuilder();
+ sb.append(config.getTargetPackage());
+ if (StringUtility.isTrue(config.getProperty(PropertyRegistry.ANY_ENABLE_SUB_PACKAGES))) {
+ sb.append(fullyQualifiedTable.getSubPackage());
+ }
+
+ return sb.toString();
+ }
+
+ public void setTableConfiguration(TableConfiguration tableConfiguration) {
+ this.tableConfiguration = tableConfiguration;
+ }
+
+ public void setFullyQualifiedTable(FullyQualifiedTable fullyQualifiedTable) {
+ this.fullyQualifiedTable = fullyQualifiedTable;
+ }
+
+ public void setIbatorContext(IbatorContext ibatorContext) {
+ this.ibatorContext = ibatorContext;
+ }
+
+ public void addColumn(IntrospectedColumn introspectedColumn) {
+ if (introspectedColumn.isBLOBColumn()) {
+ blobColumns.add(introspectedColumn);
+ } else {
+ baseColumns.add(introspectedColumn);
+ }
+
+ if (introspectedColumn.isJDBCDateColumn()) {
+ hasJDBCDateColumns = true;
+ }
+
+ if (introspectedColumn.isJDBCTimeColumn()) {
+ hasJDBCTimeColumns = true;
+ }
+ }
+
+ public void addPrimaryKeyColumn(String columnName) {
+ boolean found = false;
+ // first search base columns
+ Iterator<IntrospectedColumn> iter = baseColumns.iterator();
+ while (iter.hasNext()) {
+ IntrospectedColumn introspectedColumn = iter.next();
+ if (introspectedColumn.getActualColumnName().equals(columnName)) {
+ primaryKeyColumns.add(introspectedColumn);
+ iter.remove();
+ found = true;
+ break;
+ }
+ }
+
+ // search blob columns in the weird event that a blob is the primary key
+ if (!found) {
+ iter = blobColumns.iterator();
+ while (iter.hasNext()) {
+ IntrospectedColumn introspectedColumn = iter.next();
+ if (introspectedColumn.getActualColumnName().equals(columnName)) {
+ primaryKeyColumns.add(introspectedColumn);
+ iter.remove();
+ found = true;
+ break;
+ }
+ }
+ }
+ }
- FullyQualifiedJavaType getDAOImplementationType();
-
- FullyQualifiedJavaType getDAOInterfaceType();
+ /**
+ * This method can be used to initialize the generators before they
+ * will be called.
+ *
+ * This method is called after all the setX methods, but before
+ * getNumberOfSubtasks(), getGeneratedJavaFiles, and getGeneratedXmlFiles.
+ *
+ * @param warnings
+ * @param progressCallback
+ */
+ public abstract void calculateGenerators(List<String> warnings, ProgressCallback progressCallback);
+
+ /**
+ * This method should return the number of progress messages
+ * that will be generated by all the generators calculated for
+ * this table.
+ *
+ * This method is called after calculateGenerators().
+ *
+ * @return the number of progress messages that will be generated
+ * for this table
+ */
+ public abstract int getNumberOfSubtasks();
- boolean hasAnyColumns();
+ /**
+ * This method should return a list of generated Java files related to
+ * this table. This list could include various types of model classes,
+ * as well as DAO classes.
+ *
+ * @return the list of generated Java files for this table
+ */
+ public abstract List<GeneratedJavaFile> getGeneratedJavaFiles();
- void setTableConfiguration(TableConfiguration tableConfiguration);
- void setColumnDefinitions(ColumnDefinitions columnDefinitions);
- void setFullyQualifiedTable(FullyQualifiedTable fullyQualifiedTable);
- void setIbatorContext(IbatorContext ibatorContext);
+ /**
+ * This method should return a list of generated XML files related to
+ * this table. Most implementations will only return one file -
+ * the generated SqlMap file.
+ *
+ * @return the list of generated XML files for this table
+ */
+ public abstract List<GeneratedXmlFile> getGeneratedXmlFiles();
}
Modified: ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/JavaTypeResolver.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/JavaTypeResolver.java?rev=703569&r1=703568&r2=703569&view=diff
==============================================================================
--- ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/JavaTypeResolver.java (original)
+++ ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/api/JavaTypeResolver.java Fri Oct 10 13:08:10 2008
@@ -18,8 +18,8 @@
import java.util.List;
import java.util.Properties;
+import org.apache.ibatis.ibator.api.dom.java.FullyQualifiedJavaType;
import org.apache.ibatis.ibator.config.IbatorContext;
-import org.apache.ibatis.ibator.internal.db.ColumnDefinition;
/**
* This interface describes methods that are required in any Java type
@@ -63,15 +63,13 @@
void setWarnings(List<String> warnings);
/**
- * Initializes the ResolvedJavaType property of the ColumnDescription based
- * on the jdbc type, length, and scale of the column.
+ * Calculates and returns the Java type that should be associated
+ * with this column based on the jdbc type, length, and scale of the column.
*
- * @param cd the JDBC type will be used first to resolve the Java type. If
- * the type cannot be resolved from this value, then we will try
- * from the type name (which may be the qualified UDT from the
- * database)
- * @return true if the type can be resolved, otherwize false. If false,
- * the column will be set to Object type and a warning will be issued.
+ * @param introspectedColumn the column whose Java type needs to be
+ * calculated
+ * @return true the calculated type, or null if an unsupported data type. If null,
+ * the column should be set to Object type and a warning will be issued.
*/
- boolean initializeResolvedJavaType(ColumnDefinition cd);
+ FullyQualifiedJavaType calculateJavaType(IntrospectedColumn introspectedColumn);
}
Modified: ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/config/IbatorConfiguration.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/config/IbatorConfiguration.java?rev=703569&r1=703568&r2=703569&view=diff
==============================================================================
--- ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/config/IbatorConfiguration.java (original)
+++ ibatis/trunk/java/tools/ibator/core/src/org/apache/ibatis/ibator/config/IbatorConfiguration.java Fri Oct 10 13:08:10 2008
@@ -22,7 +22,7 @@
import org.apache.ibatis.ibator.api.dom.xml.Document;
import org.apache.ibatis.ibator.api.dom.xml.XmlElement;
import org.apache.ibatis.ibator.exception.InvalidConfigurationException;
-import org.apache.ibatis.ibator.internal.sqlmap.XmlConstants;
+import org.apache.ibatis.ibator.generator.ibatis2.XmlConstants;
import org.apache.ibatis.ibator.internal.util.messages.Messages;
/**