summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Moger <james.moger@gmail.com>2011-08-17 13:30:40 -0400
committerJames Moger <james.moger@gmail.com>2011-08-17 13:30:40 -0400
commit05429c2cdf393730f17fb8fa51ee4b9e58e0a88f (patch)
tree1c6e98a2913b4f0912318e49f72f930b985eb345
parent1734dc44d70391aeef26cacdf4d9f07c289e476e (diff)
downloadiciql-0.7.0.tar.gz
iciql-0.7.0.zip
Renamed logger. Improved test suite. Added Apache Commons and DBCP.v0.7.0
-rw-r--r--.classpath6
-rw-r--r--.gitignore1
-rw-r--r--NOTICE23
-rw-r--r--README.markdown1
-rw-r--r--api/v6.xml5874
-rw-r--r--build.xml3
-rw-r--r--docs/00_index.mkd1
-rw-r--r--docs/02_usage.mkd20
-rw-r--r--docs/03_performance.mkd6
-rw-r--r--docs/05_building.mkd4
-rw-r--r--docs/05_releases.mkd7
-rw-r--r--src/com/iciql/Constants.java6
-rw-r--r--src/com/iciql/Db.java4
-rw-r--r--src/com/iciql/IciqlException.java3
-rw-r--r--src/com/iciql/Query.java8
-rw-r--r--src/com/iciql/SQLDialectDefault.java3
-rw-r--r--src/com/iciql/TableDefinition.java14
-rw-r--r--src/com/iciql/build/Build.java18
-rw-r--r--src/com/iciql/util/IciqlLogger.java (renamed from src/com/iciql/util/StatementLogger.java)41
-rw-r--r--src/com/iciql/util/Slf4jIciqlListener.java (renamed from src/com/iciql/util/Slf4jStatementListener.java)16
-rw-r--r--tests/com/iciql/test/AnnotationsTest.java3
-rw-r--r--tests/com/iciql/test/IciqlSuite.java201
22 files changed, 6141 insertions, 122 deletions
diff --git a/.classpath b/.classpath
index a842b70..e985d8c 100644
--- a/.classpath
+++ b/.classpath
@@ -33,5 +33,11 @@
</attributes>
</classpathentry>
<classpathentry kind="lib" path="ext/postgresql-9.0-801.jdbc4.jar"/>
+ <classpathentry kind="lib" path="ext/commons-dbcp-1.4.jar" sourcepath="C:/Users/James Moger/.m2/repository/commons-dbcp/commons-dbcp/1.4/commons-dbcp-1.4-sources.jar"/>
+ <classpathentry kind="lib" path="ext/commons-pool-1.5.6.jar" sourcepath="ext/commons-pool-1.5.6-sources.jar">
+ <attributes>
+ <attribute name="javadoc_location" value="jar:platform:/resource/iciql/ext/commons-pool-1.5.6-javadoc.jar!/"/>
+ </attributes>
+ </classpathentry>
<classpathentry kind="output" path="bin"/>
</classpath>
diff --git a/.gitignore b/.gitignore
index ecb1ae2..2808169 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,3 +10,4 @@
/performance.txt
/performance_db.txt
/performance_sql.txt
+/testdbs
diff --git a/NOTICE b/NOTICE
index 61f70f6..f39f8f6 100644
--- a/NOTICE
+++ b/NOTICE
@@ -46,9 +46,9 @@ HSQL Database
http://hsqldb.org
---------------------------------------------------------------------------
-Derby Database
+Apache Derby Database
---------------------------------------------------------------------------
- Derby, released under the
+ Apache Derby, released under the
Apache Software License, Version 2.0.
http://db.apache.org/derby
@@ -75,4 +75,21 @@ SLF4J
SLF4J, released under the
MIT/X11 License.
- http://www.slf4j.org \ No newline at end of file
+ http://www.slf4j.org
+
+---------------------------------------------------------------------------
+Apache Commons Pool
+---------------------------------------------------------------------------
+ Apache Commons Pool, released under the
+ Apache Software License, Version 2.0.
+
+ http://commons.apache.org/pool
+
+---------------------------------------------------------------------------
+Apache Commons DBCP
+---------------------------------------------------------------------------
+ Apache Commons DBCP, released under the
+ Apache Software License, Version 2.0.
+
+ http://commons.apache.org/dbcp
+ \ No newline at end of file
diff --git a/README.markdown b/README.markdown
index 28aa424..e5894e2 100644
--- a/README.markdown
+++ b/README.markdown
@@ -21,6 +21,7 @@ Supported Databases (Unit-Tested)
- [HSQLDB](http://hsqldb.org) 2.2.4
- [Derby](http://db.apache.org/derby) 10.7.1.1 & 10.8.1.2
- [MySQL](http://mysql.com) 5.0.51b
+- [PostgreSQL](http://postgresql.org) 9.0
Support for others is possible and may only require creating a simple "dialect" class.
diff --git a/api/v6.xml b/api/v6.xml
new file mode 100644
index 0000000..d3e8257
--- /dev/null
+++ b/api/v6.xml
@@ -0,0 +1,5874 @@
+<api>
+<package name="com.iciql"
+>
+<class name="Constants"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<constructor name="Constants"
+ type="com.iciql.Constants"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</constructor>
+<field name="API_CURRENT"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;6&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="NAME"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;iciql&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="VERSION"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;0.7.0&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="VERSION_DATE"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;2011-08-17&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+</class>
+<class name="Db"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<method name="buildObjects"
+ return="java.util.List&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="modelClass" type="java.lang.Class&lt;? extends T&gt;">
+</parameter>
+<parameter name="rs" type="java.sql.ResultSet">
+</parameter>
+</method>
+<method name="close"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="delete"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="t" type="T">
+</parameter>
+</method>
+<method name="deleteAll"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="list" type="java.util.List&lt;T&gt;">
+</parameter>
+</method>
+<method name="dropTable"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="modelClass" type="java.lang.Class&lt;? extends T&gt;">
+</parameter>
+</method>
+<method name="executeQuery"
+ return="java.util.List&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="modelClass" type="java.lang.Class&lt;? extends T&gt;">
+</parameter>
+<parameter name="sql" type="java.lang.String">
+</parameter>
+<parameter name="args" type="java.lang.Object...">
+</parameter>
+</method>
+<method name="executeQuery"
+ return="java.sql.ResultSet"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="sql" type="java.lang.String">
+</parameter>
+<parameter name="args" type="java.lang.Object...">
+</parameter>
+</method>
+<method name="executeUpdate"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="sql" type="java.lang.String">
+</parameter>
+</method>
+<method name="from"
+ return="com.iciql.Query&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="alias" type="T">
+</parameter>
+</method>
+<method name="getConnection"
+ return="java.sql.Connection"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="getDialect"
+ return="com.iciql.SQLDialect"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="insert"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="t" type="T">
+</parameter>
+</method>
+<method name="insertAll"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="list" type="java.util.List&lt;T&gt;">
+</parameter>
+</method>
+<method name="insertAllAndGetKeys"
+ return="java.util.List&lt;java.lang.Long&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="list" type="java.util.List&lt;T&gt;">
+</parameter>
+</method>
+<method name="insertAndGetKey"
+ return="long"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="t" type="T">
+</parameter>
+</method>
+<method name="merge"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="t" type="T">
+</parameter>
+</method>
+<method name="open"
+ return="com.iciql.Db"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="url" type="java.lang.String">
+</parameter>
+<parameter name="user" type="java.lang.String">
+</parameter>
+<parameter name="password" type="char[]">
+</parameter>
+</method>
+<method name="open"
+ return="com.iciql.Db"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="url" type="java.lang.String">
+</parameter>
+<parameter name="user" type="java.lang.String">
+</parameter>
+<parameter name="password" type="java.lang.String">
+</parameter>
+</method>
+<method name="open"
+ return="com.iciql.Db"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="conn" type="java.sql.Connection">
+</parameter>
+</method>
+<method name="open"
+ return="com.iciql.Db"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="ds" type="javax.sql.DataSource">
+</parameter>
+</method>
+<method name="registerDialect"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="token" type="java.lang.String">
+</parameter>
+<parameter name="dialectClass" type="java.lang.Class&lt;? extends com.iciql.SQLDialect&gt;">
+</parameter>
+</method>
+<method name="setDbUpgrader"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="true"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="upgrader" type="com.iciql.DbUpgrader">
+</parameter>
+</method>
+<method name="test"
+ return="com.iciql.TestCondition&lt;A&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="A">
+</parameter>
+</method>
+<method name="update"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="t" type="T">
+</parameter>
+</method>
+<method name="updateAll"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="list" type="java.util.List&lt;T&gt;">
+</parameter>
+</method>
+</class>
+<class name="DbInspector"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<constructor name="DbInspector"
+ type="com.iciql.DbInspector"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="db" type="com.iciql.Db">
+</parameter>
+</constructor>
+<method name="generateModel"
+ return="java.util.List&lt;java.lang.String&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="schema" type="java.lang.String">
+</parameter>
+<parameter name="table" type="java.lang.String">
+</parameter>
+<parameter name="packageName" type="java.lang.String">
+</parameter>
+<parameter name="annotateSchema" type="boolean">
+</parameter>
+<parameter name="trimStrings" type="boolean">
+</parameter>
+</method>
+<method name="setPreferredDateTimeClass"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="dateTimeClass" type="java.lang.Class&lt;? extends java.util.Date&gt;">
+</parameter>
+</method>
+<method name="validateModel"
+ return="java.util.List&lt;com.iciql.ValidationRemark&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="model" type="T">
+</parameter>
+<parameter name="throwOnError" type="boolean">
+</parameter>
+</method>
+</class>
+<interface name="DbUpgrader"
+ abstract="true"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<method name="upgradeDatabase"
+ return="boolean"
+ abstract="true"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="db" type="com.iciql.Db">
+</parameter>
+<parameter name="fromVersion" type="int">
+</parameter>
+<parameter name="toVersion" type="int">
+</parameter>
+</method>
+<method name="upgradeTable"
+ return="boolean"
+ abstract="true"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="db" type="com.iciql.Db">
+</parameter>
+<parameter name="schema" type="java.lang.String">
+</parameter>
+<parameter name="table" type="java.lang.String">
+</parameter>
+<parameter name="fromVersion" type="int">
+</parameter>
+<parameter name="toVersion" type="int">
+</parameter>
+</method>
+</interface>
+<class name="DbUpgrader.DefaultDbUpgrader"
+ extends="java.lang.Object"
+ abstract="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<implements name="com.iciql.DbUpgrader">
+</implements>
+<constructor name="DbUpgrader.DefaultDbUpgrader"
+ type="com.iciql.DbUpgrader.DefaultDbUpgrader"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</constructor>
+<method name="upgradeDatabase"
+ return="boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="db" type="com.iciql.Db">
+</parameter>
+<parameter name="fromVersion" type="int">
+</parameter>
+<parameter name="toVersion" type="int">
+</parameter>
+</method>
+<method name="upgradeTable"
+ return="boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="db" type="com.iciql.Db">
+</parameter>
+<parameter name="schema" type="java.lang.String">
+</parameter>
+<parameter name="table" type="java.lang.String">
+</parameter>
+<parameter name="fromVersion" type="int">
+</parameter>
+<parameter name="toVersion" type="int">
+</parameter>
+</method>
+</class>
+<class name="DbVersion"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<constructor name="DbVersion"
+ type="com.iciql.DbVersion"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</constructor>
+<constructor name="DbVersion"
+ type="com.iciql.DbVersion"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="version" type="int">
+</parameter>
+</constructor>
+</class>
+<class name="Define"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<constructor name="Define"
+ type="com.iciql.Define"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</constructor>
+<method name="columnName"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="column" type="java.lang.Object">
+</parameter>
+<parameter name="columnName" type="java.lang.String">
+</parameter>
+</method>
+<method name="hashIndex"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="column" type="java.lang.Object">
+</parameter>
+</method>
+<method name="index"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="columns" type="java.lang.Object...">
+</parameter>
+</method>
+<method name="length"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="column" type="java.lang.Object">
+</parameter>
+<parameter name="length" type="int">
+</parameter>
+</method>
+<method name="primaryKey"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="columns" type="java.lang.Object...">
+</parameter>
+</method>
+<method name="scale"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="column" type="java.lang.Object">
+</parameter>
+<parameter name="scale" type="int">
+</parameter>
+</method>
+<method name="tableName"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="tableName" type="java.lang.String">
+</parameter>
+</method>
+<method name="uniqueHashIndex"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="column" type="java.lang.Object">
+</parameter>
+</method>
+<method name="uniqueIndex"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="columns" type="java.lang.Object...">
+</parameter>
+</method>
+</class>
+<interface name="Filter"
+ abstract="true"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<method name="where"
+ return="boolean"
+ abstract="true"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+</interface>
+<class name="Function"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<implements name="com.iciql.Token">
+</implements>
+<constructor name="Function"
+ type="com.iciql.Function"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="protected"
+>
+<parameter name="name" type="java.lang.String">
+</parameter>
+<parameter name="x" type="java.lang.Object...">
+</parameter>
+</constructor>
+<method name="and"
+ return="java.lang.Boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="java.lang.Boolean...">
+</parameter>
+</method>
+<method name="appendSQL"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="stat" type="com.iciql.SQLStatement">
+</parameter>
+<parameter name="query" type="com.iciql.Query&lt;T&gt;">
+</parameter>
+</method>
+<method name="count"
+ return="java.lang.Long"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="count"
+ return="java.lang.Long"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="java.lang.Object">
+</parameter>
+</method>
+<method name="isNotNull"
+ return="java.lang.Boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="java.lang.Object">
+</parameter>
+</method>
+<method name="isNull"
+ return="java.lang.Boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="java.lang.Object">
+</parameter>
+</method>
+<method name="length"
+ return="java.lang.Integer"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="java.lang.Object">
+</parameter>
+</method>
+<method name="like"
+ return="java.lang.Boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="java.lang.String">
+</parameter>
+<parameter name="pattern" type="java.lang.String">
+</parameter>
+</method>
+<method name="max"
+ return="X"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="X">
+</parameter>
+</method>
+<method name="min"
+ return="X"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="X">
+</parameter>
+</method>
+<method name="not"
+ return="java.lang.Boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="java.lang.Boolean">
+</parameter>
+</method>
+<method name="or"
+ return="java.lang.Boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="java.lang.Boolean...">
+</parameter>
+</method>
+<method name="sum"
+ return="T"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="T">
+</parameter>
+</method>
+<field name="x"
+ type="java.lang.Object[]"
+ transient="false"
+ volatile="false"
+ value="null"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="protected"
+>
+</field>
+</class>
+<interface name="Iciql"
+ abstract="true"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<method name="defineIQ"
+ return="void"
+ abstract="true"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="deprecated"
+ visibility="public"
+>
+</method>
+</interface>
+<interface name="Iciql.EnumId"
+ abstract="true"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<method name="enumId"
+ return="int"
+ abstract="true"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+</interface>
+<class name="Iciql.EnumType"
+ extends="java.lang.Enum"
+ abstract="false"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<method name="valueOf"
+ return="com.iciql.Iciql.EnumType"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="name" type="java.lang.String">
+</parameter>
+</method>
+<method name="values"
+ return="com.iciql.Iciql.EnumType[]"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<field name="DEFAULT_TYPE"
+ type="com.iciql.Iciql.EnumType"
+ transient="false"
+ volatile="false"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+</class>
+<class name="Iciql.IQColumn"
+ extends="java.lang.Object"
+ abstract="true"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<implements name="java.lang.annotation.Annotation">
+</implements>
+</class>
+<class name="Iciql.IQEnum"
+ extends="java.lang.Object"
+ abstract="true"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<implements name="java.lang.annotation.Annotation">
+</implements>
+</class>
+<class name="Iciql.IQIndex"
+ extends="java.lang.Object"
+ abstract="true"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<implements name="java.lang.annotation.Annotation">
+</implements>
+</class>
+<class name="Iciql.IQIndexes"
+ extends="java.lang.Object"
+ abstract="true"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<implements name="java.lang.annotation.Annotation">
+</implements>
+</class>
+<class name="Iciql.IQSchema"
+ extends="java.lang.Object"
+ abstract="true"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<implements name="java.lang.annotation.Annotation">
+</implements>
+</class>
+<class name="Iciql.IQTable"
+ extends="java.lang.Object"
+ abstract="true"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<implements name="java.lang.annotation.Annotation">
+</implements>
+</class>
+<class name="Iciql.IQVersion"
+ extends="java.lang.Object"
+ abstract="true"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<implements name="java.lang.annotation.Annotation">
+</implements>
+</class>
+<class name="Iciql.IndexType"
+ extends="java.lang.Enum"
+ abstract="false"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<method name="valueOf"
+ return="com.iciql.Iciql.IndexType"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="name" type="java.lang.String">
+</parameter>
+</method>
+<method name="values"
+ return="com.iciql.Iciql.IndexType[]"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+</class>
+<class name="IciqlException"
+ extends="java.lang.RuntimeException"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<constructor name="IciqlException"
+ type="com.iciql.IciqlException"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="message" type="java.lang.String">
+</parameter>
+<parameter name="parameters" type="java.lang.Object...">
+</parameter>
+</constructor>
+<constructor name="IciqlException"
+ type="com.iciql.IciqlException"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="t" type="java.lang.Throwable">
+</parameter>
+</constructor>
+<constructor name="IciqlException"
+ type="com.iciql.IciqlException"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="t" type="java.lang.Throwable">
+</parameter>
+<parameter name="message" type="java.lang.String">
+</parameter>
+<parameter name="parameters" type="java.lang.Object...">
+</parameter>
+</constructor>
+<method name="checkUnmappedField"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="sql" type="java.lang.String">
+</parameter>
+</method>
+<method name="fromSQL"
+ return="com.iciql.IciqlException"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="sql" type="java.lang.String">
+</parameter>
+<parameter name="t" type="java.lang.Throwable">
+</parameter>
+</method>
+<method name="getIciqlCode"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="getSQL"
+ return="java.lang.String"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="setSQL"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="sql" type="java.lang.String">
+</parameter>
+</method>
+<field name="CODE_DUPLICATE_KEY"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="2"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="CODE_OBJECT_ALREADY_EXISTS"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="4"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="CODE_OBJECT_NOT_FOUND"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="3"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="CODE_UNMAPPED_FIELD"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="1"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+</class>
+<class name="Query"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<method name="appendSQL"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="stat" type="com.iciql.SQLStatement">
+</parameter>
+<parameter name="alias" type="java.lang.Object">
+</parameter>
+<parameter name="value" type="java.lang.Object">
+</parameter>
+</method>
+<method name="appendSQL"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="stat" type="com.iciql.SQLStatement">
+</parameter>
+<parameter name="alias" type="java.lang.Object">
+</parameter>
+<parameter name="valueLeft" type="java.lang.Object">
+</parameter>
+<parameter name="valueRight" type="java.lang.Object">
+</parameter>
+<parameter name="compareType" type="com.iciql.CompareType">
+</parameter>
+</method>
+<method name="delete"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="getSQL"
+ return="java.lang.String"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="groupBy"
+ return="com.iciql.Query&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="boolean">
+</parameter>
+</method>
+<method name="groupBy"
+ return="com.iciql.Query&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="byte">
+</parameter>
+</method>
+<method name="groupBy"
+ return="com.iciql.Query&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="double">
+</parameter>
+</method>
+<method name="groupBy"
+ return="com.iciql.Query&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="float">
+</parameter>
+</method>
+<method name="groupBy"
+ return="com.iciql.Query&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="int">
+</parameter>
+</method>
+<method name="groupBy"
+ return="com.iciql.Query&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="expr" type="java.lang.Object">
+</parameter>
+</method>
+<method name="groupBy"
+ return="com.iciql.Query&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="groupBy" type="java.lang.Object...">
+</parameter>
+</method>
+<method name="groupBy"
+ return="com.iciql.Query&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="long">
+</parameter>
+</method>
+<method name="groupBy"
+ return="com.iciql.Query&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="short">
+</parameter>
+</method>
+<method name="increment"
+ return="com.iciql.UpdateColumnIncrement&lt;T, A&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="A">
+</parameter>
+</method>
+<method name="increment"
+ return="com.iciql.UpdateColumnIncrement&lt;T, java.lang.Byte&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="byte">
+</parameter>
+</method>
+<method name="increment"
+ return="com.iciql.UpdateColumnIncrement&lt;T, java.lang.Double&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="double">
+</parameter>
+</method>
+<method name="increment"
+ return="com.iciql.UpdateColumnIncrement&lt;T, java.lang.Float&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="float">
+</parameter>
+</method>
+<method name="increment"
+ return="com.iciql.UpdateColumnIncrement&lt;T, java.lang.Integer&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="int">
+</parameter>
+</method>
+<method name="increment"
+ return="com.iciql.UpdateColumnIncrement&lt;T, java.lang.Long&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="long">
+</parameter>
+</method>
+<method name="increment"
+ return="com.iciql.UpdateColumnIncrement&lt;T, java.lang.Short&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="short">
+</parameter>
+</method>
+<method name="innerJoin"
+ return="com.iciql.QueryJoin"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="alias" type="U">
+</parameter>
+</method>
+<method name="limit"
+ return="com.iciql.Query&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="limit" type="long">
+</parameter>
+</method>
+<method name="offset"
+ return="com.iciql.Query&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="offset" type="long">
+</parameter>
+</method>
+<method name="orderBy"
+ return="com.iciql.Query&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="boolean">
+</parameter>
+</method>
+<method name="orderBy"
+ return="com.iciql.Query&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="byte">
+</parameter>
+</method>
+<method name="orderBy"
+ return="com.iciql.Query&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="double">
+</parameter>
+</method>
+<method name="orderBy"
+ return="com.iciql.Query&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="float">
+</parameter>
+</method>
+<method name="orderBy"
+ return="com.iciql.Query&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="int">
+</parameter>
+</method>
+<method name="orderBy"
+ return="com.iciql.Query&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="expr" type="java.lang.Object">
+</parameter>
+</method>
+<method name="orderBy"
+ return="com.iciql.Query&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="expressions" type="java.lang.Object...">
+</parameter>
+</method>
+<method name="orderBy"
+ return="com.iciql.Query&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="long">
+</parameter>
+</method>
+<method name="orderBy"
+ return="com.iciql.Query&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="short">
+</parameter>
+</method>
+<method name="orderByDesc"
+ return="com.iciql.Query&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="expr" type="java.lang.Object">
+</parameter>
+</method>
+<method name="select"
+ return="java.util.List&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="select"
+ return="java.util.List&lt;X&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="Z">
+</parameter>
+</method>
+<method name="selectCount"
+ return="long"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="selectDistinct"
+ return="java.util.List&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="selectDistinct"
+ return="java.util.List&lt;X&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="Z">
+</parameter>
+</method>
+<method name="selectFirst"
+ return="T"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="selectFirst"
+ return="X"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="Z">
+</parameter>
+</method>
+<method name="set"
+ return="com.iciql.UpdateColumnSet&lt;T, A&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="A">
+</parameter>
+</method>
+<method name="set"
+ return="com.iciql.UpdateColumnSet&lt;T, java.lang.Boolean&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="boolean">
+</parameter>
+</method>
+<method name="set"
+ return="com.iciql.UpdateColumnSet&lt;T, java.lang.Byte&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="byte">
+</parameter>
+</method>
+<method name="set"
+ return="com.iciql.UpdateColumnSet&lt;T, java.lang.Double&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="double">
+</parameter>
+</method>
+<method name="set"
+ return="com.iciql.UpdateColumnSet&lt;T, java.lang.Float&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="float">
+</parameter>
+</method>
+<method name="set"
+ return="com.iciql.UpdateColumnSet&lt;T, java.lang.Integer&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="int">
+</parameter>
+</method>
+<method name="set"
+ return="com.iciql.UpdateColumnSet&lt;T, java.lang.Long&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="long">
+</parameter>
+</method>
+<method name="set"
+ return="com.iciql.UpdateColumnSet&lt;T, java.lang.Short&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="short">
+</parameter>
+</method>
+<method name="update"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="where"
+ return="com.iciql.QueryCondition&lt;T, A&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="A">
+</parameter>
+</method>
+<method name="where"
+ return="com.iciql.QueryCondition&lt;T, java.lang.Boolean&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="boolean">
+</parameter>
+</method>
+<method name="where"
+ return="com.iciql.QueryCondition&lt;T, java.lang.Byte&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="byte">
+</parameter>
+</method>
+<method name="where"
+ return="com.iciql.QueryWhere&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="filter" type="com.iciql.Filter">
+</parameter>
+</method>
+<method name="where"
+ return="com.iciql.QueryCondition&lt;T, java.lang.Double&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="double">
+</parameter>
+</method>
+<method name="where"
+ return="com.iciql.QueryCondition&lt;T, java.lang.Float&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="float">
+</parameter>
+</method>
+<method name="where"
+ return="com.iciql.QueryCondition&lt;T, java.lang.Integer&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="int">
+</parameter>
+</method>
+<method name="where"
+ return="com.iciql.QueryWhere&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="fragment" type="java.lang.String">
+</parameter>
+<parameter name="args" type="java.lang.Object...">
+</parameter>
+</method>
+<method name="where"
+ return="com.iciql.QueryCondition&lt;T, java.lang.Long&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="long">
+</parameter>
+</method>
+<method name="where"
+ return="com.iciql.QueryCondition&lt;T, java.lang.Short&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="short">
+</parameter>
+</method>
+<method name="whereTrue"
+ return="com.iciql.QueryWhere&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="condition" type="java.lang.Boolean">
+</parameter>
+</method>
+</class>
+<class name="QueryBetween"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<constructor name="QueryBetween"
+ type="com.iciql.QueryBetween"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="query" type="com.iciql.Query&lt;T&gt;">
+</parameter>
+<parameter name="x" type="A">
+</parameter>
+<parameter name="y" type="A">
+</parameter>
+</constructor>
+<method name="and"
+ return="com.iciql.QueryWhere&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="z" type="A">
+</parameter>
+</method>
+</class>
+<class name="QueryCondition"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<method name="atLeast"
+ return="com.iciql.QueryWhere&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="y" type="A">
+</parameter>
+</method>
+<method name="atMost"
+ return="com.iciql.QueryWhere&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="y" type="A">
+</parameter>
+</method>
+<method name="between"
+ return="com.iciql.QueryBetween&lt;T, A&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="y" type="A">
+</parameter>
+</method>
+<method name="exceeds"
+ return="com.iciql.QueryWhere&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="y" type="A">
+</parameter>
+</method>
+<method name="is"
+ return="com.iciql.QueryWhere&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="y" type="A">
+</parameter>
+</method>
+<method name="isNot"
+ return="com.iciql.QueryWhere&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="y" type="A">
+</parameter>
+</method>
+<method name="isNotNull"
+ return="com.iciql.QueryWhere&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="isNull"
+ return="com.iciql.QueryWhere&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="lessThan"
+ return="com.iciql.QueryWhere&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="y" type="A">
+</parameter>
+</method>
+<method name="like"
+ return="com.iciql.QueryWhere&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="pattern" type="A">
+</parameter>
+</method>
+</class>
+<class name="QueryJoin"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<method name="on"
+ return="com.iciql.QueryJoinCondition&lt;A&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="A">
+</parameter>
+</method>
+</class>
+<class name="QueryJoinCondition"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<method name="is"
+ return="com.iciql.Query&lt;?&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="y" type="A">
+</parameter>
+</method>
+</class>
+<class name="QueryWhere"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<method name="and"
+ return="com.iciql.QueryCondition&lt;T, A&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="A">
+</parameter>
+</method>
+<method name="and"
+ return="com.iciql.QueryCondition&lt;T, java.lang.Boolean&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="boolean">
+</parameter>
+</method>
+<method name="and"
+ return="com.iciql.QueryCondition&lt;T, java.lang.Byte&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="byte">
+</parameter>
+</method>
+<method name="and"
+ return="com.iciql.QueryCondition&lt;T, java.lang.Double&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="double">
+</parameter>
+</method>
+<method name="and"
+ return="com.iciql.QueryCondition&lt;T, java.lang.Float&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="float">
+</parameter>
+</method>
+<method name="and"
+ return="com.iciql.QueryCondition&lt;T, java.lang.Integer&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="int">
+</parameter>
+</method>
+<method name="and"
+ return="com.iciql.QueryCondition&lt;T, java.lang.Long&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="long">
+</parameter>
+</method>
+<method name="and"
+ return="com.iciql.QueryCondition&lt;T, java.lang.Short&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="short">
+</parameter>
+</method>
+<method name="delete"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="getSQL"
+ return="java.lang.String"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="limit"
+ return="com.iciql.QueryWhere&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="limit" type="long">
+</parameter>
+</method>
+<method name="offset"
+ return="com.iciql.QueryWhere&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="offset" type="long">
+</parameter>
+</method>
+<method name="or"
+ return="com.iciql.QueryCondition&lt;T, A&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="A">
+</parameter>
+</method>
+<method name="or"
+ return="com.iciql.QueryCondition&lt;T, java.lang.Boolean&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="boolean">
+</parameter>
+</method>
+<method name="or"
+ return="com.iciql.QueryCondition&lt;T, java.lang.Byte&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="byte">
+</parameter>
+</method>
+<method name="or"
+ return="com.iciql.QueryCondition&lt;T, java.lang.Double&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="double">
+</parameter>
+</method>
+<method name="or"
+ return="com.iciql.QueryCondition&lt;T, java.lang.Float&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="float">
+</parameter>
+</method>
+<method name="or"
+ return="com.iciql.QueryCondition&lt;T, java.lang.Integer&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="int">
+</parameter>
+</method>
+<method name="or"
+ return="com.iciql.QueryCondition&lt;T, java.lang.Long&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="long">
+</parameter>
+</method>
+<method name="or"
+ return="com.iciql.QueryCondition&lt;T, java.lang.Short&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="short">
+</parameter>
+</method>
+<method name="orderBy"
+ return="com.iciql.QueryWhere&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="boolean">
+</parameter>
+</method>
+<method name="orderBy"
+ return="com.iciql.QueryWhere&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="byte">
+</parameter>
+</method>
+<method name="orderBy"
+ return="com.iciql.QueryWhere&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="double">
+</parameter>
+</method>
+<method name="orderBy"
+ return="com.iciql.QueryWhere&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="float">
+</parameter>
+</method>
+<method name="orderBy"
+ return="com.iciql.QueryWhere&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="int">
+</parameter>
+</method>
+<method name="orderBy"
+ return="com.iciql.QueryWhere&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="java.lang.Object">
+</parameter>
+</method>
+<method name="orderBy"
+ return="com.iciql.QueryWhere&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="expressions" type="java.lang.Object...">
+</parameter>
+</method>
+<method name="orderBy"
+ return="com.iciql.QueryWhere&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="long">
+</parameter>
+</method>
+<method name="orderBy"
+ return="com.iciql.QueryWhere&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="field" type="short">
+</parameter>
+</method>
+<method name="orderByDesc"
+ return="com.iciql.QueryWhere&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="expr" type="java.lang.Object">
+</parameter>
+</method>
+<method name="orderByDescNullsFirst"
+ return="com.iciql.QueryWhere&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="expr" type="java.lang.Object">
+</parameter>
+</method>
+<method name="orderByDescNullsLast"
+ return="com.iciql.QueryWhere&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="expr" type="java.lang.Object">
+</parameter>
+</method>
+<method name="orderByNullsFirst"
+ return="com.iciql.QueryWhere&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="expr" type="java.lang.Object">
+</parameter>
+</method>
+<method name="orderByNullsLast"
+ return="com.iciql.QueryWhere&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="expr" type="java.lang.Object">
+</parameter>
+</method>
+<method name="select"
+ return="java.util.List&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="select"
+ return="java.util.List&lt;X&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="Z">
+</parameter>
+</method>
+<method name="selectCount"
+ return="long"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="selectDistinct"
+ return="java.util.List&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="selectDistinct"
+ return="java.util.List&lt;X&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="Z">
+</parameter>
+</method>
+<method name="selectFirst"
+ return="T"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="selectFirst"
+ return="X"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="Z">
+</parameter>
+</method>
+<method name="update"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+</class>
+<class name="RuntimeToken"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<implements name="com.iciql.Token">
+</implements>
+<constructor name="RuntimeToken"
+ type="com.iciql.RuntimeToken"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="fragment" type="java.lang.String">
+</parameter>
+<parameter name="args" type="java.lang.Object...">
+</parameter>
+</constructor>
+<method name="appendSQL"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="stat" type="com.iciql.SQLStatement">
+</parameter>
+<parameter name="query" type="com.iciql.Query&lt;T&gt;">
+</parameter>
+</method>
+</class>
+<interface name="SQLDialect"
+ abstract="true"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<method name="appendLimitOffset"
+ return="void"
+ abstract="true"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="stat" type="com.iciql.SQLStatement">
+</parameter>
+<parameter name="limit" type="long">
+</parameter>
+<parameter name="offset" type="long">
+</parameter>
+</method>
+<method name="configureDialect"
+ return="void"
+ abstract="true"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="databaseName" type="java.lang.String">
+</parameter>
+<parameter name="data" type="java.sql.DatabaseMetaData">
+</parameter>
+</method>
+<method name="convertSqlType"
+ return="java.lang.String"
+ abstract="true"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="sqlType" type="java.lang.String">
+</parameter>
+</method>
+<method name="getDateTimeClass"
+ return="java.lang.Class&lt;? extends java.util.Date&gt;"
+ abstract="true"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="prepareColumnName"
+ return="java.lang.String"
+ abstract="true"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="name" type="java.lang.String">
+</parameter>
+</method>
+<method name="prepareCreateIndex"
+ return="void"
+ abstract="true"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="stat" type="com.iciql.SQLStatement">
+</parameter>
+<parameter name="schemaName" type="java.lang.String">
+</parameter>
+<parameter name="tableName" type="java.lang.String">
+</parameter>
+<parameter name="index" type="com.iciql.TableDefinition.IndexDefinition">
+</parameter>
+</method>
+<method name="prepareCreateTable"
+ return="void"
+ abstract="true"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="stat" type="com.iciql.SQLStatement">
+</parameter>
+<parameter name="def" type="com.iciql.TableDefinition&lt;T&gt;">
+</parameter>
+</method>
+<method name="prepareDropTable"
+ return="void"
+ abstract="true"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="stat" type="com.iciql.SQLStatement">
+</parameter>
+<parameter name="def" type="com.iciql.TableDefinition&lt;T&gt;">
+</parameter>
+</method>
+<method name="prepareMerge"
+ return="void"
+ abstract="true"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="stat" type="com.iciql.SQLStatement">
+</parameter>
+<parameter name="schemaName" type="java.lang.String">
+</parameter>
+<parameter name="tableName" type="java.lang.String">
+</parameter>
+<parameter name="def" type="com.iciql.TableDefinition&lt;T&gt;">
+</parameter>
+<parameter name="obj" type="java.lang.Object">
+</parameter>
+</method>
+<method name="prepareTableName"
+ return="java.lang.String"
+ abstract="true"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="schemaName" type="java.lang.String">
+</parameter>
+<parameter name="tableName" type="java.lang.String">
+</parameter>
+</method>
+<method name="supportsIfNotExists"
+ return="boolean"
+ abstract="true"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="supportsLimitOffset"
+ return="boolean"
+ abstract="true"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="supportsMemoryTables"
+ return="boolean"
+ abstract="true"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+</interface>
+<class name="SQLDialectDefault"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<implements name="com.iciql.SQLDialect">
+</implements>
+<constructor name="SQLDialectDefault"
+ type="com.iciql.SQLDialectDefault"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</constructor>
+<method name="appendLimitOffset"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="stat" type="com.iciql.SQLStatement">
+</parameter>
+<parameter name="limit" type="long">
+</parameter>
+<parameter name="offset" type="long">
+</parameter>
+</method>
+<method name="configureDialect"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="databaseName" type="java.lang.String">
+</parameter>
+<parameter name="data" type="java.sql.DatabaseMetaData">
+</parameter>
+</method>
+<method name="convertSqlType"
+ return="java.lang.String"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="sqlType" type="java.lang.String">
+</parameter>
+</method>
+<method name="getDateTimeClass"
+ return="java.lang.Class&lt;? extends java.util.Date&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="isIntegerType"
+ return="boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="protected"
+>
+<parameter name="dataType" type="java.lang.String">
+</parameter>
+</method>
+<method name="prepareColumnDefinition"
+ return="boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="protected"
+>
+<parameter name="buff" type="com.iciql.util.StatementBuilder">
+</parameter>
+<parameter name="dataType" type="java.lang.String">
+</parameter>
+<parameter name="isAutoIncrement" type="boolean">
+</parameter>
+<parameter name="isPrimaryKey" type="boolean">
+</parameter>
+</method>
+<method name="prepareColumnName"
+ return="java.lang.String"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="name" type="java.lang.String">
+</parameter>
+</method>
+<method name="prepareCreateIndex"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="stat" type="com.iciql.SQLStatement">
+</parameter>
+<parameter name="schemaName" type="java.lang.String">
+</parameter>
+<parameter name="tableName" type="java.lang.String">
+</parameter>
+<parameter name="index" type="com.iciql.TableDefinition.IndexDefinition">
+</parameter>
+</method>
+<method name="prepareCreateTable"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="stat" type="com.iciql.SQLStatement">
+</parameter>
+<parameter name="def" type="com.iciql.TableDefinition&lt;T&gt;">
+</parameter>
+</method>
+<method name="prepareDropTable"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="stat" type="com.iciql.SQLStatement">
+</parameter>
+<parameter name="def" type="com.iciql.TableDefinition&lt;T&gt;">
+</parameter>
+</method>
+<method name="prepareMerge"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="stat" type="com.iciql.SQLStatement">
+</parameter>
+<parameter name="schemaName" type="java.lang.String">
+</parameter>
+<parameter name="tableName" type="java.lang.String">
+</parameter>
+<parameter name="def" type="com.iciql.TableDefinition&lt;T&gt;">
+</parameter>
+<parameter name="obj" type="java.lang.Object">
+</parameter>
+</method>
+<method name="prepareTableName"
+ return="java.lang.String"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="schemaName" type="java.lang.String">
+</parameter>
+<parameter name="tableName" type="java.lang.String">
+</parameter>
+</method>
+<method name="supportsIfNotExists"
+ return="boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="supportsLimitOffset"
+ return="boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="supportsMemoryTables"
+ return="boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+</class>
+<class name="SQLDialectDerby"
+ extends="com.iciql.SQLDialectDefault"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<constructor name="SQLDialectDerby"
+ type="com.iciql.SQLDialectDerby"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</constructor>
+</class>
+<class name="SQLDialectH2"
+ extends="com.iciql.SQLDialectDefault"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<constructor name="SQLDialectH2"
+ type="com.iciql.SQLDialectH2"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</constructor>
+</class>
+<class name="SQLDialectHSQL"
+ extends="com.iciql.SQLDialectDefault"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<constructor name="SQLDialectHSQL"
+ type="com.iciql.SQLDialectHSQL"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</constructor>
+</class>
+<class name="SQLDialectMySQL"
+ extends="com.iciql.SQLDialectDefault"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<constructor name="SQLDialectMySQL"
+ type="com.iciql.SQLDialectMySQL"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</constructor>
+</class>
+<class name="SQLDialectPostgreSQL"
+ extends="com.iciql.SQLDialectDefault"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<constructor name="SQLDialectPostgreSQL"
+ type="com.iciql.SQLDialectPostgreSQL"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</constructor>
+</class>
+<class name="SQLStatement"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<method name="addParameter"
+ return="com.iciql.SQLStatement"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="o" type="java.lang.Object">
+</parameter>
+</method>
+<method name="appendColumn"
+ return="com.iciql.SQLStatement"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="column" type="java.lang.String">
+</parameter>
+</method>
+<method name="appendSQL"
+ return="com.iciql.SQLStatement"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="s" type="java.lang.String">
+</parameter>
+</method>
+<method name="appendTable"
+ return="com.iciql.SQLStatement"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="schema" type="java.lang.String">
+</parameter>
+<parameter name="table" type="java.lang.String">
+</parameter>
+</method>
+<method name="setSQL"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="sql" type="java.lang.String">
+</parameter>
+</method>
+</class>
+<class name="TableDefinition"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<field name="fields"
+ type="java.util.ArrayList"
+ transient="false"
+ volatile="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+</class>
+<class name="TableDefinition.IndexDefinition"
+ extends="java.lang.Object"
+ abstract="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<constructor name="TableDefinition.IndexDefinition"
+ type="com.iciql.TableDefinition.IndexDefinition"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</constructor>
+<field name="columnNames"
+ type="java.util.List"
+ transient="false"
+ volatile="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="indexName"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="type"
+ type="com.iciql.Iciql.IndexType"
+ transient="false"
+ volatile="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+</class>
+<class name="TableInspector"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</class>
+<class name="TestCondition"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<constructor name="TestCondition"
+ type="com.iciql.TestCondition"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="A">
+</parameter>
+</constructor>
+<method name="atLeast"
+ return="java.lang.Boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="y" type="A">
+</parameter>
+</method>
+<method name="atMost"
+ return="java.lang.Boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="y" type="A">
+</parameter>
+</method>
+<method name="exceeds"
+ return="java.lang.Boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="y" type="A">
+</parameter>
+</method>
+<method name="is"
+ return="java.lang.Boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="y" type="A">
+</parameter>
+</method>
+<method name="lessThan"
+ return="java.lang.Boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="y" type="A">
+</parameter>
+</method>
+<method name="like"
+ return="java.lang.Boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="pattern" type="A">
+</parameter>
+</method>
+</class>
+<interface name="Token"
+ abstract="true"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<method name="appendSQL"
+ return="void"
+ abstract="true"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="stat" type="com.iciql.SQLStatement">
+</parameter>
+<parameter name="query" type="com.iciql.Query&lt;T&gt;">
+</parameter>
+</method>
+</interface>
+<interface name="UpdateColumn"
+ abstract="true"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<method name="appendSQL"
+ return="void"
+ abstract="true"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="stat" type="com.iciql.SQLStatement">
+</parameter>
+</method>
+</interface>
+<class name="UpdateColumnIncrement"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<implements name="com.iciql.UpdateColumn">
+</implements>
+<method name="appendSQL"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="stat" type="com.iciql.SQLStatement">
+</parameter>
+</method>
+<method name="by"
+ return="com.iciql.Query&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="y" type="A">
+</parameter>
+</method>
+</class>
+<class name="UpdateColumnSet"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<implements name="com.iciql.UpdateColumn">
+</implements>
+<method name="appendSQL"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="stat" type="com.iciql.SQLStatement">
+</parameter>
+</method>
+<method name="to"
+ return="com.iciql.Query&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="y" type="A">
+</parameter>
+</method>
+</class>
+<class name="ValidationRemark"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<method name="consider"
+ return="com.iciql.ValidationRemark"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="table" type="java.lang.String">
+</parameter>
+<parameter name="col" type="com.iciql.TableInspector.ColumnInspector">
+</parameter>
+<parameter name="message" type="java.lang.String">
+</parameter>
+</method>
+<method name="consider"
+ return="com.iciql.ValidationRemark"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="table" type="java.lang.String">
+</parameter>
+<parameter name="type" type="java.lang.String">
+</parameter>
+<parameter name="message" type="java.lang.String">
+</parameter>
+</method>
+<method name="error"
+ return="com.iciql.ValidationRemark"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="table" type="java.lang.String">
+</parameter>
+<parameter name="field" type="com.iciql.TableDefinition.FieldDefinition">
+</parameter>
+<parameter name="message" type="java.lang.String">
+</parameter>
+</method>
+<method name="error"
+ return="com.iciql.ValidationRemark"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="table" type="java.lang.String">
+</parameter>
+<parameter name="col" type="com.iciql.TableInspector.ColumnInspector">
+</parameter>
+<parameter name="message" type="java.lang.String">
+</parameter>
+</method>
+<method name="error"
+ return="com.iciql.ValidationRemark"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="table" type="java.lang.String">
+</parameter>
+<parameter name="type" type="java.lang.String">
+</parameter>
+<parameter name="message" type="java.lang.String">
+</parameter>
+</method>
+<method name="isError"
+ return="boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="throwError"
+ return="com.iciql.ValidationRemark"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="throwOnError" type="boolean">
+</parameter>
+</method>
+<method name="toCSVString"
+ return="java.lang.String"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="warn"
+ return="com.iciql.ValidationRemark"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="table" type="java.lang.String">
+</parameter>
+<parameter name="col" type="com.iciql.TableInspector.ColumnInspector">
+</parameter>
+<parameter name="message" type="java.lang.String">
+</parameter>
+</method>
+<method name="warn"
+ return="com.iciql.ValidationRemark"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="table" type="java.lang.String">
+</parameter>
+<parameter name="type" type="java.lang.String">
+</parameter>
+<parameter name="message" type="java.lang.String">
+</parameter>
+</method>
+<field name="fieldName"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ static="false"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="fieldType"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ static="false"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="level"
+ type="com.iciql.ValidationRemark.Level"
+ transient="false"
+ volatile="false"
+ static="false"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="message"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ static="false"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="table"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ static="false"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+</class>
+<class name="ValidationRemark.Level"
+ extends="java.lang.Enum"
+ abstract="false"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<method name="valueOf"
+ return="com.iciql.ValidationRemark.Level"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="name" type="java.lang.String">
+</parameter>
+</method>
+<method name="values"
+ return="com.iciql.ValidationRemark.Level[]"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+</class>
+</package>
+<package name="com.iciql.bytecode"
+>
+<class name="And"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<implements name="com.iciql.Token">
+</implements>
+<method name="appendSQL"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="stat" type="com.iciql.SQLStatement">
+</parameter>
+<parameter name="query" type="com.iciql.Query&lt;T&gt;">
+</parameter>
+</method>
+</class>
+<class name="ArrayGet"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<implements name="com.iciql.Token">
+</implements>
+<method name="appendSQL"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="stat" type="com.iciql.SQLStatement">
+</parameter>
+<parameter name="query" type="com.iciql.Query&lt;T&gt;">
+</parameter>
+</method>
+</class>
+<class name="CaseWhen"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<implements name="com.iciql.Token">
+</implements>
+<method name="appendSQL"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="stat" type="com.iciql.SQLStatement">
+</parameter>
+<parameter name="query" type="com.iciql.Query&lt;T&gt;">
+</parameter>
+</method>
+</class>
+<class name="ClassReader"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<constructor name="ClassReader"
+ type="com.iciql.bytecode.ClassReader"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</constructor>
+<method name="decompile"
+ return="com.iciql.Token"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="instance" type="java.lang.Object">
+</parameter>
+<parameter name="fields" type="java.util.Map&lt;java.lang.String, java.lang.Object&gt;">
+</parameter>
+<parameter name="method" type="java.lang.String">
+</parameter>
+</method>
+</class>
+<interface name="Constant"
+ abstract="true"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<implements name="com.iciql.Token">
+</implements>
+<method name="getType"
+ return="com.iciql.bytecode.Constant.Type"
+ abstract="true"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="intValue"
+ return="int"
+ abstract="true"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+</interface>
+<class name="Constant.Type"
+ extends="java.lang.Enum"
+ abstract="false"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<method name="valueOf"
+ return="com.iciql.bytecode.Constant.Type"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="name" type="java.lang.String">
+</parameter>
+</method>
+<method name="values"
+ return="com.iciql.bytecode.Constant.Type[]"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+</class>
+<class name="ConstantNumber"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<implements name="com.iciql.bytecode.Constant">
+</implements>
+<method name="appendSQL"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="stat" type="com.iciql.SQLStatement">
+</parameter>
+<parameter name="query" type="com.iciql.Query&lt;T&gt;">
+</parameter>
+</method>
+<method name="getType"
+ return="com.iciql.bytecode.Constant.Type"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="intValue"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+</class>
+<class name="ConstantString"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<implements name="com.iciql.bytecode.Constant">
+</implements>
+<method name="appendSQL"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="stat" type="com.iciql.SQLStatement">
+</parameter>
+<parameter name="query" type="com.iciql.Query&lt;T&gt;">
+</parameter>
+</method>
+<method name="getType"
+ return="com.iciql.bytecode.Constant.Type"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="intValue"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+</class>
+<class name="Not"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<implements name="com.iciql.Token">
+</implements>
+<method name="appendSQL"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="stat" type="com.iciql.SQLStatement">
+</parameter>
+<parameter name="query" type="com.iciql.Query&lt;T&gt;">
+</parameter>
+</method>
+</class>
+<class name="Null"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<implements name="com.iciql.Token">
+</implements>
+<method name="appendSQL"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="stat" type="com.iciql.SQLStatement">
+</parameter>
+<parameter name="query" type="com.iciql.Query&lt;T&gt;">
+</parameter>
+</method>
+</class>
+<class name="Or"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<implements name="com.iciql.Token">
+</implements>
+<method name="appendSQL"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="stat" type="com.iciql.SQLStatement">
+</parameter>
+<parameter name="query" type="com.iciql.Query&lt;T&gt;">
+</parameter>
+</method>
+</class>
+<class name="Variable"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<implements name="com.iciql.Token">
+</implements>
+<method name="appendSQL"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="stat" type="com.iciql.SQLStatement">
+</parameter>
+<parameter name="query" type="com.iciql.Query&lt;T&gt;">
+</parameter>
+</method>
+</class>
+</package>
+<package name="com.iciql.util"
+>
+<class name="GenerateModels"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<constructor name="GenerateModels"
+ type="com.iciql.util.GenerateModels"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</constructor>
+<method name="execute"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="url" type="java.lang.String">
+</parameter>
+<parameter name="user" type="java.lang.String">
+</parameter>
+<parameter name="password" type="java.lang.String">
+</parameter>
+<parameter name="schema" type="java.lang.String">
+</parameter>
+<parameter name="table" type="java.lang.String">
+</parameter>
+<parameter name="packageName" type="java.lang.String">
+</parameter>
+<parameter name="folder" type="java.lang.String">
+</parameter>
+<parameter name="annotateSchema" type="boolean">
+</parameter>
+<parameter name="trimStrings" type="boolean">
+</parameter>
+<exception name="SQLException" type="java.sql.SQLException">
+</exception>
+</method>
+<method name="main"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="args" type="java.lang.String...">
+</parameter>
+</method>
+<method name="runTool"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="args" type="java.lang.String...">
+</parameter>
+<exception name="SQLException" type="java.sql.SQLException">
+</exception>
+</method>
+<method name="showUsage"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="protected"
+>
+</method>
+<method name="throwUnsupportedOption"
+ return="java.sql.SQLException"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="protected"
+>
+<parameter name="option" type="java.lang.String">
+</parameter>
+<exception name="SQLException" type="java.sql.SQLException">
+</exception>
+</method>
+<field name="out"
+ type="java.io.PrintStream"
+ transient="false"
+ volatile="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="protected"
+>
+</field>
+</class>
+<class name="IciqlLogger"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<constructor name="IciqlLogger"
+ type="com.iciql.util.IciqlLogger"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</constructor>
+<method name="activateConsoleLogger"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="create"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="statement" type="java.lang.String">
+</parameter>
+</method>
+<method name="deactivateConsoleLogger"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="delete"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="statement" type="java.lang.String">
+</parameter>
+</method>
+<method name="drop"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="statement" type="java.lang.String">
+</parameter>
+</method>
+<method name="getCreateCount"
+ return="long"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="getDeleteCount"
+ return="long"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="getDropCount"
+ return="long"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="getInsertCount"
+ return="long"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="getMergeCount"
+ return="long"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="getSelectCount"
+ return="long"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="getTotalCount"
+ return="long"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="getUpdateCount"
+ return="long"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="getWarnCount"
+ return="long"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="insert"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="statement" type="java.lang.String">
+</parameter>
+</method>
+<method name="logStats"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="merge"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="statement" type="java.lang.String">
+</parameter>
+</method>
+<method name="registerListener"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="listener" type="com.iciql.util.IciqlLogger.IciqlListener">
+</parameter>
+</method>
+<method name="select"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="statement" type="java.lang.String">
+</parameter>
+</method>
+<method name="unregisterListener"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="listener" type="com.iciql.util.IciqlLogger.IciqlListener">
+</parameter>
+</method>
+<method name="update"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="statement" type="java.lang.String">
+</parameter>
+</method>
+<method name="warn"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="message" type="java.lang.String">
+</parameter>
+<parameter name="args" type="java.lang.Object...">
+</parameter>
+</method>
+</class>
+<interface name="IciqlLogger.IciqlListener"
+ abstract="true"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<method name="logIciql"
+ return="void"
+ abstract="true"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="type" type="com.iciql.util.IciqlLogger.StatementType">
+</parameter>
+<parameter name="statement" type="java.lang.String">
+</parameter>
+</method>
+</interface>
+<class name="IciqlLogger.StatementType"
+ extends="java.lang.Enum"
+ abstract="false"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<method name="valueOf"
+ return="com.iciql.util.IciqlLogger.StatementType"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="name" type="java.lang.String">
+</parameter>
+</method>
+<method name="values"
+ return="com.iciql.util.IciqlLogger.StatementType[]"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+</class>
+<class name="JdbcUtils"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<method name="closeSilently"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="conn" type="java.sql.Connection">
+</parameter>
+</method>
+<method name="closeSilently"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="rs" type="java.sql.ResultSet">
+</parameter>
+</method>
+<method name="closeSilently"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="rs" type="java.sql.ResultSet">
+</parameter>
+<parameter name="closeStatement" type="boolean">
+</parameter>
+</method>
+<method name="closeSilently"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="stat" type="java.sql.Statement">
+</parameter>
+</method>
+<method name="closeSilently"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="conn" type="javax.sql.XAConnection">
+</parameter>
+</method>
+<method name="escapeMetaDataPattern"
+ return="java.lang.String"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="pattern" type="java.lang.String">
+</parameter>
+</method>
+<method name="getConnection"
+ return="java.sql.Connection"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="driver" type="java.lang.String">
+</parameter>
+<parameter name="url" type="java.lang.String">
+</parameter>
+<parameter name="user" type="java.lang.String">
+</parameter>
+<parameter name="password" type="java.lang.String">
+</parameter>
+<exception name="SQLException" type="java.sql.SQLException">
+</exception>
+</method>
+<method name="getConnection"
+ return="java.sql.Connection"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="driver" type="java.lang.String">
+</parameter>
+<parameter name="url" type="java.lang.String">
+</parameter>
+<parameter name="prop" type="java.util.Properties">
+</parameter>
+<exception name="SQLException" type="java.sql.SQLException">
+</exception>
+</method>
+<method name="getDriver"
+ return="java.lang.String"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="url" type="java.lang.String">
+</parameter>
+</method>
+<method name="load"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="url" type="java.lang.String">
+</parameter>
+</method>
+</class>
+<class name="Slf4jIciqlListener"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<implements name="com.iciql.util.IciqlLogger.IciqlListener">
+</implements>
+<constructor name="Slf4jIciqlListener"
+ type="com.iciql.util.Slf4jIciqlListener"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</constructor>
+<constructor name="Slf4jIciqlListener"
+ type="com.iciql.util.Slf4jIciqlListener"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="defaultLevel" type="com.iciql.util.Slf4jIciqlListener.Level">
+</parameter>
+</constructor>
+<method name="logIciql"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="type" type="com.iciql.util.IciqlLogger.StatementType">
+</parameter>
+<parameter name="statement" type="java.lang.String">
+</parameter>
+</method>
+<method name="setLevel"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="type" type="com.iciql.util.IciqlLogger.StatementType">
+</parameter>
+<parameter name="level" type="com.iciql.util.Slf4jIciqlListener.Level">
+</parameter>
+</method>
+</class>
+<class name="Slf4jIciqlListener.Level"
+ extends="java.lang.Enum"
+ abstract="false"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<method name="valueOf"
+ return="com.iciql.util.Slf4jIciqlListener.Level"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="name" type="java.lang.String">
+</parameter>
+</method>
+<method name="values"
+ return="com.iciql.util.Slf4jIciqlListener.Level[]"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+</class>
+<class name="StatementBuilder"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<constructor name="StatementBuilder"
+ type="com.iciql.util.StatementBuilder"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</constructor>
+<constructor name="StatementBuilder"
+ type="com.iciql.util.StatementBuilder"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="string" type="java.lang.String">
+</parameter>
+</constructor>
+<method name="append"
+ return="com.iciql.util.StatementBuilder"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="c" type="char">
+</parameter>
+</method>
+<method name="append"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="sb" type="com.iciql.util.StatementBuilder">
+</parameter>
+</method>
+<method name="append"
+ return="com.iciql.util.StatementBuilder"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="s" type="java.lang.String">
+</parameter>
+</method>
+<method name="append"
+ return="com.iciql.util.StatementBuilder"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="long">
+</parameter>
+</method>
+<method name="appendExceptFirst"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="s" type="java.lang.String">
+</parameter>
+</method>
+<method name="appendOnlyFirst"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="s" type="java.lang.String">
+</parameter>
+</method>
+<method name="getCount"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="insert"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="offset" type="int">
+</parameter>
+<parameter name="c" type="char">
+</parameter>
+</method>
+<method name="length"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="resetCount"
+ return="com.iciql.util.StatementBuilder"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+</class>
+<class name="StringUtils"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<constructor name="StringUtils"
+ type="com.iciql.util.StringUtils"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</constructor>
+<method name="arraySplit"
+ return="java.lang.String[]"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="s" type="java.lang.String">
+</parameter>
+<parameter name="separatorChar" type="char">
+</parameter>
+<parameter name="trim" type="boolean">
+</parameter>
+</method>
+<method name="breakLinesForHtml"
+ return="java.lang.String"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="string" type="java.lang.String">
+</parameter>
+</method>
+<method name="calculateSHA1"
+ return="java.lang.String"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="bytes" type="byte[]">
+</parameter>
+</method>
+<method name="calculateSHA1"
+ return="java.lang.String"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="text" type="java.lang.String">
+</parameter>
+</method>
+<method name="count"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="c" type="char">
+</parameter>
+<parameter name="value" type="java.lang.String">
+</parameter>
+</method>
+<method name="escapeForHtml"
+ return="java.lang.String"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="inStr" type="java.lang.String">
+</parameter>
+<parameter name="changeSpace" type="boolean">
+</parameter>
+</method>
+<method name="isNullOrEmpty"
+ return="boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="s" type="java.lang.String">
+</parameter>
+</method>
+<method name="javaEncode"
+ return="java.lang.String"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="s" type="java.lang.String">
+</parameter>
+</method>
+<method name="pad"
+ return="java.lang.String"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="string" type="java.lang.String">
+</parameter>
+<parameter name="n" type="int">
+</parameter>
+<parameter name="padding" type="java.lang.String">
+</parameter>
+<parameter name="right" type="boolean">
+</parameter>
+</method>
+<method name="quoteStringSQL"
+ return="java.lang.String"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="s" type="java.lang.String">
+</parameter>
+</method>
+<method name="readContent"
+ return="java.lang.String"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="file" type="java.io.File">
+</parameter>
+<parameter name="lineEnding" type="java.lang.String">
+</parameter>
+</method>
+<method name="replaceAll"
+ return="java.lang.String"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="s" type="java.lang.String">
+</parameter>
+<parameter name="before" type="java.lang.String">
+</parameter>
+<parameter name="after" type="java.lang.String">
+</parameter>
+</method>
+</class>
+<class name="Utils"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<constructor name="Utils"
+ type="com.iciql.util.Utils"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</constructor>
+<method name="convert"
+ return="java.lang.Object"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="o" type="java.lang.Object">
+</parameter>
+<parameter name="targetType" type="java.lang.Class&lt;?&gt;">
+</parameter>
+</method>
+<method name="convertEnum"
+ return="java.lang.Object"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="o" type="java.lang.Enum&lt;?&gt;">
+</parameter>
+<parameter name="type" type="com.iciql.Iciql.EnumType">
+</parameter>
+</method>
+<method name="convertEnum"
+ return="java.lang.Object"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="o" type="java.lang.Object">
+</parameter>
+<parameter name="targetType" type="java.lang.Class&lt;?&gt;">
+</parameter>
+<parameter name="type" type="com.iciql.Iciql.EnumType">
+</parameter>
+</method>
+<method name="getClass"
+ return="java.lang.Class&lt;X&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="x" type="X">
+</parameter>
+</method>
+<method name="isSimpleType"
+ return="boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="clazz" type="java.lang.Class&lt;T&gt;">
+</parameter>
+</method>
+<method name="loadClass"
+ return="java.lang.Class&lt;?&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="className" type="java.lang.String">
+</parameter>
+</method>
+<method name="newArrayList"
+ return="java.util.ArrayList&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="newArrayList"
+ return="java.util.ArrayList&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="c" type="java.util.Collection&lt;T&gt;">
+</parameter>
+</method>
+<method name="newHashMap"
+ return="java.util.HashMap&lt;A, B&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="newHashSet"
+ return="java.util.HashSet&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="newHashSet"
+ return="java.util.HashSet&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="list" type="java.util.Collection&lt;T&gt;">
+</parameter>
+</method>
+<method name="newIdentityHashMap"
+ return="java.util.IdentityHashMap&lt;A, B&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="newObject"
+ return="T"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="clazz" type="java.lang.Class&lt;T&gt;">
+</parameter>
+</method>
+<method name="newSynchronizedHashMap"
+ return="java.util.Map&lt;A, B&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="newThreadLocal"
+ return="java.lang.ThreadLocal&lt;T&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="clazz" type="java.lang.Class&lt;? extends T&gt;">
+</parameter>
+</method>
+<method name="readBlobAndClose"
+ return="byte[]"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="in" type="java.io.InputStream">
+</parameter>
+<parameter name="length" type="int">
+</parameter>
+<exception name="IOException" type="java.io.IOException">
+</exception>
+</method>
+<method name="readStringAndClose"
+ return="java.lang.String"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="in" type="java.io.Reader">
+</parameter>
+<parameter name="length" type="int">
+</parameter>
+<exception name="IOException" type="java.io.IOException">
+</exception>
+</method>
+<field name="COUNTER"
+ type="java.util.concurrent.atomic.AtomicLong"
+ transient="false"
+ volatile="false"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+</class>
+<class name="WeakIdentityHashMap"
+ extends="java.lang.Object"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<implements name="java.util.Map">
+</implements>
+<constructor name="WeakIdentityHashMap"
+ type="com.iciql.util.WeakIdentityHashMap"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</constructor>
+<method name="clear"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="containsKey"
+ return="boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="key" type="java.lang.Object">
+</parameter>
+</method>
+<method name="containsValue"
+ return="boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="value" type="java.lang.Object">
+</parameter>
+</method>
+<method name="entrySet"
+ return="java.util.Set&lt;java.util.Map.Entry&lt;K, V&gt;&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="get"
+ return="V"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="key" type="java.lang.Object">
+</parameter>
+</method>
+<method name="isEmpty"
+ return="boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="keySet"
+ return="java.util.Set&lt;K&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="put"
+ return="V"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="key" type="K">
+</parameter>
+<parameter name="value" type="V">
+</parameter>
+</method>
+<method name="putAll"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="m" type="java.util.Map&lt;? extends K, ? extends V&gt;">
+</parameter>
+</method>
+<method name="remove"
+ return="V"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="key" type="java.lang.Object">
+</parameter>
+</method>
+<method name="size"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="values"
+ return="java.util.Collection&lt;V&gt;"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+</class>
+</package>
+</api>
diff --git a/build.xml b/build.xml
index 5ac4352..72c4960 100644
--- a/build.xml
+++ b/build.xml
@@ -108,6 +108,7 @@
<!-- Execute the test suite -->
<echo>Executing iciql ${iq.version} test suite</echo>
+ <echo>This will take a few minutes...</echo>
<java classpath="${project.build.dir}" classname="com.iciql.test.IciqlSuite">
<classpath refid="master-classpath" />
<arg value="--dbFile" />
@@ -139,6 +140,8 @@
<param name="-since"/> <param name="api/v1.xml"/> <param name="v1" />
<param name="-since"/> <param name="api/v2.xml"/> <param name="v2" />
<param name="-since"/> <param name="api/v3.xml"/> <param name="v3" />
+ <param name="-since"/> <param name="api/v4.xml"/> <param name="v4" />
+ <param name="-since"/> <param name="api/v5.xml"/> <param name="v5" />
<param name="-apiversion" value="v${iq.apiCurrent}"/>
<param name="-apixml" value="api/v${iq.apiCurrent}.xml"/>
diff --git a/docs/00_index.mkd b/docs/00_index.mkd
index daf9c42..ea5df61 100644
--- a/docs/00_index.mkd
+++ b/docs/00_index.mkd
@@ -40,6 +40,7 @@ select * from products
- [HSQLDB](http://hsqldb.org) 2.2.4
- [Derby](http://db.apache.org/derby) 10.7.1.1 & 10.8.1.2
- [MySQL](http://mysql.com) 5.0.51b
+- [PostgreSQL](http://postgresql.org) 9.0
Support for others is possible and may only require creating a simple "dialect" class.
diff --git a/docs/02_usage.mkd b/docs/02_usage.mkd
index 31dbfb6..14619f2 100644
--- a/docs/02_usage.mkd
+++ b/docs/02_usage.mkd
@@ -97,33 +97,33 @@ Iciql does not throw any [checked exceptions](http://en.wikipedia.org/wiki/Excep
### Statement Logging
-Iciql provides a mechanism to log generated statements to the console, to SLF4J, or to your own logging framework. Exceptions are not logged using this mechanism; exceptions are wrapped and rethrown as `IciqlException`, which is a RuntimeException.
+Iciql provides a mechanism to log generated statements and warnings to the console, to SLF4J, or to your own logging framework. Exceptions are not logged using this mechanism; exceptions are wrapped and rethrown as `IciqlException`, which is a RuntimeException.
#### Console Logging
%BEGINCODE%
-StatmentLogger.activeConsoleLogger();
-StatmentLogger.deactiveConsoleLogger();
+IciqlLogger.activeConsoleLogger();
+IciqlLogger.deactiveConsoleLogger();
%ENDCODE%
#### SLF4J Logging
%BEGINCODE%
-Slf4jStatementListener slf4j = new Slf4jStatementListener();
+Slf4jIciqlListener slf4j = new Slf4jIciqlListener();
slf4j.setLevel(StatementType.CREATE, Level.WARN);
slf4j.setLevel(StatementType.DELETE, Level.WARN);
slf4j.setLevel(StatementType.MERGE, Level.OFF);
-StatmentLogger.registerListener(slf4j);
-StatmentLogger.unregisterListener(slf4j);
+IciqlLogger.registerListener(slf4j);
+IciqlLogger.unregisterListener(slf4j);
%ENDCODE%
#### Custom Logging
%BEGINCODE%
-StatementListener custom = new StatementListener() {
- public void logStatement(StatementType type, String statement) {
+IciqlListener custom = new IciqlListener() {
+ public void logIciql(StatementType type, String statement) {
// do log
}
};
-StatmentLogger.registerListener(custom);
-StatmentLogger.unregisterListener(custom);
+IciqlLogger.registerListener(custom);
+IciqlLogger.unregisterListener(custom);
%ENDCODE%
## Understanding Aliases and Model Classes
diff --git a/docs/03_performance.mkd b/docs/03_performance.mkd
index 7df050a..12c07a1 100644
--- a/docs/03_performance.mkd
+++ b/docs/03_performance.mkd
@@ -9,7 +9,11 @@ Performance of iciql statement generation is not currently benchmarked.
### iciql+database performance comparison
-The following data was generated by running the iciql test suite. The suite is almost completely single-threaded. All Java databases are run in embedded *memory-only* mode through a JDBC connection.
+The following data was generated by running the *single-threaded* iciql test suite. All database connections are pooled and re-used within each execution of the test suite using [Apache Commons DBCP](http://commons.apache.org/dbcp).
+
+Connections are pooled to normalize embedded database performance with out-of-process database performance. Some of the Java embedded database configurations have a very high startup-time penalty. Notably, H2 is slow to open a database and its performance is substantially affected if connection pooling is not enabled to keep the embedded database open.
+
+All performance numbers include the combined overhead of iciql statement generation and JUnit 4 test framework execution so they are not bare-metal database metrics.
<pre>
%DBPERFORMANCE%
diff --git a/docs/05_building.mkd b/docs/05_building.mkd
index 8a4f45b..0025279 100644
--- a/docs/05_building.mkd
+++ b/docs/05_building.mkd
@@ -11,12 +11,16 @@ Additionally, [eclipse-cs](http://eclipse-cs.sourceforge.net), [FindBugs](http:/
- [H2 Database](http://h2database.com) (Eclipse Public License 1.0)
- [HSQL Database Engine](http://hsqldb.org) (BSD)
- [Apache Derby Database](http://db.apache.org/derby) (Apache 2.0)
+- [MySQL Connector/J](http://dev.mysql.com/downloads/connector/j) (GPL)
+- [PostgreSQL JDBC Connector](http://jdbc.postgresql.org) (BSD)
- [JUnit](http://junit.org) (Common Public License)
- [commons-net](http://commons.apache.org/net) (Apache 2.0)
- [ant-googlecode](http://code.google.com/p/ant-googlecode) (New BSD)
- [MarkdownPapers](http://markdown.tautua.org) (Apache 2.0)
- [doclava](http://code.google.com/p/doclava) (Apache 2.0)
- [SLF4J](http://www.slf4j.org) (MIT/X11)
+- [Apache Commons Pool](http://commons.apache.org/pool) (Apache 2.0)
+- [Apache Commons DBCP](http://commons.apache.org/dbcp) (Apache 2.0)
### Instructions
1. Clone the git repository from [GoogleCode][iciqlsrc].
diff --git a/docs/05_releases.mkd b/docs/05_releases.mkd
index 8e0dfd6..bd3c853 100644
--- a/docs/05_releases.mkd
+++ b/docs/05_releases.mkd
@@ -6,13 +6,20 @@
**%VERSION%** ([zip](http://code.google.com/p/iciql/downloads/detail?name=%ZIP%)|[jar](http://code.google.com/p/iciql/downloads/detail?name=%JAR%)) &nbsp; *released %BUILDDATE%*
+- api change release (API v6)
- Finished MySQL dialect implementation. MySQL 5.0.51b passes 100% of tests.
+- Added PostgreSQL dialect. PostgreSQL 9.0 passes all but the boolean-as-int tests.
- Added Db.dropTable(T) method
+- Overhauled test suite and included more database configurations.
+- Renamed StatementLogger to IciqlLogger
+- Added IciqlLogger.warn method
+- Added IciqlLogger.drop method
### Older Releases
**0.6.6** &nbsp; *released 2011-08-15*
+- api change release (API v5)
- Disabled two concurrency unit tests since I believe they are flawed and do not yield reproducible results
- Added Derby database dialect. Derby 10.7.1.1 and 10.8.1.2 pass 100% of tests.
- Implemented HSQL MERGE syntax. HSQL 2.2.4 fails 1 test which is a known [bug in HSQL](https://sourceforge.net/tracker/?func=detail&aid=3390047&group_id=23316&atid=378131)
diff --git a/src/com/iciql/Constants.java b/src/com/iciql/Constants.java
index bf6a5d0..b8d38dd 100644
--- a/src/com/iciql/Constants.java
+++ b/src/com/iciql/Constants.java
@@ -25,14 +25,14 @@ public class Constants {
// The build script extracts this exact line so be careful editing it
// and only use A-Z a-z 0-9 .-_ in the string.
- public static final String VERSION = "0.6.6";
+ public static final String VERSION = "0.7.0";
// The build script extracts this exact line so be careful editing it
// and only use A-Z a-z 0-9 .-_ in the string.
- public static final String VERSION_DATE = "2011-08-15";
+ public static final String VERSION_DATE = "2011-08-17";
// The build script extracts this exact line so be careful editing it
// and only use A-Z a-z 0-9 .-_ in the string.
- public static final String API_CURRENT = "5";
+ public static final String API_CURRENT = "6";
}
diff --git a/src/com/iciql/Db.java b/src/com/iciql/Db.java
index da0a7ac..af3c139 100644
--- a/src/com/iciql/Db.java
+++ b/src/com/iciql/Db.java
@@ -38,7 +38,7 @@ import com.iciql.DbUpgrader.DefaultDbUpgrader;
import com.iciql.Iciql.IQTable;
import com.iciql.Iciql.IQVersion;
import com.iciql.util.JdbcUtils;
-import com.iciql.util.StatementLogger;
+import com.iciql.util.IciqlLogger;
import com.iciql.util.StringUtils;
import com.iciql.util.Utils;
import com.iciql.util.WeakIdentityHashMap;
@@ -245,7 +245,7 @@ public class Db {
TableDefinition<T> def = (TableDefinition<T>) define(modelClass);
SQLStatement stat = new SQLStatement(this);
getDialect().prepareDropTable(stat, def);
- StatementLogger.drop(stat.getSQL());
+ IciqlLogger.drop(stat.getSQL());
int rc = 0;
try {
rc = stat.executeUpdate();
diff --git a/src/com/iciql/IciqlException.java b/src/com/iciql/IciqlException.java
index 4670418..7e7021e 100644
--- a/src/com/iciql/IciqlException.java
+++ b/src/com/iciql/IciqlException.java
@@ -109,6 +109,9 @@ public class IciqlException extends RuntimeException {
} else if ("42X05".equals(state)) {
// Derby table not found
iciqlCode = CODE_OBJECT_NOT_FOUND;
+ } else if ("42Y55".equals(state)) {
+ // Derby table not found
+ iciqlCode = CODE_OBJECT_NOT_FOUND;
} else if ("42S02".equals(state)) {
// H2 table not found
iciqlCode = CODE_OBJECT_NOT_FOUND;
diff --git a/src/com/iciql/Query.java b/src/com/iciql/Query.java
index 8f34761..b2d397a 100644
--- a/src/com/iciql/Query.java
+++ b/src/com/iciql/Query.java
@@ -31,7 +31,7 @@ import java.util.List;
import com.iciql.Iciql.EnumType;
import com.iciql.bytecode.ClassReader;
import com.iciql.util.JdbcUtils;
-import com.iciql.util.StatementLogger;
+import com.iciql.util.IciqlLogger;
import com.iciql.util.Utils;
/**
@@ -141,7 +141,7 @@ public class Query<T> {
stat.appendSQL("DELETE FROM ");
from.appendSQL(stat);
appendWhere(stat);
- StatementLogger.delete(stat.getSQL());
+ IciqlLogger.delete(stat.getSQL());
return stat.executeUpdate();
}
@@ -239,7 +239,7 @@ public class Query<T> {
declaration.appendSQL(stat);
}
appendWhere(stat);
- StatementLogger.update(stat.getSQL());
+ IciqlLogger.update(stat.getSQL());
return stat.executeUpdate();
}
@@ -713,7 +713,7 @@ public class Query<T> {
}
}
db.getDialect().appendLimitOffset(stat, limit, offset);
- StatementLogger.select(stat.getSQL());
+ IciqlLogger.select(stat.getSQL());
}
/**
diff --git a/src/com/iciql/SQLDialectDefault.java b/src/com/iciql/SQLDialectDefault.java
index 7ef507a..4814fdd 100644
--- a/src/com/iciql/SQLDialectDefault.java
+++ b/src/com/iciql/SQLDialectDefault.java
@@ -23,6 +23,7 @@ import java.text.MessageFormat;
import com.iciql.TableDefinition.FieldDefinition;
import com.iciql.TableDefinition.IndexDefinition;
+import com.iciql.util.IciqlLogger;
import com.iciql.util.StatementBuilder;
import com.iciql.util.StringUtils;
@@ -217,6 +218,8 @@ public class SQLDialectDefault implements SQLDialect {
case UNIQUE_HASH:
buff.append("UNIQUE ");
break;
+ default:
+ IciqlLogger.warn("{0} does not support hash indexes", getClass().getSimpleName());
}
buff.append("INDEX ");
buff.append(index.indexName);
diff --git a/src/com/iciql/TableDefinition.java b/src/com/iciql/TableDefinition.java
index 6f201ad..9b3666c 100644
--- a/src/com/iciql/TableDefinition.java
+++ b/src/com/iciql/TableDefinition.java
@@ -38,7 +38,7 @@ import com.iciql.Iciql.IQTable;
import com.iciql.Iciql.IQVersion;
import com.iciql.Iciql.IndexType;
import com.iciql.util.StatementBuilder;
-import com.iciql.util.StatementLogger;
+import com.iciql.util.IciqlLogger;
import com.iciql.util.StringUtils;
import com.iciql.util.Utils;
@@ -431,7 +431,7 @@ public class TableDefinition<T> {
}
buff.append(')');
stat.setSQL(buff.toString());
- StatementLogger.insert(stat.getSQL());
+ IciqlLogger.insert(stat.getSQL());
if (returnKey) {
return stat.executeInsert();
}
@@ -461,7 +461,7 @@ public class TableDefinition<T> {
}
SQLStatement stat = new SQLStatement(db);
db.getDialect().prepareMerge(stat, schemaName, tableName, this, obj);
- StatementLogger.merge(stat.getSQL());
+ IciqlLogger.merge(stat.getSQL());
return stat.executeUpdate();
}
@@ -503,7 +503,7 @@ public class TableDefinition<T> {
}
stat.setSQL(buff.toString());
query.appendWhere(stat);
- StatementLogger.update(stat.getSQL());
+ IciqlLogger.update(stat.getSQL());
return stat.executeUpdate();
}
@@ -535,7 +535,7 @@ public class TableDefinition<T> {
}
stat.setSQL(buff.toString());
query.appendWhere(stat);
- StatementLogger.delete(stat.getSQL());
+ IciqlLogger.delete(stat.getSQL());
return stat.executeUpdate();
}
@@ -548,7 +548,7 @@ public class TableDefinition<T> {
}
SQLStatement stat = new SQLStatement(db);
db.getDialect().prepareCreateTable(stat, this);
- StatementLogger.create(stat.getSQL());
+ IciqlLogger.create(stat.getSQL());
try {
stat.executeUpdate();
} catch (IciqlException e) {
@@ -561,7 +561,7 @@ public class TableDefinition<T> {
for (IndexDefinition index : indexes) {
stat = new SQLStatement(db);
db.getDialect().prepareCreateIndex(stat, schemaName, tableName, index);
- StatementLogger.create(stat.getSQL());
+ IciqlLogger.create(stat.getSQL());
try {
stat.executeUpdate();
} catch (IciqlException e) {
diff --git a/src/com/iciql/build/Build.java b/src/com/iciql/build/Build.java
index 75f6483..e8b9385 100644
--- a/src/com/iciql/build/Build.java
+++ b/src/com/iciql/build/Build.java
@@ -69,6 +69,10 @@ public class Build {
downloadFromApache(MavenObject.DOCLAVA, BuildType.COMPILETIME);
downloadFromApache(MavenObject.SLF4JAPI, BuildType.RUNTIME);
downloadFromApache(MavenObject.SLF4JAPI, BuildType.COMPILETIME);
+ downloadFromApache(MavenObject.COMMONSPOOL, BuildType.RUNTIME);
+ downloadFromApache(MavenObject.COMMONSPOOL, BuildType.COMPILETIME);
+ downloadFromApache(MavenObject.COMMONSDBCP, BuildType.RUNTIME);
+ downloadFromApache(MavenObject.COMMONSDBCP, BuildType.COMPILETIME);
// needed for site publishing
downloadFromApache(MavenObject.COMMONSNET, BuildType.RUNTIME);
@@ -172,9 +176,9 @@ public class Build {
"219a3540f3b27d7cc3b1d91d6ea046cd8723290e", "0bb50eec177acf0e94d58e0cf07262fe5164331d",
"c7adc475ca40c288c93054e0f4fe58f3a98c0cb5");
- public static final MavenObject H2 = new MavenObject("com/h2database", "h2", "1.3.158",
- "4bac13427caeb32ef6e93b70101e61f370c7b5e2", "6bb165156a0831879fa7797df6e18bdcd4421f2d",
- "446d3f58c44992534cb54f67134532d95961904a");
+ public static final MavenObject H2 = new MavenObject("com/h2database", "h2", "1.3.159",
+ "dd89f939661eb5593909584e1c243db0c25de130", "4d953bf765e8a13c7e06ca51165438338966c698",
+ "4c79ed03f994820a1a873150c8a9f13c667784d3");
public static final MavenObject HSQLDB = new MavenObject("org/hsqldb", "hsqldb", "2.2.4",
"6a6e040b07f5ee409fc825f1c5e5b574b1fa1428", "", "");
@@ -206,6 +210,14 @@ public class Build {
"6f3b8a24bf970f17289b234284c94f43eb42f0e4", "46a386136c901748e6a3af67ebde6c22bc6b4524",
"e223571d77769cdafde59040da235842f3326453");
+ public static final MavenObject COMMONSPOOL = new MavenObject("commons-pool", "commons-pool", "1.5.6",
+ "16390e2d74df4ab08c06a85d42a74a951dc93ad7", "bbfb73ed3c341d9738c64da8157910b967f878d6",
+ "d72204023b30cd9fecb64829586472f3c6806005");
+
+ public static final MavenObject COMMONSDBCP = new MavenObject("commons-dbcp", "commons-dbcp", "1.4",
+ "30be73c965cc990b153a100aaaaafcf239f82d39", "9b076ff231434d5403be6599a1347019b12c0def",
+ "098bf7c8d5b026f6e3969259a36e813ac37432b3");
+
public final String group;
public final String artifact;
public final String version;
diff --git a/src/com/iciql/util/StatementLogger.java b/src/com/iciql/util/IciqlLogger.java
index b11a5f9..d8005bb 100644
--- a/src/com/iciql/util/StatementLogger.java
+++ b/src/com/iciql/util/IciqlLogger.java
@@ -17,6 +17,7 @@
package com.iciql.util;
import java.text.DecimalFormat;
+import java.text.MessageFormat;
import java.util.Set;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -25,34 +26,34 @@ import java.util.concurrent.atomic.AtomicLong;
import com.iciql.IciqlException;
/**
- * Utility class to optionally log generated statements to StatementListeners.<br>
+ * Utility class to optionally log generated statements to IciqlListeners.<br>
* Statement logging is disabled by default.
* <p>
* This class also tracks the counts for generated statements by major type.
*
*/
-public class StatementLogger {
+public class IciqlLogger {
/**
* Enumeration of the different statement types that are logged.
*/
public enum StatementType {
- STAT, TOTAL, CREATE, INSERT, UPDATE, MERGE, DELETE, SELECT, DROP;
+ STAT, TOTAL, CREATE, INSERT, UPDATE, MERGE, DELETE, SELECT, DROP, WARN;
}
/**
- * Interface that defines a statement listener.
+ * Interface that defines an iciql listener.
*/
- public interface StatementListener {
- void logStatement(StatementType type, String statement);
+ public interface IciqlListener {
+ void logIciql(StatementType type, String statement);
}
private static final ExecutorService EXEC = Executors.newSingleThreadExecutor();
- private static final Set<StatementListener> LISTENERS = Utils.newHashSet();
- private static final StatementListener CONSOLE = new StatementListener() {
+ private static final Set<IciqlListener> LISTENERS = Utils.newHashSet();
+ private static final IciqlListener CONSOLE = new IciqlListener() {
@Override
- public void logStatement(StatementType type, String message) {
+ public void logIciql(StatementType type, String message) {
System.out.println(message);
}
};
@@ -64,6 +65,7 @@ public class StatementLogger {
private static final AtomicLong MERGE_COUNT = new AtomicLong();
private static final AtomicLong DELETE_COUNT = new AtomicLong();
private static final AtomicLong DROP_COUNT = new AtomicLong();
+ private static final AtomicLong WARN_COUNT = new AtomicLong();
/**
* Activates the Console Logger.
@@ -84,7 +86,7 @@ public class StatementLogger {
*
* @param listener
*/
- public static void registerListener(StatementListener listener) {
+ public static void registerListener(IciqlListener listener) {
LISTENERS.add(listener);
}
@@ -93,9 +95,9 @@ public class StatementLogger {
*
* @param listener
*/
- public static void unregisterListener(StatementListener listener) {
+ public static void unregisterListener(IciqlListener listener) {
if (!LISTENERS.remove(listener)) {
- throw new IciqlException("Failed to remove statement listener {0}", listener);
+ throw new IciqlException("Failed to remove iciql listener {0}", listener);
}
}
@@ -134,11 +136,16 @@ public class StatementLogger {
logStatement(StatementType.DROP, statement);
}
+ public static void warn(String message, Object... args) {
+ WARN_COUNT.incrementAndGet();
+ logStatement(StatementType.WARN, args.length > 0 ? MessageFormat.format(message, args) : message);
+ }
+
private static void logStatement(final StatementType type, final String statement) {
- for (final StatementListener listener : LISTENERS) {
+ for (final IciqlListener listener : LISTENERS) {
EXEC.execute(new Runnable() {
public void run() {
- listener.logStatement(type, statement);
+ listener.logIciql(type, statement);
}
});
}
@@ -172,6 +179,10 @@ public class StatementLogger {
return DROP_COUNT.longValue();
}
+ public static long getWarnCount() {
+ return WARN_COUNT.longValue();
+ }
+
public static long getTotalCount() {
return getCreateCount() + getInsertCount() + getUpdateCount() + getDeleteCount() + getMergeCount()
+ getSelectCount() + getDropCount();
@@ -180,6 +191,8 @@ public class StatementLogger {
public static void logStats() {
logStatement(StatementType.STAT, "iciql Runtime Statistics");
logStatement(StatementType.STAT, "========================");
+ logStat(StatementType.WARN, getWarnCount());
+ logStatement(StatementType.STAT, "========================");
logStat(StatementType.CREATE, getCreateCount());
logStat(StatementType.INSERT, getInsertCount());
logStat(StatementType.UPDATE, getUpdateCount());
diff --git a/src/com/iciql/util/Slf4jStatementListener.java b/src/com/iciql/util/Slf4jIciqlListener.java
index f46099c..ded393f 100644
--- a/src/com/iciql/util/Slf4jStatementListener.java
+++ b/src/com/iciql/util/Slf4jIciqlListener.java
@@ -23,15 +23,13 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.iciql.Iciql;
-import com.iciql.util.StatementLogger.StatementListener;
-import com.iciql.util.StatementLogger.StatementType;
+import com.iciql.util.IciqlLogger.IciqlListener;
+import com.iciql.util.IciqlLogger.StatementType;
/**
- * Slf4jStatementListener interfaces the iciql statement logger to the SLF4J
- * logging architecture.
- *
+ * Slf4jIciqlListener interfaces the IciqlLogger to the SLF4J logging framework.
*/
-public class Slf4jStatementListener implements StatementListener {
+public class Slf4jIciqlListener implements IciqlListener {
private Logger logger = LoggerFactory.getLogger(Iciql.class);
@@ -46,11 +44,11 @@ public class Slf4jStatementListener implements StatementListener {
private final Map<StatementType, Level> levels;
- public Slf4jStatementListener() {
+ public Slf4jIciqlListener() {
this(Level.TRACE);
}
- public Slf4jStatementListener(Level defaultLevel) {
+ public Slf4jIciqlListener(Level defaultLevel) {
this.defaultLevel = defaultLevel;
levels = new HashMap<StatementType, Level>();
for (StatementType type : StatementType.values()) {
@@ -69,7 +67,7 @@ public class Slf4jStatementListener implements StatementListener {
}
@Override
- public void logStatement(StatementType type, String statement) {
+ public void logIciql(StatementType type, String statement) {
Level level = levels.get(type);
switch (level) {
case ERROR:
diff --git a/tests/com/iciql/test/AnnotationsTest.java b/tests/com/iciql/test/AnnotationsTest.java
index 2fdbcf4..30e46bb 100644
--- a/tests/com/iciql/test/AnnotationsTest.java
+++ b/tests/com/iciql/test/AnnotationsTest.java
@@ -85,6 +85,9 @@ public class AnnotationsTest {
}
private String prepName(String name, boolean upper, boolean lower) {
+ if (name == null) {
+ return null;
+ }
if (upper) {
return name.toUpperCase();
} else if (lower) {
diff --git a/tests/com/iciql/test/IciqlSuite.java b/tests/com/iciql/test/IciqlSuite.java
index d79f277..d68e146 100644
--- a/tests/com/iciql/test/IciqlSuite.java
+++ b/tests/com/iciql/test/IciqlSuite.java
@@ -15,17 +15,23 @@
*/
package com.iciql.test;
+import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintStream;
import java.sql.SQLException;
+import java.text.DecimalFormat;
import java.text.MessageFormat;
import java.util.Arrays;
import java.util.Collections;
-import java.util.Comparator;
import java.util.List;
-import java.util.concurrent.atomic.AtomicInteger;
+import java.util.Map;
+import org.apache.commons.dbcp.ConnectionFactory;
+import org.apache.commons.dbcp.DriverManagerConnectionFactory;
+import org.apache.commons.dbcp.PoolableConnectionFactory;
+import org.apache.commons.dbcp.PoolingDataSource;
+import org.apache.commons.pool.impl.GenericObjectPool;
import org.junit.Assert;
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
@@ -54,10 +60,11 @@ import com.iciql.test.models.ProductAnnotationOnly;
import com.iciql.test.models.ProductInheritedAnnotation;
import com.iciql.test.models.ProductMixedAnnotation;
import com.iciql.test.models.SupportedTypes;
-import com.iciql.util.StatementLogger;
-import com.iciql.util.StatementLogger.StatementListener;
-import com.iciql.util.StatementLogger.StatementType;
+import com.iciql.util.IciqlLogger;
+import com.iciql.util.IciqlLogger.IciqlListener;
+import com.iciql.util.IciqlLogger.StatementType;
import com.iciql.util.StringUtils;
+import com.iciql.util.Utils;
/**
* JUnit 4 iciql test suite.
@@ -66,7 +73,11 @@ import com.iciql.util.StringUtils;
* this by switching the DEFAULT_TEST_DB value.
* <p>
* Alternatively, you can run this class an application which will run all tests
- * for all tested databases.
+ * for all tested database configurations.
+ * <p>
+ * NOTE: If you want to test against MySQL or PostgreSQL you must create an
+ * "iciql" database and allow user "sa" password "sa" complete control of that
+ * database.
*
*/
@RunWith(Suite.class)
@@ -75,29 +86,35 @@ import com.iciql.util.StringUtils;
RuntimeQueryTest.class, SamplesTest.class, UpdateTest.class, UpgradesTest.class, UUIDTest.class })
public class IciqlSuite {
- private static final TestDb[] TEST_DBS = { new TestDb("H2 (embedded)", "jdbc:h2:mem:db{0,number,000}"),
- new TestDb("HSQL (embedded)", "jdbc:hsqldb:mem:db{0,number,000}"),
- new TestDb("Derby (embedded)", "jdbc:derby:memory:db{0,number,000};create=true"),
- new TestDb("MySQL (tcp/myisam)", "jdbc:mysql://localhost:3306/iciql"),
- new TestDb("PostgreSQL (tcp)", "jdbc:postgresql://localhost:5432/iciql")};
+ private static final TestDb[] TEST_DBS = {
+ new TestDb("H2", true, true, "jdbc:h2:mem:iciql"),
+ new TestDb("H2", true, false, "jdbc:h2:file:testdbs/h2/iciql"),
+ new TestDb("HSQL", true, true, "jdbc:hsqldb:mem:iciql"),
+ new TestDb("HSQL", true, false, "jdbc:hsqldb:file:testdbs/hsql/iciql"),
+ new TestDb("Derby", true, true, "jdbc:derby:memory:iciql;create=true"),
+ new TestDb("Derby", true, false, "jdbc:derby:directory:testdbs/derby/iciql;create=true"),
+ new TestDb("MySQL", false, false, "jdbc:mysql://localhost:3306/iciql"),
+ new TestDb("PostgreSQL", false, false, "jdbc:postgresql://localhost:5432/iciql") };
- private static final TestDb DEFAULT_TEST_DB = TEST_DBS[4];
+ private static final TestDb DEFAULT_TEST_DB = TEST_DBS[0];
private static final PrintStream ERR = System.err;
- private static AtomicInteger openCount = new AtomicInteger(0);
-
private static String username = "sa";
private static String password = "sa";
private static PrintStream out = System.out;
+ private static Map<String, PoolableConnectionFactory> connectionFactories = Utils.newSynchronizedHashMap();
+
+ private static Map<String, PoolingDataSource> dataSources = Utils.newSynchronizedHashMap();
+
public static void assertStartsWith(String value, String startsWith) {
Assert.assertTrue(MessageFormat.format("Expected \"{0}\", got: \"{1}\"", startsWith, value),
value.startsWith(startsWith));
}
-
+
public static void assertEqualsIgnoreCase(String expected, String actual) {
Assert.assertTrue(MessageFormat.format("Expected \"{0}\", got: \"{1}\"", expected, actual),
expected.equalsIgnoreCase(actual));
@@ -111,17 +128,30 @@ public class IciqlSuite {
}
/**
- * Increment the database counter, open and create a new database.
+ * Open a new Db object. All connections are cached and re-used to eliminate
+ * embedded database startup costs.
*
- * @return a fresh database
+ * @return a fresh Db object
*/
public static Db openNewDb() {
String testUrl = System.getProperty("iciql.url");
if (testUrl == null) {
testUrl = DEFAULT_TEST_DB.url;
}
- testUrl = MessageFormat.format(testUrl, openCount.incrementAndGet());
- Db db = Db.open(testUrl, username, password);
+ Db db = null;
+ PoolingDataSource dataSource = dataSources.get(testUrl);
+ if (dataSource == null) {
+ ConnectionFactory connectionFactory = new DriverManagerConnectionFactory(testUrl, username,
+ password);
+ GenericObjectPool pool = new GenericObjectPool();
+ pool.setWhenExhaustedAction(GenericObjectPool.WHEN_EXHAUSTED_GROW);
+ PoolableConnectionFactory factory = new PoolableConnectionFactory(connectionFactory, pool, null,
+ null, false, true);
+ dataSource = new PoolingDataSource(pool);
+ dataSources.put(testUrl, dataSource);
+ connectionFactories.put(testUrl, factory);
+ }
+ db = Db.open(dataSource);
// drop tables
db.dropTable(BooleanModel.class);
@@ -152,20 +182,10 @@ public class IciqlSuite {
if (testUrl == null) {
testUrl = DEFAULT_TEST_DB.url;
}
- testUrl = MessageFormat.format(testUrl, openCount.get());
return Db.open(testUrl, username, password);
}
/**
- * Drops all tables from the current database.
- *
- * @return the current database
- */
- public static void dropAllTables(Db db) {
-
- }
-
- /**
* Returns the name of the underlying database engine for the Db object.
*
* @param db
@@ -250,6 +270,8 @@ public class IciqlSuite {
System.setErr(out);
}
+ deleteRecursively(new File("testdbs"));
+
// Statement logging
final FileWriter statementWriter;
if (StringUtils.isNullOrEmpty(params.sqlStatementsFile)) {
@@ -257,9 +279,9 @@ public class IciqlSuite {
} else {
statementWriter = new FileWriter(params.sqlStatementsFile);
}
- StatementListener statementListener = new StatementListener() {
+ IciqlListener statementListener = new IciqlListener() {
@Override
- public void logStatement(StatementType type, String statement) {
+ public void logIciql(StatementType type, String statement) {
if (statementWriter == null) {
return;
}
@@ -271,7 +293,7 @@ public class IciqlSuite {
}
}
};
- StatementLogger.registerListener(statementListener);
+ IciqlLogger.registerListener(statementListener);
SuiteClasses suiteClasses = IciqlSuite.class.getAnnotation(SuiteClasses.class);
long quickestDatabase = Long.MAX_VALUE;
@@ -280,7 +302,7 @@ public class IciqlSuite {
// Header
out.println(dividerMajor);
- out.println(MessageFormat.format("{0} {1} ({2}) testing {3} databases", Constants.NAME,
+ out.println(MessageFormat.format("{0} {1} ({2}) testing {3} database configurations", Constants.NAME,
Constants.VERSION, Constants.VERSION_DATE, TEST_DBS.length));
out.println(dividerMajor);
out.println();
@@ -302,15 +324,15 @@ public class IciqlSuite {
long lastCount = 0;
for (TestDb testDb : TEST_DBS) {
out.println(dividerMinor);
- out.println("Testing " + testDb.name + " " + testDb.getVersion());
+ out.println("Testing " + testDb.describeDatabase());
+ out.println(" " + testDb.url);
out.println(dividerMinor);
// inject a database section delimiter in the statement log
if (statementWriter != null) {
statementWriter.append("\n\n");
statementWriter.append("# ").append(dividerMinor).append('\n');
- statementWriter.append("# ").append("Testing " + testDb.name + " " + testDb.getVersion())
- .append('\n');
+ statementWriter.append("# ").append("Testing " + testDb.describeDatabase()).append('\n');
statementWriter.append("# ").append(dividerMinor).append('\n');
statementWriter.append("\n\n");
}
@@ -318,6 +340,7 @@ public class IciqlSuite {
if (testDb.getVersion().equals("OFFLINE")) {
// Database not available
out.println("Skipping. Could not find " + testDb.url);
+ out.println();
} else {
// Test database
System.setProperty("iciql.url", testDb.url);
@@ -326,9 +349,9 @@ public class IciqlSuite {
if (testDb.runtime < quickestDatabase) {
quickestDatabase = testDb.runtime;
}
- testDb.statements = StatementLogger.getTotalCount() - lastCount;
+ testDb.statements = IciqlLogger.getTotalCount() - lastCount;
// reset total count for next database
- lastCount = StatementLogger.getTotalCount();
+ lastCount = IciqlLogger.getTotalCount();
out.println(MessageFormat.format(
"{0} tests ({1} failures, {2} ignores) {3} statements in {4,number,0.000} secs",
@@ -356,36 +379,32 @@ public class IciqlSuite {
Constants.VERSION, Constants.VERSION_DATE));
out.println(dividerMajor);
List<TestDb> dbs = Arrays.asList(TEST_DBS);
- Collections.sort(dbs, new Comparator<TestDb>() {
+ Collections.sort(dbs);
- @Override
- public int compare(TestDb o1, TestDb o2) {
- if (o1.runtime == 0) {
- return 1;
- }
- if (o2.runtime == 0) {
- return -1;
- }
- if (o1.runtime == o2.runtime) {
- return 0;
- }
- if (o1.runtime > o2.runtime) {
- return 1;
- }
- return -1;
- }
- });
+ out.println(MessageFormat.format("{0} {1} {2} {3} {4}", StringUtils.pad("Name", 11, " ", true),
+ StringUtils.pad("Type", 5, " ", true), StringUtils.pad("Version", 23, " ", true),
+ StringUtils.pad("Stats/Sec", 10, " ", true), "Runtime"));
+ out.println(dividerMinor);
for (TestDb testDb : dbs) {
- out.println(MessageFormat.format(
- "{0} {1} {2,number,0} stats/sec {3,number,0.000} secs ({4,number,0.0}x)",
- StringUtils.pad(testDb.name, 20, " ", true),
- StringUtils.pad(testDb.getVersion(), 22, " ", true), ((double) testDb.statements)
- / (testDb.runtime / 1000d), testDb.runtime / 1000f, ((double) testDb.runtime)
+ DecimalFormat df = new DecimalFormat("0.0");
+ out.println(MessageFormat.format("{0} {1} {2} {3} {4} {5}s ({6,number,0.0}x)",
+ StringUtils.pad(testDb.name, 11, " ", true), testDb.isEmbedded ? "E" : "T",
+ testDb.isMemory ? "M" : "F", StringUtils.pad(testDb.getVersion(), 21, " ", true),
+ StringUtils.pad("" + testDb.getStatementRate(), 10, " ", false),
+ StringUtils.pad(df.format(testDb.getRuntime()), 8, " ", false), ((double) testDb.runtime)
/ quickestDatabase));
}
-
- // close PrintStream and restore System.err
- StatementLogger.unregisterListener(statementListener);
+ out.println(dividerMinor);
+ out.println(" E = embedded connection");
+ out.println(" T = tcp/ip connection");
+ out.println(" M = memory database");
+ out.println(" F = file/persistent database");
+
+ // cleanup
+ for (PoolableConnectionFactory factory : connectionFactories.values()) {
+ factory.getPool().close();
+ }
+ IciqlLogger.unregisterListener(statementListener);
out.close();
System.setErr(ERR);
if (statementWriter != null) {
@@ -425,21 +444,52 @@ public class IciqlSuite {
return sb.toString();
}
+ private static void deleteRecursively(File f) {
+ if (f.isDirectory()) {
+ for (File file : f.listFiles()) {
+ if (file.isDirectory()) {
+ deleteRecursively(file);
+ }
+ file.delete();
+ }
+ }
+ f.delete();
+ }
+
/**
* Represents a test database url.
*/
- private static class TestDb {
+ private static class TestDb implements Comparable<TestDb> {
final String name;
+ boolean isEmbedded;
+ boolean isMemory;
final String url;
String version;
long runtime;
long statements;
- TestDb(String name, String url) {
+ TestDb(String name, boolean isEmbedded, boolean isMemory, String url) {
this.name = name;
+ this.isEmbedded = isEmbedded;
+ this.isMemory = isMemory;
this.url = url;
}
+ double getRuntime() {
+ return runtime / 1000d;
+ }
+
+ int getStatementRate() {
+ return Double.valueOf(((double) statements) / (runtime / 1000d)).intValue();
+ }
+
+ String describeDatabase() {
+ StringBuilder sb = new StringBuilder(name);
+ sb.append(" ");
+ sb.append(getVersion());
+ return sb.toString();
+ }
+
String getVersion() {
if (version == null) {
try {
@@ -453,6 +503,25 @@ public class IciqlSuite {
}
return version;
}
+
+ @Override
+ public int compareTo(TestDb o) {
+ if (runtime == 0) {
+ return 1;
+ }
+ if (o.runtime == 0) {
+ return -1;
+ }
+ int r1 = getStatementRate();
+ int r2 = o.getStatementRate();
+ if (r1 == r2) {
+ return 0;
+ }
+ if (r1 < r2) {
+ return 1;
+ }
+ return -1;
+ }
}
/**