-<project name="dbflute-ea2ddl" default="jdbc" basedir=".">
+<project name="ea2ddl-dbflute-0.9.3" default="jdbc" basedir=".">
<!--
Note - You should not have to edit this file.
controlTemplate="${torque.template.om}"
outputDirectory="${torque.java.dir}"
outputFile="report.${torque.project}.om.generation"
- targetDatabase="${torque.database}"
- targetPackage="${torque.targetPackage}"
useClasspath="${torque.useClasspath}"
environmentType="${dfenv}">
<fileset dir="${torque.schema.dir}"
controlTemplate="${torque.template.om}"
outputDirectory="${torque.java.dir}"
outputFile="report.${torque.project}.om.generation"
- targetDatabase="${torque.database}"
- targetPackage="${torque.targetPackage}"
templatePath="${torque.templatePath}"
environmentType="${dfenv}">
<fileset dir="${torque.schema.dir}"
</torque-doc>
</target>
- <!-- ================================================================== -->
- <!-- J A V A D O C -->
- <!-- ================================================================== -->
-
- <target
- name="javadocs"
- description="==> generates the API documentation">
-
- <mkdir dir="${torque.javadoc.dir}"/>
-
- <javadoc
- author="true"
- destdir="${torque.javadoc.dir}"
- packagenames="${torque.targetPackage}.*"
- private="true"
- sourcepath="${torque.java.dir}"
- use="true"
- version="true">
- <classpath refid="torque-classpath"/>
- </javadoc>
- </target>
-
<!-- ******************************************************************************* -->
<!-- PlaySQL -->
<!-- ******* -->
controlTemplate="${torque.template.sql2entity}"
outputDirectory="${torque.java.dir}"
outputFile="report.${torque.project}.sql2entity.generation"
- targetDatabase="${torque.database}"
templatePath="${torque.templatePath}"
environmentType="${dfenv}"
>
--- /dev/null
+\r
+# -------------------------------------------------------------------\r
+# P R O J E C T\r
+# -------------------------------------------------------------------\r
+torque.project = ea2ddl\r
--- /dev/null
+# /---------------------------------------------------------------------------\r
+# additionalTableMap: (NotRequired - Default 'map:{}')\r
+# \r
+# This property is valid at only JDBC task and is Final Weapon.\r
+# Basically you don't need this because DBFlute can get the meta information\r
+# of tables from your actual database through JDBC!\r
+# \r
+# The size and primaryKey and autoIncrement of column is NOT required. \r
+# \r
+# Specification: \r
+# map: {\r
+# [table-name] = map:{\r
+# columnMap = map:{\r
+# [column-name] = map:{\r
+# type = [column-JDBC-type] ; required = [true or false]\r
+# ; size = [column-size]\r
+# ; primaryKey = [true or false] ; autoIncrement = [true or false]\r
+# }\r
+# [column-name] = map:{\r
+# type = [column-JDBC-type] ; required = [true or false]\r
+# ; size = [column-size]\r
+# }\r
+# }\r
+# }\r
+# }\r
+# \r
+# *The line that starts with '#' means comment-out.\r
+#\r
+map:{\r
+ #; vendor_additional_table = map:{\r
+ # ; columnMap = map:{\r
+ # test_id = map:{ type = INTEGER ; required = true ; primaryKey = true ; autoIncrement = true}\r
+ # test_name = map:{ type = VARCHAR ; required = true ; size = 123 }\r
+ # }\r
+ #}\r
+}\r
+# ----------------/
\ No newline at end of file
--- /dev/null
+# /---------------------------------------------------------------------------\r
+# allClassCopyright: (NotRequired - Default '')\r
+# \r
+# The copyright for all classes.\r
+# This property is NOT map style.\r
+# You should specify before your first generating.\r
+# \r
+#/*\r
+# * Copyright(c) DBFlute TestCo.,TestLtd. All Rights Reserved.\r
+# */\r
+# ----------------/
\ No newline at end of file
--- /dev/null
+# /---------------------------------------------------------------------------\r
+# basicInfoMap: (Required)\r
+#\r
+# The basic information for the tasks of DBFlute.\r
+# You should specify before your first generating.\r
+# \r
+# Core Properties:\r
+# o database: (Required)\r
+# o targetLanguage: (Required)\r
+# o targetContainer: (Required)\r
+# o packageBase: (Required)\r
+# \r
+# Adjustment Properties:\r
+# o java.dir: (NotRequired - Default Java:'../src/main/java' CSharp:'../source')\r
+# o isJavaNameOfTableSameAsDbName: (NotRequired - Default 'false')\r
+# o isJavaNameOfColumnSameAsDbName: (NotRequired - Default 'false')\r
+# o projectPrefix: (NotRequired - Default '')\r
+# o classAuthor: (NotRequired - Default 'DBFlute(AutoGenerator)')\r
+# o flatDirectoryPackage (NotRequired - Default '') *CSharp Only\r
+# o omitDirectoryPackage (NotRequired - Default '') *CSharp Only\r
+# \r
+# *The line that starts with '#' means comment-out.\r
+#\r
+map:{\r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o database: (Required)\r
+ # This is the target database, only considered when generating\r
+ # the SQL for your DBFlute project.\r
+ # Your possible choices are:\r
+ #\r
+ # h2, derby, mysql, postgresql, oracle, db2, mssql,\r
+ # \r
+ ; database = msaccess\r
+ # - - - - - - - - - -/\r
+ \r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o targetLanguage: (Required)\r
+ # The target language.\r
+ # Your possible choices are:\r
+ # \r
+ # java, csharp\r
+ # \r
+ ; targetLanguage = java\r
+ # - - - - - - - - - -/\r
+ \r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o targetContainer: (Required)\r
+ # The target DI container.\r
+ # If your target language is 'csharp', you can specify 'seasar' only.\r
+ # Your possible choices are:\r
+ # \r
+ # seasar, spring, lucy, guice\r
+ # \r
+ ; targetContainer = seasar\r
+ # - - - - - - - - - -/\r
+\r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o packageBase: (Required)\r
+ # The base directory of package for generated class.\r
+ # The class package is 'this property value + detail package value'.\r
+ # However, detail packages have default value so basically\r
+ # you only have to specify the property 'packageBase'.\r
+ # If this property is specified and detail package properties is not specified, \r
+ # Then the packages of generated class are as follows:\r
+ #\r
+ # ex) packageBase = com.example.dbflute.basic.dbflute\r
+ # baseCommonPackage --> com.example.dbflute.basic.dbflute.allcommon\r
+ # baseBehaviorPackage --> com.example.dbflute.basic.dbflute.bsbhv\r
+ # baseEntityPackage --> com.example.dbflute.basic.dbflute.bsentity\r
+ # conditionBeanPackage --> com.example.dbflute.basic.dbflute.cbean\r
+ # extendedBehaviorPackage --> com.example.dbflute.basic.dbflute.exbhv\r
+ # extendedEntityPackage --> com.example.dbflute.basic.dbflute.exentity\r
+ #\r
+ # The detail package properties:\r
+ #\r
+ # o baseCommonPackage: (Default Java:'allcommon' C#:'AllCommon')\r
+ # o baseBehaviorPackage: (Default Java:'bsbhv' C#:'BsBhv')\r
+ # o baseDaoPackage: (Default Java: --- C#:'BsDao')\r
+ # o baseEntityPackage: (Default Java:'bsentity' C#:'BsEntity')\r
+ # o conditionBeanPackage: (Default Java:'cbean' C#:'CBean')\r
+ # o extendedBehaviorPackage: (Default Java:'exbhv' C#:'ExBhv')\r
+ # o extendedDaoPackage: (Default Java: --- C#:'ExDao')\r
+ # o extendedEntityPackage: (Default Java:'exentity' C#:'ExEntity')\r
+ # o extendedConditionBeanPackage: (Default same as conditionBeanPackage)\r
+ # \r
+ ; packageBase = jp.sourceforge.ea2ddl.dao\r
+ # - - - - - - - - - -/\r
+\r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o java.dir: (NotRequired - Default Java:'../src/main/java' CSharp:'../source')\r
+ # The base output directory for generating.\r
+ # Basically you don't need to specify this if the project style is as follows:\r
+ #\r
+ # *Java Project Style\r
+ # If this value is '../src/main/java' and your project type is under maven,\r
+ # you don't need to set up this property!\r
+ #\r
+ # {app-project}\r
+ # |\r
+ # |-dbflute_[project]\r
+ # | |-build-[project].properties\r
+ # | |-...\r
+ # |\r
+ # |-src/main/java // *Here!\r
+ # |-src/main/resources\r
+ # |-...\r
+ #\r
+ # *CSharp Project Style\r
+ # [app-solution]/dbflute_[project]/build-[project].properties\r
+ # [app-solution]/mydbflute/dbflute-0.6.0\r
+ # [app-solution]/source/[app-solution].sln\r
+ # [app-solution]/source/[app-project(top-namespace)]/[part-namespace]/AllCommon\r
+ # [app-solution]/source/[app-project(top-namespace)]/[part-namespace]/BsBhv\r
+ # [app-solution]/source/[app-project(top-namespace)]/[part-namespace]/...\r
+ # [app-solution]/source/[app-project(top-namespace)]/Resources/DBFlute.dicon\r
+ # [app-solution]/source/[app-project(top-namespace)]/Resources/Ado.dicon\r
+ #\r
+ ; java.dir = ../../ea2ddl-dao/src/main/java\r
+ # - - - - - - - - - -/\r
+\r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o isJavaNameOfTableSameAsDbName: (NotRequired - Default 'false')\r
+ # Is the class name same as table name(on DB)?\r
+ # Basically you don't need this if the style of table name is like 'ABC_DEF'.\r
+ # [true]\r
+ # The class name is same as table DB name.\r
+ # ex) If the table name is 'OrderDetail', the class name is 'OrderDetail'.\r
+ # \r
+ # [false]\r
+ # ex) If the table name is 'ORDER_DETAIL', the class name is 'OrderDetail'.\r
+ # ex) If the table name is 'OrderDetail', the class name is 'Orderdetail'.\r
+ #\r
+ #; isJavaNameOfTableSameAsDbName = false\r
+ # - - - - - - - - - -/\r
+\r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o isJavaNameOfColumnSameAsDbName: (NotRequired - Default 'false')\r
+ # Is the class name same as column name(on DB)?\r
+ # Basically you don't need this if the style of column name is like 'ABC_DEF'.\r
+ # [true]\r
+ # The class name is same as table DB name.\r
+ # ex) If the column name is 'OrderDetailId', the class name is 'OrderDetailId'.\r
+ # \r
+ # [false]\r
+ # ex) If the column name is 'ORDER_DETAIL_ID', the class name is 'OrderDetailId'.\r
+ # ex) If the column name is 'OrderDetailId', the class name is 'Orderdetailid'.\r
+ #\r
+ #; isJavaNameOfColumnSameAsDbName = false\r
+ # - - - - - - - - - -/\r
+\r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o projectPrefix: (NotRequired - Default '')\r
+ # If the value is 'Ld', all class names are 'LdXxx'.\r
+ # Basically you don't need this if you don't want the common prefix of class name.\r
+ # \r
+ #; projectPrefix = Ld\r
+ # - - - - - - - - - -/\r
+\r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o classAuthor: (NotRequired - Default 'DBFlute(AutoGenerator)')\r
+ # The value of the author tag in java-doc of generated classes.\r
+ # All classes are target.\r
+ # \r
+ # @JavaOnly\r
+ #; classAuthor = DBFlute(AutoGenerator)\r
+ # - - - - - - - - - -/\r
+\r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o flatDirectoryPackage (NotRequired - Default '') *CSharp Only\r
+ # ex) Aaa.Bbb.DBFlute --> Directory: source/Aaa.Bbb.DBFlute/AllCommon\r
+ # \r
+ # @CSharpOnly\r
+ #; flatDirectoryPackage = Aaa.Bbb.DBFlute\r
+ # - - - - - - - - - -/\r
+ \r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o omitDirectoryPackage (NotRequired - Default '') *CSharp Only\r
+ # ex) Aaa --> Directory: source/Bbb/DBFlute/AllCommon\r
+ # \r
+ # @CSharpOnly\r
+ #; omitDirectoryPackage = Aaa\r
+ # - - - - - - - - - -/\r
+}\r
+# ----------------/
\ No newline at end of file
--- /dev/null
+# /---------------------------------------------------------------------------\r
+# classificationDefinitionMap: (NotRequired - Default 'map:{}')\r
+#\r
+# The definition of classification.\r
+#\r
+# Example:\r
+# map:{\r
+# ; Flg = list:{\r
+# ; map:{topComment=フラグを示す}\r
+# ; map:{code=1;name=True ;alias=はい ;comment=有効を示す}\r
+# ; map:{code=0;name=False;alias=いいえ;comment=無効を示す}\r
+# }\r
+# ; MemberStatus = list:{\r
+# ; map:{topComment=会員の状態を示す}\r
+# ; map:{code=PRV;name=Provisional;alias=仮会員 ;comment=仮会員を示す}\r
+# ; map:{code=FML;name=Formalized ;alias=正式会員;comment=正式会員を示す}\r
+# ; map:{code=WDL;name=Withdrawal ;alias=退会会員;comment=退会会員を示す}\r
+# }\r
+# }\r
+#\r
+# *The line that starts with '#' means comment-out.\r
+#\r
+map:{\r
+ #; Flg = list:{\r
+ # ; map:{topComment=フラグを示す}\r
+ # ; map:{code=1;name=True ;alias=はい ;comment=有効を示す}\r
+ # ; map:{code=0;name=False;alias=いいえ;comment=無効を示す}\r
+ #}\r
+ #; MemberStatus = list:{\r
+ # ; map:{topComment=会員の状態を示す}\r
+ # ; map:{code=PRV;name=Provisional;alias=仮会員 ;comment=仮会員を示す}\r
+ # ; map:{code=FML;name=Formalized ;alias=正式会員;comment=正式会員を示す}\r
+ # ; map:{code=WDL;name=Withdrawal ;alias=退会会員;comment=退会会員を示す}\r
+ #}\r
+}\r
+# ----------------/
\ No newline at end of file
--- /dev/null
+# /---------------------------------------------------------------------------\r
+# classificationDeploymentMap: (NotRequired - Default 'map:{}')\r
+# \r
+# The relation between column and classification.\r
+# \r
+# This property uses classification names of classificationDefinitionMap.\r
+# The table name '$$ALL$$' means all tables are target.\r
+# The table names and column names are treated as case insensitive.\r
+# \r
+# Example:\r
+# map:{\r
+# ; $$ALL$$ = map:{suffix:_FLG=Flg}\r
+# ; MEMBER = map:{MEMBER_STATUS_CODE=MemberStatus}\r
+# ; MEMBER_STATUS = map:{MEMBER_STATUS_CODE=MemberStatus}\r
+# }\r
+#\r
+map:{\r
+ #; $$ALL$$ = map:{suffix:_FLG=Flg}\r
+ #; MEMBER = map:{MEMBER_STATUS_CODE=MemberStatus}\r
+ #; MEMBER_STATUS = map:{MEMBER_STATUS_CODE=MemberStatus}\r
+}\r
+# ----------------/
\ No newline at end of file
--- /dev/null
+
\ No newline at end of file
--- /dev/null
+# /---------------------------------------------------------------------------
+# commonColumnMap: (Default 'map:{}')
+#
+# The definition of common column(contains auto set-up).
+# For example, the date you registered the record,
+# the user who updated the record and so on...
+# The column names are treated as case insensitive.
+#
+# The variable '$$AccessContext$$' means allcommon.AccessContext.
+#
+# Example:
+# map:{
+# ; commonColumnMap = map:{
+# ; REGISTER_DATETIME=TIMESTAMP ; REGISTER_USER=VARCHAR ; REGISTER_PROCESS=VARCHAR
+# ; UPDATE_DATETIME=TIMESTAMP ; UPDATE_USER=VARCHAR ; UPDATE_PROCESS=VARCHAR
+# }
+# ; beforeInsertMap = map:{
+# ; REGISTER_DATETIME = $$AccessContext$$.getAccessTimestampOnThread()
+# ; REGISTER_USER = $$AccessContext$$.getAccessUserOnThread()
+# ; REGISTER_PROCESS = $$AccessContext$$.getAccessProcessOnThread()
+# ; UPDATE_DATETIME = entity.getRegisterDatetime()
+# ; UPDATE_USER = entity.getRegisterUser()
+# ; UPDATE_PROCESS = entity.getRegisterProcess()
+# }
+# ; beforeUpdateMap = map:{
+# ; UPDATE_DATETIME = $$AccessContext$$.getAccessTimestampOnThread()
+# ; UPDATE_USER = $$AccessContext$$.getAccessUserOnThread()
+# ; UPDATE_PROCESS = $$AccessContext$$.getAccessProcessOnThread()
+# }
+# }
+#
+# *The line that starts with '#' means comment-out.
+#
+map:{
+ #; commonColumnMap = map:{
+ # ; REGISTER_DATETIME=TIMESTAMP ; REGISTER_USER=VARCHAR ; REGISTER_PROCESS=VARCHAR
+ # ; UPDATE_DATETIME=TIMESTAMP ; UPDATE_USER=VARCHAR ; UPDATE_PROCESS=VARCHAR
+ #}
+ #; beforeInsertMap = map:{
+ # ; REGISTER_DATETIME = $$AccessContext$$.getAccessTimestampOnThread()
+ # ; REGISTER_USER = $$AccessContext$$.getAccessUserOnThread()
+ # ; REGISTER_PROCESS = $$AccessContext$$.getAccessProcessOnThread()
+ # ; UPDATE_DATETIME = entity.getRegisterDatetime()
+ # ; UPDATE_USER = entity.getRegisterUser()
+ # ; UPDATE_PROCESS = entity.getRegisterProcess()
+ #}
+ #; beforeUpdateMap = map:{
+ # ; UPDATE_DATETIME = $$AccessContext$$.getAccessTimestampOnThread()
+ # ; UPDATE_USER = $$AccessContext$$.getAccessUserOnThread()
+ # ; UPDATE_PROCESS = $$AccessContext$$.getAccessProcessOnThread()
+ #}
+}
+# ----------------/
+#
+# Reference for Column Type of CommonColumn:
+# ------------------------------------------------------
+# | JDBC Type | Java Type | CSharp Type |
+# | ----------------------------------------------------
+# | CHAR | java.lang.String | String |
+# | VARCHAR | java.lang.String | String |
+# | LONGVARCHAR | java.lang.String | String |
+# | NUMERIC | java.math.BigDecimal | decimal? |
+# | DECIMAL | java.math.BigDecimal | decimal? |
+# | BIT | java.lang.Boolean | bool? |
+# | BOOLEAN | java.lang.Boolean | bool? |
+# | TINYINT | java.lang.Integer | int? |
+# | SMALLINT | java.lang.Integer | int? |
+# | INTEGER | java.lang.Integer | int? |
+# | BIGINT | java.lang.Long | long? |
+# | REAL | java.math.BigDecimal | decimal? |
+# | FLOAT | java.math.BigDecimal | decimal? |
+# | DOUBLE | java.math.BigDecimal | decimal? |
+# | BINARY | byte[] | byte[] |
+# | VARBINARY | byte[] | byte[] |
+# | LONGVARBINARY | byte[] | byte[] |
+# | DATE | java.util.Date | DateTime? |
+# | TIME | java.sql.Time | DateTime? |
+# | TIMESTAMP | java.sql.Timestamp | DateTime? |
+# ------------------------------------------------------
--- /dev/null
+# /---------------------------------------------------------------------------\r
+# dependencyInjectionMap: (NotRequired - Default 'map:{}')\r
+#\r
+# The various settings about dependency injection(DI Container). \r
+# \r
+# Java & Seasar Only:\r
+# o dbfluteDiconNamespace (NotRequired - Default 'dbflute')\r
+# o dbfluteDiconPackageName (NotRequired - Default '../resources')\r
+# o dbfluteDiconFileName (NotRequired - Default 'dbflute.dicon')\r
+# o j2eeDiconResourceName (NotRequired - Default 'j2ee.dicon')\r
+# o dbfluteDiconBeforeJ2eeIncludeDefinitionMap (NotRequired - Default 'map:{}')\r
+# o dbfluteDiconOtherIncludeDefinitionMap (NotRequired - Default 'map:{}')\r
+# \r
+# Java & Spring Only:\r
+# o dbfluteBeansFileName (NotRequired - Default 'dbfluteBeans.xml')\r
+# o dbfluteBeansPackageName (NotRequired - Default '../resources')\r
+# \r
+# CSharp & Seasar(Quill) Only:\r
+# o quillDataSourceName (NotRequired - Default '')\r
+# \r
+# *The line that starts with '#' means comment-out.\r
+#\r
+map:{\r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o dbfluteDiconNamespace (NotRequired - Default 'dbflute')\r
+ # The name-space of DBFlute DI configuration.\r
+ #\r
+ # @JavaSeasarOnly\r
+ #; dbfluteDiconNamespace = dbflute\r
+ # - - - - - - - - - -/\r
+\r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o dbfluteDiconPackageName (NotRequired - Default '../resources')\r
+ # The package name(output directory) of DBFlute DI configuration for Seasar.\r
+ #\r
+ # @JavaSeasarOnly\r
+ #; dbfluteDiconPackageName = ../resources\r
+ # - - - - - - - - - -/\r
+\r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o dbfluteDiconFileName (NotRequired - Default 'dbflute.dicon')\r
+ # The file name of DBFlute DI configuration for Seasar.\r
+ #\r
+ # @JavaSeasarOnly\r
+ #; dbfluteDiconFileName = ../resources\r
+ # - - - - - - - - - -/\r
+\r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o j2eeDiconResourceName (NotRequired - Default 'j2ee.dicon')\r
+ # The file name of J2EE DI configuration.\r
+ #\r
+ # @JavaSeasarOnly\r
+ #; j2eeDiconResourceName = j2ee.dicon\r
+ # - - - - - - - - - -/\r
+\r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o dbfluteDiconBeforeJ2eeIncludeDefinitionMap (NotRequired - Default 'map:{}')\r
+ # The include definition of DBFlute DI configuration before j2ee including.\r
+ # ex) map:{ jdbc-xxx.dicon = dummy }\r
+ # \r
+ # @JavaSeasarOnly\r
+ #; dbfluteDiconBeforeJ2eeIncludeDefinitionMap = map:{}\r
+ # - - - - - - - - - -/\r
+\r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o dbfluteDiconOtherIncludeDefinitionMap (NotRequired - Default 'map:{}')\r
+ # The other include definition of DBFlute DI configuration.\r
+ # ex) map:{ common.dicon = dummy }\r
+ # \r
+ # @JavaSeasarOnly\r
+ #; dbfluteDiconOtherIncludeDefinitionMap = map:{}\r
+ # - - - - - - - - - -/\r
+\r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o dbfluteBeansFileName (NotRequired - Default 'dbfluteBeans.xml')\r
+ # The file name of DBFlute DI configuration for Spring.\r
+ # \r
+ # @JavaSpringOnly\r
+ #; dbfluteBeansFileName = dbfluteBeans.xml\r
+ # - - - - - - - - - -/\r
+\r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o dbfluteBeansPackageName (NotRequired - Default '../resources')\r
+ # The package name(output directory) of DBFlute DI configuration for Spring.\r
+ #\r
+ # @JavaSeasarOnly\r
+ #; dbfluteBeansPackageName = ../resources\r
+ # - - - - - - - - - -/\r
+\r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o quillDataSourceName (NotRequired - Default '')\r
+ # The data source name of Quill(CSharp Seasar).\r
+ # \r
+ # @CSharpSeasarOnly\r
+ #; quillDataSourceName = ExampleDB\r
+ # - - - - - - - - - -/\r
+}\r
+# ----------------/
\ No newline at end of file
--- /dev/null
+# /---------------------------------------------------------------------------\r
+# documentDefinitionMap: (NotRequired - Default 'map:{}')\r
+#\r
+# o aliasDelimiterInDbComment (NotRequired - Default 'map:{}')\r
+# o isEntityJavaDocDbCommentValid (NotRequired - Default 'false')\r
+# o dataXlsTemplateRecordLimit (NotRequired - Default '')\r
+# o dataXlsTemplateContainsCommonColumn (NotRequired - Default 'false')\r
+# \r
+# Example:\r
+# map:{\r
+# ; aliasDelimiterInDbComment = :\r
+# ; isEntityJavaDocDbCommentValid = true\r
+# ; dataXlsTemplateRecordLimit = 10\r
+# ; dataXlsTemplateContainsCommonColumn = false\r
+# }\r
+#\r
+# *The line that starts with '#' means comment-out.\r
+#\r
+map:{\r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o aliasDelimiterInDbComment (NotRequired - Default 'map:{}')\r
+ # If the alias exists in its DB comment like as follows:\r
+ # MEMBER_NAME : The name of member\r
+ # (For example, the column name is MB_NM)\r
+ # You should specify this property as follows:\r
+ # ex) aliasDelimiterInDbComment = :\r
+ # \r
+ #; aliasDelimiterInDbComment = :\r
+ # - - - - - - - - - -/\r
+\r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o isEntityJavaDocDbCommentValid (NotRequired - Default 'false')\r
+ # Does it allow DB comment to be on java-doc?\r
+ # \r
+ #; isEntityJavaDocDbCommentValid = false\r
+ # - - - - - - - - - -/\r
+\r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o dataXlsTemplateRecordLimit (NotRequired - Default '')\r
+ # Does it output Data Excel Template?\r
+ # If it's yes, you should specify the limit of output records.\r
+ # \r
+ #; dataXlsTemplateRecordLimit = 10\r
+ # - - - - - - - - - -/\r
+\r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o dataXlsTemplateContainsCommonColumn (NotRequired - Default 'false')\r
+ # Does Data Excel Template contain common columns?\r
+ # Basically you don't need this\r
+ # because common column is resolved on replace-schema.\r
+ # \r
+ #; dataXlsTemplateContainsCommonColumn = false\r
+ # - - - - - - - - - -/\r
+}\r
+# ----------------/
\ No newline at end of file
--- /dev/null
+# /---------------------------------------------------------------------------
+# identityDefinitionMap: (Default 'map:{}')
+#
+# The relation mappings between identity and column of table.
+# Basically you don't need this property because DBFlute
+# can get the information about identity from JDBC automatically.
+# The table names and column names are treated as case insensitive.
+#
+# Example:
+# map:{
+# ; PURCHASE = PURCHASE_ID
+# ; MEMBER = MEMBER_ID
+# ; MEMBER_LOGIN = MEMBER_LOGIN_ID
+# ; PRODUCT = PRODUCT_ID
+# }
+#
+# *The line that starts with '#' means comment-out.
+#
+map:{
+ #; PURCHASE = PURCHASE_ID
+ #; MEMBER = MEMBER_ID
+ #; MEMBER_LOGIN = MEMBER_LOGIN_ID
+ #; PRODUCT = PRODUCT_ID
+}
+# ----------------/
\ No newline at end of file
--- /dev/null
+# /---------------------------------------------------------------------------
+# littleAdjustmentMap: (Default 'map:{}')
+#
+# The various settings about a little adjustment.
+#
+# o isAvailableAddingSchemaToTableSqlName (NotRequired - Default 'false')
+# o isAvailableDatabaseDependency (NotRequired - Default 'false')
+# o isAvailableNonPrimaryKeyWritable (NotRequired - Default 'false')
+# o isMakeDeprecated (NotRequired - Default 'false')
+# o isMakeRecentlyDeprecated (NotRequired - Default 'true')
+# o isDeleteOldTableClass (NotRequired - Default 'true')
+#
+# *The line that starts with '#' means comment-out.
+#
+map:{
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ # o isAvailableAddingSchemaToTableSqlName (NotRequired - Default 'false')
+ # [true]
+ # Add schema to table SQL name. (The table name on query is SCHEMA.TABLE)
+ #
+ # [false]
+ # Non.
+ #
+ #; isAvailableAddingSchemaToTableSqlName = false
+ # - - - - - - - - - -/
+
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ # o isAvailableDatabaseDependency (NotRequired - Default 'false')
+ # [true]
+ # Generate the method that depends on the database.
+ # For example, cb.lockWithRR() at DB2.
+ #
+ # [false]
+ # Non.
+ #
+ #; isAvailableDatabaseDependency = false
+ # - - - - - - - - - -/
+
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ # o isAvailableNonPrimaryKeyWritable (NotRequired - Default 'false')
+ # [true]
+ # Generate writable methods at non-primary-key table.
+ #
+ # [false]
+ # Non.
+ #
+ #; isAvailableNonPrimaryKeyWritable = false
+ # - - - - - - - - - -/
+
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ # o isMakeDeprecated (NotRequired - Default 'false')
+ # [true]
+ # Make deprecated method and class and so on...
+ # *You should specify this property 'false'!
+ #
+ # [false]
+ # Non.
+ #
+ #; isMakeDeprecated = false
+ # - - - - - - - - - -/
+
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ # o isMakeRecentlyDeprecated (NotRequired - Default 'true')
+ # [true]
+ # Make RECENTLY deprecated method and class and so on...
+ # *You should specify this property 'false'!
+ #
+ # [false]
+ # Non.
+ #
+ #; isMakeRecentlyDeprecated = true
+ # - - - - - - - - - -/
+
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ # o isDeleteOldTableClass (NotRequired - Default 'true')
+ # [true]
+ # Delete old table class when generate and sql2entity.
+ #
+ # [false]
+ # Non.
+ #
+ #; isDeleteOldTableClass = true
+ # - - - - - - - - - -/
+}
+# ----------------/
\ No newline at end of file
--- /dev/null
+# /---------------------------------------------------------------------------\r
+# optimisticLockDefinitionMap: (Required)\r
+#\r
+# The definition for optimistic lock of DBFlute.\r
+# \r
+# o updateDateFieldName: (NotRequired - Default '')\r
+# o versionNoFieldName: (NotRequired - Default 'VERSION_NO')\r
+# \r
+# *The line that starts with '#' means comment-out.\r
+#\r
+map:{\r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o updateDateFieldName: (NotRequired - Default '')\r
+ # The column name of update date for optimistic lock. \r
+ # \r
+ #; updateDateFieldName = UPDATE_DATE\r
+ # - - - - - - - - - -/\r
+\r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o versionNoFieldName: (NotRequired - Default 'VERSION_NO')\r
+ # The column name of version no for optimistic lock.\r
+ # Basically you don't need this if your tables have the column 'VERSION_NO'.\r
+ # because the default value is 'VERSION_NO'.\r
+ # \r
+ #; versionNoFieldName = VERSION_NO\r
+ # - - - - - - - - - -/\r
+}\r
+# ----------------/
\ No newline at end of file
--- /dev/null
+# /---------------------------------------------------------------------------\r
+# outsideSqlDefinitionMap: (NotRequired - Default 'map:{}')\r
+#\r
+# The various settings about outside SQL. \r
+# \r
+# o isGenerateProcedureParameterBean (NotRequired - Default 'false')\r
+# o targetProcedureCatalogList (NotRequired - Default 'list:{}')\r
+# o targetProcedureSchemaList (NotRequired - Default 'list:{}')\r
+# o targetProcedureNameList (NotRequired - Default 'list:{}')\r
+# o sqlFileEncoding (NotRequired - Default 'UTF-8')\r
+# o sqlDirectory (NotRequired - Default java.dir & '../src/main/resources')\r
+# o sqlPackage (NotRequired - Default '')\r
+# \r
+# *The line that starts with '#' means comment-out.\r
+#\r
+map:{\r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o isGenerateProcedureParameterBean (NotRequired - Default 'false')\r
+ # [true]\r
+ # Generate the parameter bean for procedure.\r
+ # If you call the procedure from DBFlute, you should specify 'true'!\r
+ #\r
+ # [false]\r
+ # Non.\r
+ #\r
+ ; isGenerateProcedureParameterBean = false\r
+ # - - - - - - - - - -/\r
+\r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o targetProcedureCatalogList (NotRequired - Default 'list:{}')\r
+ # You can specify target catalog of generated parameter bean for procedure.\r
+ # This property is valid only when generateProcedureParameterBean is valid.\r
+ #\r
+ #; targetProcedureCatalogList = list:{FULL_NAME ; prefix:PREFIX_ ; suffix:_SUFFIX ; contain:KEYWORD}\r
+ # - - - - - - - - - -/\r
+\r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o targetProcedureSchemaList (NotRequired - Default 'list:{}')\r
+ # You can specify target schema of generated parameter bean for procedure.\r
+ # This property is valid only when generateProcedureParameterBean is valid.\r
+ # ex) list:{PROCEDUREDB}\r
+ #; targetProcedureSchemaList = list:{FULL_NAME ; prefix:PREFIX_ ; suffix:_SUFFIX ; contain:KEYWORD}\r
+ # - - - - - - - - - -/\r
+\r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o targetProcedureNameList (NotRequired - Default 'list:{}')\r
+ # You can specify target name of generated parameter bean for procedure.\r
+ # This property is valid only when generateProcedureParameterBean is valid.\r
+ # ex) list:{prefix:SP_}\r
+ #; targetProcedureNameList = list:{FULL_NAME ; prefix:PREFIX_ ; suffix:_SUFFIX ; contain:KEYWORD}\r
+ # - - - - - - - - - -/\r
+ \r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o sqlFileEncoding (NotRequired - Default 'UTF-8')\r
+ # The encoding of SQL file for outside SQL.\r
+ # Basically you don't need this.\r
+ #\r
+ #; sqlFileEncoding = UTF-8\r
+ # - - - - - - - - - -/\r
+ \r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o sqlDirectory (NotRequired - Default java.dir & '../src/main/resources')\r
+ # The directory of SQL file for outside SQL.\r
+ # Basically you don't need this.\r
+ #\r
+ #; sqlDirectory = ../src/main/resources\r
+ # - - - - - - - - - -/\r
+ \r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o sqlPackage (NotRequired - Default 'UTF-8')\r
+ # The package of SQL file for outside SQL.\r
+ # Basically you don't need this.\r
+ # You can use variable '$$PACKAGE_BASE$$' that means 'packageBase'.\r
+ #\r
+ #; sqlPackage = $$PACKAGE_BASE$$\r
+ # - - - - - - - - - -/\r
+}\r
+# ----------------/
\ No newline at end of file
--- /dev/null
+# /---------------------------------------------------------------------------\r
+# refreshDefinitionMap: (Default 'map:{}')\r
+#\r
+# If you use ResourceSynchronizer and specify this property,\r
+# You don't need to refresh(F5) your eclipse project.\r
+# \r
+# Specification:\r
+# map:{\r
+# ; projectName = [Eclipse Project]\r
+# ; requestUrl = [ResourceSynchronizer's URL]\r
+# }\r
+#\r
+# *The line that starts with '#' means comment-out.\r
+#\r
+map:{\r
+ #; projectName = dbflute-basic-example\r
+ #; requestUrl = http://localhost:8386/\r
+}\r
+# ----------------/
\ No newline at end of file
--- /dev/null
+# /---------------------------------------------------------------------------\r
+# replaceSchemaDefinitionMap: (Default 'map:{}')\r
+#\r
+# The various settings about replace-schema.\r
+# \r
+# o dataLoadingType (NotRequired - Default 'ut')\r
+# o isLoggingInsertSql (NotRequired - Default 'true')\r
+# o skipSheet (NotRequired - Default '')\r
+# o filterVariablesMap (NotRequired - Default 'map:{}')\r
+# \r
+# Example:\r
+# map:{\r
+# ; dataLoadingType = ut\r
+# ; isLoggingInsertSql = true\r
+# ; skipSheet = P.+\r
+# ; filterVariablesMap = map:{abc=AAA}\r
+# }\r
+#\r
+# *The line that starts with '#' means comment-out.\r
+#\r
+map:{\r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o dataLoadingType (NotRequired - Default 'ut')\r
+ # The type of data loading.\r
+ # If the value is 'ut', the target is './playsql/data/ut/...'.\r
+ #\r
+ ; dataLoadingType = ut\r
+ # - - - - - - - - - -/\r
+\r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o isLoggingInsertSql (NotRequired - Default 'true')\r
+ # Does it show insert values on log?\r
+ #\r
+ ; isLoggingInsertSql = true\r
+ # - - - - - - - - - -/\r
+\r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o skipSheet (NotRequired - Default '')\r
+ # You can specify the skip sheet by regular expression\r
+ #\r
+ #; skipSheet = P.+\r
+ # - - - - - - - - - -/\r
+ \r
+ # /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
+ # o filterVariablesMap (NotRequired - Default 'map:{}')\r
+ # You can specify the filter variables for DDL.\r
+ # \r
+ #; filterVariablesMap = map:{abc=AAA}\r
+ # - - - - - - - - - -/\r
+}\r
+# ----------------/
\ No newline at end of file
--- /dev/null
+# /---------------------------------------------------------------------------
+# sequenceDefinitionMap: (Default 'map:{}')
+#
+# The relation mappings between sequence and table.
+# If you don't specify the mappings, you cannot insert
+# a record of the table by sequence.
+# The table names are treated as case insensitive.
+#
+# Example:
+# map:{
+# ; PURCHASE = SEQ_PURCHASE
+# ; MEMBER = SEQ_MEMBER
+# ; MEMBER_LOGIN = SEQ_MEMBER_LOGIN
+# ; PRODUCT = SEQ_PRODUCT
+# }
+#
+# *The line that starts with '#' means comment-out.
+#
+map:{
+ #; PURCHASE = SEQ_PURCHASE
+ #; MEMBER = SEQ_MEMBER
+ #; MEMBER_LOGIN = SEQ_MEMBER_LOGIN
+ #; PRODUCT = SEQ_PRODUCT
+}
+# ----------------/
\ No newline at end of file
--- /dev/null
+# /---------------------------------------------------------------------------\r
+# typeMappingMap: (NotRequired - Default 'map:{}')\r
+#\r
+# If you want to change mappings from default mappings,\r
+# you can specify your original mappings.\r
+#\r
+# About '$$AutoMapping$$':\r
+# If the database is Oracle, they often use this.\r
+# For example, if you use this for NUMERIC.\r
+# o Numeric( 1 - 9 , 0) is mapping to INTEGER\r
+# o Numeric(10 - 38 , 0) is mapping to BIGINT\r
+# o Numeric( 1 - 38 , 2) is mapping to NUMERIC\r
+# \r
+# Example:\r
+# map:{\r
+# ; INTEGER = java.lang.Integer\r
+# ; TIMESTAMP = java.util.Date\r
+# }\r
+#\r
+# *The line that starts with '#' means comment-out.\r
+#\r
+#map:{\r
+# # AutoMapping for Numeric and Decimal\r
+# ; NUMERIC = $$AutoMapping$$ ; DECIMAL = $$AutoMapping$$\r
+#}\r
+\r
+map:{\r
+ ; TINYINT=java.lang.Integer\r
+ ; SMALLINT=java.lang.Integer\r
+ ; INTEGER=java.lang.Integer\r
+ ; BIGINT=java.lang.Long\r
+}\r
+\r
+# ----------------/\r
+#\r
+# Default mapping as follows:\r
+# ------------------------------------------------------\r
+# | JDBC Type | Java Type | CSharp Type |\r
+# | ----------------------------------------------------\r
+# | CHAR | java.lang.String | String |\r
+# | VARCHAR | java.lang.String | String |\r
+# | LONGVARCHAR | java.lang.String | String |\r
+# | NUMERIC | java.math.BigDecimal | decimal? |\r
+# | DECIMAL | java.math.BigDecimal | decimal? |\r
+# | BIT | java.lang.Boolean | bool? |\r
+# | BOOLEAN | java.lang.Boolean | bool? |\r
+# | TINYINT | java.lang.Integer | int? |\r
+# | SMALLINT | java.lang.Integer | int? |\r
+# | INTEGER | java.lang.Integer | int? |\r
+# | BIGINT | java.lang.Long | long? |\r
+# | REAL | java.math.BigDecimal | decimal? |\r
+# | FLOAT | java.math.BigDecimal | decimal? |\r
+# | DOUBLE | java.math.BigDecimal | decimal? |\r
+# | BINARY | byte[] | byte[] |\r
+# | VARBINARY | byte[] | byte[] |\r
+# | LONGVARBINARY | byte[] | byte[] |\r
+# | DATE | java.util.Date | DateTime? |\r
+# | TIME | java.sql.Time | DateTime? |\r
+# | TIMESTAMP | java.sql.Timestamp | DateTime? |\r
+# ------------------------------------------------------\r
\r
call %DBFLUTE_HOME%\etc\cmd\_df-copy-properties.cmd %NATIVE_PROPERTIES_PATH%\r
\r
-IF "%answer%"=="" SET /P answer=Database will be initialized. Are you ready? (y or n)\r
+IF "%answer%"=="" SET /P answer=Database will be initialized. Are you ready? (y or n) \r
IF "%answer%"=="y" call %DBFLUTE_HOME%\ant\bin\ant -Ddfenv=%DBFLUTE_ENVIRONMENT_TYPE% -f %DBFLUTE_HOME%\build-torque.xml replace-schema\r
\r
sh $DBFLUTE_HOME/etc/cmd/_df-copy-properties.sh $NATIVE_PROPERTIES_PATH
-# {From Mr.Akikusa}
-read -p "Database will be initialized. Are you ready? (y or n)" answer
+if [ "$answer" = "y" ] ;then
+ export answer=y
+else
+ # {From Mr.Akikusa}
+ read -p "Database will be initialized. Are you ready? (y or n) " answer
+fi
if [ $answer = "y" ] ;then
$DBFLUTE_HOME/ant/bin/ant -Ddfenv=$DBFLUTE_ENVIRONMENT_TYPE -f $DBFLUTE_HOME/build-torque.xml replace-schema
fi
-
--- /dev/null
+It's a mark file!
+
+[Product Name]
+DBFlute
+
+[Product Version]
+0.9.3
+
+[Deploy Date]
+2009-02-28 12:59:57.689
\ No newline at end of file
#set ( $basepath = $generator.OutputPath)\r
\r
+ \r
#foreach ($dataModel in $dataModels)\r
-\r
#if ($outputFormat=="html")\r
#set ( $outFile = "${dataModel.name}.html" )\r
#else\r
\r
File to be created: $outFile\r
\r
+ #set ($database = $dataModel.database)\r
+\r
+ ## - - - - - - - - - - - -\r
+ ## Initialize properties.\r
+ ## - - - - - - - - - - - -\r
+ $database.initializeVersion(90)\r
+ $database.initializeAdditionalPrimaryKey()\r
+ $database.initializeAdditionalForeignKey()\r
+ $database.initializeClassificationDeployment()\r
+\r
$generator.parse("doc/$outputFormat/datamodel.vm",$outFile,"dataModel",$dataModel)\r
#end\r
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">\r
+<head>\r
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
+ <title>${database.projectName} schema</title>\r
+ <style type="text/css">\r
+ * {\r
+ margin: 0;\r
+ padding: 0;\r
+ }\r
+ body {\r
+ font-family: sans-serif;\r
+ font-size: 90%;\r
+ margin: 10px 5px 5px 15px;\r
+ }\r
+ \r
+ /* header */\r
+ h1 {\r
+ font-size: 1.5em;\r
+ border-bottom: 2px solid #af0000;\r
+ border-top: 2px solid #af0000;\r
+ }\r
+ h2 {\r
+ margin: 30px 0 5px 0;\r
+ font-size: 1.8em;\r
+ border-bottom: 2px solid #af0000;\r
+ border-left: 10px solid #af0000;\r
+ text-indent: 10px;\r
+ }\r
+ .updatedate {\r
+ text-align: right;\r
+ }\r
+ \r
+ /* table */\r
+ table {\r
+ border-collapse:collapse;\r
+ }\r
+ table, th {\r
+ border: 1px solid #555;\r
+ }\r
+ th {\r
+ background-color: #cc9;\r
+ font-size: 0.8em;\r
+ }\r
+ td {\r
+ border-bottom: 1px dotted #aaa;\r
+ border-left: 1px solid #555;\r
+ padding:2px;\r
+ }\r
+ .aliascell {\r
+ white-space: nowrap;\r
+ }\r
+ .flgcell {\r
+ text-align: center;\r
+ }\r
+ .numcell {\r
+ text-align: center;\r
+ }\r
+ .linkcell {\r
+ font-size: 0.8em;\r
+ }\r
+ .commentcell {\r
+ font-size: 0.7em;\r
+ }\r
+ .subcell {\r
+ font-size: 0.8em;\r
+ }\r
+ .comcolcell {\r
+ color: #666;\r
+ }\r
+ .optcell {\r
+ font-style: italic;\r
+ }\r
+ .additionalpk {\r
+ font-size: 0.7em;\r
+ font-style: italic;\r
+ }\r
+ .additionalfk {\r
+ font-size: 0.7em;\r
+ font-style: italic;\r
+ }\r
+\r
+ /* inner table */\r
+ table.child {\r
+ margin: 3px;\r
+ }\r
+ table.child th {\r
+ font-size: 0.7em;\r
+ background-color: #fff;\r
+ }\r
+ table.child, table.child td, table.child th {\r
+ border-top: none;\r
+ border-left: none;\r
+ border-bottom: 1px solid #aaa;\r
+ border-right: 1px solid #aaa;\r
+ }\r
+ </style>\r
+</head>\r
+\r
+<body>\r
+ <h1>${database.projectName} schema on ${database.databaseName}</h1>\r
+ <p class="updatedate">${database.timestampExpression}</p>\r
+ <h2>Table List</h2>\r
+ <table>\r
+ <thead>\r
+ <tr>\r
+#if ($database.isAliasDelimiterInDbCommentValid())\r
+ <th>Alias</th>\r
+#end\r
+ <th>Name</th>\r
+ <th>Type</th>\r
+ <th>ForeignTable</th>\r
+ <th>ReferrerTable</th>\r
+ <th>Comment</th>\r
+ <th>EntityName</th>\r
+ </tr>\r
+ </thead>\r
+ <tbody>\r
+#foreach ($table in $database.tableDisplaySortedList)\r
+ <tr>\r
+#if ($database.isAliasDelimiterInDbCommentValid())\r
+ <td class="aliascell">${table.alias}</td>\r
+#end\r
+ <td><a href="#${table.name}">${table.name}</a></td>\r
+ <td>${table.type}</td>\r
+ <td class="subcell">${table.foreignTableNameCommaStringWithHtmlHref}</td>\r
+ <td class="subcell">${table.referrerTableNameCommaStringWithHtmlHref}</td>\r
+ <td class="commentcell">#if ($table.hasComment()) ${table.commentForSchemaHtml}#else #end</td>\r
+ <td class="subcell">${table.javaName}</td>\r
+ </tr>\r
+#end\r
+ </tbody>\r
+ </table>\r
+\r
+#foreach ($table in $database.tableDisplaySortedList)\r
+$generator.parse("doc/html/table.vm", null, "table", $table)\r
+#end\r
+\r
+#if ($database.hasClassificationDefinitionMap())\r
+ <h2>Classification Definition</h2>\r
+ <table>\r
+ <thead>\r
+ <tr>\r
+ <th>Classification</th>\r
+ <th>Top Comment</th>\r
+ <th>Definition</th>\r
+ </tr>\r
+ </thead>\r
+ <tbody>\r
+#foreach ($classificationName in $database.classificationNameList)\r
+#set ($classificationMapList = $database.classificationDefinitionMap.get($classificationName))\r
+#set ($existTop = false)\r
+#if ($database.classificationTopDefinitionMap.containsKey($classificationName))\r
+ #set ($classificationTopMap = $database.classificationTopDefinitionMap.get($classificationName))\r
+ #set ($existTop = true)\r
+#else\r
+ #set ($existTop = false)\r
+#end\r
+ <tr>\r
+ <td><a name="${classificationName}"/>${classificationName}</td>\r
+ <td>#if ($existTop && $classificationTopMap.containsKey('topComment'))$classificationTopMap.get('topComment')#else #end</td>\r
+ <td>\r
+ <table class="child">\r
+ <tr>\r
+ <th>Code</th>\r
+ <th>Name</th>\r
+ <th>Comment</th>\r
+ </tr>\r
+#foreach ($classificationMap in $classificationMapList)\r
+ <tr>\r
+ <td>$classificationMap.get('code')</td>\r
+ <td>${classificationMap.get('name')}</td>\r
+ <td>#if ($classificationMap.containsKey('comment'))${classificationMap.get('comment')}#else #end</td>\r
+ </tr>\r
+#end\r
+ </table>\r
+ </td>\r
+ </tr>\r
+#end\r
+ </tbody>\r
+ </table>\r
+#end\r
+</body>\r
+</html>\r
--- /dev/null
+<h2><a name="$table.name" />${table.aliasExpression}${table.name}</h2>\r
+<table>\r
+ <thead>\r
+ <tr>\r
+ <th>PK</th>\r
+ <th>ID</th>\r
+ <th>UQ</th>\r
+ <th>IX</th>\r
+ <th>Not<br />Null</th>\r
+#if ($database.isAliasDelimiterInDbCommentValid())\r
+ <th>Alias</th>\r
+#end\r
+ <th>Name</th>\r
+ <th>Type</th>\r
+ <th>Size</th>\r
+ <th>Def</th>\r
+ <th>ForeignTable</th>\r
+ <th>ReferrerTable</th>\r
+ <th>Classification</th>\r
+ <th>Comment</th>\r
+ <th>PropertyName</th>\r
+ <th>${table.database.targetLanguageInitCap}Type</th>\r
+ </tr>\r
+ </thead>\r
+#foreach ($col in $table.columns)\r
+ <tr>\r
+ <td class="flgcell#if ($col.isAdditionalPrimaryKey()) additionalpk#end">#if ($col.isPrimaryKey())o#else #end</td>\r
+ <td class="flgcell">#if ($col.isIdentityOrSequence())o#else #end</td>\r
+ <td class="flgcell">#if ($col.isUnique())o#else #end</td>\r
+ <td class="flgcell">#if ($col.hasIndex())o#else #end</td>\r
+ <td class="flgcell">#if ($col.isNotNull())*#else #end</td>\r
+#if ($database.isAliasDelimiterInDbCommentValid())\r
+ <td class="${col.schemaHtmlColumnAliasCssClass}">${col.alias}</td>\r
+#end\r
+ <td#if ($col.hasSchemaHtmlColumnNameCssClass()) class="${col.schemaHtmlColumnNameCssClass}"#end id="${table.name}${col.name}">${col.name}</td>\r
+ <td>${col.dbTypeExpression}</td>\r
+ <td class="numcell">#if ($col.hasColumnSize()) ${col.columnSize} #else #end</td>\r
+ <td class="subcell">#if ($col.hasDefaultValue() && !$col.isIdentityOrSequence()) ${col.defaultValue}#else #end</td>\r
+ <td class="linkcell">${col.foreignTableNameCommaStringWithHtmlHref} </td>\r
+ <td class="linkcell">${col.referrerTableCommaStringWithHtmlHref} </td>\r
+ <td class="linkcell">#if ($col.hasClassification())<a href="${table.database.sharp}${col.classificationName}">${col.classificationName}</a>#else #end</td>\r
+ <td class="commentcell">#if ($col.hasComment()) ${col.commentForSchemaHtml}#else #end</td>\r
+ <td class="subcell">${col.javaBeansRulePropertyName}</td>\r
+ <td class="subcell">${col.javaNativeRemovedPackage}</td>\r
+ </tr>\r
+#end\r
+</table>\r
--- /dev/null
+#\r
+# @since DBFlute-0.9.0\r
+#\r
+\r
+targetdatabase = $targetDatabase\r
+\r
+##\r
+## Loop by data-model.\r
+##\r
+#foreach ($dataModel in $dataModels)\r
+\r
+ ##\r
+ ## Loop by database.\r
+ ##\r
+ #foreach ($database in $dataModel.Databases)\r
+ $database.enableGenerateOutputDirectory()\r
+\r
+ ## - - - - - - - - - - - -\r
+ ## Initialize properties.\r
+ ## - - - - - - - - - - - -\r
+ $database.initializeVersion(90)\r
+ $database.initializeAdditionalPrimaryKey()\r
+ $database.initializeAdditionalForeignKey()\r
+ $database.initializeClassificationDeployment()\r
+ $database.initializeIncludeQuery()\r
+ $database.checkProperties()\r
+\r
+ ## *****************************************************************************************************************\r
+ ## Global Paramter\r
+ ## ***************\r
+ ## ===================================================================================\r
+ ## Language\r
+ ## ========\r
+ #set ($glTargetLanguage = ${database.targetLanguage})\r
+\r
+ ## ===================================================================================\r
+ ## Resource Directory\r
+ ## ==================\r
+ #set ($glResourceDirectory = ${database.resourceDirectory})\r
+\r
+ ## ===================================================================================\r
+ ## Extension\r
+ ## =========\r
+ #set ($glTemplateFileExtension = ${database.templateFileExtension})\r
+ #set ($glClassFileExtension = ${database.classFileExtension})\r
+\r
+ ## ===================================================================================\r
+ ## Prefix\r
+ ## ======\r
+ #set ($glProjectPrefix = ${database.projectPrefix})\r
+ #set ($glBasePrefix = ${database.basePrefix})\r
+ #set ($glBaseSuffixForEntity = ${database.baseSuffixForEntity})\r
+\r
+ ## ===================================================================================\r
+ ## Container\r
+ ## =========\r
+ #set ($glDBFluteDiconNamespace = "${database.DBFluteDiconNamespace}")\r
+ #set ($glDBFluteDiconFileName = "${database.DBFluteDiconFileName}")\r
+ #set ($glCreatorDiconFileName = "${database.DBFluteCreatorDiconFileName}")\r
+ #set ($glCustomizerDiconFileName = "${database.DBFluteCustomizerDiconFileName}")\r
+ #set ($glJ2eeDiconResourceName = "${database.j2eeDiconResourceName}")\r
+ #set ($glDBFluteBeansFileName = "${database.DBFluteBeansFileName}")\r
+ #set ($glDBFluteModule = "${glProjectPrefix}DBFluteModule")\r
+\r
+ ## ===================================================================================\r
+ ## Class Name\r
+ ## ==========\r
+ ## [Allcommon]\r
+ #set ($glAccessContext = "${glProjectPrefix}AccessContext")\r
+ #set ($glBuriDef = "${glProjectPrefix}BuriDef")\r
+ #set ($glCDef = "${glProjectPrefix}CDef")\r
+ #set ($glDBCurrent = "${glProjectPrefix}DBCurrent")\r
+ #set ($glDBFluteConfig = "${glProjectPrefix}DBFluteConfig")\r
+ #set ($glDBFluteInitializer = "${glProjectPrefix}DBFluteInitializer")\r
+ #set ($glEntityDefinedCommonColumn = "${glProjectPrefix}EntityDefinedCommonColumn")\r
+ #set ($glImplementedBehaviorSelector = "${glProjectPrefix}ImplementedBehaviorSelector")\r
+ #set ($glImplementedCommonColumnAutoSetupper = "${glProjectPrefix}ImplementedCommonColumnAutoSetupper")\r
+ #set ($glImplementedInvokerAssistant = "${glProjectPrefix}ImplementedInvokerAssistant")\r
+ #set ($glImplementedSqlClauseCreator = "${glProjectPrefix}ImplementedSqlClauseCreator")\r
+ #set ($glDBMetaInstanceHandler = "${glProjectPrefix}DBMetaInstanceHandler")\r
+\r
+ ## ===================================================================================\r
+ ## Variable\r
+ ## ========\r
+ #set ($glConditionBeanInitialName = "CB")\r
+ #set ($glConditionQueryInitialName = "CQ")\r
+ #set ($glAttachedCBArgsVariableName = "cb")\r
+ #set ($glParentVariablePrefix = "_parent")\r
+ #set ($glChildrenVariablePrefix = "_children")\r
+\r
+ ## ===================================================================================\r
+ ## Package\r
+ ## =======\r
+ #set ($glPackageBaseCommon = "${database.baseCommonPackage}")\r
+ #set ($glPackageBaseBhv = "${database.baseBehaviorPackage}")\r
+ #set ($glPackageBaseDao = "${database.baseDaoPackage}" )\r
+ #set ($glPackageBaseCustomizeDao = "${database.baseDaoPackage}.customize" )\r
+ #set ($glPackageBaseEntity = "${database.baseEntityPackage}")\r
+ #set ($glPackageBaseCustomizeEntity = "${database.baseEntityPackage}.customize" )\r
+ #set ($glPackageExtendedBhv = "${database.extendedBehaviorPackage}")\r
+ #set ($glPackageExtendedDao = "${database.extendedDaoPackage}")\r
+ #set ($glPackageExtendedCustomizeDao = "${database.extendedDaoPackage}.customize" )\r
+ #set ($glPackageExtendedEntity = "${database.extendedEntityPackage}")\r
+ #set ($glPackageExtendedCustomizeEntity = "${database.extendedEntityPackage}.customize" )\r
+ #set ($glPackageBaseCB = "${database.conditionBeanPackage}.bs")\r
+ #set ($glPackageCB = "${database.extendedConditionBeanPackage}")\r
+ #set ($glPackageBaseCQ = "${database.conditionBeanPackage}.cq.bs")\r
+ #set ($glPackageCQ = "${database.extendedConditionBeanPackage}.cq")\r
+ #set ($glPackageCIQ = "${database.conditionBeanPackage}.cq.ciq")\r
+ #set ($glPackageNss = "${database.conditionBeanPackage}.nss")\r
+ #set ($glPackageBaseDBMeta = "${glPackageBaseEntity}.dbmeta")\r
+ #set ($glPackageBaseCustomizeDBMeta = "${glPackageBaseCustomizeEntity}.dbmeta")\r
+ #set ($glPackageBaseSqlParameterBean = "${database.SqlParameterBeanPackage}.bsparam")\r
+ #set ($glPackageExtendedSqlParameterBean = "${database.SqlParameterBeanPackage}.exparam")\r
+\r
+ ## *****************************************************************************************************************\r
+ ## Parsing\r
+ ## *******\r
+ ## ===================================================================================\r
+ ## AllCommon\r
+ ## =========\r
+ $database.info("public void parseAllCommon() {")\r
+\r
+ #set ($path = $database.getPackageAsPath(${glPackageBaseCommon}))\r
+ $database.makeDirectory($path)\r
+\r
+ #if ($database.isUseBuri())\r
+ $database.info(" parse('BuriDef');")\r
+ #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommon})}${glBuriDef}.${glClassFileExtension}" )\r
+ $generator.parse("om/${glResourceDirectory}/allcommon/BuriDef.${glTemplateFileExtension}",$path ,"" ,"")\r
+ #end\r
+\r
+ #if ($database.hasClassificationDefinitionMap())\r
+ $database.info(" parse('CDef');")\r
+ #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommon})}${glCDef}.${glClassFileExtension}" )\r
+ $generator.parse("om/${glResourceDirectory}/allcommon/CDef.${glTemplateFileExtension}",$path ,"" ,"")\r
+ #end\r
+\r
+ $database.info(" parse('DBCurrent');")\r
+ #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommon})}${glDBCurrent}.${glClassFileExtension}" )\r
+ $generator.parse("om/${glResourceDirectory}/allcommon/DBCurrent.${glTemplateFileExtension}",$path ,"" ,"")\r
+\r
+ $database.info(" parse('DBFluteConfig');")\r
+ #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommon})}${glDBFluteConfig}.${glClassFileExtension}" )\r
+ $generator.parse("om/${glResourceDirectory}/allcommon/DBFluteConfig.${glTemplateFileExtension}",$path ,"" ,"")\r
+\r
+ $database.info(" parse('DBFluteInitializer');")\r
+ #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommon})}${glDBFluteInitializer}.${glClassFileExtension}" )\r
+ $generator.parse("om/${glResourceDirectory}/allcommon/DBFluteInitializer.${glTemplateFileExtension}",$path,"", "")\r
+\r
+ $database.info(" parse('DBMetaInstanceHandler');")\r
+ #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommon})}${glDBMetaInstanceHandler}.${glClassFileExtension}" )\r
+ $generator.parse("om/${glResourceDirectory}/allcommon/DBMetaInstanceHandler.${glTemplateFileExtension}",$path,"", "")\r
+\r
+ $database.info(" parse('EntityDefinedCommonColumn');")\r
+ #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommon})}${glEntityDefinedCommonColumn}.${glClassFileExtension}" )\r
+ $generator.parse("om/${glResourceDirectory}/allcommon/EntityDefinedCommonColumn.${glTemplateFileExtension}",$path ,"", "")\r
+\r
+ $database.info(" parse('ImplementedBehaviorSelector');")\r
+ #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommon})}${glImplementedBehaviorSelector}.${glClassFileExtension}" )\r
+ $generator.parse("om/${glResourceDirectory}/allcommon/ImplementedBehaviorSelector.${glTemplateFileExtension}",$path ,"", "")\r
+\r
+ $database.info(" parse('ImplementedCommonColumnAutoSetupper');")\r
+ #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommon})}${glImplementedCommonColumnAutoSetupper}.${glClassFileExtension}" )\r
+ $generator.parse("om/${glResourceDirectory}/allcommon/ImplementedCommonColumnAutoSetupper.${glTemplateFileExtension}",$path ,"", "")\r
+\r
+ $database.info(" parse('ImplementedInvokerAssistant');")\r
+ #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommon})}${glImplementedInvokerAssistant}.${glClassFileExtension}" )\r
+ $generator.parse("om/${glResourceDirectory}/allcommon/ImplementedInvokerAssistant.${glTemplateFileExtension}",$path,"", "")\r
+\r
+ $database.info(" parse('ImplementedSqlClauseCreator');")\r
+ #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommon})}${glImplementedSqlClauseCreator}.${glClassFileExtension}" )\r
+ $generator.parse("om/${glResourceDirectory}/allcommon/ImplementedSqlClauseCreator.${glTemplateFileExtension}",$path ,"" ,"")\r
+\r
+ $database.info("}")\r
+\r
+ ## ===================================================================================\r
+ ## ContainerConfig\r
+ ## ===============\r
+ $database.info("parseContainerConfig() {")\r
+ #if ($database.isTargetContainerSeasar())\r
+ #if ($database.isAvailableHotDeploy())\r
+ #set ($glBehaviorCreator = "${glProjectPrefix}BehaviorCreator")\r
+ #set ($glPackageBaseCommonS2Container = "${database.baseCommonPackage}.s2container")\r
+ #set ($path = $database.getPackageAsPath(${glPackageBaseCommonS2Container}))\r
+ $database.makeDirectory($path)\r
+\r
+ $database.info(" parse('BehaviorCreator');")\r
+ #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2Container})}${glBehaviorCreator}.${glClassFileExtension}" )\r
+ $generator.parse("om/${glResourceDirectory}/allcommon/container/seasar/hotdeploy/BehaviorCreator.${glTemplateFileExtension}",$path ,"" ,"")\r
+\r
+ #foreach ($dbfluteDiconPackageName in $database.DBFluteDiconPackageNameList)\r
+ #set ($path = "${dbfluteDiconPackageName}" )\r
+ $database.makeDirectory($path)\r
+\r
+ #set ($path = "${dbfluteDiconPackageName}/${glDBFluteDiconFileName}" )\r
+ $database.info(" ${path}")\r
+ $generator.parse("om/${glResourceDirectory}/allcommon/container/seasar/hotdeploy/HotDeployDicon.${glTemplateFileExtension}", $path, "", "")\r
+\r
+ #set ($path = "${dbfluteDiconPackageName}/${glCreatorDiconFileName}" )\r
+ $database.info(" ${path}")\r
+ $generator.parse("om/${glResourceDirectory}/allcommon/container/seasar/hotdeploy/CreatorDicon.${glTemplateFileExtension}", $path, "", "")\r
+\r
+ #set ($path = "${dbfluteDiconPackageName}/${glCustomizerDiconFileName}" )\r
+ $database.info(" ${path}")\r
+ $generator.parse("om/${glResourceDirectory}/allcommon/container/seasar/hotdeploy/CustomizerDicon.${glTemplateFileExtension}", $path, "", "")\r
+ #end\r
+ #else\r
+ #foreach ($dbfluteDiconPackageName in $database.DBFluteDiconPackageNameList)\r
+ #set ($path = "${dbfluteDiconPackageName}" )\r
+ $database.makeDirectory($path)\r
+\r
+ #set ($path = "${dbfluteDiconPackageName}/${glDBFluteDiconFileName}" )\r
+ $database.info(" ${path}")\r
+ $generator.parse("om/${glResourceDirectory}/allcommon/container/seasar/DBFluteDicon.${glTemplateFileExtension}", $path, "", "")\r
+ #end\r
+ #end\r
+ #end\r
+ #if ($database.isTargetContainerSpring())\r
+ #foreach ($dbfluteBeansPackageName in $database.DBFluteBeansPackageNameList)\r
+ #set ($path = "${dbfluteBeansPackageName}" )\r
+ $database.makeDirectory($path)\r
+\r
+ #set ($path = "${dbfluteBeansPackageName}/${glDBFluteBeansFileName}" )\r
+ $database.info(" ${path}")\r
+ $generator.parse("om/${glResourceDirectory}/allcommon/container/spring/SpringDBFluteBeans.${glTemplateFileExtension}", $path, "", "")\r
+ #end\r
+ #end\r
+ #if ($database.isTargetContainerLucy())\r
+ #foreach ($dbfluteBeansPackageName in $database.DBFluteBeansPackageNameList)\r
+ #set ($path = "${dbfluteBeansPackageName}" )\r
+ $database.makeDirectory($path)\r
+\r
+ #set ($path = "${dbfluteBeansPackageName}/${glDBFluteBeansFileName}" )\r
+ $database.info(" ${path}")\r
+ $generator.parse("om/${glResourceDirectory}/allcommon/container/lucy/LucyDBFluteBeans.${glTemplateFileExtension}", $path, "", "")\r
+ #end\r
+ #end\r
+ #if ($database.isTargetContainerGuice())\r
+ #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommon})}${glDBFluteModule}.${glClassFileExtension}" )\r
+ $database.info(" ${path}")\r
+ $generator.parse("om/${glResourceDirectory}/allcommon/container/guice/GuiceDBFluteModule.${glTemplateFileExtension}", $path, "", "")\r
+ #end\r
+ $database.info("}")\r
+\r
+ ## ===================================================================================\r
+ ## Table Object\r
+ ## ============\r
+ ## for Sql2Entity\r
+ #set ($isSql2Entity = false)\r
+\r
+ #set ($path = $database.getPackageAsPath(${glPackageBaseBhv}))\r
+ $database.makeDirectory($path)\r
+\r
+ #set ($path = $database.getPackageAsPath(${glPackageBaseEntity}))\r
+ $database.makeDirectory($path)\r
+\r
+ #set ($path = $database.getPackageAsPath(${glPackageBaseDBMeta}))\r
+ $database.makeDirectory($path)\r
+\r
+ #set ($path = $database.getPackageAsPath(${glPackageBaseCB}))\r
+ $database.makeDirectory($path)\r
+\r
+ #set ($path = $database.getPackageAsPath(${glPackageBaseCQ}))\r
+ $database.makeDirectory($path)\r
+\r
+ #set ($path = $database.getPackageAsPath(${glPackageCIQ}))\r
+ $database.makeDirectory($path)\r
+\r
+ #set ($path = $database.getPackageAsPath(${glPackageCQ}))\r
+ $database.makeDirectory($path)\r
+\r
+ #set ($path = $database.getPackageAsPath(${glPackageNss}))\r
+ $database.makeDirectory($path)\r
+\r
+ #set ($path = $database.getPackageAsPath(${glPackageCB}))\r
+ $database.makeDirectory($path)\r
+\r
+ #set ($path = $database.getPackageAsPath(${glPackageExtendedBhv}))\r
+ $database.makeDirectory($path)\r
+\r
+ #set ($path = $database.getPackageAsPath(${glPackageExtendedEntity}))\r
+ $database.makeDirectory($path)\r
+\r
+ ##\r
+ ## Delete old table classes.\r
+ ##\r
+ $database.deleteOldTableClass()\r
+\r
+ ##\r
+ ## Loop by tables.\r
+ ##\r
+ $database.info("/* * * * * * * * * * * * * * {Table Class}")\r
+ #foreach ($table in $database.tables)\r
+ #if (!$table.isForReferenceOnly())\r
+\r
+ $database.info("parseTable('${table.Name}');")\r
+ ##\r
+ ## The name of objects\r
+ ##\r
+ #set ($myExtendedDaoClassName = "${table.extendedDaoClassName}")\r
+ #set ($myExtendedDaoPackageName = "${glPackageExtendedDao}")\r
+\r
+ #set ($myBaseDaoClassName = "${table.baseDaoClassName}")\r
+ #set ($myBaseDaoPackageName = "${glPackageBaseDao}")\r
+\r
+ #set ($myBaseBhvClassName = "${table.baseBehaviorClassName}")\r
+ #set ($myBaseBhvPackageName = "${glPackageBaseBhv}")\r
+ #set ($myExtendedBhvClassName = "${table.extendedBehaviorClassName}")\r
+ #set ($myExtendedBhvPackageName = "${glPackageExtendedBhv}")\r
+\r
+ #set ($myBaseObjectClassName = "${table.baseEntityClassName}")\r
+ #set ($myBaseEntityPackageName = "${glPackageBaseEntity}")\r
+\r
+ #set ($myExtendedObjectClassName = "${table.extendedEntityClassName}")\r
+ #set ($myExtendedEntityPackageName = "${glPackageExtendedEntity}")\r
+\r
+ #set ($myBaseConditionBeanClassName = "${table.baseConditionBeanClassName}")\r
+ #set ($myConditionBeanClassName = "${table.extendedConditionBeanClassName}")\r
+ #set ($myAbstractBaseConditionQueryClassName = "${table.abstractBaseConditionQueryClassName}")\r
+ #set ($myBaseConditionQueryClassName = "${table.baseConditionQueryClassName}")\r
+ #set ($myConditionQueryClassName = "${table.extendedConditionQueryClassName}")\r
+ #set ($myConditionInlineQueryClassName = "${table.extendedConditionInlineQueryClassName}")\r
+ #set ($myNestSelectSetupperClassName = "${table.nestSelectSetupperClassName}")\r
+ #set ($myNestSelectSetupperTerminalClassName = "${table.nestSelectSetupperTerminalClassName}")\r
+\r
+ #set ($myDBMetaClassName = "${table.DBMetaClassName}")\r
+ #set ($myDBMetaPackageName = "${glPackageBaseDBMeta}")\r
+\r
+ ##\r
+ ## The variable name\r
+ ##\r
+ #set ($myAttachedCBArgsString = "${glPackageCB}.${myConditionBeanClassName} ${glAttachedCBArgsVariableName}")\r
+\r
+ #set ($myEntityVariableName = "${table.uncapitalisedJavaName}")\r
+ #set ($myEntityListVariableName = "${table.uncapitalisedJavaName}List")\r
+ #set ($myCBVariableName = "${table.uncapitalisedJavaName}")\r
+ #set ($myBehaviorVariableName = "${table.uncapitalisedJavaName}Bhv")\r
+\r
+ ##\r
+ ## Determination\r
+ ##\r
+ #set ($isExistBehavior = false)\r
+ #set ($isExistBehavior = true)\r
+ #set ($isExistDao = true)\r
+ #set ($isExistConditionBean = true)\r
+\r
+ #set ( $path = "${database.getPackageAsPath(${glPackageBaseBhv})}${myBaseBhvClassName}.${glClassFileExtension}" )\r
+ $generator.parse("om/${glResourceDirectory}/bsbhv/BaseBhv.${glTemplateFileExtension}", $path, "table", $table)\r
+\r
+ #set ( $path = "${database.getPackageAsPath(${glPackageBaseEntity})}${myBaseObjectClassName}.${glClassFileExtension}" )\r
+ $generator.parse("om/${glResourceDirectory}/bsentity/BaseEntity.${glTemplateFileExtension}", $path, "table", $table)\r
+\r
+ #set ( $path = "${database.getPackageAsPath(${glPackageBaseDBMeta})}${myDBMetaClassName}.${glClassFileExtension}" )\r
+ $generator.parse("om/${glResourceDirectory}/bsentity/dbmeta/DBMetaImpl.${glTemplateFileExtension}",$path,"", "")\r
+\r
+ #if (!$database.isStopGenerateExtendedBhv())\r
+ #set ( $path = "${database.getPackageAsPath(${glPackageExtendedBhv})}${myExtendedBhvClassName}.${glClassFileExtension}" )\r
+ #if (!$files.file(${generator.OutputPath},$path).exists())\r
+ $generator.parse("om/${glResourceDirectory}/exbhv/ExtendedBhv.${glTemplateFileExtension}", $path, "table", $table)\r
+ #end\r
+ #end\r
+\r
+ #if (!$database.isStopGenerateExtendedEntity())\r
+ #set ( $path = "${database.getPackageAsPath(${glPackageExtendedEntity})}${myExtendedObjectClassName}.${glClassFileExtension}" )\r
+ #if (!$files.file(${generator.OutputPath},$path).exists())\r
+ $generator.parse("om/${glResourceDirectory}/exentity/ExtendedEntity.${glTemplateFileExtension}", $path, "table", $table)\r
+ #end\r
+ #end\r
+\r
+ #set ( $path = "${database.getPackageAsPath(${glPackageBaseCB})}${myBaseConditionBeanClassName}.${glClassFileExtension}" )\r
+ $generator.parse("om/${glResourceDirectory}/cbean/BsConditionBean.${glTemplateFileExtension}", $path, "table", $table)\r
+\r
+ #set ( $path = "${database.getPackageAsPath(${glPackageBaseCQ})}${myAbstractBaseConditionQueryClassName}.${glClassFileExtension}" )\r
+ $generator.parse("om/${glResourceDirectory}/cbean/AbstractBsConditionQuery.${glTemplateFileExtension}", $path, "table", $table)\r
+\r
+ #set ( $path = "${database.getPackageAsPath(${glPackageCIQ})}${myConditionInlineQueryClassName}.${glClassFileExtension}" )\r
+ $generator.parse("om/${glResourceDirectory}/cbean/BsConditionInlineQuery.${glTemplateFileExtension}", $path, "table", $table)\r
+\r
+ #set ( $path = "${database.getPackageAsPath(${glPackageBaseCQ})}${myBaseConditionQueryClassName}.${glClassFileExtension}" )\r
+ $generator.parse("om/${glResourceDirectory}/cbean/BsConditionQuery.${glTemplateFileExtension}", $path, "table", $table)\r
+\r
+ #set ( $path = "${database.getPackageAsPath(${glPackageNss})}${myNestSelectSetupperClassName}.${glClassFileExtension}" )\r
+ $generator.parse("om/${glResourceDirectory}/cbean/NestSelectSetupper.${glTemplateFileExtension}", $path, "table", $table)\r
+\r
+ #set ( $path = "${database.getPackageAsPath(${glPackageCB})}${myConditionBeanClassName}.${glClassFileExtension}" )\r
+ #if (!$files.file(${generator.OutputPath},$path).exists())\r
+ $generator.parse("om/${glResourceDirectory}/cbean/ExConditionBean.${glTemplateFileExtension}", $path, "table", $table)\r
+ #end\r
+\r
+ #set ( $path = "${database.getPackageAsPath(${glPackageCQ})}${myConditionQueryClassName}.${glClassFileExtension}" )\r
+ #if (!$files.file(${generator.OutputPath},$path).exists())\r
+ $generator.parse("om/${glResourceDirectory}/cbean/ExConditionQuery.${glTemplateFileExtension}", $path, "table", $table)\r
+ #end\r
+ #end\r
+ #end\r
+ $database.info("* * * * * * * * * */")\r
+ $database.info(" ")\r
+\r
+ ## ===================================================================================\r
+ ## Simple Dto\r
+ ## ==========\r
+ #if ($database.hasSimpleDtoDefinition() && $database.isTargetLanguageJava())\r
+ $database.info("parseSimpleDto() {// mapper=$database.isSimpleDtoUseDtoMapper()")\r
+ #set ($myDomainEntityPackageName = "${glPackageExtendedEntity}")\r
+ #set ($myBaseEntityPackageName = "${database.simpleDtoBaseDtoPackage}")\r
+ #set ($myExtendedEntityPackageName = "${database.simpleDtoExtendedDtoPackage}")\r
+ #set ($myDtoMapperPackageName = "${database.simpleDtoDtoMapperPackage}")\r
+\r
+ #set ($path = $database.getPackageAsPath(${myBaseEntityPackageName}))\r
+ $database.makeDirectory($path)\r
+\r
+ #set ($path = $database.getPackageAsPath(${myExtendedEntityPackageName}))\r
+ $database.makeDirectory($path)\r
+\r
+ #if ($database.isSimpleDtoUseDtoMapper())\r
+ #set ($path = $database.getPackageAsPath(${myDtoMapperPackageName}))\r
+ $database.makeDirectory($path)\r
+ #end\r
+\r
+ #foreach ($table in $database.tables)\r
+ #set ($myBaseObjectClassName = "${database.simpleDtoBaseDtoPrefix}${table.javaName}${database.simpleDtoBaseDtoSuffix}")\r
+ #set ($myExtendedObjectClassName = "${database.simpleDtoExtendedDtoPrefix}${table.javaName}${database.simpleDtoExtendedDtoSuffix}")\r
+ #set ($myDtoMapperClassName = "${myExtendedObjectClassName}Mapper")\r
+\r
+ $database.info(" parse('${myExtendedObjectClassName}');")\r
+\r
+ #set ( $path = "${database.getPackageAsPath(${myBaseEntityPackageName})}${myBaseObjectClassName}.${glClassFileExtension}" )\r
+ $generator.parse("om/${glResourceDirectory}/other/simpledto/SimpleDtoBaseEntity.${glTemplateFileExtension}", $path, "table", $table)\r
+\r
+ #if (!$database.isStopGenerateExtendedEntity())\r
+ #set ( $path = "${database.getPackageAsPath(${myExtendedEntityPackageName})}${myExtendedObjectClassName}.${glClassFileExtension}" )\r
+ #if (!$files.file(${generator.OutputPath},$path).exists())\r
+ $generator.parse("om/${glResourceDirectory}/other/simpledto/SimpleDtoExtendedEntity.${glTemplateFileExtension}", $path, "table", $table)\r
+ #end\r
+ #end\r
+\r
+ #if ($database.isSimpleDtoUseDtoMapper())\r
+ #set ( $path = "${database.getPackageAsPath(${myDtoMapperPackageName})}${myDtoMapperClassName}.${glClassFileExtension}" )\r
+ $generator.parse("om/${glResourceDirectory}/other/simpledto/mapper/SimpleDtoMapper.${glTemplateFileExtension}", $path, "table", $table)\r
+ #end\r
+ #end\r
+ $database.info("}")\r
+ #end\r
+\r
+ ## ===================================================================================\r
+ ## Flex Dto\r
+ ## ========\r
+ #if ($database.hasFlexDtoDefinition() && $database.isTargetLanguageJava())\r
+ $database.enableFlexDtoOutputDirectory()\r
+ $database.info("parseFlexDto() {")\r
+ #set ($myBaseEntityPackageName = "${database.flexDtoBaseDtoPackage}")\r
+ #set ($myExtendedEntityPackageName = "${database.flexDtoExtendedDtoPackage}")\r
+\r
+ #set ($path = $database.getPackageAsPath(${myBaseEntityPackageName}))\r
+ $database.makeDirectory($path)\r
+\r
+ #set ($path = $database.getPackageAsPath(${myExtendedEntityPackageName}))\r
+ $database.makeDirectory($path)\r
+\r
+ #foreach ($table in $database.tables)\r
+ #set ($myBaseObjectClassName = "${database.flexDtoBaseDtoPrefix}${table.javaName}${database.flexDtoBaseDtoSuffix}")\r
+ #set ($myExtendedObjectClassName = "${database.flexDtoExtendedDtoPrefix}${table.javaName}${database.flexDtoExtendedDtoSuffix}")\r
+ #set ($myRemoteSimpleDtoClassName = "${database.simpleDtoExtendedDtoPackage}.${myExtendedObjectClassName}")\r
+\r
+ $database.info(" parse('${myExtendedObjectClassName}');")\r
+\r
+ #set ( $path = "${database.getPackageAsPath(${myBaseEntityPackageName})}${myBaseObjectClassName}.as" )\r
+ $generator.parse("om/${glResourceDirectory}/other/flexdto/FlexDtoBaseEntity.${glTemplateFileExtension}", $path, "table", $table)\r
+\r
+ #if (!$database.isStopGenerateExtendedEntity())\r
+ #set ( $path = "${database.getPackageAsPath(${myExtendedEntityPackageName})}${myExtendedObjectClassName}.as" )\r
+ #if ($database.isFlexDtoOverrideExtended() || !$files.file(${generator.OutputPath},$path).exists())\r
+ $generator.parse("om/${glResourceDirectory}/other/flexdto/FlexDtoExtendedEntity.${glTemplateFileExtension}", $path, "table", $table)\r
+ #end\r
+ #end\r
+ #end\r
+ $database.info("}")\r
+ $database.enableGenerateOutputDirectory()\r
+ #end\r
+\r
+ #end\r
+#end\r
+\r
-\r
+#\r
+# @since DBFlute-0.9.0\r
+#\r
\r
targetdatabase = $targetDatabase\r
\r
##\r
#foreach ($database in $dataModel.Databases)\r
\r
- ## ------------------------------------------------------------------\r
- ## Global-Paramter\r
- ## ---------------\r
+ ## - - - - - - - - - - - -\r
+ ## Initialize properties.\r
+ ## - - - - - - - - - - - -\r
+ $database.initializeVersion(90)\r
+ $database.initializeClassificationDeployment()\r
+\r
+ ## *****************************************************************************************************************\r
+ ## Global Paramter\r
+ ## ***************\r
## ===================================================================================\r
## Language\r
## ========\r
- ## [Language]\r
#set ($glTargetLanguage = ${database.TargetLanguage})\r
\r
## ===================================================================================\r
## ==================\r
#set ($glResourceDirectory = ${database.resourceDirectory})\r
\r
- ## [Extension]\r
- #set ($glTemplateFileExtension = ${database.TemplateFileExtension})\r
- #set ($glClassFileExtension = ${database.ClassFileExtension})\r
-\r
- ## [Prefix-and-Suffix]\r
- #set ($glProjectPrefix = ${database.ProjectPrefix})\r
- #set ($glBasePrefix = ${database.BasePrefix})\r
- #set ($glBaseSuffixForEntity = ${database.BaseSuffixForEntity})\r
-\r
- #set ($glDaoReadableInterfaceName = "${glProjectPrefix}DaoReadable")\r
- #set ($glDaoWritableInterfaceName = "${glProjectPrefix}DaoWritable")\r
-\r
- ## [Common-Entity]\r
- #set ($glEntityInterfaceName = "${glProjectPrefix}Entity")\r
- #set ($glEntityDefinedCommonColumnInterfaceName = "${glProjectPrefix}EntityDefinedCommonColumn")\r
-\r
- ## [ConditionBean]\r
- #set ($glConditionBeanInterfaceName = "${glProjectPrefix}ConditionBean")\r
-\r
- ## [OutsideSql]\r
- #set ($glProcedurePmbName = "${glProjectPrefix}ProcedurePmb")\r
-\r
- ## [Allcommon-ConditionBean-Option]\r
- #set ($glConditionOptionLikeSearchName = "${glProjectPrefix}LikeSearchOption")\r
-\r
- ## [DBMeta]\r
- #set ($glDBMetaInterfaceName = "${glProjectPrefix}DBMeta")\r
- #set ($glDBMetaAbstractName = "${glProjectPrefix}AbstractDBMeta")\r
- #set ($glDBMetaInstanceHandlerName = "${glProjectPrefix}DBMetaInstanceHandler")\r
-\r
- ## [Allcommon-DBMetaInfo]\r
- #set ($glForeignInfoName = "${glProjectPrefix}ForeignInfo")\r
- #set ($glRefererInfoName = "${glProjectPrefix}RefererInfo")\r
- #set ($glRelationInfoName = "${glProjectPrefix}RelationInfo")\r
- #set ($glUniqueInfoName = "${glProjectPrefix}UniqueInfo")\r
- #set ($glColumnInfoName = "${glProjectPrefix}ColumnInfo")\r
+ ## ===================================================================================\r
+ ## Extension\r
+ ## =========\r
+ #set ($glTemplateFileExtension = ${database.templateFileExtension})\r
+ #set ($glClassFileExtension = ${database.classFileExtension})\r
\r
- ## [Helper]\r
- #set ($glMapListStringName = "${glProjectPrefix}MapListString")\r
- #set ($glMapListStringImplName = "${glProjectPrefix}MapListStringImpl")\r
- #set ($glMapStringBuilderName = "${glProjectPrefix}MapStringBuilder")\r
- #set ($glMapStringBuilderImplName = "${glProjectPrefix}MapStringBuilderImpl")\r
+ ## ===================================================================================\r
+ ## Prefix\r
+ ## ======\r
+ #set ($glProjectPrefix = ${database.projectPrefix})\r
+ #set ($glBasePrefix = ${database.basePrefix})\r
+ #set ($glBaseSuffixForEntity = ${database.baseSuffixForEntity})\r
\r
- ## [Allcommon-JDBC]\r
- #set ($glCursorHandlerName = "${glProjectPrefix}CursorHandler")\r
- #set ($glCursorFetcherName = "${glProjectPrefix}CursorFetcher")\r
- #set ($glLatestSqlProviderName = "${glProjectPrefix}LatestSqlProvider")\r
+ ## ===================================================================================\r
+ ## Container\r
+ ## =========\r
+ #set ($glDBFluteDiconNamespace = "${database.DBFluteDiconNamespace}")\r
+ #set ($glDBFluteDiconFileName = "${database.DBFluteDiconFileName}")\r
+ #set ($glCreatorDiconFileName = "${database.DBFluteCreatorDiconFileName}")\r
+ #set ($glCustomizerDiconFileName = "${database.DBFluteCustomizerDiconFileName}")\r
+ #set ($glJ2eeDiconResourceName = "${database.j2eeDiconResourceName}")\r
+ #set ($glDBFluteBeansFileName = "${database.DBFluteBeansFileName}")\r
\r
- ## [ClassificationDefinition]\r
- #set ($glClassificationDefinition = "${glProjectPrefix}ClassificationDefinition")\r
+ ## ===================================================================================\r
+ ## Class Name\r
+ ## ==========\r
+ ## [Allcommon]\r
+ #set ($glAccessContext = "${glProjectPrefix}AccessContext")\r
+ #set ($glBuriDef = "${glProjectPrefix}BuriDef")\r
+ #set ($glCDef = "${glProjectPrefix}CDef")\r
+ #set ($glDBCurrent = "${glProjectPrefix}DBCurrent")\r
+ #set ($glDBFluteConfig = "${glProjectPrefix}DBFluteConfig")\r
+ #set ($glDBFluteInitializer = "${glProjectPrefix}DBFluteInitializer")\r
+ #set ($glEntityDefinedCommonColumn = "${glProjectPrefix}EntityDefinedCommonColumn")\r
+ #set ($glImplementedBehaviorSelector = "${glProjectPrefix}ImplementedBehaviorSelector")\r
+ #set ($glImplementedCommonColumnAutoSetupper = "${glProjectPrefix}ImplementedCommonColumnAutoSetupper")\r
+ #set ($glImplementedInvokerAssistant = "${glProjectPrefix}ImplementedInvokerAssistant")\r
+ #set ($glImplementedSqlClauseCreator = "${glProjectPrefix}ImplementedSqlClauseCreator")\r
+ #set ($glDBMetaInstanceHandler = "${glProjectPrefix}DBMetaInstanceHandler")\r
+ \r
+ ## ===================================================================================\r
+ ## Variable\r
+ ## ========\r
+ #set ($glConditionBeanInitialName = "CB")\r
+ #set ($glConditionQueryInitialName = "CQ")\r
+ #set ($glAttachedCBArgsVariableName = "cb")\r
+ #set ($glParentVariablePrefix = "_parent")\r
+ #set ($glChildrenVariablePrefix = "_children")\r
\r
- ## [Package]\r
+ ## ===================================================================================\r
+ ## Package\r
+ ## =======\r
#set ($glPackageBaseCommon = "${database.baseCommonPackage}")\r
#set ($glPackageBaseCommonCBean = "${database.baseCommonPackage}.cbean")\r
#set ($glPackageBaseCommonCOption = "${database.baseCommonPackage}.cbean.coption")\r
#set ($glPackageBaseCommonHelper = "${database.baseCommonPackage}.helper")\r
#set ($glPackageBaseCommonJavaLike = "${database.baseCommonPackage}.javalike")\r
#set ($glPackageBaseCommonJdbc = "${database.baseCommonPackage}.jdbc")\r
+ #set ($glPackageBaseCommonUtil = "${database.baseCommonPackage}.util")\r
#set ($glPackageBaseDao = "${database.baseDaoPackage}" )\r
- #set ($glPackageBaseDaoCursor = "${database.baseDaoPackage}.cursor" )\r
#set ($glPackageBaseEntity = "${database.baseEntityPackage}")\r
#set ($glPackageExtendedDao = "${database.extendedDaoPackage}")\r
- #set ($glPackageExtendedDaoCursor = "${database.extendedDaoPackage}.cursor")\r
#set ($glPackageExtendedEntity = "${database.extendedEntityPackage}")\r
- #if ($database.isTargetLanguageCSharp())\r
- #set ($glPackageBaseCommon = "${database.baseCommonPackage}")\r
- #set ($glPackageBaseCommonCBean = "${database.baseCommonPackage}.CBean")\r
- #set ($glPackageBaseCommonCOption = "${database.baseCommonPackage}.CBean.COption")\r
- #set ($glPackageBaseCommonCBeanOutsidesql = "${database.baseCommonPackage}.CBean.OutsideSql")\r
- #set ($glPackageBaseCommonDBMeta = "${database.baseCommonPackage}.Dbm")\r
- #set ($glPackageBaseCommonDBMetaInfo = "${database.baseCommonPackage}.Dbm.Info")\r
- #set ($glPackageBaseCommonHelper = "${database.baseCommonPackage}.Helper")\r
- #set ($glPackageBaseCommonJavaLike = "${database.baseCommonPackage}.JavaLike")\r
- #set ($glPackageBaseCommonJdbc = "${database.baseCommonPackage}.Ado")\r
- #set ($glPackageBaseDao = "${database.baseDaoPackage}" )\r
- #set ($glPackageBaseDaoCursor = "${database.baseDaoPackage}.Cursor" )\r
- #set ($glPackageBaseEntity = "${database.baseEntityPackage}")\r
- #set ($glPackageExtendedDao = "${database.extendedDaoPackage}")\r
- #set ($glPackageExtendedDaoCursor = "${database.extendedDaoPackage}.Cursor")\r
- #set ($glPackageExtendedEntity = "${database.extendedEntityPackage}")\r
- #end\r
-\r
- ## [Other]\r
- #set ($glConditionBeanInitialName = "CB")\r
- #set ($glConditionQueryInitialName = "CQ")\r
- #set ($glAttachedCBArgsVariableName = "cb")\r
- #set ($glParentVariablePrefix = "_parent")\r
- #set ($glChildrenVariablePrefix = "_children")\r
+ #set ($glPackageBaseCursor = "${database.sql2EntityBaseCursorPackage}" )\r
+ #set ($glPackageExtendedCursor = "${database.sql2EntityExtendedCursorPackage}")\r
\r
## -----------------------------------------------------------------------------------------------------\r
- ## Parse cutomize entity\r
- ## ---------------------\r
+ ## Parse customize entity\r
+ ## ----------------------\r
## Setup output directory.\r
$database.enableSql2EntityOutputDirectory()\r
\r
#set ($path = $database.getPackageAsPath(${glPackageBaseCustomizeEntity}))\r
$database.makeDirectory($path)\r
\r
- #if (!$database.isSql2EntityPlainEntity())\r
- #set ($path = $database.getPackageAsPath(${glPackageCustomizeDBMeta}))\r
- $database.makeDirectory($path)\r
- #end\r
+ #set ($path = $database.getPackageAsPath(${glPackageCustomizeDBMeta}))\r
+ $database.makeDirectory($path)\r
\r
#set ($path = $database.getPackageAsPath(${glPackageExtendedCustomizeEntity}))\r
$database.makeDirectory($path)\r
#set ($myEntityListVariableName = "${table.uncapitalisedJavaName}List")\r
#set ($myCBVariableName = "${table.uncapitalisedJavaName}")\r
\r
- #set ($myBaseDaoCursorPackageName = "${glPackageBaseDaoCursor}")\r
- #set ($myExtendedDaoCursorPackageName = "${glPackageExtendedDaoCursor}")\r
+ #set ($myBaseDaoCursorPackageName = "${glPackageBaseCursor}")\r
+ #set ($myExtendedDaoCursorPackageName = "${glPackageExtendedCursor}")\r
#set ($myBaseTypeSafeCursorClassName = "${glProjectPrefix}${glBasePrefix}${table.javaName}Cursor")\r
#set ($myBaseTypeSafeCursorHandlerClassName = "${glProjectPrefix}${glBasePrefix}${table.javaName}CursorHandler")\r
#set ($myExtendedTypeSafeCursorClassName = "${glProjectPrefix}${table.javaName}Cursor")\r
\r
$database.debug(" parse('BaseTypeSafeCursor')")\r
#set ( $path = "${database.getPackageAsPath(${myBaseDaoCursorPackageName})}${myBaseTypeSafeCursorClassName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/bsdao/cursor/BsTypeSafeCursor.${glTemplateFileExtension}",$path ,"" ,"")\r
+ $generator.parse("om/${glResourceDirectory}/bsbhv/cursor/BsTypeSafeCursor.${glTemplateFileExtension}",$path ,"" ,"")\r
\r
$database.debug(" parse('BaseTypeSafeCursorHandler')")\r
#set ( $path = "${database.getPackageAsPath(${myBaseDaoCursorPackageName})}${myBaseTypeSafeCursorHandlerClassName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/bsdao/cursor/BsTypeSafeCursorHandler.${glTemplateFileExtension}",$path ,"" ,"")\r
+ $generator.parse("om/${glResourceDirectory}/bsbhv/cursor/BsTypeSafeCursorHandler.${glTemplateFileExtension}",$path ,"" ,"")\r
\r
#set ($path = $database.getPackageAsPath(${myExtendedDaoCursorPackageName}))\r
$database.makeDirectory($path)\r
$database.debug(" parse('ExtendedTypeSafeCursor')")\r
#set ( $path = "${database.getPackageAsPath(${myExtendedDaoCursorPackageName})}${myExtendedTypeSafeCursorClassName}.${glClassFileExtension}" )\r
#if (!$files.file(${generator.OutputPath},$path).exists())\r
- $generator.parse("om/${glResourceDirectory}/exdao/cursor/ExTypeSafeCursor.${glTemplateFileExtension}",$path ,"" ,"")\r
+ $generator.parse("om/${glResourceDirectory}/exbhv/cursor/ExTypeSafeCursor.${glTemplateFileExtension}",$path ,"" ,"")\r
#end\r
\r
$database.debug(" parse('ExtendedTypeSafeCursorHandler')")\r
#set ( $path = "${database.getPackageAsPath(${myExtendedDaoCursorPackageName})}${myExtendedTypeSafeCursorHandlerClassName}.${glClassFileExtension}" )\r
#if (!$files.file(${generator.OutputPath},$path).exists())\r
- $generator.parse("om/${glResourceDirectory}/exdao/cursor/ExTypeSafeCursorHandler.${glTemplateFileExtension}",$path ,"" ,"")\r
+ $generator.parse("om/${glResourceDirectory}/exbhv/cursor/ExTypeSafeCursorHandler.${glTemplateFileExtension}",$path ,"" ,"")\r
#end\r
#else\r
- #if ($database.isSql2EntityPlainEntity())\r
- $database.debug(" parseBaseCustomizeEntity(tableName); // ${myBaseObjectClassName}")\r
- #set ( $path = "${database.getPackageAsPath(${myBaseEntityPackageName})}${myBaseObjectClassName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/bsentity/PlainBaseEntity.${glTemplateFileExtension}",$path ,"" ,"")\r
- #else\r
- $database.debug(" parseBaseCustomizeEntity(tableName); // ${myBaseObjectClassName}")\r
- #set ( $path = "${database.getPackageAsPath(${myBaseEntityPackageName})}${myBaseObjectClassName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/bsentity/BaseEntity.${glTemplateFileExtension}",$path ,"" ,"")\r
-\r
- $database.debug(" parseCustomizeDBMeta(tableName); // ${myDBMetaClassName}")\r
- #set ( $path = "${database.getPackageAsPath(${myDBMetaPackageName})}${myDBMetaClassName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/bsentity/dbmeta/DBMetaImpl.${glTemplateFileExtension}",$path,"", "")\r
- #end\r
+ $database.debug(" parseBaseCustomizeEntity(tableName); // ${myBaseObjectClassName}")\r
+ #set ( $path = "${database.getPackageAsPath(${myBaseEntityPackageName})}${myBaseObjectClassName}.${glClassFileExtension}" )\r
+ $generator.parse("om/${glResourceDirectory}/bsentity/BaseEntity.${glTemplateFileExtension}",$path ,"" ,"")\r
+\r
+ $database.debug(" parseCustomizeDBMeta(tableName); // ${myDBMetaClassName}")\r
+ #set ( $path = "${database.getPackageAsPath(${myDBMetaPackageName})}${myDBMetaClassName}.${glClassFileExtension}" )\r
+ $generator.parse("om/${glResourceDirectory}/bsentity/dbmeta/DBMetaImpl.${glTemplateFileExtension}",$path,"", "")\r
\r
#set ( $path = "${database.getPackageAsPath(${myExtendedEntityPackageName})}${myExtendedObjectClassName}.${glClassFileExtension}" )\r
#if (!$files.file(${generator.OutputPath},$path).exists())\r
\r
$database.debug(" parseBaseParameterBean(parameterBean); // ${myBaseParameterBeanClassName}")\r
#set ( $path = "${database.getPackageAsPath(${glPackageBaseParameterBean})}${myBaseParameterBeanClassName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/bsdao/BsParameterBean.${glTemplateFileExtension}",$path ,"" ,"")\r
+ $generator.parse("om/${glResourceDirectory}/bsbhv/pmbean/BsParameterBean.${glTemplateFileExtension}",$path ,"" ,"")\r
\r
#set ( $path = "${database.getPackageAsPath(${glPackageExtendedParameterBean})}${myExtendedParameterBeanClassName}.${glClassFileExtension}" )\r
#if (!$files.file(${generator.OutputPath},$path).exists())\r
$database.debug(" parseExtendedParameterBean(parameterBean); // ${myExtendedParameterBeanClassName}")\r
- $generator.parse("om/${glResourceDirectory}/exdao/ExParameterBean.${glTemplateFileExtension}",$path ,"" ,"")\r
+ $generator.parse("om/${glResourceDirectory}/exbhv/pmbean/ExParameterBean.${glTemplateFileExtension}",$path ,"" ,"")\r
#end\r
#end\r
$database.debug(" }")\r
--- /dev/null
+${database.allClassCopyright}package ${glPackageBaseCommon};\r
+\r
+import java.util.HashMap;\r
+import java.util.Map;\r
+\r
+/**\r
+ * The definition of Buri.\r
+ * @author ${database.ClassAuthor}\r
+ */\r
+public class ${glBuriDef} {\r
+#foreach ($packageName in $database.getBuriPackageList())\r
+#set ($count = 0)\r
+#set ($processList = $database.getBuriProcessList($packageName))\r
+#foreach ($processName in $processList)\r
+#set ($statusList = $database.getBuriStatusList($packageName, $processName))\r
+\r
+ public enum ${packageName}_${processName}_Status {\r
+#set ($count = 0)\r
+#foreach ($statusName in $statusList)\r
+#if ($count != 0)\r
+ ,\r
+#end\r
+ $database.initCap(${statusName})("${statusName}")\r
+#set ($count = $count + 1)\r
+#end\r
+ ;\r
+ private static final Map<String, ${packageName}_${processName}_Status> _codeValueMap = new HashMap<String, ${packageName}_${processName}_Status>();\r
+ static { for (${packageName}_${processName}_Status value : values()) { _codeValueMap.put(value.code().toLowerCase(), value); } }\r
+ private String _code;\r
+ private ${packageName}_${processName}_Status(String code) {\r
+ _code = code;\r
+ }\r
+ public String code() {\r
+ return _code;\r
+ }\r
+ public String fullPath() {\r
+ return basePath() + "." + _code;\r
+ }\r
+ public static String basePath() {\r
+ return "${packageName}.${processName}";\r
+ }\r
+ public static ${packageName}_${processName}_Status codeOf(Object code) {\r
+ if (code == null) { return null; }\r
+ final String codeStr = code.toString();\r
+ if (codeStr.contains(".")) {\r
+ final int beginIndex = codeStr.lastIndexOf(".") + ".".length();\r
+ return _codeValueMap.get(codeStr.substring(beginIndex));\r
+ } else {\r
+ return _codeValueMap.get(codeStr);\r
+ }\r
+ }\r
+ @Override\r
+ public String toString() {\r
+ return fullPath();\r
+ }\r
+ }\r
+#end\r
+#foreach ($processName in $processList)\r
+#set ($actionList = $database.getBuriActionList($packageName, $processName))\r
+\r
+ public enum ${packageName}_${processName}_Action {\r
+#set ($count = 0)\r
+#foreach ($actionName in $actionList)\r
+#if ($count != 0)\r
+ ,\r
+#end\r
+ $database.initCap(${actionName})("${actionName}")\r
+#set ($count = $count + 1)\r
+#end\r
+ ;\r
+ private static final Map<String, ${packageName}_${processName}_Action> _codeValueMap = new HashMap<String, ${packageName}_${processName}_Action>();\r
+ static { for (${packageName}_${processName}_Action value : values()) { _codeValueMap.put(value.code().toLowerCase(), value); } }\r
+ private String _code;\r
+ private ${packageName}_${processName}_Action(String code) {\r
+ _code = code;\r
+ }\r
+ public String code() {\r
+ return _code;\r
+ }\r
+ public String fullPath() {\r
+ return basePath() + "." + _code;\r
+ }\r
+ private static String basePath() {\r
+ return "${packageName}.${processName}";\r
+ }\r
+ public static ${packageName}_${processName}_Action codeOf(Object code) {\r
+ if (code == null) { return null; }\r
+ final String codeStr = code.toString();\r
+ if (codeStr.contains(".")) {\r
+ final int beginIndex = codeStr.lastIndexOf(".") + ".".length();\r
+ return _codeValueMap.get(codeStr.substring(beginIndex));\r
+ } else {\r
+ return _codeValueMap.get(codeStr);\r
+ }\r
+ }\r
+ @Override\r
+ public String toString() {\r
+ return fullPath();\r
+ }\r
+ }\r
+#end\r
+#end\r
+}\r
${database.allClassCopyright}package ${glPackageBaseCommon};\r
-#set ($myClassName = "${glCDef}")\r
+\r
+import java.util.HashMap;\r
+import java.util.Map;\r
\r
/**\r
* The definition class that has classification.\r
* @author ${database.ClassAuthor}\r
*/\r
-public class ${myClassName} {\r
+public class ${glCDef} {\r
\r
#foreach ($classificationName in $database.classificationNameList)\r
#set ($classificationMapList = $database.classificationDefinitionMap.get($classificationName))\r
#if ($database.classificationTopDefinitionMap.containsKey($classificationName))\r
#set ($classificationTopMap = $database.classificationTopDefinitionMap.get($classificationName))\r
#set ($existTop = true)\r
-#else\r
- #set ($existTop = false)\r
#end\r
#if ($database.isInitNumber($classificationName))\r
// The classification name that its initial character is number is unsupported!\r
#if ($count != 0)\r
,\r
#end\r
-#if ($classificationMap.containsKey('comment'))\r
- /** ${classificationMap.get('comment')} */\r
-#end\r
-#if ($classificationMap.containsKey('alias'))\r
- ${classificationMap.get('name')}("${classificationMap.get('code')}", "${classificationMap.get('alias')}")\r
-#else\r
- ${classificationMap.get('name')}("${classificationMap.get('code')}", null)\r
-#end\r
+ /** $database.buildClassificationApplicationComment($classificationMap) */\r
+ ${classificationMap.get('name')}($database.buildClassificationCodeAliasVariables($classificationMap))\r
#set ($count = $count + 1)\r
#end\r
;\r
+ private static final Map<String, ${classificationName}> _codeValueMap = new HashMap<String, ${classificationName}>();\r
+ static { for (${classificationName} value : values()) { _codeValueMap.put(value.code().toLowerCase(), value); } }\r
private String _code; private String _alias;\r
private ${classificationName}(String code, String alias) { _code = code; _alias = alias; }\r
public String code() { return _code; } public String alias() { return _alias; }\r
- public static ${classificationName} codeOf(String code) {\r
- if (code == null) { return null; }\r
- for (${classificationName} value : values()) { if (code.equalsIgnoreCase(value.code())) { return value; } }\r
- return null;\r
+ public static ${classificationName} codeOf(Object code) {\r
+ if (code == null) { return null; } return _codeValueMap.get(code.toString().toLowerCase());\r
}\r
}\r
\r
--- /dev/null
+${database.allClassCopyright}package ${glPackageBaseCommon};\r
+\r
+import org.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
+import org.seasar.dbflute.DBDef;\r
+\r
+/**\r
+ * @author ${database.ClassAuthor}\r
+ */\r
+public class ${glDBCurrent} {\r
+\r
+ // ===================================================================================\r
+ // Definition\r
+ // ==========\r
+ /** Log instance. */\r
+ private static final Log _log = LogFactory.getLog(${glDBCurrent}.class);\r
+\r
+ /** Singleton instance. */\r
+ private static final ${glDBCurrent} _instance = new ${glDBCurrent}();\r
+\r
+ // ===================================================================================\r
+ // Attribute\r
+ // =========\r
+ protected DBDef _currentDBDef;\r
+ {\r
+ _currentDBDef = DBDef.codeOf("${database.defaultDBDef}");\r
+ if (_currentDBDef == null) {\r
+ _currentDBDef = DBDef.Unknown;\r
+ }\r
+ }\r
+ \r
+ // ===================================================================================\r
+ // Constructor\r
+ // ===========\r
+ /**\r
+ * Constructor.\r
+ */\r
+ private ${glDBCurrent}() {\r
+ }\r
+\r
+ // ===================================================================================\r
+ // Singleton\r
+ // =========\r
+ /**\r
+ * Get singleton instance.\r
+ * @return Singleton instance. (NotNull)\r
+ */\r
+ public static ${glDBCurrent} getInstance() {\r
+ return _instance;\r
+ }\r
+\r
+ // ===================================================================================\r
+ // Current DBDef\r
+ // =============\r
+ public void initializeCurrentDBDef(DBDef currentDBDef) {\r
+ if (_log.isInfoEnabled()) {\r
+ _log.info("...Setting currentDBDef: " + currentDBDef);\r
+ }\r
+ if (currentDBDef == null) {\r
+ String msg = "The argument 'currentDBDef' should not be null!";\r
+ throw new IllegalArgumentException(msg);\r
+ }\r
+ _currentDBDef = currentDBDef;\r
+ }\r
+\r
+ public DBDef currentDBDef() {\r
+ return _currentDBDef;\r
+ }\r
+\r
+ public boolean isCurrentDBDef(DBDef currentDBDef) {\r
+ return _currentDBDef.equals(currentDBDef);\r
+ }\r
+}
\ No newline at end of file
${database.allClassCopyright}package ${glPackageBaseCommon};\r
\r
-#set ($myClassName = "${glDBFluteConfig}")\r
-import ${glPackageBaseCommonJdbc}.${glStatementConfig};\r
+import org.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
+import org.seasar.dbflute.QLog;\r
+import org.seasar.dbflute.XLog;\r
+import org.seasar.dbflute.jdbc.DataSourceHandler;\r
+import org.seasar.dbflute.jdbc.StatementConfig;\r
\r
/**\r
* @author ${database.ClassAuthor}\r
*/\r
-public class ${myClassName} {\r
+public class ${glDBFluteConfig} {\r
\r
// ===================================================================================\r
// Definition\r
// ==========\r
/** Log instance. */\r
- private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory.getLog(${myClassName}.class);\r
- \r
+ private static final Log _log = LogFactory.getLog(${glDBFluteConfig}.class);\r
+\r
/** Singleton instance. */\r
- private static final ${myClassName} _instance = new ${myClassName}();\r
+ private static final ${glDBFluteConfig} _instance = new ${glDBFluteConfig}();\r
+\r
+#if ($database.isOutsideSqlPackageValid())\r
+ /** The default package of outside SQL. The default value is '${database.outsideSqlPackage}'. */\r
+ private static final String DEFAULT_OUTSIDE_SQL_PACKAGE = "${database.outsideSqlPackage}";\r
+#else\r
+ /** The default package of outside SQL. */\r
+ private static final String DEFAULT_OUTSIDE_SQL_PACKAGE = null;\r
+#end\r
+\r
+#if ($database.isSqlLogRegistryValid())\r
+ /** The default value of whether it uses SQL Log Registry. The default value is true. */\r
+ private static final boolean DEFAULT_USE_SQL_LOG_REGISTRY = true;\r
+#else\r
+ /** The default value of whether it uses SQL Log Registry. The default value is false. */\r
+ private static final boolean DEFAULT_USE_SQL_LOG_REGISTRY = false;\r
+#end\r
\r
// ===================================================================================\r
// Attribute\r
// =========\r
- protected ${glStatementConfig} _defaultStatementConfig;\r
- protected boolean _conditionBeanFormatSql = true;// This is for compatibility!\r
+ protected StatementConfig _defaultStatementConfig;\r
protected boolean _queryLogLevelInfo;\r
protected boolean _executeStatusLogLevelInfo;\r
- protected UniqueConstraintDeterminator _uniqueConstraintDeterminator;\r
- protected boolean _sqlExceptionOldStyleHandling = ${database.isCompatibleSQLExceptionHandlingOldStyle()};// This is for compatibility!\r
protected String _logDateFormat;\r
protected String _logTimestampFormat;\r
-#if ($database.isOutsideSqlPackageValid())\r
- protected String _outsideSqlPackage = "${database.outsideSqlPackage}";\r
-#else\r
- protected String _outsideSqlPackage;\r
-#end\r
+ protected DataSourceHandler _dataSourceHandler;\r
+ protected String _outsideSqlPackage = DEFAULT_OUTSIDE_SQL_PACKAGE;\r
+ protected boolean _useSqlLogRegistry = DEFAULT_USE_SQL_LOG_REGISTRY;\r
+ protected boolean _disableSelectIndex;\r
protected boolean _internalDebug;\r
+\r
protected boolean _locked = true;\r
\r
// ===================================================================================\r
/**\r
* Constructor.\r
*/\r
- private ${myClassName}() {\r
+ private ${glDBFluteConfig}() {\r
}\r
\r
// ===================================================================================\r
// Singleton\r
// =========\r
/**\r
- * Get instance.\r
+ * Get singleton instance.\r
* @return Singleton instance. (NotNull)\r
*/\r
- public static ${myClassName} getInstance() {\r
+ public static ${glDBFluteConfig} getInstance() {\r
return _instance;\r
}\r
\r
// ===================================================================================\r
// Default Statement Config\r
// ========================\r
- public ${glStatementConfig} getDefaultStatementConfig() {\r
+ public StatementConfig getDefaultStatementConfig() {\r
return _defaultStatementConfig;\r
}\r
\r
- public void setDefaultStatementConfig(${glStatementConfig} defaultStatementConfig) {\r
+ public void setDefaultStatementConfig(StatementConfig defaultStatementConfig) {\r
assertNotLocked();\r
if (_log.isInfoEnabled()) {\r
_log.info("...Setting defaultStatementConfig: " + defaultStatementConfig);\r
}\r
\r
// ===================================================================================\r
- // ConditionBean Format Sql\r
- // ========================\r
- public boolean isConditionBeanFormatSql() {\r
- return _conditionBeanFormatSql;\r
- }\r
-\r
- /**\r
- * @param conditionBeanFormatSql The value of the config.\r
- * @deprecated This is for compatibility!\r
- */\r
- public void setConditionBeanFormatSql(boolean conditionBeanFormatSql) {\r
- assertNotLocked();\r
- if (_log.isInfoEnabled()) {\r
- _log.info("...Setting conditionBeanFormatSql: " + conditionBeanFormatSql);\r
- }\r
- _conditionBeanFormatSql = conditionBeanFormatSql;\r
- }\r
- \r
- // ===================================================================================\r
// Query Log Level Info\r
// ====================\r
- public boolean isQueryLogLevelInfo() {\r
- return _queryLogLevelInfo;\r
- }\r
- \r
public void setQueryLogLevelInfo(boolean queryLogLevelInfo) {\r
assertNotLocked();\r
if (_log.isInfoEnabled()) {\r
_log.info("...Setting queryLogLevelInfo: " + queryLogLevelInfo);\r
}\r
- _queryLogLevelInfo = queryLogLevelInfo;\r
+ QLog.unlock();\r
+ QLog.setQueryLogLevelInfo(queryLogLevelInfo);\r
+ QLog.lock();\r
}\r
\r
// ===================================================================================\r
// Execute Status Log Level Info\r
// =============================\r
- public boolean isExecuteStatusLogLevelInfo() {\r
- return _executeStatusLogLevelInfo;\r
- }\r
- \r
public void setExecuteStatusLogLevelInfo(boolean executeStatusLogLevelInfo) {\r
assertNotLocked();\r
if (_log.isInfoEnabled()) {\r
_log.info("...Setting executeStatusLogLevelInfo: " + executeStatusLogLevelInfo);\r
}\r
- _executeStatusLogLevelInfo = executeStatusLogLevelInfo;\r
- }\r
-\r
- // [DBFlute-0.7.7]\r
- // ===================================================================================\r
- // Unique Constraint\r
- // =================\r
- public UniqueConstraintDeterminator getUniqueConstraintDeterminator() {\r
- return _uniqueConstraintDeterminator;\r
- }\r
-\r
- public void setUniqueConstraintDeterminator(UniqueConstraintDeterminator uniqueConstraintDeterminator) {\r
- assertNotLocked();\r
- if (_log.isInfoEnabled()) {\r
- _log.info("...Setting uniqueConstraintDeterminator: " + uniqueConstraintDeterminator);\r
- }\r
- _uniqueConstraintDeterminator = uniqueConstraintDeterminator;\r
- }\r
-\r
- public static interface UniqueConstraintDeterminator {\r
- public boolean isUniqueConstraintException(Throwable t);\r
- }\r
-\r
- // [DBFlute-0.7.7]\r
- // ===================================================================================\r
- // SQL Exception Old Style\r
- // =======================\r
- public boolean isSqlExceptionOldStyleHandling() {\r
- return _sqlExceptionOldStyleHandling;\r
- }\r
-\r
- /**\r
- * @param sqlExceptionOldStyleHandling The value of the config.\r
- * @deprecated This is for compatibility!\r
- */\r
- public void setSqlExceptionOldStyleHandling(boolean sqlExceptionOldStyleHandling) {\r
- assertNotLocked();\r
- if (_log.isInfoEnabled()) {\r
- _log.info("...Setting sqlExceptionOldStyleHandling: " + sqlExceptionOldStyleHandling);\r
- }\r
- _sqlExceptionOldStyleHandling = sqlExceptionOldStyleHandling;\r
+ XLog.unlock();\r
+ XLog.setExecuteStatusLogLevelInfo(executeStatusLogLevelInfo);\r
+ XLog.lock();\r
}\r
\r
// ===================================================================================\r
}\r
_logTimestampFormat = logTimestampFormat;\r
}\r
- \r
+\r
+ // [DBFlute-0.9.0]\r
+ // ===================================================================================\r
+ // DataSource Handler\r
+ // ==================\r
+ /**\r
+ * @return The handler of data source. (Nullable)\r
+ */\r
+ public DataSourceHandler getDataSourceHandler() {\r
+ return _dataSourceHandler;\r
+ }\r
+\r
+ /**\r
+ * @param dataSourceHandler The handler of data source. (Nullable)\r
+ */\r
+ public void setDataSourceHandler(DataSourceHandler dataSourceHandler) {\r
+ assertNotLocked();\r
+ if (_log.isInfoEnabled()) {\r
+ _log.info("...Setting dataSourceHandler: " + dataSourceHandler);\r
+ }\r
+ _dataSourceHandler = dataSourceHandler;\r
+ }\r
+\r
// ===================================================================================\r
// OutsideSql Package\r
// ==================\r
+ /**\r
+ * @return The package of outside SQL. (Nullable)\r
+ */\r
public String getOutsideSqlPackage() {\r
return _outsideSqlPackage;\r
}\r
- \r
+\r
+ /**\r
+ * @param outsideSqlPackage The package of outside SQL. (Nullable)\r
+ */\r
public void setOutsideSqlPackage(String outsideSqlPackage) {\r
assertNotLocked();\r
if (_log.isInfoEnabled()) {\r
}\r
_outsideSqlPackage = outsideSqlPackage;\r
}\r
- \r
+\r
+ // [DBFlute-0.8.2]\r
+ // ===================================================================================\r
+ // SQL Log Registry\r
+ // ================\r
+ public boolean isUseSqlLogRegistry() {\r
+ return _useSqlLogRegistry;\r
+ }\r
+ \r
+ public void setUseSqlLogRegistry(boolean useSqlLogRegistry) {\r
+ assertNotLocked();\r
+ if (_log.isInfoEnabled()) {\r
+ _log.info("...Setting useSqlLogRegistry: " + useSqlLogRegistry);\r
+ }\r
+ _useSqlLogRegistry = useSqlLogRegistry;\r
+ }\r
+\r
+ // [DBFlute-0.9.0]\r
+ // ===================================================================================\r
+ // Select Index\r
+ // ============\r
+ public boolean isDisableSelectIndex() {\r
+ return _disableSelectIndex;\r
+ }\r
+\r
+ public void setDisableSelectIndex(boolean disableSelectIndex) {\r
+ assertNotLocked();\r
+ if (_log.isInfoEnabled()) {\r
+ _log.info("...Setting disableSelectIndex: " + disableSelectIndex);\r
+ }\r
+ _disableSelectIndex = disableSelectIndex;\r
+ }\r
+\r
// ===================================================================================\r
// Internal Debug\r
// ==============\r
}\r
\r
// ===================================================================================\r
- // Config Lock\r
- // ===========\r
+ // Configuration Lock\r
+ // ==================\r
public boolean isLocked() {\r
return _locked;\r
}\r
\r
public void lock() {\r
if (_log.isInfoEnabled()) {\r
- _log.info("...Locking the config of dbflute!");\r
+ _log.info("...Locking the configuration of DBFlute!");\r
}\r
_locked = true;\r
}\r
\r
public void unlock() {\r
if (_log.isInfoEnabled()) {\r
- _log.info("...Unlocking the config of dbflute!");\r
+ _log.info("...Unlocking the configuration of DBFlute!");\r
}\r
_locked = false;\r
}\r
if (!isLocked()) {\r
return;\r
}\r
- String msg = "The config of dbflute is locked! Don't access at this timing!";\r
+ String msg = "The configuration of DBFlute is locked! Don't access at this timing!";\r
throw new IllegalStateException(msg);\r
}\r
\r
// ===================================================================================\r
- // Config Clear\r
- // ============\r
- public void clear() {\r
+ // Configuration Clear\r
+ // ===================\r
+ public void clear() { // the only properties that update OK while executing\r
_defaultStatementConfig = null;\r
- _conditionBeanFormatSql = true;\r
_queryLogLevelInfo = false;\r
_executeStatusLogLevelInfo = false;\r
_logDateFormat = null;\r
_logTimestampFormat = null;\r
+ _dataSourceHandler = null;\r
+ _outsideSqlPackage = DEFAULT_OUTSIDE_SQL_PACKAGE;\r
+ _useSqlLogRegistry = DEFAULT_USE_SQL_LOG_REGISTRY;\r
+ _disableSelectIndex = false;\r
_internalDebug = false;\r
}\r
}
\ No newline at end of file
--- /dev/null
+${database.allClassCopyright}package ${glPackageBaseCommon};\r
+\r
+import org.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
+import org.seasar.dbflute.cbean.ConditionBeanContext;\r
+import org.seasar.dbflute.s2dao.extension.TnSqlLogRegistry;\r
+import org.seasar.dbflute.util.DfSystemUtil;\r
+\r
+/**\r
+ * @author ${database.ClassAuthor}\r
+ */\r
+public class ${glDBFluteInitializer} {\r
+\r
+ // ===================================================================================\r
+ // Definition\r
+ // ==========\r
+ /** Log instance. */\r
+ private static final Log _log = LogFactory.getLog(${glDBFluteInitializer}.class);\r
+\r
+ // ===================================================================================\r
+ // Constructor\r
+ // ===========\r
+ /**\r
+ * Constructor. And initialize various components.\r
+ */\r
+ public ${glDBFluteInitializer}() {\r
+ handleSqlLogRegistry();\r
+ loadCoolClasses();\r
+ ${glDBFluteConfig}.getInstance().lock();\r
+ }\r
+\r
+ // ===================================================================================\r
+ // Cool Classes\r
+ // ============\r
+ protected void loadCoolClasses() { // for S2Container basically \r
+ ConditionBeanContext.loadCoolClasses(); // Against the ClassLoader Headache!\r
+ }\r
+\r
+ // ===================================================================================\r
+ // SQL Log Registry\r
+ // ================\r
+ protected void handleSqlLogRegistry() {\r
+ if (${glDBFluteConfig}.getInstance().isUseSqlLogRegistry()) {\r
+ final StringBuilder sb = new StringBuilder();\r
+ sb.append("{SqlLog Information}").append(getLineSeparator());\r
+ sb.append(" [SqlLogRegistry]").append(getLineSeparator());\r
+ if (TnSqlLogRegistry.setupSqlLogRegistry()) {\r
+ sb.append(" ...Setting up sqlLogRegistry(org.seasar.extension.jdbc)!").append(getLineSeparator());\r
+ sb.append(" Because the property 'useSqlLogRegistry' of the config of DBFlute is true.");\r
+ } else {\r
+ sb.append(" The sqlLogRegistry(org.seasar.extension.jdbc) is not supported at the version!");\r
+ }\r
+ _log.info(sb);\r
+ } else {\r
+ final Object sqlLogRegistry = TnSqlLogRegistry.findContainerSqlLogRegistry();\r
+ if (sqlLogRegistry != null) {\r
+ TnSqlLogRegistry.closeRegistration();\r
+ }\r
+ }\r
+ }\r
+\r
+ // ===================================================================================\r
+ // General Helper\r
+ // ==============\r
+ protected String getLineSeparator() {\r
+ return DfSystemUtil.getLineSeparator();\r
+ }\r
+}\r
--- /dev/null
+${database.allClassCopyright}package ${glPackageBaseCommon};\r
+\r
+import java.util.Collections;\r
+import java.util.Map;\r
+import java.util.Set;\r
+import java.util.concurrent.ConcurrentHashMap;\r
+import java.lang.reflect.Method;\r
+\r
+import org.seasar.dbflute.dbmeta.DBMeta;\r
+import org.seasar.dbflute.dbmeta.DBMetaProvider;\r
+import org.seasar.dbflute.exception.DBMetaNotFoundException;\r
+import org.seasar.dbflute.helper.StringKeyMap;\r
+import org.seasar.dbflute.util.DfAssertUtil;\r
+\r
+/**\r
+ * The handler of the instance of DB meta.\r
+ * @author ${database.ClassAuthor}\r
+ */\r
+public class ${glDBMetaInstanceHandler} implements DBMetaProvider {\r
+\r
+ // ===================================================================================\r
+ // Resource Map\r
+ // ============\r
+ /** Table DB-name instance map. */\r
+ protected static final Map<String, DBMeta> _tableDbNameInstanceMap = newConcurrentHashMap();\r
+\r
+ /** The map of table DB name and class name. This is for initialization. */\r
+ protected static final Map<String, String> _tableDbNameClassNameMap;\r
+ static {\r
+ final Map<String, String> tmpMap = newConcurrentHashMap();\r
+#foreach ($table in $database.tables)\r
+ tmpMap.put("${table.name}", "${table.DBMetaFullClassName}");\r
+#end\r
+ _tableDbNameClassNameMap = Collections.unmodifiableMap(tmpMap);\r
+ }\r
+\r
+ /** The flexible map of table DB name. This is for conversion at finding. */\r
+ protected static final Map<String, String> _tableDbNameFlexibleMap = StringKeyMap.createAsFlexibleConcurrent();\r
+ static {\r
+ final Set<String> tableDbNameSet = _tableDbNameClassNameMap.keySet();\r
+ for (String tableDbName : tableDbNameSet) {\r
+ _tableDbNameFlexibleMap.put(tableDbName, tableDbName);\r
+ }\r
+ }\r
+\r
+ /**\r
+ * @return The initialized map that contains all instances of DB meta. (NotNull & NotEmpty)\r
+ */\r
+ public static Map<String, DBMeta> getDBMetaMap() {\r
+ initializeDBMetaMap();\r
+ return _tableDbNameInstanceMap;\r
+ }\r
+\r
+ /**\r
+ * Initialize the map of DB meta.\r
+ */\r
+ protected static void initializeDBMetaMap() {\r
+ if (isInitialized()) {\r
+ return;\r
+ }\r
+ final Set<String> tableDbNameSet = _tableDbNameClassNameMap.keySet();\r
+ for (String tableDbName : tableDbNameSet) {\r
+ findDBMeta(tableDbName); // Initialize!\r
+ }\r
+ if (!isInitialized()) {\r
+ String msg = "Failed to initialize tableDbNameInstanceMap:";\r
+ msg = msg + " tableDbNameInstanceMap=" + _tableDbNameInstanceMap;\r
+ throw new IllegalStateException(msg);\r
+ }\r
+ }\r
+\r
+ protected static boolean isInitialized() {\r
+ return _tableDbNameInstanceMap.size() == _tableDbNameClassNameMap.size();\r
+ }\r
+\r
+ // ===================================================================================\r
+ // Main Method\r
+ // ===========\r
+ /**\r
+ * Find DB meta by table flexible name.\r
+ * <pre>\r
+ * If the table name is 'ORDER_DETAIL', you can find the DB meta by ...(as follows)\r
+ * 'ORDER_DETAIL', 'ORDer_DeTAiL', 'order_detail'\r
+ * , 'OrderDetail', 'orderdetail', 'oRderDetaIl'\r
+ * </pre>\r
+ * @param tableFlexibleName The flexible name of table. (NotNull)\r
+ * @return The instance of DB meta. (NotNull)\r
+ * @exception ${glPackageBaseCommonException}.${glDBMetaNotFoundException} When the DB meta is not found.\r
+ */\r
+ public static DBMeta findDBMeta(String tableFlexibleName) {\r
+ DBMeta dbmeta = byTableFlexibleName(tableFlexibleName);\r
+ if (dbmeta == null) {\r
+ String msg = "The DB meta was not found by the table flexible name: " + tableFlexibleName;\r
+ msg = msg + " key=" + tableFlexibleName + " instanceMap=" + _tableDbNameInstanceMap;\r
+ throw new DBMetaNotFoundException(msg);\r
+ }\r
+ return dbmeta;\r
+ }\r
+\r
+ /**\r
+ * @param tableFlexibleName The flexible name of table. (NotNull)\r
+ * @return The instance of DB meta. (Nullable: If the DB meta is not found, it returns null)\r
+ */\r
+ protected static DBMeta byTableFlexibleName(String tableFlexibleName) {\r
+ assertStringNotNullAndNotTrimmedEmpty("tableFlexibleName", tableFlexibleName);\r
+ final int dotLastIndex = tableFlexibleName.lastIndexOf(".");\r
+ if (dotLastIndex >= 0) {\r
+ tableFlexibleName = tableFlexibleName.substring(dotLastIndex + ".".length());\r
+ }\r
+ final String tableDbName = _tableDbNameFlexibleMap.get(tableFlexibleName);\r
+ if (tableDbName != null) {\r
+ return byTableDbName(tableDbName);\r
+ }\r
+ return null;\r
+ }\r
+\r
+ /**\r
+ * @param tableDbName The DB name of table. (NotNull)\r
+ * @return The instance of DB meta. (Nullable: If the DB meta is not found, it returns null)\r
+ */\r
+ protected static DBMeta byTableDbName(String tableDbName) {\r
+ assertStringNotNullAndNotTrimmedEmpty("tableDbName", tableDbName);\r
+ return getCachedDBMeta(tableDbName);\r
+ }\r
+ \r
+ protected static DBMeta getCachedDBMeta(String tableName) {// For lazy-load! Thank you koyak!\r
+ if (_tableDbNameInstanceMap.containsKey(tableName)) {\r
+ return _tableDbNameInstanceMap.get(tableName);\r
+ }\r
+ synchronized (_tableDbNameInstanceMap) {\r
+ if (_tableDbNameInstanceMap.containsKey(tableName)) {\r
+ return _tableDbNameInstanceMap.get(tableName);\r
+ }\r
+ String entityName = _tableDbNameClassNameMap.get(tableName);\r
+ _tableDbNameInstanceMap.put(tableName, getDBMeta(entityName));\r
+ }\r
+ return _tableDbNameInstanceMap.get(tableName);\r
+ }\r
+\r
+ protected static DBMeta getDBMeta(String className) {\r
+ try {\r
+ Class<?> clazz = Class.forName(className);\r
+ Method methoz = clazz.getMethod("getInstance", (Class[])null);\r
+ Object result = methoz.invoke(null, (Object[])null);\r
+ return (DBMeta)result;\r
+ } catch (Exception e) {\r
+ throw new RuntimeException(e);\r
+ }\r
+ }\r
+\r
+ // ===================================================================================\r
+ // Provider Implementation\r
+ // =======================\r
+ /**\r
+ * @param tableFlexibleName The flexible name of table. (NotNull)\r
+ * @return The instance of DB meta. (Nullable: If the DB meta is not found, it returns null)\r
+ */\r
+ public DBMeta provideDBMeta(String tableFlexibleName) {\r
+ return byTableFlexibleName(tableFlexibleName);\r
+ }\r
+\r
+ /**\r
+ * @param tableFlexibleName The flexible name of table. (NotNull)\r
+ * @return The instance of DB meta. (NotNull)\r
+ * @exception ${glPackageBaseCommonException}.${glDBMetaNotFoundException} When the DB meta is not found.\r
+ */\r
+ public DBMeta provideDBMetaChecked(String tableFlexibleName) {\r
+ return findDBMeta(tableFlexibleName);\r
+ }\r
+\r
+ // ===================================================================================\r
+ // General Helper\r
+ // ==============\r
+ protected static <KEY, VALUE> ConcurrentHashMap<KEY, VALUE> newConcurrentHashMap() {\r
+ return new ConcurrentHashMap<KEY, VALUE>();\r
+ }\r
+\r
+ // -----------------------------------------------------\r
+ // Assert Object\r
+ // -------------\r
+ protected static void assertObjectNotNull(String variableName, Object value) {\r
+ DfAssertUtil.assertObjectNotNull(variableName, value);\r
+ }\r
+\r
+ // -----------------------------------------------------\r
+ // Assert String\r
+ // -------------\r
+ protected static void assertStringNotNullAndNotTrimmedEmpty(String variableName, String value) {\r
+ DfAssertUtil.assertStringNotNullAndNotTrimmedEmpty(variableName, value);\r
+ }\r
+}\r
${database.allClassCopyright}package ${glPackageBaseCommon};\r
\r
+import org.seasar.dbflute.Entity;\r
+\r
/**\r
- * The interface of entity defined common column.\r
+ * The interface of entity defined common columns.\r
* @author ${database.ClassAuthor}\r
*/\r
-public interface ${glEntityDefinedCommonColumnInterfaceName} extends ${glEntityInterfaceName} {\r
+public interface ${glEntityDefinedCommonColumn} extends Entity {\r
#foreach ($columnName in ${database.commonColumnNameList})\r
- #set ($filteredColumnName = ${database.filterCommonColumn(${columnName})})\r
- #set ($commonColumnMap = ${database.CommonColumnMap})\r
- #set ($columnType = ${commonColumnMap.get(${columnName})})\r
- #set ($javaNative = ${database.convertJavaNativeByJdbcType(${columnType})})\r
- #set ($javaName = ${database.convertJavaNameByJdbcNameAsColumn(${filteredColumnName})})\r
- #set ($uncapitalisedJavaName = ${database.convertUncapitalisedJavaNameByJdbcNameAsColumn(${filteredColumnName})})\r
+#set ($filteredColumnName = ${database.filterCommonColumn(${columnName})})\r
+#set ($commonColumnMap = ${database.CommonColumnMap})\r
+#set ($columnType = ${commonColumnMap.get(${columnName})})\r
+#set ($javaNative = ${database.convertJavaNativeByJdbcType(${columnType})})\r
+#set ($javaName = ${database.convertJavaNameByJdbcNameAsColumn(${filteredColumnName})})\r
+#set ($uncapitalisedJavaName = ${database.convertUncapitalisedJavaNameByJdbcNameAsColumn(${filteredColumnName})})\r
\r
/**\r
* Get the value of ${uncapitalisedJavaName}.\r
* @param ${uncapitalisedJavaName} The value of ${uncapitalisedJavaName}. (Nullable)\r
*/\r
public void set${javaName}(${javaNative} ${uncapitalisedJavaName});\r
- #if (${database.isAllClassificationColumn($filteredColumnName)})\r
- #set ($classificationName = $database.getAllClassificationName($filteredColumnName))\r
- #set ($classificationList = $database.getClassificationMapList($classificationName))\r
- #foreach ($classificationMap in $classificationList)\r
+#if (${database.isAllClassificationColumn($filteredColumnName)})\r
+#set ($classificationName = $database.getAllClassificationName($filteredColumnName))\r
+#set ($classificationList = $database.getClassificationMapList($classificationName))\r
+#foreach ($classificationMap in $classificationList)\r
\r
/**\r
* Classify the value of ${uncapitalisedJavaName} as ${classificationMap.get('name')}.\r
\r
/**\r
* Is the value of ${uncapitalisedJavaName} '${classificationMap.get('name')}'?\r
- * <p>\r
+ * <p>\r
* The difference of capital letters and small letters is NOT distinguished.\r
* If the value is null, this method returns false!\r
- * </p>\r
- * @return Determanation.\r
+ * </p>\r
+ * @return Determination.\r
*/\r
public boolean is${javaName}${classificationMap.get('name')}();\r
- #end\r
- #end\r
#end\r
+#end\r
+#end\r
+\r
+ /**\r
+ * Enable common column auto set up. {for after disable because the default is enabled}\r
+ */\r
+ public void enableCommonColumnAutoSetup();\r
\r
/**\r
* Disable common column auto set up.\r
--- /dev/null
+${database.allClassCopyright}package ${glPackageBaseCommon};\r
+\r
+import java.util.Collection;\r
+import java.util.Map;\r
+import java.util.concurrent.ConcurrentHashMap;\r
+\r
+import org.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
+import org.seasar.dbflute.BehaviorSelector;\r
+import org.seasar.dbflute.bhv.BehaviorReadable;\r
+import org.seasar.dbflute.dbmeta.DBMeta;\r
+import org.seasar.dbflute.util.TraceViewUtil;\r
+\r
+#if ($database.isTargetContainerSeasar())\r
+import org.seasar.framework.container.S2Container;\r
+import org.seasar.framework.container.ComponentNotFoundRuntimeException;\r
+#end\r
+#if ($database.isTargetContainerSpring())\r
+import org.springframework.context.ApplicationContext;\r
+#end\r
+#if ($database.isTargetContainerLucy())\r
+import org.t2framework.lucy.Lucy;\r
+#end\r
+#if ($database.isTargetContainerGuice())\r
+import com.google.inject.Inject;\r
+import com.google.inject.Injector;\r
+#end\r
+\r
+/**\r
+ * The implementation of behavior selector.\r
+ * @author DBFlute(AutoGenerator)\r
+ */\r
+public class ${glImplementedBehaviorSelector} implements BehaviorSelector {\r
+\r
+ // ===================================================================================\r
+ // Definition\r
+ // ==========\r
+ /** Log instance. */\r
+ private static final Log _log = LogFactory.getLog(${glImplementedBehaviorSelector}.class);\r
+\r
+ // ===================================================================================\r
+ // Attribute\r
+ // =========\r
+ /** The cache of behavior. (It's the generic hell!) */\r
+ protected Map<Class<? extends BehaviorReadable>, BehaviorReadable> _behaviorCache = new ConcurrentHashMap<Class<? extends BehaviorReadable>, BehaviorReadable>();\r
+\r
+#if ($database.isTargetContainerSeasar())\r
+ /** The container of Seasar. */\r
+ protected S2Container _container;\r
+#end\r
+#if ($database.isTargetContainerSpring())\r
+ /** The container of Spring. */\r
+ protected ApplicationContext _container;\r
+#end\r
+#if ($database.isTargetContainerLucy())\r
+ /** The container of Lucy. */\r
+ protected Lucy _container;\r
+#end\r
+#if ($database.isTargetContainerGuice())\r
+ /** The container of Guice. */\r
+ protected Injector _container;\r
+#end\r
+\r
+ // ===================================================================================\r
+ // Component\r
+ // =========\r
+#if ($database.isTargetContainerSeasar() || $database.isTargetContainerSpring() || $database.isTargetContainerLucy())\r
+ @SuppressWarnings("unchecked")\r
+#end\r
+ public <COMPONENT> COMPONENT getComponent(Class<COMPONENT> componentType) {\r
+ assertObjectNotNull("componentType", componentType);\r
+ assertObjectNotNull("_container", _container);\r
+#if ($database.isTargetContainerSeasar())\r
+ try {\r
+ return (COMPONENT)_container.getComponent(componentType);\r
+ } catch (ComponentNotFoundRuntimeException e) { // Normally it doesn't come.\r
+ final COMPONENT component;\r
+ try {\r
+ // for HotDeploy Mode\r
+ component = (COMPONENT)_container.getRoot().getComponent(componentType);\r
+ } catch (ComponentNotFoundRuntimeException ignored) {\r
+ throw e;\r
+ }\r
+ _container = _container.getRoot(); // Change container.\r
+ return component;\r
+ }\r
+#end\r
+#if ($database.isTargetContainerSpring())\r
+ return (COMPONENT)_container.getBean(initUncap(componentType.getSimpleName()));\r
+#end\r
+#if ($database.isTargetContainerLucy())\r
+ return (COMPONENT)_container.get(initUncap(componentType.getSimpleName()));\r
+#end\r
+#if ($database.isTargetContainerGuice())\r
+ return _container.getInstance(componentType);\r
+#end\r
+ }\r
+\r
+ // ===================================================================================\r
+ // Initialize\r
+ // ==========\r
+ /**\r
+ * Initialize condition-bean meta data. <br />\r
+ */\r
+ public void initializeConditionBeanMetaData() {\r
+ final Map<String, DBMeta> dbmetaMap = ${glDBMetaInstanceHandler}.getDBMetaMap();\r
+ final Collection<DBMeta> dbmetas = dbmetaMap.values();\r
+ long before = 0;\r
+ if (_log.isInfoEnabled()) {\r
+ before = System.currentTimeMillis();\r
+ _log.info("/= = = = = = = = = = = = = = = = = initializeConditionBeanMetaData()");\r
+ }\r
+ for (DBMeta dbmeta : dbmetas) {\r
+ final BehaviorReadable bhv = byName(dbmeta.getTableDbName());\r
+ bhv.warmUpCommand();\r
+ }\r
+ if (_log.isInfoEnabled()) {\r
+ long after = System.currentTimeMillis();\r
+ _log.info("Initialized Count: " + dbmetas.size());\r
+ _log.info("= = = = = = = = = =/ [" + TraceViewUtil.convertToPerformanceView(after - before) + "]");\r
+ }\r
+ }\r
+\r
+ // ===================================================================================\r
+ // Selector\r
+ // ========\r
+ /**\r
+ * Select behavior.\r
+ * @param <BEHAVIOR> The type of behavior.\r
+ * @param behaviorType Behavior type. (NotNull)\r
+ * @return Behavior. (NotNull)\r
+ */\r
+ @SuppressWarnings("unchecked")\r
+ public <BEHAVIOR extends BehaviorReadable> BEHAVIOR select(Class<BEHAVIOR> behaviorType) {\r
+ if (_behaviorCache.containsKey(behaviorType)) {\r
+ return (BEHAVIOR) _behaviorCache.get(behaviorType);\r
+ }\r
+ synchronized (_behaviorCache) {\r
+ if (_behaviorCache.containsKey(behaviorType)) {\r
+ return (BEHAVIOR) _behaviorCache.get(behaviorType);\r
+ }\r
+ final BEHAVIOR bhv = (BEHAVIOR) getComponent(behaviorType);\r
+ _behaviorCache.put(behaviorType, bhv);\r
+ return bhv;\r
+ }\r
+ }\r
+\r
+ /**\r
+ * Select behavior-readable by name.\r
+ * @param tableFlexibleName Table flexible-name. (NotNull)\r
+ * @return Behavior-readable. (NotNull)\r
+ */\r
+ public BehaviorReadable byName(String tableFlexibleName) {\r
+ assertStringNotNullAndNotTrimmedEmpty("tableFlexibleName", tableFlexibleName);\r
+ final DBMeta dbmeta = ${glDBMetaInstanceHandler}.findDBMeta(tableFlexibleName);\r
+ return select(getBehaviorType(dbmeta));\r
+ }\r
+\r
+ /**\r
+ * Get behavior-type by DB meta.\r
+ * @param dbmeta DB meta. (NotNull)\r
+ * @return Behavior-type. (NotNull)\r
+ */\r
+ @SuppressWarnings("unchecked")\r
+ protected Class<BehaviorReadable> getBehaviorType(DBMeta dbmeta) {\r
+ final String behaviorTypeName = dbmeta.getBehaviorTypeName();\r
+ if (behaviorTypeName == null) {\r
+ String msg = "The dbmeta.getBehaviorTypeName() should not return null: dbmeta=" + dbmeta;\r
+ throw new IllegalStateException(msg);\r
+ }\r
+ final Class<BehaviorReadable> behaviorType;\r
+ try {\r
+ behaviorType = (Class<BehaviorReadable>) Class.forName(behaviorTypeName);\r
+ } catch (ClassNotFoundException e) {\r
+ throw new RuntimeException("The class does not exist: " + behaviorTypeName, e);\r
+ }\r
+ return behaviorType;\r
+ }\r
+\r
+ // ===================================================================================\r
+ // Helper\r
+ // ======\r
+ protected String initUncap(String str) {\r
+ return str.substring(0, 1).toLowerCase() + str.substring(1);\r
+ }\r
+\r
+ // ===================================================================================\r
+ // Assert\r
+ // ======\r
+ // -----------------------------------------------------\r
+ // Assert Object\r
+ // -------------\r
+ /**\r
+ * Assert that the object is not null.\r
+ * @param variableName Variable name. (NotNull)\r
+ * @param value Value. (NotNull)\r
+ * @exception IllegalArgumentException\r
+ */\r
+ protected void assertObjectNotNull(String variableName, Object value) {\r
+ if (variableName == null) {\r
+ String msg = "The value should not be null: variableName=" + variableName + " value=" + value;\r
+ throw new IllegalArgumentException(msg);\r
+ }\r
+ if (value == null) {\r
+ String msg = "The value should not be null: variableName=" + variableName;\r
+ throw new IllegalArgumentException(msg);\r
+ }\r
+ }\r
+\r
+ // -----------------------------------------------------\r
+ // Assert String\r
+ // -------------\r
+ /**\r
+ * Assert that the entity is not null and not trimmed empty.\r
+ * @param variableName Variable name. (NotNull)\r
+ * @param value Value. (NotNull)\r
+ */\r
+ protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, String value) {\r
+ assertObjectNotNull("variableName", variableName);\r
+ assertObjectNotNull("value", value);\r
+ if (value.trim().length() == 0) {\r
+ String msg = "The value should not be empty: variableName=" + variableName + " value=" + value;\r
+ throw new IllegalArgumentException(msg);\r
+ }\r
+ }\r
+\r
+ // ===================================================================================\r
+ // Accessor\r
+ // ========\r
+#if ($database.isTargetContainerSeasar())\r
+ public void setContainer(S2Container container) {\r
+ this._container = container;\r
+ }\r
+#end\r
+#if ($database.isTargetContainerSpring())\r
+ public void setContainer(ApplicationContext container) {\r
+ this._container = container;\r
+ }\r
+#end\r
+#if ($database.isTargetContainerLucy())\r
+ public void setContainer(Lucy container) {\r
+ this._container = container;\r
+ }\r
+#end\r
+#if ($database.isTargetContainerGuice())\r
+ @Inject\r
+ public void setContainer(Injector container) {\r
+ this._container = container;\r
+ }\r
+#end\r
+}\r
--- /dev/null
+${database.allClassCopyright}package ${glPackageBaseCommon};\r
+\r
+#if ($database.isExistCommonColumnSetupElement())\r
+import org.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
+#end\r
+import org.seasar.dbflute.Entity;\r
+import org.seasar.dbflute.bhv.core.CommonColumnAutoSetupper;\r
+\r
+/**\r
+ * The basic implementation of the auto set-upper of common column.\r
+ * @author ${database.ClassAuthor}\r
+ */\r
+public class ${glImplementedCommonColumnAutoSetupper} implements CommonColumnAutoSetupper {\r
+#if ($database.isExistCommonColumnSetupElement())\r
+\r
+ // =====================================================================================\r
+ // Definition\r
+ // ==========\r
+ /** Log instance. */\r
+ private static final Log _log = LogFactory.getLog(${glImplementedCommonColumnAutoSetupper}.class);\r
+\r
+ // =====================================================================================\r
+ // Attribute\r
+ // =========\r
+#foreach ($resource in $database.commonColumnSetupResourceList)\r
+ /** The property of ${resource.propertyName}. */\r
+ protected ${resource.className} ${resource.propertyVariableName};\r
+\r
+ /**\r
+ * @return The value of ${resource.propertyName}.\r
+ */\r
+ public ${resource.className} get${resource.propertyNameInitCap}() {\r
+ return ${resource.propertyVariableName};\r
+ }\r
+\r
+ /**\r
+ * @param ${resource.propertyName} The value of ${resource.propertyName}.\r
+ */\r
+ public void set${resource.propertyNameInitCap}(${resource.className} ${resource.propertyName}) {\r
+ this.${resource.propertyVariableName} = ${resource.propertyName};\r
+ }\r
+#end\r
+#end\r
+\r
+ // =====================================================================================\r
+ // Set up\r
+ // ======\r
+ /**\r
+ * Handle common columns of insert if it needs.\r
+ * @param targetEntity Target entity that the type is entity interface. (NotNull)\r
+ */\r
+ public void handleCommonColumnOfInsertIfNeeds(Entity targetEntity) {\r
+#if ($database.isExistCommonColumnSetupElement())\r
+ if (!(targetEntity instanceof ${glEntityDefinedCommonColumn})) {\r
+ return;\r
+ }\r
+ final ${glEntityDefinedCommonColumn} entity = (${glEntityDefinedCommonColumn})targetEntity;\r
+ if (!entity.canCommonColumnAutoSetup()) {\r
+ return;\r
+ }\r
+ if (_log.isDebugEnabled()) {\r
+ String msg = "...Filtering entity of INSERT about the column columns of " + entity.getTableDbName();\r
+ msg = msg + ": entity=" + entity.getDBMeta().extractPrimaryKeyMapString(entity, "{", "}", ", ", "=");\r
+ _log.debug(msg);\r
+ }\r
+#foreach ($columnName in ${database.commonColumnNameList})\r
+#set ($filteredColumnName = ${database.filterCommonColumn(${columnName})})\r
+#set ($entityCommonColumnMap = ${database.commonColumnMap})\r
+#set ($columnType = ${entityCommonColumnMap.get(${columnName})})\r
+#set ($javaNative = ${database.convertJavaNativeByJdbcType(${columnType})})\r
+#set ($javaName = ${database.convertJavaNameByJdbcNameAsColumn(${filteredColumnName})})\r
+#set ($uncapitalisedJavaName = ${database.convertUncapitalisedJavaNameByJdbcNameAsColumn(${filteredColumnName})})\r
+#if (${database.containsValidColumnNameKeyCommonColumnSetupBeforeInsertInterceptorLogicMap(${columnName})})\r
+#set ($logic = ${database.getCommonColumnSetupBeforeInsertInterceptorLogicByColumnName(${columnName})})\r
+#if ($database.isCommonColumnSetupInvokingLogic($logic))\r
+#set ($filteredLogic = $database.removeCommonColumnSetupInvokingMark($logic))\r
+\r
+ ${filteredLogic}\r
+#else\r
+\r
+ final ${javaNative} ${uncapitalisedJavaName} = ${logic};\r
+ entity.set${javaName}(${uncapitalisedJavaName});\r
+#end\r
+#end\r
+#end\r
+#end\r
+ }\r
+\r
+ /**\r
+ * Handle common columns of update if it needs.\r
+ * @param targetEntity Target entity that the type is entity interface. (NotNull)\r
+ */\r
+ public void handleCommonColumnOfUpdateIfNeeds(Entity targetEntity) {\r
+#if ($database.isExistCommonColumnSetupElement())\r
+ if (!(targetEntity instanceof ${glEntityDefinedCommonColumn})) {\r
+ return;\r
+ }\r
+ final ${glEntityDefinedCommonColumn} entity = (${glEntityDefinedCommonColumn})targetEntity;\r
+ if (!entity.canCommonColumnAutoSetup()) {\r
+ return;\r
+ }\r
+ if (_log.isDebugEnabled()) {\r
+ String msg = "...Filtering entity of UPDATE about the column columns of " + entity.getTableDbName();\r
+ msg = msg + ": entity=" + entity.getDBMeta().extractPrimaryKeyMapString(entity, "{", "}", ", ", "=");\r
+ _log.debug(msg);\r
+ }\r
+#foreach ($columnName in ${database.commonColumnNameList})\r
+#set ($filteredColumnName = ${database.filterCommonColumn(${columnName})})\r
+#set ($entityCommonColumnMap = ${database.CommonColumnMap})\r
+#set ($columnType = ${entityCommonColumnMap.get(${columnName})})\r
+#set ($javaNative = ${database.convertJavaNativeByJdbcType(${columnType})})\r
+#set ($javaName = ${database.convertJavaNameByJdbcNameAsColumn(${filteredColumnName})})\r
+#set ($uncapitalisedJavaName = ${database.convertUncapitalisedJavaNameByJdbcNameAsColumn(${filteredColumnName})})\r
+#if (${database.containsValidColumnNameKeyCommonColumnSetupBeforeUpdateInterceptorLogicMap(${columnName})})\r
+#set ($logic = ${database.getCommonColumnSetupBeforeUpdateInterceptorLogicByColumnName(${columnName})})\r
+#if ($database.isCommonColumnSetupInvokingLogic($logic))\r
+#set ($filteredLogic = $database.removeCommonColumnSetupInvokingMark($logic))\r
+\r
+ ${filteredLogic}\r
+#else\r
+\r
+ final ${javaNative} ${uncapitalisedJavaName} = ${logic};\r
+ entity.set${javaName}(${uncapitalisedJavaName});\r
+#end\r
+#end\r
+#end\r
+#end\r
+ }\r
+}\r
--- /dev/null
+${database.allClassCopyright}package ${glPackageBaseCommon};\r
+\r
+import javax.sql.DataSource;\r
+\r
+import org.seasar.dbflute.DBDef;\r
+import org.seasar.dbflute.bhv.core.BehaviorCommandInvoker;\r
+import org.seasar.dbflute.bhv.core.InvokerAssistant;\r
+import org.seasar.dbflute.cbean.sqlclause.SqlClauseCreator;\r
+import org.seasar.dbflute.dbmeta.DBMetaProvider;\r
+import org.seasar.dbflute.jdbc.DataSourceHandler;\r
+import org.seasar.dbflute.jdbc.DataSourceWrapper;\r
+import org.seasar.dbflute.jdbc.StatementFactory;\r
+import org.seasar.dbflute.resource.ResourceParameter;\r
+#if ($database.isTargetContainerSeasar())\r
+import org.seasar.extension.jdbc.types.ValueTypes;\r
+import org.seasar.dbflute.s2dao.beans.factory.TnBeanDescFactory;\r
+#end\r
+import org.seasar.dbflute.s2dao.extension.TnBeanMetaDataFactoryExtension;\r
+import org.seasar.dbflute.s2dao.jdbc.TnStatementFactoryImpl;\r
+import org.seasar.dbflute.s2dao.metadata.TnBeanMetaDataFactory;\r
+import org.seasar.dbflute.s2dao.valuetype.TnValueTypeFactory;\r
+import org.seasar.dbflute.s2dao.valuetype.impl.TnValueTypeFactoryImpl;\r
+#if ($database.isTargetContainerSeasar())\r
+\r
+import org.seasar.framework.util.Disposable;\r
+import org.seasar.framework.util.DisposableUtil;\r
+#end\r
+\r
+/**\r
+ * @author ${database.ClassAuthor}\r
+ */\r
+public class ${glImplementedInvokerAssistant} implements InvokerAssistant {\r
+\r
+ // ===================================================================================\r
+ // Attribute\r
+ // =========\r
+ protected BehaviorCommandInvoker _behaviorCommandInvoker;\r
+ protected DataSource _dataSource;\r
+ protected DBMetaProvider _dbmetaProvider;\r
+ protected SqlClauseCreator _sqlClauseCreator;\r
+ protected StatementFactory _statementFactory;\r
+ protected TnBeanMetaDataFactory _beanMetaDataFactory;\r
+ protected TnValueTypeFactory _valueTypeFactory;\r
+ \r
+ protected boolean _disposable;\r
+\r
+ // ===================================================================================\r
+ // Assistant Main Work\r
+ // ===================\r
+ public DBDef assistCurrentDBDef() {\r
+ return ${glDBCurrent}.getInstance().currentDBDef();\r
+ }\r
+\r
+ public DataSource assistDataSource() {\r
+ DataSourceHandler dataSourceHandler = ${glDBFluteConfig}.getInstance().getDataSourceHandler();\r
+ if (dataSourceHandler != null) {\r
+ return new DataSourceWrapper(_dataSource, dataSourceHandler);\r
+ }\r
+ return _dataSource;\r
+ }\r
+\r
+ public DBMetaProvider assistDBMetaProvider() {\r
+ if (_dbmetaProvider != null) {\r
+ return _dbmetaProvider;\r
+ }\r
+ _dbmetaProvider = createDBMetaProvider();\r
+ return _dbmetaProvider;\r
+ }\r
+\r
+ protected DBMetaProvider createDBMetaProvider() {\r
+ return new ${glDBMetaInstanceHandler}();\r
+ }\r
+\r
+ public SqlClauseCreator assistSqlClauseCreator() {\r
+ if (_sqlClauseCreator != null) {\r
+ return _sqlClauseCreator;\r
+ }\r
+ _sqlClauseCreator = createSqlClauseCreator();\r
+ return _sqlClauseCreator;\r
+ }\r
+\r
+ protected SqlClauseCreator createSqlClauseCreator() {\r
+ return new ${glImplementedSqlClauseCreator}();\r
+ }\r
+\r
+ public StatementFactory assistStatementFactory() {\r
+ if (_statementFactory != null) {\r
+ return _statementFactory;\r
+ }\r
+ _statementFactory = createStatementFactory();\r
+ return _statementFactory;\r
+ }\r
+\r
+ protected StatementFactory createStatementFactory() {\r
+ final TnStatementFactoryImpl factory = new TnStatementFactoryImpl();\r
+ factory.setDefaultStatementConfig(${glDBFluteConfig}.getInstance().getDefaultStatementConfig());\r
+ factory.setInternalDebug(${glDBFluteConfig}.getInstance().isInternalDebug());\r
+ return factory;\r
+ }\r
+\r
+ public TnBeanMetaDataFactory assistBeanMetaDataFactory() {\r
+ if (_beanMetaDataFactory != null) {\r
+ return _beanMetaDataFactory;\r
+ }\r
+ _beanMetaDataFactory = createBeanMetaDataFactory();\r
+ return _beanMetaDataFactory;\r
+ }\r
+\r
+ protected TnBeanMetaDataFactory createBeanMetaDataFactory() {\r
+ final TnBeanMetaDataFactoryExtension factory = new TnBeanMetaDataFactoryExtension();\r
+ factory.setDataSource(_dataSource);\r
+ factory.setValueTypeFactory(assistValueTypeFactory());\r
+ return factory;\r
+ }\r
+ \r
+ public TnValueTypeFactory assistValueTypeFactory() {\r
+ if (_valueTypeFactory != null) {\r
+ return _valueTypeFactory;\r
+ }\r
+ _valueTypeFactory = createValueTypeFactory();\r
+ return _valueTypeFactory;\r
+ }\r
+\r
+ protected TnValueTypeFactory createValueTypeFactory() {\r
+ return new TnValueTypeFactoryImpl();\r
+ }\r
+\r
+ public ResourceParameter assistResourceParameter() {\r
+ ResourceParameter resourceParameter = new ResourceParameter();\r
+ resourceParameter.setOutsideSqlPackage(${glDBFluteConfig}.getInstance().getOutsideSqlPackage());\r
+ resourceParameter.setLogDateFormat(${glDBFluteConfig}.getInstance().getLogDateFormat());\r
+ resourceParameter.setLogTimestampFormat(${glDBFluteConfig}.getInstance().getLogTimestampFormat());\r
+ return resourceParameter;\r
+ }\r
+\r
+ public String assistSqlFileEncoding() {\r
+ return "${database.sqlFileEncoding}";\r
+ }\r
+\r
+ // ===================================================================================\r
+ // Dispose\r
+ // =======\r
+ public void toBeDisposable() { // for HotDeploy\r
+#if ($database.isTargetContainerSeasar())\r
+ if (!_disposable) {\r
+ synchronized (this) {\r
+ if (!_disposable) {\r
+ // Register for BehaviorCommandInvoker\r
+ DisposableUtil.add(new Disposable() {\r
+ public void dispose() {\r
+ if (_behaviorCommandInvoker != null) {\r
+ _behaviorCommandInvoker.clearExecutionCache();\r
+ }\r
+ _disposable = false;\r
+ }\r
+ });\r
+ // Register for BeanDescFactory\r
+ DisposableUtil.add(new Disposable() {\r
+ public void dispose() {\r
+ TnBeanDescFactory.clear();\r
+ }\r
+ });\r
+ // Register for ValueTypes\r
+ DisposableUtil.add(new Disposable() {\r
+ public void dispose() {\r
+ ValueTypes.clear();\r
+ }\r
+ });\r
+ _disposable = true;\r
+ }\r
+ }\r
+ }\r
+#end\r
+ }\r
+\r
+ public boolean isDisposable() {\r
+ return _disposable;\r
+ }\r
+\r
+ // ===================================================================================\r
+ // Assert Helper\r
+ // =============\r
+ protected void assertBehaviorCommandInvoker() {\r
+ if (_behaviorCommandInvoker == null) {\r
+ String msg = "The attribute 'behaviorCommandInvoker' should not be null!";\r
+ throw new IllegalStateException(msg);\r
+ }\r
+ }\r
+\r
+ // ===================================================================================\r
+ // Accessor\r
+ // ========\r
+ public void setBehaviorCommandInvoker(BehaviorCommandInvoker behaviorCommandInvoker) {\r
+ _behaviorCommandInvoker = behaviorCommandInvoker;\r
+ }\r
+\r
+ public void setDataSource(DataSource dataSource) {\r
+ _dataSource = dataSource;\r
+ }\r
+}\r
--- /dev/null
+${database.allClassCopyright}package ${glPackageBaseCommon};\r
+\r
+import org.seasar.dbflute.DBDef;\r
+import org.seasar.dbflute.cbean.ConditionBean;\r
+import org.seasar.dbflute.cbean.sqlclause.*;\r
+import org.seasar.dbflute.dbmeta.DBMetaProvider;\r
+\r
+/**\r
+ * The creator of SQL clause.\r
+ * @author ${database.ClassAuthor}\r
+ */\r
+public class ${glImplementedSqlClauseCreator} implements SqlClauseCreator {\r
+\r
+ /**\r
+ * Create SQL clause. {for condition-bean}\r
+ * @param cb Condition-bean. (NotNull) \r
+ * @return SQL clause. (NotNull)\r
+ */\r
+ public SqlClause createSqlClause(ConditionBean cb) {\r
+ final String tableSqlName = cb.getTableSqlName();\r
+ final SqlClause sqlClause = createSqlClause(tableSqlName);\r
+ return sqlClause;\r
+ }\r
+\r
+ /**\r
+ * Create SQL clause.\r
+ * @param tableDbName The DB name of table. (NotNull) \r
+ * @return SQL clause. (NotNull)\r
+ */\r
+ public SqlClause createSqlClause(String tableDbName) {\r
+ DBMetaProvider dbmetaProvider = new ${glDBMetaInstanceHandler}();\r
+ SqlClause sqlClause;\r
+ if (isCurrentDBDef(DBDef.MySQL)) {\r
+ sqlClause = new SqlClauseMySql(tableDbName).provider(dbmetaProvider);\r
+ } else if (isCurrentDBDef(DBDef.PostgreSQL)) {\r
+ sqlClause = new SqlClausePostgreSql(tableDbName).provider(dbmetaProvider);\r
+ } else if (isCurrentDBDef(DBDef.Oracle)) {\r
+ sqlClause = new SqlClauseOracle(tableDbName).provider(dbmetaProvider);\r
+ } else if (isCurrentDBDef(DBDef.DB2)) {\r
+ sqlClause = new SqlClauseDb2(tableDbName).provider(dbmetaProvider);\r
+ } else if (isCurrentDBDef(DBDef.SQLServer)) {\r
+ sqlClause = new SqlClauseSqlServer(tableDbName).provider(dbmetaProvider);\r
+ } else if (isCurrentDBDef(DBDef.FireBird)) {\r
+ sqlClause = new SqlClauseFirebird(tableDbName).provider(dbmetaProvider);\r
+ } else if (isCurrentDBDef(DBDef.H2)) {\r
+ sqlClause = new SqlClauseH2(tableDbName).provider(dbmetaProvider);\r
+ } else if (isCurrentDBDef(DBDef.Derby)) {\r
+ sqlClause = new SqlClauseDerby(tableDbName).provider(dbmetaProvider);\r
+ } else {\r
+ sqlClause = new SqlClause${database.generateDbName}(tableDbName).provider(dbmetaProvider);\r
+ }\r
+ if (isDisableSelectIndex()) {\r
+ sqlClause.disableSelectIndex();\r
+ }\r
+ return sqlClause;\r
+ }\r
+\r
+ protected boolean isCurrentDBDef(DBDef currentDBDef) {\r
+ return ${glDBCurrent}.getInstance().isCurrentDBDef(currentDBDef);\r
+ }\r
+\r
+ protected boolean isDisableSelectIndex() {\r
+ return ${glDBFluteConfig}.getInstance().isDisableSelectIndex();\r
+ }\r
+}\r
--- /dev/null
+${database.allClassCopyright}package ${glPackageBaseCommon};\r
+\r
+import javax.sql.DataSource;\r
+\r
+import com.google.inject.AbstractModule;\r
+import org.seasar.dbflute.BehaviorSelector;\r
+import org.seasar.dbflute.bhv.core.BehaviorCommandInvoker;\r
+import org.seasar.dbflute.bhv.core.CommonColumnAutoSetupper;\r
+import org.seasar.dbflute.bhv.core.InvokerAssistant;\r
+import ${glPackageExtendedBhv}.*;\r
+\r
+/**\r
+ * @author ${database.ClassAuthor}\r
+ */\r
+public class ${glDBFluteModule} extends AbstractModule {\r
+\r
+ protected DataSource dataSource;\r
+\r
+ public DBFluteModule(DataSource dataSource) {\r
+ if (dataSource == null) {\r
+ String msg = "The argument 'dataSource' should not be null!";\r
+ throw new IllegalArgumentException(msg);\r
+ }\r
+ this.dataSource = dataSource;\r
+ }\r
+\r
+ @Override\r
+ protected void configure() {\r
+ new ${glDBFluteInitializer}(); // Initialize!\r
+ \r
+ // The components of DBFlute Runtime.\r
+ ${glImplementedBehaviorSelector} behaviorSelector = new ${glImplementedBehaviorSelector}();\r
+ BehaviorCommandInvoker behaviorCommandInvoker = new BehaviorCommandInvoker();\r
+ ${glImplementedInvokerAssistant} invokerAssistant = new ${glImplementedInvokerAssistant}();\r
+ invokerAssistant.setBehaviorCommandInvoker(behaviorCommandInvoker);\r
+ invokerAssistant.setDataSource(dataSource);\r
+ behaviorCommandInvoker.setInvokerAssistant(invokerAssistant);\r
+ ${glImplementedCommonColumnAutoSetupper} commonColumnAutoSetupper = new ${glImplementedCommonColumnAutoSetupper}();\r
+ \r
+ bind(BehaviorSelector.class).toInstance(behaviorSelector);\r
+ bind(BehaviorCommandInvoker.class).toInstance(behaviorCommandInvoker);\r
+ bind(InvokerAssistant.class).toInstance(invokerAssistant);\r
+ bind(CommonColumnAutoSetupper.class).toInstance(commonColumnAutoSetupper);\r
+ \r
+ // The components of Behavior.\r
+ BehaviorCommandInvoker ker = behaviorCommandInvoker;\r
+ BehaviorSelector tor = behaviorSelector;\r
+ CommonColumnAutoSetupper per = commonColumnAutoSetupper;\r
+#foreach ($table in $database.tables)\r
+ {\r
+ ${table.extendedBehaviorClassName} bhv = new ${table.extendedBehaviorClassName}();\r
+#if ($table.isWritable())\r
+ bhv.setBehaviorCommandInvoker(ker); bhv.setBehaviorSelector(tor); bhv.setCommonColumnAutoSetupper(per);\r
+#else\r
+ bhv.setBehaviorCommandInvoker(ker); bhv.setBehaviorSelector(tor);\r
+#end\r
+ bind(${table.extendedBehaviorClassName}.class).toInstance(bhv);\r
+ }\r
+#end\r
+ }\r
+}\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!DOCTYPE lucy-config PUBLIC "-//LUCY//DTD LUCY//EN" "http://www.lucy.org/dtd/lucy-config.dtd">\r
+<lucy-config>\r
+ <!-- The components of DBFlute Runtime. -->\r
+ <component name="dbfluteInitializer" class="${glPackageBaseCommon}.DBFluteInitializer"/>\r
+ <component name="invokerAssistant" class="${glPackageBaseCommon}.ImplementedInvokerAssistant">\r
+ <inject method="setDataSource">dataSource</inject>\r
+ </component>\r
+ <component name="commonColumnAutoSetupper" class="${glPackageBaseCommon}.ImplementedCommonColumnAutoSetupper"/>\r
+ <component name="behaviorSelector" class="${glPackageBaseCommon}.ImplementedBehaviorSelector">\r
+ <inject method="setContainer">lucy</inject>\r
+ </component>\r
+ <component name="behaviorCommandInvoker" class="org.seasar.dbflute.bhv.core.BehaviorCommandInvoker">\r
+ <inject method="setInvokerAssistant">invokerAssistant</inject>\r
+ </component>\r
+ \r
+ <!-- The components of Behavior. -->\r
+#foreach ($table in $database.tables)\r
+ <component name="${table.behaviorComponentName}" class="${table.extendedBehaviorFullClassName}">\r
+ <inject method="setBehaviorCommandInvoker">behaviorCommandInvoker</inject>\r
+ <inject method="setBehaviorSelector">behaviorSelector</inject>\r
+#if ($table.isWritable())\r
+ <inject method="setCommonColumnAutoSetupper">commonColumnAutoSetupper</inject>\r
+#end\r
+ </component>\r
+#end\r
+</lucy-config>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN"\r
+ "http://www.seasar.org/dtd/components21.dtd">\r
+\r
+<components namespace="${glDBFluteDiconNamespace}">\r
+#foreach ($includePath in $database.DBFluteDiconBeforeJ2eeIncludePathList)\r
+ <include path="${includePath}"/>\r
+#end\r
+ <include path="${glJ2eeDiconResourceName}"/>\r
+#foreach ($includePath in $database.DBFluteDiconOtherIncludePathList)\r
+ <include path="${includePath}"/>\r
+#end\r
+#if ($database.isUseBuri())\r
+ <include path="buri/dicon/buriSimple.dicon"/>\r
+#end\r
+\r
+ <!-- The components of DBFlute Runtime. -->\r
+ <component class="${glPackageBaseCommon}.${glDBFluteInitializer}"/>\r
+ <component name="invokerAssistant" class="${glPackageBaseCommon}.${glImplementedInvokerAssistant}"/>\r
+ <component name="commonColumnAutoSetupper" class="${glPackageBaseCommon}.${glImplementedCommonColumnAutoSetupper}"/>\r
+ <component name="behaviorSelector" class="${glPackageBaseCommon}.${glImplementedBehaviorSelector}"/>\r
+ <component name="behaviorCommandInvoker" class="org.seasar.dbflute.bhv.core.BehaviorCommandInvoker"/>\r
+\r
+ <!-- The components of Behavior. -->\r
+#foreach ($table in $database.tables)\r
+ <component name="${table.behaviorComponentName}" class="${table.extendedBehaviorFullClassName}"/>\r
+#end\r
+</components>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN"\r
+ "http://www.seasar.org/dtd/components21.dtd">\r
+\r
+<components namespace="${glDBFluteDiconNamespace}">\r
+#foreach ($includePath in $database.DBFluteDiconBeforeJ2eeIncludePathList)\r
+ <include path="${includePath}"/>\r
+#end\r
+\r
+ <include path="${glJ2eeDiconResourceName}"/>\r
+#foreach ($includePath in $database.DBFluteDiconOtherIncludePathList)\r
+ <include path="${includePath}"/>\r
+#end\r
+\r
+ <!-- The components of DBFlute Runtime. -->\r
+ <component class="${glPackageBaseCommon}.${glDBFluteInitializer}"/>\r
+ <component name="invokerAssistant" class="${glPackageBaseCommon}.${glImplementedInvokerAssistant}"/>\r
+ <component name="commonColumnAutoSetupper" class="${glPackageBaseCommon}.${glImplementedCommonColumnAutoSetupper}"/>\r
+ <component name="behaviorSelector" class="${glPackageBaseCommon}.${glImplementedBehaviorSelector}"/>\r
+ <component name="behaviorCommandInvoker" class="org.seasar.dbflute.bhv.core.BehaviorCommandInvoker"/>\r
+</components>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!DOCTYPE beans\r
+ PUBLIC "-//SPRING//DTD BEAN//EN"\r
+ "http://www.springframework.org/dtd/spring-beans.dtd"\r
+>\r
+<beans>\r
+ <!-- The components of DBFlute Runtime. -->\r
+ <bean id="dbfluteInitializer" class="${glPackageBaseCommon}.DBFluteInitializer"/>\r
+ <bean id="invokerAssistant" class="${glPackageBaseCommon}.ImplementedInvokerAssistant" autowire="byType">\r
+ <property name="dataSource">\r
+ <ref bean="dataSource"/>\r
+ </property>\r
+ </bean>\r
+ <bean id="commonColumnAutoSetupper" class="${glPackageBaseCommon}.ImplementedCommonColumnAutoSetupper" autowire="byType"/>\r
+ <bean id="behaviorSelector" class="${glPackageBaseCommon}.ImplementedBehaviorSelector" autowire="byType"/>\r
+ <bean id="behaviorCommandInvoker" class="org.seasar.dbflute.bhv.core.BehaviorCommandInvoker" autowire="byType"/>\r
+\r
+ <!-- The components of Behavior. -->\r
+#foreach ($table in $database.tables)\r
+ <bean id="${table.behaviorComponentName}" class="${table.extendedBehaviorFullClassName}" autowire="byType"/>\r
+#end\r
+</beans>\r
${database.allClassCopyright}package ${glPackageBaseBhv};\r
-\r
#set ($myClassName = "${myBaseBhvClassName}")\r
\r
import java.util.List;\r
\r
-import ${glPackageBaseCommon}.*;\r
+import org.seasar.dbflute.*;\r
#if (${table.hasOnlyOnePrimaryKey()} && $table.hasReferrerAsMany())\r
-import ${glPackageBaseCommonBhvLoad}.${glLoadReferrerOptionName};\r
-import ${glPackageBaseCommonBhvSetup}.${glConditionBeanSetupperName};\r
+import org.seasar.dbflute.bhv.ConditionBeanSetupper;\r
+import org.seasar.dbflute.bhv.LoadReferrerOption;\r
#end\r
-import ${glPackageBaseCommonBhvSetup}.${glValueLabelSetupperName};\r
+#if ($table.isAvailableNonPrimaryKeyWritable())\r
+import org.seasar.dbflute.bhv.core.command.InsertEntityCommand;\r
+#end\r
+import org.seasar.dbflute.cbean.ConditionBean;\r
+import org.seasar.dbflute.cbean.EntityRowHandler;\r
+import org.seasar.dbflute.cbean.ListResultBean;\r
+import org.seasar.dbflute.cbean.PagingBean;\r
+import org.seasar.dbflute.cbean.PagingHandler;\r
+import org.seasar.dbflute.cbean.PagingInvoker;\r
+import org.seasar.dbflute.cbean.PagingResultBean;\r
+import org.seasar.dbflute.cbean.ResultBeanBuilder;\r
+import org.seasar.dbflute.dbmeta.DBMeta;\r
#if ($database.isMakeFlatExpansion())\r
-import ${glPackageBaseCommonDBMetaHierarchy}.${glHierarchyArrangerName};\r
-import ${glPackageBaseCommonDBMetaHierarchy}.${glHierarchyBasicRequestName};\r
-import ${glPackageBaseCommonDBMetaHierarchy}.${glHierarchyRequestName};\r
-#end\r
-import ${glPackageBaseCommonCBean}.${glConditionBeanInterfaceName};\r
-import ${glPackageBaseCommonCBean}.${glListResultBeanName};\r
-import ${glPackageBaseCommonCBean}.${glResultBeanBuilderName};\r
-import ${glPackageBaseCommonCBean}.${glPagingHandlerName};\r
-import ${glPackageBaseCommonCBean}.${glPagingInvokerName};\r
-import ${glPackageBaseCommonCBean}.${glPagingBeanInterfaceName};\r
-import ${glPackageBaseCommonCBean}.${glPagingResultBeanName};\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInterfaceName};\r
+import org.seasar.dbflute.dbmeta.hierarchy.HierarchyArranger;\r
+import org.seasar.dbflute.dbmeta.hierarchy.HierarchyBasicRequest;\r
+import org.seasar.dbflute.dbmeta.hierarchy.HierarchyRequest;\r
+#end\r
+import org.seasar.dbflute.jdbc.StatementConfig;\r
+import ${glPackageBaseCommon}.*;\r
#if (${table.hasOnlyOnePrimaryKey()} && $table.hasReferrerAsMany())\r
import ${glPackageExtendedBhv}.*;\r
#end\r
-import ${glPackageExtendedDao}.*;\r
import ${glPackageExtendedEntity}.*;\r
import ${myDBMetaPackageName}.*;\r
import ${glPackageCB}.*;\r
\r
#set ($myExtendClassName = "")\r
#if ($table.isWritable())\r
- #set ($myExtendClassName = "${glBehaviorWritableAbstractName}")\r
+ #set ($myExtendClassName = "AbstractBehaviorWritable")\r
#else\r
- #set ($myExtendClassName = "${glBehaviorReadableAbstractName}")\r
+ #set ($myExtendClassName = "AbstractBehaviorReadable")\r
#end\r
-\r
/**\r
- * The behavior of ${table.name}.\r
+ * The behavior of ${table.basicInfoDispString}. <br />\r
+#if ($table.isBuriInternal())\r
+ * {Buri Internal}\r
+#end\r
* <pre>\r
* [primary-key]\r
* ${table.primaryKeyNameCommaString}\r
* </pre>\r
* @author ${database.ClassAuthor}\r
*/\r
-public abstract class ${myClassName} extends ${glPackageBaseCommonBhv}.${myExtendClassName} {\r
+public abstract class ${myClassName} extends org.seasar.dbflute.bhv.${myExtendClassName} {\r
\r
// ===================================================================================\r
// Definition\r
${database.behaviorQueryPathEndMark}\r
\r
// ===================================================================================\r
- // Attribute\r
- // =========\r
- protected ${myExtendedDaoClassName} _dao;\r
-\r
- // ===================================================================================\r
// Table name\r
// ==========\r
/** @return The name on database of table. (NotNull) */\r
// ===================================================================================\r
// DBMeta\r
// ======\r
- /** @return The meta data of the database. (NotNull) */\r
- public ${glDBMetaInterfaceName} getDBMeta() { return ${myDBMetaClassName}.getInstance(); }\r
+ /** @return The instance of DBMeta. (NotNull) */\r
+ public DBMeta getDBMeta() { return ${myDBMetaClassName}.getInstance(); }\r
\r
- /** @return The meta data of the database as my table type. (NotNull) */\r
+ /** @return The instance of DBMeta as my table type. (NotNull) */\r
public ${myDBMetaClassName} getMyDBMeta() { return ${myDBMetaClassName}.getInstance(); }\r
\r
// ===================================================================================\r
- // Dao Accessor\r
- // ============\r
- public ${myExtendedDaoClassName} getMyDao() { return _dao; }\r
- public void setMyDao(${myExtendedDaoClassName} dao) { assertObjectNotNull("dao", dao); _dao = dao; }\r
- public ${glDaoReadableInterfaceName} getDaoReadable() { return getMyDao(); }\r
-#if ($table.isWritable())\r
- public ${glDaoWritableInterfaceName} getDaoWritable() { return getMyDao(); }\r
-#end\r
-\r
- // ===================================================================================\r
// New Instance\r
// ============\r
- public ${glEntityInterfaceName} newEntity() { return newMyEntity(); }\r
- public ${glConditionBeanInterfaceName} newConditionBean() { return newMyConditionBean(); }\r
+ public Entity newEntity() { return newMyEntity(); }\r
+ public ConditionBean newConditionBean() { return newMyConditionBean(); }\r
public ${myExtendedObjectClassName} newMyEntity() { return new ${myExtendedObjectClassName}(); }\r
public ${myConditionBeanClassName} newMyConditionBean() { return new ${myConditionBeanClassName}(); }\r
\r
// ===================================================================================\r
+ // Current DBDef\r
+ // =============\r
+ @Override\r
+ protected DBDef getCurrentDBDef() {\r
+ return ${glDBCurrent}.getInstance().currentDBDef();\r
+ }\r
+\r
+ // ===================================================================================\r
+ // Default StatementConfig\r
+ // =======================\r
+ @Override\r
+ protected StatementConfig getDefaultStatementConfig() {\r
+ return ${glDBFluteConfig}.getInstance().getDefaultStatementConfig();\r
+ }\r
+ \r
+ // ===================================================================================\r
// Count Select\r
// ============\r
/**\r
- * Select the count of the condition-bean. {IgnorePagingCondition}\r
+ * Select the count by the condition-bean. {IgnorePagingCondition}\r
* @param cb The condition-bean of ${myExtendedObjectClassName}. (NotNull)\r
* @return The selected count.\r
*/\r
public int selectCount(${myConditionBeanClassName} cb) {\r
- assertConditionBeanNotNull(cb);\r
+ assertCBNotNull(cb);\r
return delegateSelectCount(cb);\r
}\r
+ \r
+ // ===================================================================================\r
+ // Cursor Select\r
+ // =============\r
+ /**\r
+ * Select the cursor by the condition-bean. <br />\r
+ * Attention: It has a mapping cost from result set to entity.\r
+ * @param cb The condition-bean of ${myExtendedObjectClassName}. (NotNull)\r
+ * @param entityRowHandler The handler of entity row of ${myExtendedObjectClassName}. (NotNull)\r
+ */\r
+ public void selectCursor(${myConditionBeanClassName} cb, EntityRowHandler<${myExtendedObjectClassName}> entityRowHandler) {\r
+ assertCBNotNull(cb); assertObjectNotNull("entityRowHandler<${myExtendedObjectClassName}>", entityRowHandler);\r
+ delegateSelectCursor(cb, entityRowHandler);\r
+ }\r
\r
// ===================================================================================\r
// Entity Select\r
* Select the entity by the condition-bean.\r
* @param cb The condition-bean of ${myExtendedObjectClassName}. (NotNull)\r
* @return The selected entity. (Nullalble)\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
+ * @exception org.seasar.dbflute.exception.EntityDuplicatedException When the entity has been duplicated.\r
*/\r
public ${myExtendedObjectClassName} selectEntity(final ${myConditionBeanClassName} cb) {\r
return helpSelectEntityInternally(cb, new InternalSelectEntityCallback<${myExtendedObjectClassName}, ${myConditionBeanClassName}>() {\r
* Select the entity by the condition-bean with deleted check.\r
* @param cb The condition-bean of ${myExtendedObjectClassName}. (NotNull)\r
* @return The selected entity. (NotNull)\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyDeletedException When the entity has already been deleted.\r
+ * @exception org.seasar.dbflute.exception.EntityDuplicatedException When the entity has been duplicated.\r
*/\r
public ${myExtendedObjectClassName} selectEntityWithDeletedCheck(final ${myConditionBeanClassName} cb) {\r
return helpSelectEntityWithDeletedCheckInternally(cb, new InternalSelectEntityWithDeletedCheckCallback<${myExtendedObjectClassName}, ${myConditionBeanClassName}>() {\r
* Select the entity with deleted check. {by primary-key value}\r
* @param primaryKey The keys of primary.\r
* @return The selected entity. (NotNull)\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyDeletedException When the entity has already been deleted.\r
+ * @exception org.seasar.dbflute.exception.EntityDuplicatedException When the entity has been duplicated.\r
*/\r
public ${myExtendedObjectClassName} selectByPKValueWithDeletedCheck(${table.PrimaryKeyArgsString}) {\r
${myExtendedObjectClassName} entity = new ${myExtendedObjectClassName}();\r
* @param cb The condition-bean of ${myExtendedObjectClassName}. (NotNull)\r
* @return The result bean of selected list. (NotNull)\r
*/\r
- public ${glListResultBeanName}<${myExtendedObjectClassName}> selectList(${myConditionBeanClassName} cb) {\r
- assertConditionBeanNotNull(cb);\r
- return new ${glResultBeanBuilderName}<${myExtendedObjectClassName}>(getTableDbName()).buildListResultBean(cb, delegateSelectList(cb));\r
+ public ListResultBean<${myExtendedObjectClassName}> selectList(${myConditionBeanClassName} cb) {\r
+ assertCBNotNull(cb);\r
+ return new ResultBeanBuilder<${myExtendedObjectClassName}>(getTableDbName()).buildListResultBean(cb, delegateSelectList(cb));\r
}\r
\r
// ===================================================================================\r
* @param cb The condition-bean of ${myExtendedObjectClassName}. (NotNull)\r
* @return The result bean of selected page. (NotNull)\r
*/\r
- public ${glPagingResultBeanName}<${myExtendedObjectClassName}> selectPage(final ${myConditionBeanClassName} cb) {\r
- assertConditionBeanNotNull(cb);\r
- final ${glPagingInvokerName}<${myExtendedObjectClassName}> invoker = new ${glPagingInvokerName}<${myExtendedObjectClassName}>(getTableDbName());\r
- final ${glPagingHandlerName}<${myExtendedObjectClassName}> handler = new ${glPagingHandlerName}<${myExtendedObjectClassName}>() {\r
- public ${glPagingBeanInterfaceName} getPagingBean() { return cb; }\r
+ public PagingResultBean<${myExtendedObjectClassName}> selectPage(final ${myConditionBeanClassName} cb) {\r
+ assertCBNotNull(cb);\r
+ final PagingInvoker<${myExtendedObjectClassName}> invoker = new PagingInvoker<${myExtendedObjectClassName}>(getTableDbName());\r
+ final PagingHandler<${myExtendedObjectClassName}> handler = new PagingHandler<${myExtendedObjectClassName}>() {\r
+ public PagingBean getPagingBean() { return cb; }\r
public int count() { return selectCount(cb); }\r
public List<${myExtendedObjectClassName}> paging() { return selectList(cb); }\r
};\r
}\r
\r
// ===================================================================================\r
- // Various Select\r
- // ==============\r
+ // Scalar Select\r
+ // =============\r
/**\r
- * Select the list of value-label.\r
- * @param cb The condition-bean of ${myExtendedObjectClassName}. (NotNull)\r
- * @param valueLabelSetupper The setupper of value-label. (NotNull)\r
- * @return The list of value-label. (NotNull)\r
+ * Select the scalar value derived by a function. <br />\r
+ * Call a function method after this method called like as follows:\r
+ * <pre>\r
+ * ${table.uncapitalisedJavaName}Bhv.scalarSelect(Date.class).max(new ScalarQuery(${myConditionBeanClassName} cb) {\r
+ * cb.specify().columnXxxDatetime(); // the required specification of target column\r
+ * cb.query().setXxxName_PrefixSearch("S"); // query as you like it\r
+ * });\r
+ * </pre>\r
+ * @param <RESULT> The type of result.\r
+ * @param resultType The type of result. (NotNull)\r
+ * @return The scalar value derived by a function. (Nullable)\r
*/\r
- public List<java.util.Map<String, Object>> selectValueLabelList(${myConditionBeanClassName} cb, ${glValueLabelSetupperName}<${myExtendedObjectClassName}> valueLabelSetupper) {\r
- return createValueLabelList(selectList(cb), valueLabelSetupper);\r
+ public <RESULT> SLFunction<${myConditionBeanClassName}, RESULT> scalarSelect(Class<RESULT> resultType) {\r
+ ${myConditionBeanClassName} cb = newMyConditionBean();\r
+ cb.xsetupForScalarSelect();\r
+ cb.getSqlClause().disableSelectIndex(); // for when you use union\r
+ return new SLFunction<${myConditionBeanClassName}, RESULT>(cb, resultType);\r
}\r
-\r
#if ($table.isUseSequence())\r
+\r
// ===================================================================================\r
// Sequence\r
// ========\r
return delegateSelectNextVal();\r
}\r
#end\r
-\r
#if (${table.hasOnlyOnePrimaryKey()})\r
+\r
// ===================================================================================\r
// Load Referrer\r
// =============\r
#set ($genericPKMyEntityMap = "${table.getPrimaryKeyJavaNativeAsOne()}, ${myExtendedObjectClassName}")\r
#set ($genericPKChildListMap = "${table.getPrimaryKeyJavaNativeAsOne()}, List<${referrerEntityClassName}>")\r
#if (!${referrer.isOneToOne()})\r
-#if ($database.isMakeBehaviorNoConditionLoadReferrer())\r
/**\r
- * {Refer to overload method that has an argument of condition-bean setupper.}\r
- * @param ${myEntityListVariableName} The entity list of ${table.javaBeansRulePropertyName}. (NotNull)\r
+ * {Refer to overload method that has an argument of the list of entity.}\r
+ * @param ${myEntityVariableName} The entity of ${table.javaBeansRulePropertyName}. (NotNull)\r
+ * @param conditionBeanSetupper The instance of referrer condition-bean setupper for registering referrer condition. (NotNull)\r
*/\r
- public void load${referrer.referrerJavaBeansRulePropertyNameInitCap}(List<${myExtendedObjectClassName}> ${myEntityListVariableName}) {\r
- load${referrer.referrerJavaBeansRulePropertyNameInitCap}(${myEntityListVariableName}, new ${glConditionBeanSetupperName}<${referrerCBClassName}>() {\r
- public void setup(${referrerCBClassName} cb) {}});\r
+ public void load${referrer.referrerJavaBeansRulePropertyNameInitCap}(${myExtendedObjectClassName} ${myEntityVariableName}, ConditionBeanSetupper<${referrerCBClassName}> conditionBeanSetupper) {\r
+ xassLRArg(${myEntityVariableName}, conditionBeanSetupper);\r
+ load${referrer.referrerJavaBeansRulePropertyNameInitCap}(xnewLRLs(${myEntityVariableName}), conditionBeanSetupper);\r
}\r
-#end\r
/**\r
* Load referrer of ${referrer.referrerJavaBeansRulePropertyName} with the setupper for condition-bean of referrer. <br />\r
* About internal policy, the value of primary key(and others too) is treated as case-insensitive. <br />\r
* @param ${myEntityListVariableName} The entity list of ${table.javaBeansRulePropertyName}. (NotNull)\r
* @param conditionBeanSetupper The instance of referrer condition-bean setupper for registering referrer condition. (NotNull)\r
*/\r
- public void load${referrer.referrerJavaBeansRulePropertyNameInitCap}(List<${myExtendedObjectClassName}> ${myEntityListVariableName}, ${glConditionBeanSetupperName}<${referrerCBClassName}> conditionBeanSetupper) {\r
- assertObjectNotNull("${myEntityListVariableName}<${myExtendedObjectClassName}>", ${myEntityListVariableName});\r
- assertObjectNotNull("conditionBeanSetupper<${referrerCBClassName}>", conditionBeanSetupper);\r
- if (${myEntityListVariableName}.isEmpty()) { return; }\r
- load${referrer.referrerJavaBeansRulePropertyNameInitCap}(${myEntityListVariableName}, new ${glLoadReferrerOptionName}<${referrerCBClassName}, ${referrerEntityClassName}>(conditionBeanSetupper));\r
+ public void load${referrer.referrerJavaBeansRulePropertyNameInitCap}(List<${myExtendedObjectClassName}> ${myEntityListVariableName}, ConditionBeanSetupper<${referrerCBClassName}> conditionBeanSetupper) {\r
+ xassLRArg(${myEntityListVariableName}, conditionBeanSetupper);\r
+ load${referrer.referrerJavaBeansRulePropertyNameInitCap}(${myEntityListVariableName}, new LoadReferrerOption<${referrerCBClassName}, ${referrerEntityClassName}>(conditionBeanSetupper));\r
+ }\r
+ /**\r
+ * {Refer to overload method that has an argument of the list of entity.}\r
+ * @param ${myEntityVariableName} The entity of ${table.javaBeansRulePropertyName}. (NotNull)\r
+ * @param loadReferrerOption The option of load-referrer. (NotNull)\r
+ */\r
+ public void load${referrer.referrerJavaBeansRulePropertyNameInitCap}(${myExtendedObjectClassName} ${myEntityVariableName}, LoadReferrerOption<${referrerCBClassName}, ${referrerEntityClassName}> loadReferrerOption) {\r
+ xassLRArg(${myEntityVariableName}, loadReferrerOption);\r
+ load${referrer.referrerJavaBeansRulePropertyNameInitCap}(xnewLRLs(${myEntityVariableName}), loadReferrerOption);\r
}\r
/**\r
* {Refer to overload method that has an argument of condition-bean setupper.}\r
* @param ${myEntityListVariableName} The entity list of ${table.javaBeansRulePropertyName}. (NotNull)\r
* @param loadReferrerOption The option of load-referrer. (NotNull)\r
*/\r
- public void load${referrer.referrerJavaBeansRulePropertyNameInitCap}(List<${myExtendedObjectClassName}> ${myEntityListVariableName}, ${glLoadReferrerOptionName}<${referrerCBClassName}, ${referrerEntityClassName}> loadReferrerOption) {\r
- assertObjectNotNull("${myEntityListVariableName}<${myExtendedObjectClassName}>", ${myEntityListVariableName});\r
- assertObjectNotNull("loadReferrerOption<${referrerEntityClassName}, ${referrerCBClassName}>", loadReferrerOption);\r
+ public void load${referrer.referrerJavaBeansRulePropertyNameInitCap}(List<${myExtendedObjectClassName}> ${myEntityListVariableName}, LoadReferrerOption<${referrerCBClassName}, ${referrerEntityClassName}> loadReferrerOption) {\r
+ xassLRArg(${myEntityListVariableName}, loadReferrerOption);\r
if (${myEntityListVariableName}.isEmpty()) { return; }\r
final ${referrerBhvClassName} referrerBhv = xgetBSFLR().select(${referrerBhvClassName}.class);\r
helpLoadReferrerInternally(${myEntityListVariableName}, loadReferrerOption, new InternalLoadReferrerCallback<${myExtendedObjectClassName}, ${table.getPrimaryKeyJavaNativeAsOne()}, ${referrerCBClassName}, ${referrerEntityClassName}>() {\r
public void callbackReferrer_setForeignEntity(${referrerEntityClassName} referrerEntity, ${myExtendedObjectClassName} baseEntity) { referrerEntity.set${referrer.foreignPropertyNameInitCap}(baseEntity); }\r
} );\r
}\r
+\r
#end\r
#end\r
#end\r
-\r
// ===================================================================================\r
- // Pullout Foreign\r
- // ===============\r
+ // Pull out Foreign\r
+ // ================\r
#foreach ($foreignKeys in $table.foreignKeys)\r
#set ($foreignEntityClassName = "${foreignKeys.foreignTableExtendedEntityClassName}")\r
/**\r
}\r
#end\r
#foreach ($referrer in $table.referrers)\r
- #set ($referrerTable = $referrer.table)\r
- #set ($referrerEntityClassName = "${glProjectPrefix}${referrerTable.javaName}")\r
- #if (${referrer.isOneToOne()})\r
+#set ($referrerTable = $referrer.table)\r
+#set ($referrerEntityClassName = "${glProjectPrefix}${referrerTable.javaName}")\r
+#if (${referrer.isOneToOne()})\r
/**\r
* Pull out the list of referrer-as-one table '${referrerEntityClassName}'.\r
* @param ${myEntityListVariableName} The list of ${table.uncapitalisedJavaName}. (NotNull)\r
return helpPulloutInternally(${myEntityListVariableName}, new InternalPulloutCallback<${myExtendedObjectClassName}, ${referrerEntityClassName}>() {\r
public ${referrerEntityClassName} callbackGetForeignEntity(${myExtendedObjectClassName} entity) { return entity.get${referrer.referrerPropertyNameInitCapAsOne}(); } });\r
}\r
- #end\r
+#end\r
#end\r
#if ($table.isWritable())\r
\r
/**\r
* Insert the entity.\r
* @param ${myEntityVariableName} The entity of insert target. (NotNull)\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyExistsException} When the entity already exists. (Unique Constraint Violation)\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyExistsException When the entity already exists. (Unique Constraint Violation)\r
*/\r
public void insert(${myExtendedObjectClassName} ${myEntityVariableName}) {\r
assertEntityNotNull(${myEntityVariableName});\r
}\r
\r
@Override\r
- protected void doCreate(${glEntityInterfaceName} ${myEntityVariableName}) {\r
+ protected void doCreate(Entity ${myEntityVariableName}) {\r
insert((${myExtendedObjectClassName})${myEntityVariableName});\r
}\r
\r
* Update the entity modified-only. {UpdateCountZeroException, ConcurrencyControl}\r
* @param ${myEntityVariableName} The entity of update target. (NotNull) {PrimaryKeyRequired, ConcurrencyColumnRequired}\r
#if ($table.hasOptimisticLock())\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyUpdatedException} When the entity has already been updated.\r
+ * @exception org.seasar.dbflute.exception.${glEntityAlreadyUpdatedException} When the entity has already been updated.\r
#else\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyDeletedException When the entity has already been deleted.\r
#end\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyExistsException} When the entity already exists. (Unique Constraint Violation)\r
+ * @exception org.seasar.dbflute.exception.EntityDuplicatedException When the entity has been duplicated.\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyExistsException When the entity already exists. (Unique Constraint Violation)\r
*/\r
public void update(final ${myExtendedObjectClassName} ${myEntityVariableName}) {\r
helpUpdateInternally(${myEntityVariableName}, new InternalUpdateCallback<${myExtendedObjectClassName}>() {\r
}\r
\r
@Override\r
- protected void doModify(${glEntityInterfaceName} entity) {\r
+ protected void doModify(Entity entity) {\r
update((${myExtendedObjectClassName})entity);\r
}\r
#if ($table.hasOptimisticLock())\r
/**\r
* Update the entity non-strictly modified-only. {UpdateCountZeroException, NonConcurrencyControl}\r
* @param ${myEntityVariableName} The entity of update target. (NotNull) {PrimaryKeyRequired}\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyExistsException} When the entity already exists. (Unique Constraint Violation)\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyDeletedException When the entity has already been deleted.\r
+ * @exception org.seasar.dbflute.exception.EntityDuplicatedException When the entity has been duplicated.\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyExistsException When the entity already exists. (Unique Constraint Violation)\r
*/\r
public void updateNonstrict(final ${myExtendedObjectClassName} ${myEntityVariableName}) {\r
helpUpdateNonstrictInternally(${myEntityVariableName}, new InternalUpdateNonstrictCallback<${myExtendedObjectClassName}>() {\r
#end\r
\r
@Override\r
- protected void doModifyNonstrict(${glEntityInterfaceName} entity) {\r
-#if ($database.isVersionAfter1040() && ($table.isUseUpdateDate() || $table.isUseVersionNo()))\r
+ protected void doModifyNonstrict(Entity entity) {\r
+#if ($table.hasOptimisticLock())\r
updateNonstrict((${myExtendedObjectClassName})entity);\r
#else\r
update((${myExtendedObjectClassName})entity);\r
* Insert or update the entity modified-only. {ConcurrencyControl(when update)}\r
* @param ${myEntityVariableName} The entity of insert or update target. (NotNull)\r
#if ($table.hasOptimisticLock())\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyUpdatedException} When the entity has already been updated.\r
+ * @exception org.seasar.dbflute.exception.${glEntityAlreadyUpdatedException} When the entity has already been updated.\r
#else\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyDeletedException When the entity has already been deleted.\r
#end\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyExistsException} When the entity already exists. (Unique Constraint Violation)\r
+ * @exception org.seasar.dbflute.exception.EntityDuplicatedException When the entity has been duplicated.\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyExistsException When the entity already exists. (Unique Constraint Violation)\r
*/\r
public void insertOrUpdate(final ${myExtendedObjectClassName} ${myEntityVariableName}) {\r
helpInsertOrUpdateInternally(${myEntityVariableName}, new InternalInsertOrUpdateCallback<${myExtendedObjectClassName}, ${myConditionBeanClassName}>() {\r
}\r
\r
@Override\r
- protected void doCreateOrUpdate(${glEntityInterfaceName} ${myEntityVariableName}) {\r
+ protected void doCreateOrUpdate(Entity ${myEntityVariableName}) {\r
insertOrUpdate((${myExtendedObjectClassName})${myEntityVariableName});\r
}\r
#if ($table.hasOptimisticLock())\r
/**\r
* Insert or update the entity non-strictly modified-only. {NonConcurrencyControl(when update)}\r
* @param ${myEntityVariableName} The entity of insert or update target. (NotNull)\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyExistsException} When the entity already exists. (Unique Constraint Violation)\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyDeletedException When the entity has already been deleted.\r
+ * @exception org.seasar.dbflute.exception.EntityDuplicatedException When the entity has been duplicated.\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyExistsException When the entity already exists. (Unique Constraint Violation)\r
*/\r
public void insertOrUpdateNonstrict(${myExtendedObjectClassName} ${myEntityVariableName}) {\r
helpInsertOrUpdateInternally(${myEntityVariableName}, new InternalInsertOrUpdateNonstrictCallback<${myExtendedObjectClassName}>() {\r
#end\r
\r
@Override\r
- protected void doCreateOrUpdateNonstrict(${glEntityInterfaceName} entity) {\r
+ protected void doCreateOrUpdateNonstrict(Entity entity) {\r
#if ($table.isUseUpdateDate() || $table.isUseVersionNo())\r
insertOrUpdateNonstrict((${myExtendedObjectClassName})entity);\r
#else\r
* Delete the entity. {UpdateCountZeroException, ConcurrencyControl}\r
* @param ${myEntityVariableName} The entity of delete target. (NotNull) {PrimaryKeyRequired, ConcurrencyColumnRequired}\r
#if ($table.hasOptimisticLock())\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyUpdatedException} When the entity has already been updated.\r
+ * @exception org.seasar.dbflute.exception.${glEntityAlreadyUpdatedException} When the entity has already been updated.\r
#else\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyDeletedException When the entity has already been deleted.\r
#end\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
+ * @exception org.seasar.dbflute.exception.EntityDuplicatedException When the entity has been duplicated.\r
*/\r
public void delete(${myExtendedObjectClassName} ${myEntityVariableName}) {\r
helpDeleteInternally(${myEntityVariableName}, new InternalDeleteCallback<${myExtendedObjectClassName}>() {\r
}\r
\r
@Override\r
- protected void doRemove(${glEntityInterfaceName} ${myEntityVariableName}) {\r
+ protected void doRemove(Entity ${myEntityVariableName}) {\r
delete((${myExtendedObjectClassName})${myEntityVariableName});\r
}\r
#if ($table.hasOptimisticLock())\r
/**\r
* Delete the entity non-strictly. {UpdateCountZeroException, NonConcurrencyControl}\r
* @param ${myEntityVariableName} Entity. (NotNull) {PrimaryKeyRequired}\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyDeletedException When the entity has already been deleted.\r
+ * @exception org.seasar.dbflute.exception.EntityDuplicatedException When the entity has been duplicated.\r
*/\r
public void deleteNonstrict(${myExtendedObjectClassName} ${myEntityVariableName}) {\r
helpDeleteNonstrictInternally(${myEntityVariableName}, new InternalDeleteNonstrictCallback<${myExtendedObjectClassName}>() {\r
/**\r
* Delete the entity non-strictly ignoring deleted. {UpdateCountZeroException, NonConcurrencyControl}\r
* @param ${myEntityVariableName} Entity. (NotNull) {PrimaryKeyRequired}\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
+ * @exception org.seasar.dbflute.exception.EntityDuplicatedException When the entity has been duplicated.\r
*/\r
public void deleteNonstrictIgnoreDeleted(${myExtendedObjectClassName} ${myEntityVariableName}) {\r
helpDeleteNonstrictIgnoreDeletedInternally(${myEntityVariableName}, new InternalDeleteNonstrictIgnoreDeletedCallback<${myExtendedObjectClassName}>() {\r
* @param ${myEntityListVariableName} The list of the entity. (NotNull)\r
* @return The array of updated count.\r
#if ($table.hasOptimisticLock())\r
- * @exception ${glPackageBaseCommonException}.${glBatchEntityAlreadyUpdatedException} When the entity has already been updated. This exception extends ${glEntityAlreadyUpdateException}.\r
+ * @exception org.seasar.dbflute.exception.BatchEntityAlreadyUpdatedException When the entity has already been updated. This exception extends ${glEntityAlreadyUpdateException}.\r
#else\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyDeletedException When the entity has already been deleted.\r
#end\r
*/\r
public int[] batchUpdate(List<${myExtendedObjectClassName}> ${myEntityListVariableName}) {\r
* This method use 'Batch Update' of java.sql.PreparedStatement.\r
* @param ${myEntityListVariableName} The list of the entity. (NotNull)\r
* @return The array of updated count.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyDeletedException When the entity has already been deleted.\r
*/\r
public int[] batchUpdateNonstrict(List<${myExtendedObjectClassName}> ${myEntityListVariableName}) {\r
assertObjectNotNull("${myEntityListVariableName}", ${myEntityListVariableName});\r
* @param ${myEntityListVariableName} The list of the entity. (NotNull)\r
* @return The array of deleted count.\r
#if ($table.hasOptimisticLock())\r
- * @exception ${glPackageBaseCommonException}.${glBatchEntityAlreadyUpdatedException} When the entity has already been updated. This exception extends ${glEntityAlreadyUpdateException}.\r
+ * @exception org.seasar.dbflute.exception.BatchEntityAlreadyUpdatedException When the entity has already been updated. This exception extends ${glEntityAlreadyUpdateException}.\r
#else\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyDeletedException When the entity has already been deleted.\r
#end\r
*/\r
public int[] batchDelete(List<${myExtendedObjectClassName}> ${myEntityListVariableName}) {\r
* This method use 'Batch Update' of java.sql.PreparedStatement.\r
* @param ${myEntityListVariableName} The list of the entity. (NotNull)\r
* @return The array of deleted count.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
+ * @exception org.seasar.dbflute.exception.EntityAlreadyDeletedException When the entity has already been deleted.\r
*/\r
public int[] batchDeleteNonstrict(List<${myExtendedObjectClassName}> ${myEntityListVariableName}) {\r
assertObjectNotNull("${myEntityListVariableName}", ${myEntityListVariableName});\r
* @return The updated count.\r
*/\r
public int queryUpdate(${myExtendedObjectClassName} ${myEntityVariableName}, ${myConditionBeanClassName} cb) {\r
- assertObjectNotNull("${myEntityVariableName}", ${myEntityVariableName}); assertConditionBeanNotNull(cb);\r
+ assertObjectNotNull("${myEntityVariableName}", ${myEntityVariableName}); assertCBNotNull(cb);\r
setupCommonColumnOfUpdateIfNeeds(${myEntityVariableName});\r
filterEntityOfUpdate(${myEntityVariableName}); assertEntityOfUpdate(${myEntityVariableName});\r
- return getMyDao().updateByQuery(cb, ${myEntityVariableName});\r
+ return invoke(createQueryUpdateEntityCBCommand(${myEntityVariableName}, cb));\r
}\r
\r
/**\r
* @return The deleted count.\r
*/\r
public int queryDelete(${myConditionBeanClassName} cb) {\r
- assertConditionBeanNotNull(cb);\r
- return getMyDao().deleteByQuery(cb);\r
+ assertCBNotNull(cb);\r
+ return invoke(createQueryDeleteCBCommand(cb));\r
}\r
#end\r
+#else\r
+#if ($table.isAvailableNonPrimaryKeyWritable())\r
\r
// ===================================================================================\r
- // Various Update\r
- // ==============\r
-#if ($database.isMakeBehaviorCopyInsert())\r
-#if ($table.isUseIdentity())\r
-#if ($table.hasPrimaryKey())\r
-\r
- /* (non-javadoc) \r
- * Copy-insert.\r
- * @param primaryKey Primary-keys. (NotNull)\r
- * @return Inserted count.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException}\r
+ // Entity Update\r
+ // =============\r
+ /**\r
+ * Insert.\r
+ * @param ${myEntityVariableName} Entity. (NotNull)\r
*/\r
- public int copyInsertByPKValueAfterSelect(${table.PrimaryKeyArgsString}) {\r
+ public void insert(${myExtendedObjectClassName} ${myEntityVariableName}) {\r
+ assertEntityNotNull(${myEntityVariableName});\r
+ delegateInsert(${myEntityVariableName});\r
+ }\r
+#end\r
+#end\r
+#if ($table.isBuriTarget())\r
+\r
+ // ===================================================================================\r
+ // Buri Interface\r
+ // ==============\r
+ public ${myExtendedObjectClassName} xgetEntityForBuri(${table.primaryKeyArgsString}) { // For Buri\r
${myExtendedObjectClassName} entity = new ${myExtendedObjectClassName}();\r
${table.getPrimaryKeyArgsSetupString('entity')}\r
- final ${myConditionBeanClassName} cb = newMyConditionBean();\r
+ ${myConditionBeanClassName} cb = newMyConditionBean();\r
cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString(entity));\r
- final ${myExtendedObjectClassName} currentEntity = selectEntityWithDeletedCheck(cb);\r
- return delegateInsert(currentEntity);\r
+ return selectEntity(cb);\r
}\r
-#end\r
\r
- /**\r
- * Filter 'copy-insert' entity.\r
- * @param ${myEntityVariableName} Entity. (NotNull)\r
- */\r
- protected void filterCopyInsertEntity(${myExtendedObjectClassName} ${myEntityVariableName}) {\r
+ public List<${myExtendedObjectClassName}> xgetEntitiesForBuri(List<${table.primaryKeyJavaNativeAsOne}> ids) { // For Buri\r
+ ${myConditionBeanClassName} cb = newMyConditionBean();\r
+ cb.query().set${table.primaryKeyAsOne.javaName}_InScope(ids);\r
+ return selectList(cb);\r
}\r
-#end\r
-#end\r
-#if ($database.isMakeBehaviorLoopUpdate())\r
- /**\r
- * Loop update modified elements only.\r
- * @param ${myEntityListVariableName} The list of entity. (NotNull and Empty OK)\r
- */\r
- public void loopUpdateModifiedElementsOnly(List<${myExtendedObjectClassName}> ${myEntityListVariableName}) {\r
- assertObjectNotNull("${myEntityListVariableName}", ${myEntityListVariableName});\r
- for (${myExtendedObjectClassName} entity : ${myEntityListVariableName}) { if (entity.hasModification()) { update(entity); } }\r
+\r
+ protected org.escafe.buri.engine.processor.SimpleBuriProcessor _simpleBuriProcessor;\r
+ public void setSimpleBuriProcessor(org.escafe.buri.engine.processor.SimpleBuriProcessor simpleBuriProcessor) {\r
+ _simpleBuriProcessor = simpleBuriProcessor;\r
}\r
+#foreach ($processName in $table.tableProcessForMethodNameList)\r
\r
-#if ($table.isUseUpdateDate() || $table.isUseVersionNo())\r
- /**\r
- * Loop update modified elements only non-strictly.\r
- * @param ${myEntityListVariableName} The list of entity. (NotNull and Empty OK)\r
- */\r
- public void loopUpdateModifiedElementsOnlyNonstrict(List<${myExtendedObjectClassName}> ${myEntityListVariableName}) {\r
- assertObjectNotNull("${myEntityListVariableName}", ${myEntityListVariableName});\r
- for (${myExtendedObjectClassName} entity : ${myEntityListVariableName}) { if (entity.hasModification()) { updateNonstrict(entity); } }\r
+ public void toNextStatus_${processName}(${myExtendedObjectClassName} ${myEntityVariableName}, ${glBuriDef}.${processName}_Action action) {\r
+ _simpleBuriProcessor.toNextStatusAction(${glBuriDef}.${processName}_Status.basePath(), ${myEntityVariableName}, action.code());\r
}\r
-#end\r
-#end\r
-#else\r
- #if ($table.isAvailableNonPrimaryKeyWritable())\r
\r
- // ===================================================================================\r
- // Entity Update\r
- // =============\r
- /**\r
- * Insert.\r
- * @param ${myEntityVariableName} Entity. (NotNull)\r
- */\r
- public void insert(${myExtendedObjectClassName} ${myEntityVariableName}) {\r
- assertEntityNotNull(${myEntityVariableName});\r
- delegateInsert(${myEntityVariableName});\r
+ public ${glBuriDef}.${processName}_Status getStatus_${processName}(${myExtendedObjectClassName} ${myEntityVariableName}) {\r
+ java.util.List<BuriPathData> buriPathDataList = xgetCurrentPathDataList(${myEntityVariableName});\r
+ java.util.List<${glBuriDef}.${processName}_Status> statusList = new java.util.ArrayList<${glBuriDef}.${processName}_Status>();\r
+ if (buriPathDataList.isEmpty()) { return null; }\r
+ for (BuriPathData buriPathData : buriPathDataList) {\r
+ ${glBuriDef}.${processName}_Status status = ${glBuriDef}.${processName}_Status.codeOf(buriPathData.getPathName());\r
+ if (status != null) { statusList.add(status); }\r
+ }\r
+ if (statusList.size() > 1) {\r
+ String msg = "This method does not support duplicate status: " + statusList;\r
+ throw new IllegalStateException(msg);\r
+ }\r
+ return !statusList.isEmpty() ? statusList.get(0) : null;\r
+ }\r
+\r
+ public java.util.List<${myExtendedObjectClassName}> getEntities(org.seasar.dbflute.bhv.ConditionBeanSetupper<${myConditionBeanClassName}> conditionBeanSetupper\r
+ , ${glBuriDef}.${processName}_Status... statuses) {\r
+ assertObjectNotNull("statuses", statuses);\r
+ ${myConditionBeanClassName} cb = newMyConditionBean();\r
+ cb.setupSelect_BuriPathData();\r
+ conditionBeanSetupper.setup(cb);\r
+ java.util.List<String> pathNameList = new java.util.ArrayList<String>();\r
+ for (${glBuriDef}.${processName}_Status status : statuses) {\r
+ pathNameList.add(status.fullPath());\r
+ }\r
+ cb.query().queryBuriPathData().setPathName_InScope(pathNameList);\r
+ return selectList(cb);\r
}\r
- #end\r
#end\r
\r
+ private List<BuriPathData> xgetCurrentPathDataList(${myExtendedObjectClassName} ${myEntityVariableName}) {\r
+ ${glPackageExtendedBhv}.BuriPathDataBhv bhv = xgetBuriPathDataBhv();\r
+ BuriPathDataCB cb = bhv.newMyConditionBean();\r
+ cb.specify().columnPathName();\r
+ cb.query().setPkeyNum_Equal(new Long(${myEntityVariableName}.${table.primaryKeyGetterCommaString}));\r
+ cb.query().setDataType_Equal(${myExtendedObjectClassName}.class.getName());\r
+ return bhv.selectList(cb);\r
+ }\r
+\r
+ private ${glPackageExtendedBhv}.BuriPathDataBhv xgetBuriPathDataBhv() {\r
+ return getBehaviorSelector().select(${glPackageExtendedBhv}.BuriPathDataBhv.class);\r
+ }\r
+#end\r
+ \r
// ===================================================================================\r
// Delegate Method\r
// ===============\r
+ // [Behavior Command]\r
// -----------------------------------------------------\r
// Select\r
// ------\r
-#if ($database.isMakeDeprecated())\r
- ${database.behaviorDelegateModifier} int delegateGetCountAll() { return delegateSelectCount(newMyConditionBean()); }\r
- ${database.behaviorDelegateModifier} List<${myExtendedObjectClassName}> delegateGetListAll() { return delegateSelectList(newMyConditionBean()); }\r
-#end\r
- ${database.behaviorDelegateModifier} int delegateSelectCount(${myConditionBeanClassName} cb) { assertConditionBeanNotNull(cb); return getMyDao().selectCount(cb); }\r
- ${database.behaviorDelegateModifier} List<${myExtendedObjectClassName}> delegateSelectList(${myConditionBeanClassName} cb) { assertConditionBeanNotNull(cb); return getMyDao().selectList(cb); }\r
+ protected int delegateSelectCount(${myConditionBeanClassName} cb) { return invoke(createSelectCountCBCommand(cb)); }\r
+ protected void delegateSelectCursor(${myConditionBeanClassName} cb, EntityRowHandler<${myExtendedObjectClassName}> entityRowHandler)\r
+ { invoke(createSelectCursorCBCommand(cb, entityRowHandler, ${myExtendedObjectClassName}.class)); }\r
+ protected int doCallReadCount(ConditionBean cb) { return delegateSelectCount((${myConditionBeanClassName})cb); }\r
+ protected List<${myExtendedObjectClassName}> delegateSelectList(${myConditionBeanClassName} cb)\r
+ { return invoke(createSelectListCBCommand(cb, ${myExtendedObjectClassName}.class)); }\r
+ @SuppressWarnings("unchecked")\r
+ protected List<Entity> doCallReadList(ConditionBean cb) { return (List)delegateSelectList((${myConditionBeanClassName})cb); }\r
#if ($table.isUseSequence())\r
- ${database.behaviorDelegateModifier} ${table.sequenceReturnType} delegateSelectNextVal() { return getMyDao().selectNextVal(); }\r
+ protected ${table.sequenceReturnType} delegateSelectNextVal() { return invoke(createSelectNextValCommand(${table.sequenceReturnType}.class)); }\r
#end\r
#if ($table.isWritable())\r
\r
// -----------------------------------------------------\r
// Update\r
// ------\r
- ${database.behaviorDelegateModifier} int delegateInsert(${myExtendedObjectClassName} e) { if (!processBeforeInsert(e)) { return 1; } return getMyDao().insert(e); }\r
- ${database.behaviorDelegateModifier} int delegateUpdate(${myExtendedObjectClassName} e) { if (!processBeforeUpdate(e)) { return 1; } return getMyDao().updateModifiedOnly(e); }\r
+ protected int delegateInsert(${myExtendedObjectClassName} e)\r
+ { if (!processBeforeInsert(e)) { return 1; } return invoke(createInsertEntityCommand(e)); }\r
+ protected int doCallCreate(Entity entity) {return delegateInsert(downcast(entity)); }\r
+ protected int delegateUpdate(${myExtendedObjectClassName} e)\r
+ { if (!processBeforeUpdate(e)) { return 1; } return invoke(createUpdateEntityCommand(e)); }\r
+ protected int doCallModify(Entity entity) { return delegateUpdate(downcast(entity)); }\r
#if ($table.hasOptimisticLock())\r
- ${database.behaviorDelegateModifier} int delegateUpdateNonstrict(${myExtendedObjectClassName} e) { if (!processBeforeUpdate(e)) { return 1; } return getMyDao().updateNonstrictModifiedOnly(e); }\r
+ protected int delegateUpdateNonstrict(${myExtendedObjectClassName} e)\r
+ { if (!processBeforeUpdate(e)) { return 1; } return invoke(createUpdateNonstrictEntityCommand(e)); }\r
#end\r
- ${database.behaviorDelegateModifier} int delegateDelete(${myExtendedObjectClassName} e) { if (!processBeforeDelete(e)) { return 1; } return getMyDao().delete(e); }\r
+ protected int delegateDelete(${myExtendedObjectClassName} e)\r
+ { if (!processBeforeDelete(e)) { return 1; } return invoke(createDeleteEntityCommand(e)); }\r
+ protected int doCallRemove(Entity entity) { return delegateDelete(downcast(entity)); }\r
#if ($table.hasOptimisticLock())\r
- ${database.behaviorDelegateModifier} int delegateDeleteNonstrict(${myExtendedObjectClassName} e) { if (!processBeforeDelete(e)) { return 1; } return getMyDao().deleteNonstrict(e); }\r
-#end\r
-\r
- ${database.behaviorDelegateModifier} int[] delegateInsertList(List<${myExtendedObjectClassName}> ls) {\r
- assertObjectNotNull("${myEntityListVariableName}", ls); return getMyDao().insertList(helpFilterBeforeInsertInternally(ls));\r
- }\r
- ${database.behaviorDelegateModifier} int[] delegateUpdateList(List<${myExtendedObjectClassName}> ls) {\r
- assertObjectNotNull("${myEntityListVariableName}", ls); return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls));\r
- }\r
+ protected int delegateDeleteNonstrict(${myExtendedObjectClassName} e)\r
+ { if (!processBeforeDelete(e)) { return 1; } return invoke(createDeleteNonstrictEntityCommand(e)); }\r
+#end\r
+\r
+ protected int[] delegateInsertList(List<${myExtendedObjectClassName}> ls)\r
+ { if (ls.isEmpty()) { return new int[]{}; } return invoke(createBatchInsertEntityCommand(helpFilterBeforeInsertInternally(ls))); }\r
+ @SuppressWarnings("unchecked")\r
+ protected int[] doCreateList(List<Entity> ls) { return delegateInsertList((List)ls); }\r
+ protected int[] delegateUpdateList(List<${myExtendedObjectClassName}> ls)\r
+ { if (ls.isEmpty()) { return new int[]{}; } return invoke(createBatchUpdateEntityCommand(helpFilterBeforeUpdateInternally(ls))); }\r
+ @SuppressWarnings("unchecked")\r
+ protected int[] doModifyList(List<Entity> ls) { return delegateUpdateList((List)ls); }\r
#if ($table.hasOptimisticLock())\r
- ${database.behaviorDelegateModifier} int[] delegateUpdateListNonstrict(List<${myExtendedObjectClassName}> ls) {\r
- assertObjectNotNull("${myEntityListVariableName}", ls); return getMyDao().updateListNonstrict(helpFilterBeforeUpdateInternally(ls));\r
- }\r
+ protected int[] delegateUpdateListNonstrict(List<${myExtendedObjectClassName}> ls)\r
+ { if (ls.isEmpty()) { return new int[]{}; } return invoke(createBatchUpdateNonstrictEntityCommand(helpFilterBeforeUpdateInternally(ls))); }\r
#end\r
- ${database.behaviorDelegateModifier} int[] delegateDeleteList(List<${myExtendedObjectClassName}> ls) {\r
- assertObjectNotNull("${myEntityListVariableName}", ls); return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls));\r
- }\r
+ protected int[] delegateDeleteList(List<${myExtendedObjectClassName}> ls)\r
+ { if (ls.isEmpty()) { return new int[]{}; } return invoke(createBatchDeleteEntityCommand(helpFilterBeforeDeleteInternally(ls))); }\r
+ @SuppressWarnings("unchecked")\r
+ protected int[] doRemoveList(List<Entity> ls) { return delegateDeleteList((List)ls); }\r
#if ($table.hasOptimisticLock())\r
- ${database.behaviorDelegateModifier} int[] delegateDeleteListNonstrict(List<${myExtendedObjectClassName}> ls) {\r
- assertObjectNotNull("${myEntityListVariableName}", ls); return getMyDao().deleteListNonstrict(helpFilterBeforeDeleteInternally(ls));\r
- }\r
+ protected int[] delegateDeleteListNonstrict(List<${myExtendedObjectClassName}> ls)\r
+ { if (ls.isEmpty()) { return new int[]{}; } return invoke(createBatchDeleteNonstrictEntityCommand(helpFilterBeforeDeleteInternally(ls))); }\r
#end\r
#else\r
#if ($table.isAvailableNonPrimaryKeyWritable())\r
- ${database.behaviorDelegateModifier} int delegateInsert(${myExtendedObjectClassName} entity) {\r
- assertEntityNotNull(entity);// If this table use identity, the entity does not have primary-key.\r
- return getMyDao().insert(entity);\r
+ protected int delegateInsert(${myExtendedObjectClassName} e) {\r
+ assertEntityNotNull(e); // If this table use identity, the entity does not have primary-key.\r
+ filterEntityOfInsert(e);\r
+ return invoke(createInsertEntityCommand(e));\r
+ }\r
+ protected InsertEntityCommand createInsertEntityCommand(Entity entity) {\r
+ assertBehaviorCommandInvoker("createInsertEntityCommand");\r
+ final InsertEntityCommand cmd = new InsertEntityCommand();\r
+ cmd.setTableDbName(getTableDbName());\r
+ _behaviorCommandInvoker.injectComponentProperty(cmd);\r
+ cmd.setEntityType(entity.getClass());\r
+ cmd.setEntity(entity);\r
+ return cmd;\r
}\r
#end\r
#end\r
// ===============\r
#if ($table.hasBehaviorFilterBeforeInsertColumn())\r
@Override\r
- protected void filterEntityOfInsert(${glEntityInterfaceName} targetEntity) {\r
+ protected void filterEntityOfInsert(Entity targetEntity) {\r
super.filterEntityOfInsert(targetEntity);\r
${myExtendedObjectClassName} entity = downcast(targetEntity);\r
#foreach ($column in $table.behaviorFilterBeforeInsertColumnList)\r
#end\r
}\r
#end\r
+#if ($table.isWritable())\r
#if ($table.hasBehaviorFilterBeforeUpdateColumn())\r
@Override\r
- protected void filterEntityOfUpdate(${glEntityInterfaceName} targetEntity) {\r
+ protected void filterEntityOfUpdate(Entity targetEntity) {\r
super.filterEntityOfUpdate(targetEntity);\r
${myExtendedObjectClassName} entity = downcast(targetEntity);\r
#foreach ($column in $table.behaviorFilterBeforeUpdateColumnList)\r
}\r
#end\r
#end\r
+#end\r
#if ($database.isMakeFlatExpansion())\r
\r
// ===================================================================================\r
* @param <SOURCE> The type of source.\r
* @return Hierarchy request of ${myExtendedObjectClassName}. (NotNull)\r
*/\r
- public <SOURCE> ${glHierarchyBasicRequestName}<${myExtendedObjectClassName}, ${myDBMetaClassName}.${table.relationTraceClassName}RelationTrace> createHierarchyBasicRequest(List<SOURCE> sourceList) {\r
- final ${glHierarchyBasicRequestName}<${myExtendedObjectClassName}, ${myDBMetaClassName}.${table.relationTraceClassName}RelationTrace> request = new ${glHierarchyBasicRequestName}<${myExtendedObjectClassName}, ${myDBMetaClassName}.${table.relationTraceClassName}RelationTrace>(${myExtendedObjectClassName}.class);\r
+ public <SOURCE> ${glHierarchyBasicRequest}<${myExtendedObjectClassName}, ${myDBMetaClassName}.${table.relationTraceClassName}RelationTrace> createHierarchyBasicRequest(List<SOURCE> sourceList) {\r
+ final ${glHierarchyBasicRequest}<${myExtendedObjectClassName}, ${myDBMetaClassName}.${table.relationTraceClassName}RelationTrace> request = new ${glHierarchyBasicRequest}<${myExtendedObjectClassName}, ${myDBMetaClassName}.${table.relationTraceClassName}RelationTrace>(${myExtendedObjectClassName}.class);\r
request.registerSourceList(sourceList);\r
return request;\r
}\r
* @param request Hierarchy request of ${myExtendedObjectClassName}. (NotNull)\r
* @return The list of ${myExtendedObjectClassName}. (NotNull)\r
*/\r
- public List<${myExtendedObjectClassName}> arrangeHierarchy(${glHierarchyRequestName}<${myExtendedObjectClassName}> request) {\r
- return new ${glHierarchyArrangerName}<${myExtendedObjectClassName}>().arrangeHierarchy(request);\r
+ public List<${myExtendedObjectClassName}> arrangeHierarchy(${glHierarchyRequest}<${myExtendedObjectClassName}> request) {\r
+ return new ${glHierarchyArranger}<${myExtendedObjectClassName}>().arrangeHierarchy(request);\r
}\r
#end\r
\r
// Optimistic Lock Info\r
// ====================\r
@Override\r
- protected boolean hasVersionNoValue(${glEntityInterfaceName} entity) {\r
+ protected boolean hasVersionNoValue(Entity entity) {\r
#if ($table.isUseVersionNo())\r
return !(downcast(entity).get${table.versionNoJavaName}() + "").equals("null");// For primitive type\r
#else\r
}\r
\r
@Override\r
- protected boolean hasUpdateDateValue(${glEntityInterfaceName} entity) {\r
+ protected boolean hasUpdateDateValue(Entity entity) {\r
#if ($table.isUseUpdateDate())\r
return downcast(entity).get${table.updateDateJavaName}() != null;\r
#else\r
// ===================================================================================\r
// Helper\r
// ======\r
- protected ${myExtendedObjectClassName} downcast(${glEntityInterfaceName} entity) {\r
+ protected ${myExtendedObjectClassName} downcast(Entity entity) {\r
return helpDowncastInternally(entity, ${myExtendedObjectClassName}.class);\r
}\r
}\r
${database.allClassCopyright}package ${myBaseDaoCursorPackageName};\r
#set ($myClassName = "${myBaseTypeSafeCursorClassName}")\r
\r
+import java.sql.ResultSet;\r
+import java.sql.SQLException;\r
+\r
+import org.seasar.dbflute.util.DfTypeUtil;\r
+\r
/**\r
* The cursor of ${table.name}.\r
* @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
+ */\r
public class ${myClassName} {\r
\r
// ===================================================================================\r
// Attribute\r
// =========\r
/** Wrapped result set. */\r
- protected java.sql.ResultSet _rs;\r
+ protected ResultSet _rs;\r
\r
// ===================================================================================\r
// Constructor\r
// Prepare\r
// =======\r
/**\r
- * Accept.\r
+ * Accept result set.\r
* @param rs Result set. (NotNull)\r
*/\r
- public void accept(java.sql.ResultSet rs) {\r
+ public void accept(ResultSet rs) {\r
this._rs = rs;\r
}\r
\r
// Delegate\r
// ========\r
/**\r
- * Next result.\r
+ * Move to next result.\r
* @return Is exist next result.\r
* @throws java.sql.SQLException\r
*/\r
- public boolean next() throws java.sql.SQLException {\r
+ public boolean next() throws SQLException {\r
return _rs.next();\r
}\r
\r
* @return The value of ${col.uncapitalisedJavaName}. (Nullable)\r
* @throws java.sql.SQLException\r
*/\r
- public ${col.javaNative} get${col.javaName}() throws java.sql.SQLException {\r
+ public ${col.javaNative} get${col.javaName}() throws SQLException {\r
#if ($col.isJavaNativeStringObject())\r
return extractValueAsString("${col.name}");\r
#end\r
\r
#end\r
// ===================================================================================\r
- // Helper\r
- // ======\r
-\r
- protected String extractValueAsString(String name) throws java.sql.SQLException {\r
+ // Assist Helper\r
+ // =============\r
+ protected String extractValueAsString(String name) throws SQLException {\r
return _rs.getString(name);\r
}\r
\r
- protected Boolean extractValueAsBoolean(String name) throws java.sql.SQLException {\r
+ protected Boolean extractValueAsBoolean(String name) throws SQLException {\r
return _rs.getBoolean(name);\r
}\r
\r
- protected Object extractValueAsNumber(Class type, String name) throws java.sql.SQLException {\r
- return org.seasar.framework.util.NumberConversionUtil.convertNumber(type, extractValueAsObject(name));\r
+ protected Object extractValueAsNumber(Class<?> type, String name) throws SQLException {\r
+ return DfTypeUtil.toNumber(type, extractValueAsObject(name));\r
}\r
\r
- protected Object extractValueAsDate(Class type, String name) throws java.sql.SQLException {\r
+ protected Object extractValueAsDate(Class<?> type, String name) throws SQLException {\r
if (type.isAssignableFrom(java.sql.Timestamp.class)) {\r
return _rs.getTimestamp(name);\r
} else if (type.isAssignableFrom(java.sql.Date.class)) {\r
}\r
\r
protected java.util.Date toDate(Object object) {\r
- return org.seasar.framework.util.DateConversionUtil.toDate(object);\r
+ return DfTypeUtil.toDate(object);\r
}\r
\r
- protected Object extractValueAsObject(String name) throws java.sql.SQLException {\r
+ protected Object extractValueAsObject(String name) throws SQLException {\r
return _rs.getObject(name);\r
}\r
}\r
${database.allClassCopyright}package ${myBaseDaoCursorPackageName};\r
-\r
#set ($myClassName = "${myBaseTypeSafeCursorHandlerClassName}")\r
+import java.sql.ResultSet;\r
+import java.sql.SQLException;\r
+\r
+import org.seasar.dbflute.jdbc.CursorHandler;\r
import ${myExtendedDaoCursorPackageName}.${myExtendedTypeSafeCursorClassName};\r
\r
/**\r
* The cursor handler of ${table.name}.\r
* @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public abstract class ${myClassName} implements ${glPackageBaseCommonJdbc}.${glCursorHandlerName} {\r
+ */\r
+public abstract class ${myClassName} implements CursorHandler {\r
\r
/**\r
* Handle.\r
* @return Result. (Nullable)\r
* @throws java.sql.SQLException\r
*/\r
- public Object handle(java.sql.ResultSet rs) throws java.sql.SQLException {\r
+ public Object handle(java.sql.ResultSet rs) throws SQLException {\r
return fetchCursor(createTypeSafeCursor(rs));\r
}\r
\r
* @return Type safe cursor. (Nullable)\r
* @throws java.sql.SQLException\r
*/\r
- protected ${myExtendedTypeSafeCursorClassName} createTypeSafeCursor(java.sql.ResultSet rs) throws java.sql.SQLException {\r
+ protected ${myExtendedTypeSafeCursorClassName} createTypeSafeCursor(ResultSet rs) throws SQLException {\r
final ${myExtendedTypeSafeCursorClassName} cursor = new ${myExtendedTypeSafeCursorClassName}();\r
cursor.accept(rs);\r
return cursor;\r
* @return Result. (Nullable)\r
* @throws java.sql.SQLException\r
*/\r
- abstract protected Object fetchCursor(${myExtendedTypeSafeCursorClassName} cursor) throws java.sql.SQLException;\r
+ abstract protected Object fetchCursor(${myExtendedTypeSafeCursorClassName} cursor) throws SQLException;\r
}\r
#set ($myClassName = "${myBaseParameterBeanClassName}")\r
\r
#if ($database.isPmbMetaDataForProcedure($pmbClassName))\r
-import ${glPackageBaseCommonCBeanOutsidesql}.${glProcedurePmbName};\r
+import org.seasar.dbflute.outsidesql.ProcedurePmb;\r
#end\r
\r
/**\r
* @author ${database.ClassAuthor}\r
*/\r
#if ($database.isPmbMetaDataForProcedure($pmbClassName))\r
-public class ${myClassName} implements ${glProcedurePmbName} {\r
+public class ${myClassName} implements ProcedurePmb {\r
#else\r
public class ${myClassName} ${database.getPmbMetaDataSuperClassDefinition($pmbClassName)} {\r
#end\r
\r
#if ($database.isPmbMetaDataPropertyOptionLikeSearch($pmbClassName, $propertyName))\r
/** The value of likeSearchOption for ${propertyName}. */\r
- protected ${glPackageBaseCommonCOption}.${glConditionOptionLikeSearchName} _${propertyName}InternalLikeSearchOption;\r
+ protected org.seasar.dbflute.cbean.coption.LikeSearchOption _${propertyName}InternalLikeSearchOption;\r
\r
#end\r
#end\r
* @param ${propertyName} The value of ${propertyName}. (Nullable)\r
* @param ${propertyName}Option The option of likeSearch for ${propertyName}. (Nullable)\r
*/\r
- public void set${database.initCap($propertyName)}(${propertyType} ${propertyName}, ${glPackageBaseCommonCOption}.${glConditionOptionLikeSearchName} ${propertyName}Option) {\r
+ public void set${database.initCap($propertyName)}(${propertyType} ${propertyName}, org.seasar.dbflute.cbean.coption.LikeSearchOption ${propertyName}Option) {\r
_${propertyName} = ${propertyName};\r
_${propertyName}InternalLikeSearchOption = ${propertyName}Option;\r
}\r
* Get the internal option of likeSearch for ${propertyName}. {Internal Method: Don't Invoke This!}\r
* @return The internal option of likeSearch for ${propertyName}. (Nullable)\r
*/\r
- public ${glPackageBaseCommonCOption}.${glConditionOptionLikeSearchName} get${database.initCap($propertyName)}InternalLikeSearchOption() {\r
+ public org.seasar.dbflute.cbean.coption.LikeSearchOption get${database.initCap($propertyName)}InternalLikeSearchOption() {\r
return _${propertyName}InternalLikeSearchOption;\r
}\r
#end\r
* ${database.getMapValue($classificationMap, 'comment')}\r
*/\r
public void set${database.initCap($propertyName)}_${classificationMap.get('name')}() {\r
- _${propertyName} = ${glPackageBaseCommon}.${glClassificationDefinition}.${database.classificationCodeVariableNamePrefix}${classificationName}_${classificationMap.get('name')};\r
+ _${propertyName} = ${glPackageBaseCommon}.${glCDef}.${classificationName}.${classificationMap.get('name')}.code();\r
}\r
#end\r
#end\r
${database.allClassCopyright}package ${myBaseEntityPackageName};\r
#set ($myClassName = "${myBaseObjectClassName}")\r
\r
+import java.io.Serializable;\r
import java.util.*;\r
- \r
+\r
+#if ($table.isBuriTarget())\r
+import ${glPackageBaseCommon}.${glBuriDef};\r
+#end\r
+#if ($table.hasClassification())\r
+import ${glPackageBaseCommon}.${glCDef};\r
+#end\r
#if (${table.hasAllCommonColumn()})\r
-import ${glPackageBaseCommon}.${glEntityDefinedCommonColumnInterfaceName};\r
+import ${glPackageBaseCommon}.${glEntityDefinedCommonColumn};\r
#else\r
-import ${glPackageBaseCommon}.${glEntityInterfaceName};\r
+import org.seasar.dbflute.Entity;\r
#end\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInterfaceName};\r
+import org.seasar.dbflute.dbmeta.DBMeta;\r
#if (!$isSql2Entity)\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInstanceHandlerName};\r
+import ${glPackageBaseCommon}.${glDBMetaInstanceHandler};\r
#end\r
#if ($table.hasRelation())\r
import ${myExtendedEntityPackageName}.*;\r
#end\r
#set ($myEntityInterfaceName = "")\r
#if (${table.hasAllCommonColumn()})\r
- #set ($myEntityInterfaceName = ${glEntityDefinedCommonColumnInterfaceName})\r
+ #set ($myEntityInterfaceName = ${glEntityDefinedCommonColumn})\r
#else\r
- #set ($myEntityInterfaceName = ${glEntityInterfaceName})\r
+ #set ($myEntityInterfaceName = "Entity")\r
#end\r
\r
/**\r
- * The entity of ${table.basicInfoDispString}.\r
+ * The entity of ${table.basicInfoDispString}. <br />\r
+#if ($table.isCommentForJavaDocValid())\r
+ * ${table.commentForJavaDoc}\r
+#end\r
* <pre>\r
* [primary-key]\r
* ${table.primaryKeyNameCommaString}\r
* ${table.referrerPropertyNameCommaString}\r
* </pre>\r
* @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public abstract class $myClassName implements ${myEntityInterfaceName}, java.io.Serializable {\r
+ */\r
+public abstract class $myClassName implements ${myEntityInterfaceName}, Serializable {\r
\r
// ===================================================================================\r
// Definition\r
// ==========\r
/** Serial version UID. (Default) */\r
private static final long serialVersionUID = 1L;\r
+#if ($database.isMakeEntityS2DaoAnnotation())\r
\r
/** TABLE-Annotation for S2Dao. The value is ${table.annotationTableName}. */\r
public static final String TABLE = "${table.annotationTableName}";\r
-\r
#if ($table.isUseUpdateDate())\r
\r
/** TIMESTAMP-Annotation */\r
public static final String ${table.assignedPropertyName}_ID = "assigned";\r
#end\r
#end\r
+#end\r
\r
// ===================================================================================\r
// Attribute\r
// Column\r
// ------\r
#foreach ($col in $table.columns)\r
- /** The attribute of the column '${col.name}'. {${col.columnDefinitionLineDisp}} */\r
+ /** ${col.aliasExpression}${col.name}: {${col.columnDefinitionLineDisp}} */\r
protected ${col.javaNative} _${col.uncapitalisedJavaName};\r
\r
#end\r
#end\r
\r
// ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${myClassName}() {\r
- }\r
-\r
- // ===================================================================================\r
// Table Name\r
// ==========\r
public String getTableDbName() {\r
return "${table.name}";\r
}\r
\r
- public String getTablePropertyName() {// as JavaBeansRule\r
+ public String getTablePropertyName() { // as JavaBeansRule\r
return "${table.javaBeansRulePropertyName}";\r
}\r
\r
// ===================================================================================\r
// DBMeta\r
// ======\r
- public ${glDBMetaInterfaceName} getDBMeta() {\r
+ public DBMeta getDBMeta() {\r
return ${myDBMetaPackageName}.${myDBMetaClassName}.getInstance();\r
}\r
#else\r
// ===================================================================================\r
// DBMeta\r
// ======\r
- public ${glDBMetaInterfaceName} getDBMeta() {\r
- return ${glDBMetaInstanceHandlerName}.findDBMeta(getTableDbName());\r
+ public DBMeta getDBMeta() {\r
+ return ${glDBMetaInstanceHandler}.findDBMeta(getTableDbName());\r
}\r
#end\r
\r
// ==========================\r
#foreach ($col in $table.columns)\r
#if (${col.hasClassification()})\r
+#set ($existTop = false)\r
+#if ($database.classificationTopDefinitionMap.containsKey($col.classificationName))\r
+ #set ($classificationTopMap = $database.classificationTopDefinitionMap.get($col.classificationName))\r
+ #set ($existTop = true)\r
+#end\r
+ /**\r
+ * Classify the value of ${col.uncapitalisedJavaName} as the classification of ${col.classificationName}. <br />\r
+#if ($existTop && $classificationTopMap.containsKey('topComment'))\r
+ * $classificationTopMap.get('topComment')\r
+#end\r
+ * @param cls The value of ${col.uncapitalisedJavaName} as the classification of ${col.classificationName}. (Nullable)\r
+ */\r
+ public void classify${col.javaName}(${glCDef}.${col.classificationName} cls) {\r
+ set${col.javaName}(cls != null ? new ${col.javaNative}(cls.code()) : null);\r
+ }\r
+\r
#foreach ($classificationMap in $col.classificationMapList)\r
/**\r
* Classify the value of ${col.uncapitalisedJavaName} as ${classificationMap.get('name')}. <br />\r
- * ${database.getMapValue($classificationMap, 'comment')}\r
+ * $database.buildClassificationApplicationComment($classificationMap)\r
*/\r
- public void classify${col.JavaName}${classificationMap.get('name')}() {\r
- String cd = ${glPackageBaseCommon}.${glClassificationDefinition}.${database.classificationCodeVariableNamePrefix}${col.classificationName}_${classificationMap.get('name')};\r
- set${col.JavaName}(new ${col.JavaNative}(cd));\r
+ public void classify${col.javaName}${classificationMap.get('name')}() {\r
+ classify${col.javaName}(${glCDef}.${col.classificationName}.${classificationMap.get('name')});\r
}\r
\r
#end\r
// ============================\r
#foreach ($col in $table.columns)\r
#if (${col.hasClassification()})\r
+#set ($existTop = false)\r
+#if ($database.classificationTopDefinitionMap.containsKey($col.classificationName))\r
+ #set ($classificationTopMap = $database.classificationTopDefinitionMap.get($col.classificationName))\r
+ #set ($existTop = true)\r
+#end\r
+ /**\r
+ * Get the value of ${col.uncapitalisedJavaName} as the classification of ${col.classificationName}. <br />\r
+#if ($existTop && $classificationTopMap.containsKey('topComment'))\r
+ * $classificationTopMap.get('topComment')\r
+#end\r
+ * @return The value of ${col.uncapitalisedJavaName} as the classification of ${col.classificationName}. (Nullable)\r
+ */\r
+ public ${glCDef}.${col.classificationName} get${col.javaName}As${col.classificationName}() {\r
+ return ${glCDef}.${col.classificationName}.codeOf(_${col.uncapitalisedJavaName});\r
+ }\r
+\r
#foreach ($classificationMap in $col.classificationMapList)\r
/**\r
- * Is the value of the column '${col.UncapitalisedJavaName}' '${classificationMap.get('name')}'? <br />\r
- * ${database.getMapValue($classificationMap, 'comment')}\r
+ * Is the value of the column '${col.uncapitalisedJavaName}' '${classificationMap.get('name')}'? <br />\r
+ * $database.buildClassificationApplicationComment($classificationMap)\r
* <pre>\r
* The difference of capital letters and small letters is NOT distinguished.\r
* If the value is null, this method returns false!\r
* @return Determination.\r
*/\r
public boolean is${col.JavaName}${classificationMap.get('name')}() {\r
- return helpEqCls(_${col.UncapitalisedJavaName}, ${glPackageBaseCommon}.${glClassificationDefinition}.${database.classificationCodeVariableNamePrefix}${col.ClassificationName}_${classificationMap.get('name')});\r
+ ${glCDef}.${col.classificationName} cls = get${col.javaName}As${col.classificationName}();\r
+ return cls != null ? cls.equals(${glCDef}.${col.classificationName}.${classificationMap.get('name')}) : false;\r
}\r
\r
#end\r
#end\r
#end\r
-#if (${table.hasClassification()})\r
- private boolean helpEqCls(Object value, String code) {\r
- if (value == null) { return false; }\r
- return code.equalsIgnoreCase(value.toString());\r
- }\r
-\r
-#end\r
// ===================================================================================\r
// Classification Name/Alias\r
// =========================\r
#if (${col.hasClassification()})\r
#if (${col.hasClassificationName()})\r
/**\r
- * Get the value of the column '${col.uncapitalisedJavaName}' as classification-name.\r
- * @return The value of the column '${col.uncapitalisedJavaName}' as classification-name. (Nullable)\r
+ * Get the value of the column '${col.uncapitalisedJavaName}' as classification name.\r
+ * @return The value of the column '${col.uncapitalisedJavaName}' as classification name. (Nullable)\r
*/\r
public String get${col.JavaName}Name() {\r
- return ${glPackageBaseCommon}.${glClassificationDefinition}.find${col.ClassificationName}Name(_${col.UncapitalisedJavaName} + "");\r
+ ${glCDef}.${col.classificationName} cls = get${col.javaName}As${col.classificationName}();\r
+ return cls != null ? cls.name() : null;\r
}\r
\r
#end\r
#if (${col.hasClassificationAlias()})\r
/**\r
- * Get the value of the column '${col.UncapitalisedJavaName}' as classification-alias.\r
- * @return The value of the column '${col.UncapitalisedJavaName}' as classification-alias. (Nullable)\r
+ * Get the value of the column '${col.uncapitalisedJavaName}' as classification alias.\r
+ * @return The value of the column '${col.uncapitalisedJavaName}' as classification alias. (Nullable)\r
*/\r
public String get${col.JavaName}Alias() {\r
- return ${glPackageBaseCommon}.${glClassificationDefinition}.find${col.ClassificationName}Alias(_${col.UncapitalisedJavaName} + "");\r
+ ${glCDef}.${col.classificationName} cls = get${col.javaName}As${col.classificationName}();\r
+ return cls != null ? cls.alias() : null;\r
}\r
\r
#end\r
// ================\r
#set ($foreignKeyIndex = 0)\r
#foreach ($foreignKey in $table.foreignKeys)\r
+#set ($foreignTable = $foreignKey.foreignTable)\r
#set ($foreignEntityClassName = "${foreignKey.foreignTableExtendedEntityClassName}")\r
#set ($foreignVariableName = "${glParentVariablePrefix}${foreignKey.foreignPropertyNameInitCap}")\r
- // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\r
- // Foreign Property = [${foreignKey.foreignJavaBeansRulePropertyName}]\r
- // * * * * * * * * */\r
+#if ($database.isMakeEntityS2DaoAnnotation())\r
public static final int ${foreignKey.foreignJavaBeansRulePropertyName}_RELNO = ${table.resolveForeignIndex($foreignKey)};\r
public static final String ${foreignKey.foreignJavaBeansRulePropertyName}_RELKEYS = "$foreignKey.relationKeysCommaString";\r
\r
- /** The entity of foreign property '${foreignKey.foreignJavaBeansRulePropertyName}'. */\r
+#end\r
+ /** ${foreignTable.aliasExpression}${foreignTable.name} as '${foreignKey.foreignJavaBeansRulePropertyName}'. */\r
protected ${foreignEntityClassName} ${foreignVariableName};\r
\r
/**\r
- * Get the entity of foreign property '${foreignKey.foreignJavaBeansRulePropertyName}'. {without lazy-load}\r
+ * ${foreignTable.aliasExpression}${foreignTable.name} as '${foreignKey.foreignJavaBeansRulePropertyName}'. {without lazy-load}\r
* @return The entity of foreign property '${foreignKey.foreignJavaBeansRulePropertyName}'. (Nullable: If the foreign key does not have 'NotNull' constraint, please check null.)\r
*/\r
public ${foreignEntityClassName} get${foreignKey.foreignJavaBeansRulePropertyNameInitCap}() {\r
}\r
\r
/**\r
- * Set the entity of foreign property '${foreignKey.foreignJavaBeansRulePropertyName}'.\r
+ * ${foreignTable.aliasExpression}${foreignTable.name} as '${foreignKey.foreignJavaBeansRulePropertyName}'.\r
* @param ${foreignKey.foreignPropertyName} The entity of foreign property '${foreignKey.foreignJavaBeansRulePropertyName}'. (Nullable)\r
*/\r
public void set${foreignKey.foreignJavaBeansRulePropertyNameInitCap}(${foreignEntityClassName} ${foreignKey.foreignPropertyName}) {\r
#set ($foreignKeyIndex = $foreignKeyIndex + 1)\r
#end\r
#foreach ($referrer in $table.referrers)\r
+#set ($referrerTable = $referrer.table)\r
#set ($referrerEntityClassName = "${referrer.refererTableExtendedEntityClassName}")\r
#set ($referrerVariableName = "${glChildrenVariablePrefix}${referrer.referrerJavaBeansRulePropertyNameAsOne}")\r
#if (${referrer.isOneToOne()})\r
- // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\r
- // Foreign Property = [${referrer.referrerJavaBeansRulePropertyNameAsOne}]\r
- // * * * * * * * * */\r
+#if ($database.isMakeEntityS2DaoAnnotation())\r
public static final int ${referrer.referrerJavaBeansRulePropertyNameAsOne}_RELNO = ${table.resolveReferrerIndexAsOne($referrer)};\r
public static final String ${referrer.referrerJavaBeansRulePropertyNameAsOne}_RELKEYS = "$referrer.relationKeysCommaStringForOneToOneReferrer";\r
- \r
- /** the entity of foreign property(referrer-as-one) '${referrer.referrerJavaBeansRulePropertyNameAsOne}'. */\r
+\r
+#end\r
+ /** ${referrerTable.aliasExpression}${referrerTable.name} as '${referrer.referrerJavaBeansRulePropertyNameAsOne}'. */\r
protected ${referrerEntityClassName} ${referrerVariableName};\r
\r
/**\r
- * Get the entity of foreign property(referrer-as-one) '${referrer.referrerJavaBeansRulePropertyNameAsOne}'. {without lazy-load} <br />\r
+ * ${referrerTable.aliasExpression}${referrerTable.name} as '${referrer.referrerJavaBeansRulePropertyNameAsOne}'. {without lazy-load} <br />\r
* @return the entity of foreign property(referrer-as-one) '${referrer.referrerJavaBeansRulePropertyNameAsOne}'. (Nullable: If the foreign key does not have 'NotNull' constraint, please check null.)\r
*/\r
public ${referrerEntityClassName} get${referrer.referrerJavaBeansRulePropertyNameAsOneInitCap}() {\r
}\r
\r
/**\r
- * Set the entity of foreign property(referrer-as-one) '${referrer.referrerJavaBeansRulePropertyNameAsOne}'.\r
+ * ${referrerTable.aliasExpression}${referrerTable.name} as '${referrer.referrerJavaBeansRulePropertyNameAsOne}'.\r
* @param ${referrer.referrerJavaBeansRulePropertyNameAsOne} The entity of foreign property(referrer-as-one) '${referrer.referrerJavaBeansRulePropertyNameAsOne}'. (Nullable)\r
*/\r
public void set${referrer.referrerJavaBeansRulePropertyNameAsOneInitCap}(${referrerEntityClassName} ${referrer.referrerJavaBeansRulePropertyNameAsOne}) {\r
// Referrer Property\r
// =================\r
#foreach ($referrer in $table.referrers)\r
+#if (!${referrer.isOneToOne()})\r
+#set ($referrerTable = $referrer.table)\r
#set ($referrerEntityClassName = "${referrer.refererTableExtendedEntityClassName}")\r
#set ($referrerVariableName = "${glChildrenVariablePrefix}${referrer.referrerPropertyNameInitCap}")\r
-#if (!${referrer.isOneToOne()})\r
- // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\r
- // Referrer Property = [${referrer.referrerJavaBeansRulePropertyName}]\r
- // * * * * * * * * */\r
-\r
- /** The entity list of referrer property '${referrer.referrerJavaBeansRulePropertyName}'. */\r
+ /** ${referrerTable.aliasExpression}${referrerTable.name} as '${referrer.referrerJavaBeansRulePropertyName}'. */\r
protected List<${referrerEntityClassName}> $referrerVariableName;\r
\r
/**\r
- * Get the entity list of referrer property '${referrer.referrerJavaBeansRulePropertyName}'. {without lazy-load} <br />\r
+ * ${referrerTable.aliasExpression}${referrerTable.name} as '${referrer.referrerJavaBeansRulePropertyName}'. {without lazy-load} <br />\r
* @return The entity list of referrer property '${referrer.referrerJavaBeansRulePropertyName}'. (NotNull: If it's not loaded yet, initializes the list instance of referrer as empty and returns it.)\r
*/\r
public List<${referrerEntityClassName}> get${referrer.referrerJavaBeansRulePropertyNameInitCap}() {\r
}\r
\r
/**\r
- * Set the entity list of referrer property '${referrer.referrerJavaBeansRulePropertyName}'.\r
+ * ${referrerTable.aliasExpression}${referrerTable.name} as '${referrer.referrerJavaBeansRulePropertyName}'.\r
* @param ${referrer.referrerPropertyName} The entity list of referrer property '${referrer.referrerJavaBeansRulePropertyName}'. (Nullable)\r
*/\r
public void set${referrer.referrerJavaBeansRulePropertyNameInitCap}(List<${referrerEntityClassName}> ${referrer.referrerPropertyName}) {\r
\r
#end\r
#end\r
-\r
// ===================================================================================\r
// Determination\r
// =============\r
// Common Column Auto Filter\r
// =========================\r
/**\r
+ * Enable common column auto set up. {for after disable because the default is enabled}\r
+ */\r
+ public void enableCommonColumnAutoSetup() {\r
+ _canCommonColumnAutoSetup = true;\r
+ }\r
+\r
+ /**\r
* Disables auto set-up of common columns.\r
*/\r
public void disableCommonColumnAutoSetup() {\r
* Can the entity set up common column by auto?\r
* @return Determination.\r
*/\r
- public boolean canCommonColumnAutoSetup() {// for Framework\r
+ public boolean canCommonColumnAutoSetup() { // for Framework\r
return _canCommonColumnAutoSetup;\r
}\r
#end\r
+#if ($table.isBuriTarget())\r
+ \r
+ // ===================================================================================\r
+ // Buri Interface\r
+ // ==============\r
+#foreach ($processName in $table.tableProcessForMethodNameList)\r
+ public ${glBuriDef}.${processName}_Status getStatus_${processName}() {\r
+ if (getBuriPathData() == null) { return null; }\r
+ return ${glBuriDef}.${processName}_Status.codeOf(getBuriPathData().getPathName());\r
+ }\r
+#end\r
+#end\r
\r
// ===================================================================================\r
// Basic Override\r
return sb.toString();\r
}\r
\r
+#set ($propertyLoopIndex = 0)\r
+#foreach ($col in $table.columns)\r
+#if ($propertyLoopIndex == 0)\r
// ===================================================================================\r
// Accessor\r
// ========\r
-#foreach ($col in $table.columns)\r
+#else\r
\r
+#end\r
+#if ($database.isMakeEntityS2DaoAnnotation())\r
/** The column annotation for S2Dao. {${col.columnDefinitionLineDisp}} */\r
public static final String ${col.javaBeansRulePropertyName}_COLUMN = "${col.name}";\r
-#if ($col.isJavaNativeOracleStringClob())\r
\r
+#end\r
+#if ($col.isJavaNativeStringClob())\r
/** The value type annotation for S2Dao. {${col.columnDefinitionLineDisp}} */\r
public static String ${col.javaBeansRulePropertyName}_VALUE_TYPE = "dbfluteStringClobType";\r
+\r
#end\r
+#if ($col.isJavaNativeBytesOid())\r
+ /** The value type annotation for S2Dao. {${col.columnDefinitionLineDisp}} */\r
+ public static String ${col.javaBeansRulePropertyName}_VALUE_TYPE = "dbfluteBytesOidType";\r
\r
+#end\r
/**\r
- * Get the value of the column '${col.name}'. <br />\r
- * {${col.columnDefinitionLineDisp}}\r
+ * ${col.aliasExpression}${col.name}: {${col.columnDefinitionLineDisp}} <br />\r
+#if ($col.isCommentForJavaDocValid())\r
+ * ${col.commentForJavaDoc}\r
+#end\r
* @return The value of the column '${col.name}'. (Nullable)\r
*/\r
public ${col.JavaNative} get${col.javaName}() {\r
}\r
\r
/**\r
- * Set the value of the column '${col.name}'. <br />\r
- * {${col.columnDefinitionLineDisp}}\r
+ * ${col.aliasExpression}${col.name}: {${col.columnDefinitionLineDisp}} <br />\r
+#if ($col.isCommentForJavaDocValid())\r
+ * ${col.commentForJavaDoc}\r
+#end\r
* @param ${col.UncapitalisedJavaName} The value of the column '${col.name}'. (Nullable)\r
*/\r
public void set${col.javaName}(${col.javaNative} ${col.uncapitalisedJavaName}) {\r
_modifiedProperties.addPropertyName("${col.javaBeansRulePropertyName}");\r
this._${col.UncapitalisedJavaName} = ${col.UncapitalisedJavaName};\r
}\r
+#set ($propertyLoopIndex = $propertyLoopIndex + 1)\r
#end\r
-\r
#if ($table.hasAllCommonColumn())\r
#foreach ($columnName in ${database.commonColumnNameConvertionList})\r
#set ($filteredColumnName = ${database.filterCommonColumn(${columnName})})\r
--- /dev/null
+${database.allClassCopyright}package ${myDBMetaPackageName};\r
+#set ($myClassName = "${myDBMetaClassName}")\r
+\r
+import java.util.List;\r
+import java.util.Map;\r
+\r
+import org.seasar.dbflute.Entity;\r
+import org.seasar.dbflute.dbmeta.AbstractDBMeta;\r
+import org.seasar.dbflute.dbmeta.info.*;\r
+import org.seasar.dbflute.helper.StringKeyMap;\r
+import ${myExtendedEntityPackageName}.${myExtendedObjectClassName};\r
+\r
+/**\r
+ * The DB meta of ${table.name}. (Singleton)\r
+ * @author ${database.ClassAuthor}\r
+ */\r
+public class ${myClassName} extends AbstractDBMeta {\r
+\r
+ // ===================================================================================\r
+ // Singleton\r
+ // =========\r
+ private static final ${myClassName} _instance = new ${myClassName}();\r
+ private ${myClassName}() {}\r
+ public static ${myClassName} getInstance() { return _instance; }\r
+\r
+ // ===================================================================================\r
+ // Table Info\r
+ // ==========\r
+ public String getTableDbName() { return "$table.name"; }\r
+ public String getTablePropertyName() { return "$table.javaBeansRulePropertyName"; }\r
+ public String getTableSqlName() { return "$table.tableSqlName"; }\r
+\r
+ // ===================================================================================\r
+ // Column Info\r
+ // ===========\r
+#foreach ($col in $table.columns)\r
+#if ($col.isVersionNo())\r
+ protected ColumnInfo _column${col.javaBeansRulePropertyNameInitCap} = cci("${col.name}", ${col.aliasSettingExpression}, "${col.javaBeansRulePropertyName}", ${col.javaNative}.class, ${col.isPrimaryKey()}, ${col.isAutoIncrement()}, ${col.columnSizeSettingExpression}, ${col.columnDecimalDigitsSettingExpression}, OptimisticLockType.VERSION_NO);\r
+#elseif ($col.isUpdateDate())\r
+ protected ColumnInfo _column${col.javaBeansRulePropertyNameInitCap} = cci("${col.name}", ${col.aliasSettingExpression}, "${col.javaBeansRulePropertyName}", ${col.javaNative}.class, ${col.isPrimaryKey()}, ${col.isAutoIncrement()}, ${col.columnSizeSettingExpression}, ${col.columnDecimalDigitsSettingExpression}, OptimisticLockType.UPDATE_DATE);\r
+#else\r
+ protected ColumnInfo _column${col.javaBeansRulePropertyNameInitCap} = cci("${col.name}", ${col.aliasSettingExpression}, "${col.javaBeansRulePropertyName}", ${col.javaNative}.class, ${col.isPrimaryKey()}, ${col.isAutoIncrement()}, ${col.columnSizeSettingExpression}, ${col.columnDecimalDigitsSettingExpression});\r
+#end\r
+#end\r
+\r
+#foreach ($col in $table.columns)\r
+ public ColumnInfo column${col.javaBeansRulePropertyNameInitCap}() { return _column${col.javaBeansRulePropertyNameInitCap}; }\r
+#end\r
+\r
+ { initializeInformationResource(); }\r
+\r
+ // ===================================================================================\r
+ // Unique Info\r
+ // ===========\r
+ // -----------------------------------------------------\r
+ // Primary Element\r
+ // ---------------\r
+#if ($table.hasPrimaryKey())\r
+#if ($table.hasOnlyOnePrimaryKey())\r
+ public UniqueInfo getPrimaryUniqueInfo() { return cpui(column${table.primaryKeyAsOne.javaBeansRulePropertyNameInitCap}()); }\r
+#else\r
+ public UniqueInfo getPrimaryUniqueInfo() {\r
+ List<ColumnInfo> ls = newArrayList();\r
+#foreach ($col in $table.primaryKey)\r
+ ls.add(column${col.javaBeansRulePropertyNameInitCap}());\r
+#end\r
+ return cpui(ls);\r
+ }\r
+#end\r
+#else\r
+ public UniqueInfo getPrimaryUniqueInfo() {\r
+ throw new UnsupportedOperationException("The table does not have primary key: " + getTableDbName());\r
+ }\r
+#end\r
+ public boolean hasPrimaryKey() { return ${table.hasPrimaryKey()}; }\r
+ public boolean hasTwoOrMorePrimaryKeys() { return ${table.hasTwoOrMorePrimaryKeys()}; }\r
+\r
+ // ===================================================================================\r
+ // Relation Info\r
+ // =============\r
+ // -----------------------------------------------------\r
+ // Foreign Property\r
+ // ----------------\r
+#foreach ($foreignKeys in $table.foreignKeys)\r
+ public ForeignInfo foreign${foreignKeys.foreignJavaBeansRulePropertyNameInitCap}() {\r
+#if ($foreignKeys.isSimpleKeyFK())\r
+#set ($column = $foreignKeys.localColumnAsOne)\r
+#set ($yourColumn = ${foreignKeys.getForeignColumnByLocalColumn(${column})})\r
+ Map<ColumnInfo, ColumnInfo> map = newLinkedHashMap(column${column.javaBeansRulePropertyNameInitCap}(), ${foreignKeys.foreignTableDBMetaClassName}.getInstance().column${yourColumn.javaBeansRulePropertyNameInitCap}());\r
+#else\r
+ Map<ColumnInfo, ColumnInfo> map = newLinkedHashMap();\r
+#foreach ($column in $foreignKeys.localColumnList)\r
+#set ($yourColumn = ${foreignKeys.getForeignColumnByLocalColumn(${column})})\r
+ map.put(column${column.javaBeansRulePropertyNameInitCap}(), ${foreignKeys.foreignTableDBMetaClassName}.getInstance().column${yourColumn.javaBeansRulePropertyNameInitCap}());\r
+#end\r
+#end\r
+ return cfi("${foreignKeys.foreignJavaBeansRulePropertyName}", this, ${foreignKeys.foreignTableDBMetaClassName}.getInstance(), map, ${table.resolveForeignIndex($foreignKeys)}, ${foreignKeys.isOneToOne()});\r
+ }\r
+#end\r
+#foreach ($referrer in $table.referrers)\r
+#set ($genericsColumnInfoMap = "ColumnInfo, ColumnInfo")\r
+#if (${referrer.isOneToOne()})\r
+ public ForeignInfo foreign${referrer.referrerJavaBeansRulePropertyNameAsOneInitCap}() {\r
+#if ($referrer.isSimpleKeyFK())\r
+#set ($column = $referrer.foreignColumnAsOne)\r
+#set ($yourColumn = ${referrer.getLocalColumnByForeignColumn(${column})})\r
+ Map<ColumnInfo, ColumnInfo> map = newLinkedHashMap(column${column.javaBeansRulePropertyNameInitCap}(), ${referrer.referrerTableDBMetaClassName}.getInstance().column${yourColumn.javaBeansRulePropertyNameInitCap}());\r
+#else\r
+ Map<ColumnInfo, ColumnInfo> map = newLinkedHashMap();\r
+#foreach ($column in $referrer.foreignColumnList)\r
+#set ($yourColumn = ${referrer.getLocalColumnByForeignColumn(${column})})\r
+ map.put(column${column.javaBeansRulePropertyNameInitCap}(), ${referrer.referrerTableDBMetaClassName}.getInstance().column${yourColumn.javaBeansRulePropertyNameInitCap}());\r
+#end\r
+#end\r
+ return cfi("${referrer.refererJavaBeansRulePropertyNameAsOne}", this, ${referrer.referrerTableDBMetaClassName}.getInstance(), map, ${table.resolveReferrerIndexAsOne($referrer)}, ${referrer.isOneToOne()});\r
+ }\r
+#end\r
+#end\r
+\r
+ // -----------------------------------------------------\r
+ // Referrer Property\r
+ // -----------------\r
+#foreach ($referrer in $table.referrers)\r
+#if (!${referrer.isOneToOne()})\r
+ public ReferrerInfo referrer${referrer.referrerJavaBeansRulePropertyNameInitCap}() {\r
+#if ($referrer.isSimpleKeyFK())\r
+#set ($column = $referrer.foreignColumnAsOne)\r
+ Map<ColumnInfo, ColumnInfo> map = newLinkedHashMap(column${column.javaBeansRulePropertyNameInitCap}(), ${referrer.referrerTableDBMetaClassName}.getInstance().column${referrer.getLocalColumnByForeignColumn(${column}).javaBeansRulePropertyNameInitCap}());\r
+#else\r
+ Map<ColumnInfo, ColumnInfo> map = newLinkedHashMap();\r
+#foreach ($column in $referrer.foreignColumnList)\r
+ map.put(column${column.javaBeansRulePropertyNameInitCap}(), ${referrer.referrerTableDBMetaClassName}.getInstance().column${referrer.getLocalColumnByForeignColumn(${column}).javaBeansRulePropertyNameInitCap}());\r
+#end\r
+#end\r
+ return cri("${referrer.referrerJavaBeansRulePropertyName}", this, ${referrer.referrerTableDBMetaClassName}.getInstance(), map, ${referrer.isOneToOne()});\r
+ }\r
+#end\r
+#end\r
+#if ($database.isMakeFlatExpansion())\r
+\r
+ // -----------------------------------------------------\r
+ // Relation Trace\r
+ // --------------\r
+ public ${table.relationTraceClassName}RelationTrace createRelationTrace(RelationTraceFixHandler relationTraceFixHandler) {\r
+ return new ${table.relationTraceClassName}RelationTrace(relationTraceFixHandler);\r
+ }\r
+\r
+ public ${table.relationTraceClassName}RelationTrace createRelationTrace(List<RelationInfo> relationList, List<AbstractRelationTrace> relationTraceList) {\r
+ return new ${table.relationTraceClassName}RelationTrace(relationList, relationTraceList);\r
+ }\r
+\r
+ public static class ${table.relationTraceClassName}RelationTrace extends AbstractRelationTrace {\r
+\r
+ /**\r
+ * Constructor for first step.\r
+ * @param relationTraceFixHandler The handler of fixed relation trace. (Nullable)\r
+ */\r
+ public ${table.relationTraceClassName}RelationTrace(RelationTraceFixHandler relationTraceFixHandler) {\r
+ super(relationTraceFixHandler);\r
+ }\r
+\r
+ /**\r
+ * Constructor for relation step.\r
+ * @param relationList The list of relation. (NotNull)\r
+ * @param relationTraceList The list of relation trace. (NotNull)\r
+ */\r
+ public ${table.relationTraceClassName}RelationTrace(List<RelationInfo> relationList, List<AbstractRelationTrace> relationTraceList) {\r
+ super(relationList, relationTraceList);\r
+ }\r
+\r
+#foreach ($foreignKeys in $table.foreignKeys)\r
+ public ${foreignKeys.foreignTableDBMetaClassName}.${foreignKeys.foreignTable.relationTraceClassName}RelationTrace foreign${foreignKeys.foreignJavaBeansRulePropertyNameInitCap}() {\r
+ _relationList.add(${myDBMetaClassName}.getInstance().foreign${foreignKeys.foreignJavaBeansRulePropertyNameInitCap}());\r
+ return ${foreignKeys.foreignTableDBMetaClassName}.getInstance().createRelationTrace(_relationList, _relationTraceList);\r
+ }\r
+#end\r
+#foreach ($referrer in $table.referrers)\r
+#if (${referrer.isOneToOne()})\r
+ public ${referrer.referrerTableDBMetaClassName}.${referrer.table.relationTraceClassName}RelationTrace foreign${referrer.referrerJavaBeansRulePropertyNameAsOneInitCap}() {\r
+ _relationList.add(${myDBMetaClassName}.getInstance().foreign${referrer.referrerJavaBeansRulePropertyNameAsOneInitCap}());\r
+ return ${referrer.referrerTableDBMetaClassName}.getInstance().createRelationTrace(_relationList, _relationTraceList);\r
+ }\r
+#end\r
+#end\r
+#foreach ($referrer in $table.referrers)\r
+#if (!${referrer.isOneToOne()})\r
+ public ${referrer.referrerTableDBMetaClassName}.${referrer.table.relationTraceClassName}RelationTrace referrer${referrer.referrerJavaBeansRulePropertyNameInitCap}() {\r
+ _relationList.add(${myDBMetaClassName}.getInstance().referrer${referrer.referrerJavaBeansRulePropertyNameInitCap}());\r
+ return ${referrer.referrerTableDBMetaClassName}.getInstance().createRelationTrace(_relationList, _relationTraceList);\r
+ }\r
+#end\r
+#end\r
+\r
+#foreach ($col in $table.columns)\r
+ public RelationTrace column${col.javaBeansRulePropertyNameInitCap}() { return fixTrace(_relationList, ${myDBMetaClassName}.getInstance().column${col.javaBeansRulePropertyNameInitCap}()); }\r
+#end\r
+ }\r
+#end\r
+\r
+ // ===================================================================================\r
+ // Various Info\r
+ // ============\r
+#if ($table.isUseIdentity())\r
+ public boolean hasIdentity() { return true; }\r
+#end\r
+#if ($table.isUseSequence())\r
+ public boolean hasSequence() { return true; }\r
+ public String getSequenceNextValSql() { return "${table.sequenceNextSql}"; }\r
+#end\r
+#if ($table.isUseVersionNo())\r
+ public boolean hasVersionNo() { return true; }\r
+ public ColumnInfo getVersionNoColumnInfo() { return _column${table.versionNoJavaName}; }\r
+#end\r
+#if ($table.isUseUpdateDate())\r
+ public boolean hasUpdateDate() { return true; }\r
+ public ColumnInfo getUpdateDateColumnInfo() { return _column${table.updateDateJavaName}; }\r
+#end\r
+#if ($table.hasAllCommonColumn())\r
+ public boolean hasCommonColumn() { return true; }\r
+#end\r
+\r
+ // ===================================================================================\r
+ // Type Name\r
+ // =========\r
+ public String getEntityTypeName() { return "${myExtendedEntityPackageName}.${myExtendedObjectClassName}"; }\r
+#if ($isExistConditionBean)\r
+ public String getConditionBeanTypeName() { return "${glPackageBaseCB}.${myConditionBeanClassName}"; }\r
+#else\r
+ public String getConditionBeanTypeName() { return null; }\r
+#end\r
+#if ($isExistDao)\r
+ public String getDaoTypeName() { return "${myExtendedDaoPackageName}.${myExtendedDaoClassName}"; }\r
+#else\r
+ public String getDaoTypeName() { return null; }\r
+#end\r
+#if ($isExistBehavior)\r
+ public String getBehaviorTypeName() { return "${myExtendedBhvPackageName}.${myExtendedBhvClassName}"; }\r
+#else\r
+ public String getBehaviorTypeName() { return null; }\r
+#end\r
+\r
+ // ===================================================================================\r
+ // Object Type\r
+ // ===========\r
+ public Class<${myExtendedObjectClassName}> getEntityType() { return ${myExtendedObjectClassName}.class; }\r
+\r
+ // ===================================================================================\r
+ // Object Instance\r
+ // ===============\r
+ public Entity newEntity() { return newMyEntity(); }\r
+ public ${myExtendedObjectClassName} newMyEntity() { return new ${myExtendedObjectClassName}(); }\r
+\r
+ // ===================================================================================\r
+ // Entity Handling\r
+ // =============== \r
+ // -----------------------------------------------------\r
+ // Accept\r
+ // ------\r
+ public void acceptPrimaryKeyMap(Entity entity, Map<String, ? extends Object> primaryKeyMap)\r
+ { doAcceptPrimaryKeyMap((${myExtendedObjectClassName})entity, primaryKeyMap, _epsMap); }\r
+ public void acceptPrimaryKeyMapString(Entity entity, String primaryKeyMapString)\r
+ { MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); }\r
+ public void acceptColumnValueMap(Entity entity, Map<String, ? extends Object> columnValueMap)\r
+ { doAcceptColumnValueMap((${myExtendedObjectClassName})entity, columnValueMap, _epsMap); }\r
+ public void acceptColumnValueMapString(Entity entity, String columnValueMapString)\r
+ { MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); }\r
+\r
+ // -----------------------------------------------------\r
+ // Extract\r
+ // -------\r
+ public String extractPrimaryKeyMapString(Entity entity) { return MapStringUtil.extractPrimaryKeyMapString(entity); }\r
+ public String extractPrimaryKeyMapString(Entity entity, String startBrace, String endBrace, String delimiter, String equal)\r
+ { return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, delimiter, equal); }\r
+ public String extractColumnValueMapString(Entity entity) { return MapStringUtil.extractColumnValueMapString(entity); }\r
+ public String extractColumnValueMapString(Entity entity, String startBrace, String endBrace, String delimiter, String equal)\r
+ { return doExtractColumnValueMapString(entity, startBrace, endBrace, delimiter, equal); }\r
+\r
+ // -----------------------------------------------------\r
+ // Convert\r
+ // -------\r
+ public List<Object> convertToColumnValueList(Entity entity) { return newArrayList(convertToColumnValueMap(entity).values()); }\r
+ public Map<String, Object> convertToColumnValueMap(Entity entity) { return doConvertToColumnValueMap(entity); }\r
+ public List<String> convertToColumnStringValueList(Entity entity) { return newArrayList(convertToColumnStringValueMap(entity).values()); }\r
+ public Map<String, String> convertToColumnStringValueMap(Entity entity) { return doConvertToColumnStringValueMap(entity); }\r
+\r
+ // ===================================================================================\r
+ // Entity Property Setup\r
+ // =====================\r
+ // It's very INTERNAL!\r
+ protected Map<String, Eps<${myExtendedObjectClassName}>> _epsMap = StringKeyMap.createAsFlexibleConcurrent();\r
+ {\r
+#foreach ($column in $table.columns)\r
+ setupEps(_epsMap, new Eps${column.javaName}(), column${column.javaBeansRulePropertyNameInitCap}());\r
+#end\r
+ }\r
+\r
+ public boolean hasEntityPropertySetupper(String propertyName) { return _epsMap.containsKey(propertyName); }\r
+ public void setupEntityProperty(String propertyName, Object entity, Object value)\r
+ { findEps(_epsMap, propertyName).setup((${myExtendedObjectClassName})entity, value); }\r
+\r
+#foreach ($column in $table.columns)\r
+ public static class Eps${column.javaName} implements Eps<${myExtendedObjectClassName}>\r
+ { public void setup(${myExtendedObjectClassName} e, Object v) { e.set${column.javaName}((${column.javaNative})v); } }\r
+#end\r
+}\r
#set ($myClassName = "${myAbstractBaseConditionQueryClassName}")\r
import java.util.Collection;\r
\r
+import org.seasar.dbflute.cbean.*;\r
+import org.seasar.dbflute.cbean.ckey.*;\r
+import org.seasar.dbflute.cbean.coption.*;\r
+import org.seasar.dbflute.cbean.cvalue.ConditionValue;\r
+import org.seasar.dbflute.cbean.sqlclause.SqlClause;\r
+import org.seasar.dbflute.dbmeta.DBMetaProvider;\r
#if ($table.hasClassification())\r
-import ${glPackageBaseCommon}.${glClassificationDefinition};\r
+import ${glPackageBaseCommon}.${glDBMetaInstanceHandler};\r
#end\r
-import ${glPackageBaseCommonCBean}.*;\r
-import ${glPackageBaseCommonCKey}.*;\r
-import ${glPackageBaseCommonCValue}.${glConditionValueName};\r
-import ${glPackageBaseCommonSqlClause}.${glSqlClauseName};\r
+import ${glPackageBaseCommon}.*;\r
import ${glPackageCB}.*;\r
import ${glPackageCQ}.*;\r
\r
/**\r
* The abstract condition-query of ${table.name}.\r
* @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public abstract class ${myClassName} extends ${glConditionQueryAbstractName} {\r
+ */\r
+public abstract class ${myClassName} extends AbstractConditionQuery {\r
+\r
+ // ===================================================================================\r
+ // Attribute\r
+ // =========\r
+ protected final DBMetaProvider _dbmetaProvider = new ${glDBMetaInstanceHandler}();\r
\r
// ===================================================================================\r
// Constructor\r
// ===========\r
- public ${myClassName}(${glConditionQueryInterfaceName} childQuery, ${glSqlClauseName} sqlClause, String aliasName, int nestLevel) {\r
+ public ${myClassName}(ConditionQuery childQuery, SqlClause sqlClause, String aliasName, int nestLevel) {\r
super(childQuery, sqlClause, aliasName, nestLevel);\r
}\r
\r
// ===================================================================================\r
+ // DBMeta Provider\r
+ // ===============\r
+ @Override\r
+ protected DBMetaProvider getDBMetaProvider() {\r
+ return _dbmetaProvider;\r
+ }\r
+\r
+ // ===================================================================================\r
// Table Name\r
// ==========\r
public String getTableDbName() {\r
// Query\r
// =====\r
#foreach ($col in $table.columns)\r
-#set ($tmpJavaName = "${col.JavaName}")\r
-#set ($tmpUncapitalisedJavaName = "${col.UncapitalisedJavaName}")\r
+#set ($tmpJavaName = "${col.javaName}")\r
+#set ($tmpUncapitalisedJavaName = "${col.uncapitalisedJavaName}")\r
#if (${col.isJavaNativeStringObject()})\r
\r
/**\r
- * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {${col.columnDefinitionLineDisp}}\r
- * @param ${tmpUncapitalisedJavaName} The value of ${col.UncapitalisedJavaName} as equal.\r
+ * Equal(=). And NullOrEmptyIgnored, OnlyOnceRegistered. {${col.columnDefinitionLineDisp}}\r
+ * @param ${tmpUncapitalisedJavaName} The value of ${col.uncapitalisedJavaName} as equal.\r
*/\r
public void set${tmpJavaName}_Equal(${col.javaNative} ${tmpUncapitalisedJavaName}) {\r
reg${tmpJavaName}(CK_EQ, fRES(${tmpUncapitalisedJavaName}));\r
#if ($database.isMakeConditionQueryEqualEmptyString())\r
\r
/**\r
- * Equal(=). As the empty-string. And NullOrEmptyIgnored, OnceRegistered.\r
+ * Equal(=). As the empty-string. And NullOrEmptyIgnored, OnlyOnceRegistered.\r
*/\r
public void set${tmpJavaName}_Equal_EmptyString() {\r
reg${tmpJavaName}(CK_EQ, "");\r
#foreach ($classificationMap in $col.classificationMapList)\r
\r
/**\r
- * Equal(=). As ${classificationMap.get('name')}. And NullOrEmptyIgnored, OnceRegistered.<br />\r
- * ${database.getMapValue($classificationMap, 'comment')}\r
+ * Equal(=). As ${classificationMap.get('name')}. And OnlyOnceRegistered. <br />\r
+ * $database.buildClassificationApplicationComment($classificationMap)\r
*/\r
public void set${tmpJavaName}_Equal_${classificationMap.get('name')}() {\r
- reg${tmpJavaName}(CK_EQ, ${glClassificationDefinition}.${database.classificationCodeVariableNamePrefix}${col.ClassificationName}_${classificationMap.get('name')});\r
+ reg${tmpJavaName}(CK_EQ, ${glCDef}.${col.classificationName}.${classificationMap.get('name')}.code());\r
}\r
#end\r
#end\r
#if (${col.isAvailableStringNotEqual()})\r
\r
/**\r
- * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered.\r
- * @param ${tmpUncapitalisedJavaName} The value of ${col.UncapitalisedJavaName} as notEqual.\r
+ * NotEqual(!=). And NullOrEmptyIgnored, OnlyOnceRegistered.\r
+ * @param ${tmpUncapitalisedJavaName} The value of ${col.uncapitalisedJavaName} as notEqual.\r
*/\r
- public void set${tmpJavaName}_NotEqual($col.JavaNative ${tmpUncapitalisedJavaName}) {\r
+ public void set${tmpJavaName}_NotEqual(${col.javaNative} ${tmpUncapitalisedJavaName}) {\r
reg${tmpJavaName}(CK_NE, fRES(${tmpUncapitalisedJavaName}));\r
}\r
#if (${col.hasClassification()})\r
#foreach ($classificationMap in $col.ClassificationMapList)\r
\r
/**\r
- * NotEqual(=). As ${classificationMap.get('name')}. And NullOrEmptyIgnored, OnceRegistered.<br />\r
- * ${database.getMapValue($classificationMap, 'comment')}\r
+ * NotEqual(=). As ${classificationMap.get('name')}. And OnlyOnceRegistered. <br />\r
+ * $database.buildClassificationApplicationComment($classificationMap)\r
*/\r
public void set${tmpJavaName}_NotEqual_${classificationMap.get('name')}() {\r
- reg${tmpJavaName}(CK_NE, ${glClassificationDefinition}.${database.classificationCodeVariableNamePrefix}${col.ClassificationName}_${classificationMap.get('name')});\r
+ reg${tmpJavaName}(CK_NE, ${glCDef}.${col.classificationName}.${classificationMap.get('name')}.code());\r
}\r
#end\r
#end\r
#if (${col.isAvailableStringGreaterThan()})\r
\r
/**\r
- * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered.\r
- * @param ${tmpUncapitalisedJavaName} The value of ${col.UncapitalisedJavaName} as greaterThan.\r
+ * GreaterThan(>). And NullOrEmptyIgnored, OnlyOnceRegistered.\r
+ * @param ${tmpUncapitalisedJavaName} The value of ${col.uncapitalisedJavaName} as greaterThan.\r
*/\r
- public void set${tmpJavaName}_GreaterThan($col.JavaNative ${tmpUncapitalisedJavaName}) {\r
+ public void set${tmpJavaName}_GreaterThan(${col.javaNative} ${tmpUncapitalisedJavaName}) {\r
reg${tmpJavaName}(CK_GT, fRES(${tmpUncapitalisedJavaName}));\r
}\r
#end\r
#if (${col.isAvailableStringLessThan()})\r
\r
/**\r
- * LessThan(<). And NullOrEmptyIgnored, OnceRegistered.\r
- * @param ${tmpUncapitalisedJavaName} The value of ${col.UncapitalisedJavaName} as lessThan.\r
+ * LessThan(<). And NullOrEmptyIgnored, OnlyOnceRegistered.\r
+ * @param ${tmpUncapitalisedJavaName} The value of ${col.uncapitalisedJavaName} as lessThan.\r
*/\r
public void set${tmpJavaName}_LessThan($col.javaNative ${tmpUncapitalisedJavaName}) {\r
reg${tmpJavaName}(CK_LT, fRES(${tmpUncapitalisedJavaName}));\r
#if (${col.isAvailableStringGreaterEqual()})\r
\r
/**\r
- * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered.\r
- * @param ${tmpUncapitalisedJavaName} The value of ${col.UncapitalisedJavaName} as greaterEqual.\r
+ * GreaterEqual(>=). And NullOrEmptyIgnored, OnlyOnceRegistered.\r
+ * @param ${tmpUncapitalisedJavaName} The value of ${col.uncapitalisedJavaName} as greaterEqual.\r
*/\r
- public void set${tmpJavaName}_GreaterEqual($col.JavaNative ${tmpUncapitalisedJavaName}) {\r
+ public void set${tmpJavaName}_GreaterEqual(${col.javaNative} ${tmpUncapitalisedJavaName}) {\r
reg${tmpJavaName}(CK_GE, fRES(${tmpUncapitalisedJavaName}));\r
}\r
#end\r
#if (${col.isAvailableStringLessEqual()})\r
\r
/**\r
- * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered.\r
- * @param ${tmpUncapitalisedJavaName} The value of ${col.UncapitalisedJavaName} as lessEqual.\r
+ * LessEqual(<=). And NullOrEmptyIgnored, OnlyOnceRegistered.\r
+ * @param ${tmpUncapitalisedJavaName} The value of ${col.uncapitalisedJavaName} as lessEqual.\r
*/\r
- public void set${tmpJavaName}_LessEqual($col.JavaNative ${tmpUncapitalisedJavaName}) {\r
+ public void set${tmpJavaName}_LessEqual(${col.javaNative} ${tmpUncapitalisedJavaName}) {\r
reg${tmpJavaName}(CK_LE, fRES(${tmpUncapitalisedJavaName}));\r
}\r
#end\r
#if (${col.isAvailableStringPrefixSearch()})\r
\r
/**\r
- * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered.\r
- * @param ${tmpUncapitalisedJavaName} The value of ${col.UncapitalisedJavaName} as prefixSearch.\r
+ * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnlyOnceRegistered.\r
+ * @param ${tmpUncapitalisedJavaName} The value of ${col.uncapitalisedJavaName} as prefixSearch.\r
*/\r
- public void set${tmpJavaName}_PrefixSearch($col.JavaNative ${tmpUncapitalisedJavaName}) {\r
+ public void set${tmpJavaName}_PrefixSearch(${col.javaNative} ${tmpUncapitalisedJavaName}) {\r
reg${tmpJavaName}(CK_PS, fRES(${tmpUncapitalisedJavaName}));\r
}\r
#end\r
-#if (${col.isAvailableStringLikeSearch()})\r
+#if (${col.isAvailableStringInScope()})\r
\r
/**\r
- * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, SeveralRegistered.\r
- * @param ${tmpUncapitalisedJavaName} The value of ${col.UncapitalisedJavaName} as likeSearch.\r
- * @param likeSearchOption The option of like-search. (NotNull)\r
+ * InScope(in ('a', 'b')). And NullOrEmptyIgnored, NullOrEmptyElementIgnored, SeveralRegistered.\r
+ * @param ${tmpUncapitalisedJavaName}List The collection of ${col.uncapitalisedJavaName} as inScope.\r
*/\r
- public void set${tmpJavaName}_LikeSearch($col.JavaNative ${tmpUncapitalisedJavaName}, ${glPackageBaseCommonCOption}.${glConditionOptionLikeSearchName} likeSearchOption) {\r
- registerLikeSearchQuery(CK_LS, fRES(${tmpUncapitalisedJavaName}), getCValue${tmpJavaName}(), "${col.Name}", "${col.JavaName}", "${col.UncapitalisedJavaName}", likeSearchOption);\r
+ public void set${tmpJavaName}_InScope(Collection<${col.javaNative}> ${tmpUncapitalisedJavaName}List) {\r
+ reg${tmpJavaName}(CK_INS, cTL(${tmpUncapitalisedJavaName}List));\r
}\r
#end\r
-#if (${col.isAvailableStringInScope()})\r
+#if (${col.isAvailableStringNotInScope()})\r
\r
/**\r
- * InScope(in ('a', 'b')). And NullOrEmptyIgnored, NullOrEmptyElementIgnored, SeveralRegistered.\r
- * @param ${tmpUncapitalisedJavaName}List The collection of ${col.UncapitalisedJavaName} as inScope.\r
+ * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, NullOrEmptyElementIgnored, SeveralRegistered.\r
+ * @param ${tmpUncapitalisedJavaName}List The collection of ${col.uncapitalisedJavaName} as notInScope.\r
*/\r
- public void set${tmpJavaName}_InScope(Collection<${col.JavaNative}> ${tmpUncapitalisedJavaName}List) {\r
- reg${tmpJavaName}(CK_INS, cTL(${tmpUncapitalisedJavaName}List));\r
+ public void set${tmpJavaName}_NotInScope(Collection<${col.javaNative}> ${tmpUncapitalisedJavaName}List) {\r
+ reg${tmpJavaName}(CK_NINS, cTL(${tmpUncapitalisedJavaName}List));\r
}\r
+#end\r
+#if (${col.isAvailableStringLikeSearch()})\r
\r
/**\r
- * InScope(in ('a', 'b')). And NullOrEmptyIgnored, NullOrEmptyElementIgnored, SeveralRegistered.\r
- * @param ${tmpUncapitalisedJavaName} The collection of ${col.UncapitalisedJavaName} as inScope.\r
- * @param inScopeOption The option of in-scope. (NotNull)\r
+ * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, SeveralRegistered.\r
+ * @param ${tmpUncapitalisedJavaName} The value of ${col.uncapitalisedJavaName} as likeSearch.\r
+ * @param likeSearchOption The option of like-search. (NotNull)\r
*/\r
- public void set${tmpJavaName}_InScope(${col.JavaNative} ${tmpUncapitalisedJavaName}, ${glPackageBaseCommonCOption}.${glConditionOptionInScopeName} inScopeOption) {\r
- registerInScopeQuery(CK_INS, fRES(${tmpUncapitalisedJavaName}), getCValue${tmpJavaName}(), "${col.Name}", "${col.JavaName}", "${col.UncapitalisedJavaName}", inScopeOption);\r
+ public void set${tmpJavaName}_LikeSearch(${col.javaNative} ${tmpUncapitalisedJavaName}, LikeSearchOption likeSearchOption) {\r
+ regLSQ(CK_LS, fRES(${tmpUncapitalisedJavaName}), getCValue${tmpJavaName}(), "${col.name}", likeSearchOption);\r
}\r
#end\r
-#if (${col.isAvailableStringNotInScope()})\r
+#if (${col.isAvailableStringNotLikeSearch()})\r
\r
/**\r
- * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, NullOrEmptyElementIgnored, SeveralRegistered.\r
- * @param ${tmpUncapitalisedJavaName}List The collection of ${col.UncapitalisedJavaName} as notInScope.\r
+ * NotLikeSearch(not like 'xxx%' escape ...). And NullOrEmptyIgnored, SeveralRegistered.\r
+ * @param ${tmpUncapitalisedJavaName} The value of ${col.uncapitalisedJavaName} as notLikeSearch.\r
+ * @param likeSearchOption The option of not-like-search. (NotNull)\r
*/\r
- public void set${tmpJavaName}_NotInScope(Collection<${col.JavaNative}> ${tmpUncapitalisedJavaName}List) {\r
- reg${tmpJavaName}(CK_NINS, cTL(${tmpUncapitalisedJavaName}List));\r
+ public void set${tmpJavaName}_NotLikeSearch(${col.javaNative} ${tmpUncapitalisedJavaName}, LikeSearchOption likeSearchOption) {\r
+ regLSQ(CK_NLS, fRES(${tmpUncapitalisedJavaName}), getCValue${tmpJavaName}(), "${col.name}", likeSearchOption);\r
}\r
#end\r
-#if (${col.isSingleKeyForeignKey()})\r
+#if (${col.isSingleKeyForeignKey()} && !${col.foreignKey.hasFixedCondition()})\r
#set ($relatedCBClassName = "${col.foreignKey.foreignTableExtendedConditionBeanClassName}")\r
#set ($relatedCQClassName = "${col.foreignKey.foreignTableExtendedConditionQueryClassName}")\r
#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_InScopeSubQuery_${col.foreignKey.foreignPropertyNameInitCap}")\r
#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_InScopeSubQuery_${col.foreignKey.foreignPropertyNameInitCap}")\r
\r
- /**\r
- * @param ${col.foreignKey.foreignTable.uncapitalisedJavaName}CBquery Query.\r
- * @deprecated Please use inScope${col.foreignKey.foreignPropertyNameInitCap}(subQuery) method.\r
- */\r
- public void set${subQueryPropertyNameInitCap}(${relatedCQClassName} ${col.foreignKey.foreignTable.uncapitalisedJavaName}CBquery) {\r
- String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(${col.foreignKey.foreignTable.uncapitalisedJavaName}CBquery);// for saving query-value.\r
- registerInScopeSubQuery(${col.foreignKey.foreignTable.uncapitalisedJavaName}CBquery, "${col.Name}", "${col.foreignKey.firstForeignColumnName}", subQueryPropertyName);\r
- }\r
- public void inScope${col.foreignKey.foreignPropertyNameInitCap}(${glSubQuery}<${relatedCBClassName}> subQuery) {\r
+ public void inScope${col.foreignKey.foreignPropertyNameInitCap}(SubQuery<${relatedCBClassName}> subQuery) {\r
assertObjectNotNull("subQuery<${relatedCBClassName}>", subQuery);\r
${relatedCBClassName} cb = new ${relatedCBClassName}(); cb.xsetupForInScopeSubQuery(); subQuery.query(cb);\r
- String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.query());// for saving query-value.\r
- registerInScopeSubQuery(cb.query(), "${col.Name}", "${col.foreignKey.firstForeignColumnName}", subQueryPropertyName);\r
+ String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.query()); // for saving query-value.\r
+ registerInScopeSubQuery(cb.query(), "${col.name}", "${col.foreignKey.firstForeignColumnName}", subQueryPropertyName);\r
}\r
- abstract public String keep${subQueryPropertyNameInitCap}(${glPackageCQ}.${relatedCQClassName} subQuery);\r
+ public abstract String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
#end\r
#if (${col.hasSingleKeyReferrer()})\r
#foreach ($referrer in $col.singleKeyReferrers)\r
#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_InScopeSubQuery_${referrer.ReferrerPropertyNameInitCap}")\r
#end\r
\r
- /**\r
- * @param ${referrer.table.uncapitalisedJavaName}CBquery Query.\r
- * @deprecated Please use inScope${relationPropertyNameInitCap}(subQuery) method.\r
- */\r
- public void set${subQueryPropertyNameInitCap}(${relatedCQClassName} ${referrer.table.uncapitalisedJavaName}CBquery) {\r
- String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(${referrer.table.uncapitalisedJavaName}CBquery);// for saving query-value.\r
- registerInScopeSubQuery(${referrer.table.uncapitalisedJavaName}CBquery, "${col.Name}", "${referrer.firstLocalColumnName}", subQueryPropertyName);\r
- }\r
- public void inScope${relationPropertyNameInitCap}(${glSubQuery}<${relatedCBClassName}> subQuery) {\r
+ public void inScope${relationPropertyNameInitCap}(SubQuery<${relatedCBClassName}> subQuery) {\r
assertObjectNotNull("subQuery<${relatedCBClassName}>", subQuery);\r
${relatedCBClassName} cb = new ${relatedCBClassName}(); cb.xsetupForInScopeSubQuery(); subQuery.query(cb);\r
- String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.query());// for saving query-value.\r
- registerInScopeSubQuery(cb.query(), "${col.Name}", "${referrer.firstLocalColumnName}", subQueryPropertyName);\r
+ String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.query()); // for saving query-value.\r
+ registerInScopeSubQuery(cb.query(), "${col.name}", "${referrer.firstLocalColumnName}", subQueryPropertyName);\r
}\r
- abstract public String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
+ public abstract String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
#end\r
#end\r
#if (${col.hasSingleKeyReferrer()})\r
#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotInScopeSubQuery_${referrer.ReferrerPropertyNameInitCap}")\r
#end\r
\r
- public void notInScope${relationPropertyNameInitCap}(${glSubQuery}<${relatedCBClassName}> subQuery) {\r
+ public void notInScope${relationPropertyNameInitCap}(SubQuery<${relatedCBClassName}> subQuery) {\r
assertObjectNotNull("subQuery<${relatedCBClassName}>", subQuery);\r
${relatedCBClassName} cb = new ${relatedCBClassName}(); cb.xsetupForInScopeSubQuery(); subQuery.query(cb);\r
- String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.query());// for saving query-value.\r
- registerNotInScopeSubQuery(cb.query(), "${col.Name}", "${referrer.firstLocalColumnName}", subQueryPropertyName);\r
+ String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.query()); // for saving query-value.\r
+ registerNotInScopeSubQuery(cb.query(), "${col.name}", "${referrer.firstLocalColumnName}", subQueryPropertyName);\r
}\r
- abstract public String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
+ public abstract String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
#end\r
#end\r
#if (${col.hasSingleKeyReferrer()})\r
#end\r
\r
/**\r
- * @param ${referrer.table.uncapitalisedJavaName}CBquery Query.\r
- * @deprecated Please use exists${relationPropertyNameInitCap}(subQuery) method.\r
- */\r
- public void set${subQueryPropertyNameInitCap}(${relatedCQClassName} ${referrer.table.uncapitalisedJavaName}CBquery) {\r
- String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(${referrer.table.uncapitalisedJavaName}CBquery);// for saving query-value.\r
- registerExistsSubQuery(${referrer.table.uncapitalisedJavaName}CBquery, "${col.Name}", "${referrer.FirstLocalColumnName}", subQueryPropertyName);\r
- }\r
- /**\r
* Set up 'exists' sub-query. {exists (select ${referrer.firstLocalColumnName} from ${referrer.table.name} where ...)}\r
* @param subQuery The sub-query of ${subQueryPropertyNameInitCap} for 'exists'. (NotNull)\r
*/\r
- public void exists${relationPropertyNameInitCap}(${glSubQuery}<${relatedCBClassName}> subQuery) {\r
+ public void exists${relationPropertyNameInitCap}(SubQuery<${relatedCBClassName}> subQuery) {\r
assertObjectNotNull("subQuery<${relatedCBClassName}>", subQuery);\r
${relatedCBClassName} cb = new ${relatedCBClassName}(); cb.xsetupForExistsSubQuery(); subQuery.query(cb);\r
- String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.query());// for saving query-value.\r
- registerExistsSubQuery(cb.query(), "${col.Name}", "${referrer.FirstLocalColumnName}", subQueryPropertyName);\r
+ String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.query()); // for saving query-value.\r
+ registerExistsSubQuery(cb.query(), "${col.name}", "${referrer.FirstLocalColumnName}", subQueryPropertyName);\r
}\r
- abstract public String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
+ public abstract String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
#end\r
#end\r
#if (${col.hasSingleKeyReferrer()})\r
* Set up 'not exists' sub-query. {not exists (select ${referrer.firstLocalColumnName} from ${referrer.table.name} where ...)}\r
* @param subQuery The sub-query of ${subQueryPropertyNameInitCap} for 'not exists'. (NotNull)\r
*/\r
- public void notExists${relationPropertyNameInitCap}(${glSubQuery}<${relatedCBClassName}> subQuery) {\r
+ public void notExists${relationPropertyNameInitCap}(SubQuery<${relatedCBClassName}> subQuery) {\r
assertObjectNotNull("subQuery<${relatedCBClassName}>", subQuery);\r
${relatedCBClassName} cb = new ${relatedCBClassName}(); cb.xsetupForExistsSubQuery(); subQuery.query(cb);\r
- String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.query());// for saving query-value.\r
- registerNotExistsSubQuery(cb.query(), "${col.Name}", "${referrer.FirstLocalColumnName}", subQueryPropertyName);\r
+ String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.query()); // for saving query-value.\r
+ registerNotExistsSubQuery(cb.query(), "${col.name}", "${referrer.FirstLocalColumnName}", subQueryPropertyName);\r
}\r
- abstract public String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
+ public abstract String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
#end\r
#end\r
#if (${col.hasSingleKeyReferrer()})\r
#if (!${referrer.isOneToOne()})\r
#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_DeriveSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_DeriveSubQuery_${referrer.referrerPropertyNameInitCap}")\r
+#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_SpecifyDerivedReferrer_${referrer.referrerPropertyNameInitCap}")\r
+#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_SpecifyDerivedReferrer_${referrer.referrerPropertyNameInitCap}")\r
\r
- public void xderive${referrer.referrerPropertyNameInitCap}(String function, ${glSubQuery}<${relatedCBClassName}> subQuery, String aliasName) {\r
+ public void xsderive${referrer.referrerPropertyNameInitCap}(String function, SubQuery<${relatedCBClassName}> subQuery, String aliasName) {\r
assertObjectNotNull("subQuery<${relatedCBClassName}>", subQuery);\r
- ${relatedCBClassName} cb = new ${relatedCBClassName}(); cb.xsetupForDeriveReferrer(); subQuery.query(cb);\r
- String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.query());// for saving query-value.\r
- registerDeriveSubQuery(function, cb.query(), "${col.Name}", "${referrer.firstLocalColumnName}", subQueryPropertyName, aliasName);\r
+ ${relatedCBClassName} cb = new ${relatedCBClassName}(); cb.xsetupForDerivedReferrer(); subQuery.query(cb);\r
+ String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.query()); // for saving query-value.\r
+ registerSpecifyDerivedReferrer(function, cb.query(), "${col.name}", "${referrer.firstLocalColumnName}", subQueryPropertyName, aliasName);\r
}\r
- abstract public String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
+ public abstract String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
+#end\r
+#end\r
+#end\r
+#if (${col.hasSingleKeyReferrer()})\r
+#foreach ($referrer in $col.singleKeyReferrers)\r
+#if (!${referrer.isOneToOne()})\r
+#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
+#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
+#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_QueryDerivedReferrer_${referrer.referrerPropertyNameInitCap}")\r
+#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_QueryDerivedReferrer_${referrer.referrerPropertyNameInitCap}")\r
+\r
+ public QDRFunction<${relatedCBClassName}> derived${referrer.referrerPropertyNameInitCap}() {\r
+ return xcreateQDRFunction${referrer.referrerPropertyNameInitCap}();\r
+ }\r
+ protected QDRFunction<${relatedCBClassName}> xcreateQDRFunction${referrer.referrerPropertyNameInitCap}() {\r
+ return new QDRFunction<${relatedCBClassName}>(new QDRSetupper<${relatedCBClassName}>() {\r
+ public void setup(String function, SubQuery<${relatedCBClassName}> subQuery, String operand, Object value) {\r
+ xqderive${referrer.referrerPropertyNameInitCap}(function, subQuery, operand, value);\r
+ }\r
+ });\r
+ }\r
+ public void xqderive${referrer.referrerPropertyNameInitCap}(String function, SubQuery<${relatedCBClassName}> subQuery, String operand, Object value) {\r
+ assertObjectNotNull("subQuery<${relatedCBClassName}>", subQuery);\r
+ ${relatedCBClassName} cb = new ${relatedCBClassName}(); cb.xsetupForDerivedReferrer(); subQuery.query(cb);\r
+ String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.query()); // for saving query-value.\r
+ String parameterPropertyName = keep${subQueryPropertyNameInitCap}Parameter(value);\r
+ registerQueryDerivedReferrer(function, cb.query(), "${col.name}", "${referrer.firstLocalColumnName}", subQueryPropertyName, operand, value, parameterPropertyName);\r
+ }\r
+ public abstract String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
+ public abstract String keep${subQueryPropertyNameInitCap}Parameter(Object parameterValue);\r
#end\r
#end\r
#end\r
#if (${col.isJavaNativeNumberObject()})\r
\r
/**\r
- * Equal(=). And NullIgnored, OnceRegistered. {${col.columnDefinitionLineDisp}}\r
- * @param ${tmpUncapitalisedJavaName} The value of ${col.UncapitalisedJavaName} as equal.\r
+ * Equal(=). And NullIgnored, OnlyOnceRegistered. {${col.columnDefinitionLineDisp}}\r
+ * @param ${tmpUncapitalisedJavaName} The value of ${col.uncapitalisedJavaName} as equal.\r
*/\r
- public void set${tmpJavaName}_Equal($col.JavaNative ${tmpUncapitalisedJavaName}) {\r
+ public void set${tmpJavaName}_Equal(${col.javaNative} ${tmpUncapitalisedJavaName}) {\r
reg${tmpJavaName}(CK_EQ, ${tmpUncapitalisedJavaName});\r
}\r
#if (${col.hasClassification()})\r
#foreach ($classificationMap in $col.ClassificationMapList)\r
\r
/**\r
- * Equal(=). As ${classificationMap.get('name')}. And NullIgnored, OnceRegistered.<br />\r
- * ${database.getMapValue($classificationMap, 'comment')}\r
+ * Equal(=). As ${classificationMap.get('name')}. And NullIgnored, OnlyOnceRegistered. <br />\r
+ * $database.buildClassificationApplicationComment($classificationMap)\r
*/\r
public void set${tmpJavaName}_Equal_${classificationMap.get('name')}() {\r
- final String code = ${glClassificationDefinition}.${database.classificationCodeVariableNamePrefix}${col.ClassificationName}_${classificationMap.get('name')};\r
- reg${tmpJavaName}(CK_EQ, new ${col.JavaNative}(code));\r
+ reg${tmpJavaName}(CK_EQ, new ${col.javaNative}(${glCDef}.${col.classificationName}.${classificationMap.get('name')}.code()));\r
}\r
#end\r
#end\r
#if (${col.isAvailableNumberNotEqual()})\r
\r
/**\r
- * NotEqual(!=). And NullIgnored, OnceRegistered.\r
- * @param ${tmpUncapitalisedJavaName} The value of ${col.UncapitalisedJavaName} as notEqual.\r
+ * NotEqual(!=). And NullIgnored, OnlyOnceRegistered.\r
+ * @param ${tmpUncapitalisedJavaName} The value of ${col.uncapitalisedJavaName} as notEqual.\r
*/\r
- public void set${tmpJavaName}_NotEqual($col.JavaNative ${tmpUncapitalisedJavaName}) {\r
+ public void set${tmpJavaName}_NotEqual(${col.javaNative} ${tmpUncapitalisedJavaName}) {\r
reg${tmpJavaName}(CK_NE, ${tmpUncapitalisedJavaName});\r
}\r
#if (${col.hasClassification()})\r
#foreach ($classificationMap in $col.ClassificationMapList)\r
\r
/**\r
- * NotEqual(!=). As ${classificationMap.get('name')}. And NullIgnored, OnceRegistered.<br />\r
- * ${database.getMapValue($classificationMap, 'comment')}\r
+ * NotEqual(!=). As ${classificationMap.get('name')}. And NullIgnored, OnlyOnceRegistered. <br />\r
+ * $database.buildClassificationApplicationComment($classificationMap)\r
*/\r
public void set${tmpJavaName}_NotEqual_${classificationMap.get('name')}() {\r
- final String code = ${glClassificationDefinition}.${database.classificationCodeVariableNamePrefix}${col.ClassificationName}_${classificationMap.get('name')};\r
- reg${tmpJavaName}(CK_NE, new ${col.JavaNative}(code));\r
+ reg${tmpJavaName}(CK_NE, new ${col.javaNative}(${glCDef}.${col.classificationName}.${classificationMap.get('name')}.code()));\r
}\r
#end\r
#end\r
#if (${col.isAvailableNumberGreaterThan()})\r
\r
/**\r
- * GreaterThan(>). And NullIgnored, OnceRegistered.\r
- * @param ${tmpUncapitalisedJavaName} The value of ${col.UncapitalisedJavaName} as greaterThan.\r
+ * GreaterThan(>). And NullIgnored, OnlyOnceRegistered.\r
+ * @param ${tmpUncapitalisedJavaName} The value of ${col.uncapitalisedJavaName} as greaterThan.\r
*/\r
- public void set${tmpJavaName}_GreaterThan($col.JavaNative ${tmpUncapitalisedJavaName}) {\r
+ public void set${tmpJavaName}_GreaterThan(${col.javaNative} ${tmpUncapitalisedJavaName}) {\r
reg${tmpJavaName}(CK_GT, ${tmpUncapitalisedJavaName});\r
}\r
#end\r
#if (${col.isAvailableNumberLessThan()})\r
\r
/**\r
- * LessThan(<). And NullIgnored, OnceRegistered.\r
- * @param ${tmpUncapitalisedJavaName} The value of ${col.UncapitalisedJavaName} as lessThan.\r
+ * LessThan(<). And NullIgnored, OnlyOnceRegistered.\r
+ * @param ${tmpUncapitalisedJavaName} The value of ${col.uncapitalisedJavaName} as lessThan.\r
*/\r
- public void set${tmpJavaName}_LessThan($col.JavaNative ${tmpUncapitalisedJavaName}) {\r
+ public void set${tmpJavaName}_LessThan(${col.javaNative} ${tmpUncapitalisedJavaName}) {\r
reg${tmpJavaName}(CK_LT, ${tmpUncapitalisedJavaName});\r
}\r
#end\r
#if (${col.isAvailableNumberGreaterEqual()})\r
\r
/**\r
- * GreaterEqual(>=). And NullIgnored, OnceRegistered.\r
- * @param ${tmpUncapitalisedJavaName} The value of ${col.UncapitalisedJavaName} as greaterEqual.\r
+ * GreaterEqual(>=). And NullIgnored, OnlyOnceRegistered.\r
+ * @param ${tmpUncapitalisedJavaName} The value of ${col.uncapitalisedJavaName} as greaterEqual.\r
*/\r
- public void set${tmpJavaName}_GreaterEqual($col.JavaNative ${tmpUncapitalisedJavaName}) {\r
+ public void set${tmpJavaName}_GreaterEqual(${col.javaNative} ${tmpUncapitalisedJavaName}) {\r
reg${tmpJavaName}(CK_GE, ${tmpUncapitalisedJavaName});\r
}\r
#end\r
#if (${col.isAvailableNumberLessEqual()})\r
\r
/**\r
- * LessEqual(<=). And NullIgnored, OnceRegistered.\r
- * @param ${tmpUncapitalisedJavaName} The value of ${col.UncapitalisedJavaName} as lessEqual.\r
+ * LessEqual(<=). And NullIgnored, OnlyOnceRegistered.\r
+ * @param ${tmpUncapitalisedJavaName} The value of ${col.uncapitalisedJavaName} as lessEqual.\r
*/\r
- public void set${tmpJavaName}_LessEqual($col.JavaNative ${tmpUncapitalisedJavaName}) {\r
+ public void set${tmpJavaName}_LessEqual(${col.javaNative} ${tmpUncapitalisedJavaName}) {\r
reg${tmpJavaName}(CK_LE, ${tmpUncapitalisedJavaName});\r
}\r
#end\r
\r
/**\r
* InScope(in (1, 2)). And NullIgnored, NullElementIgnored, SeveralRegistered.\r
- * @param ${tmpUncapitalisedJavaName}List The collection of ${col.UncapitalisedJavaName} as inScope.\r
+ * @param ${tmpUncapitalisedJavaName}List The collection of ${col.uncapitalisedJavaName} as inScope.\r
*/\r
- public void set${tmpJavaName}_InScope(Collection<${col.JavaNative}> ${tmpUncapitalisedJavaName}List) {\r
+ public void set${tmpJavaName}_InScope(Collection<${col.javaNative}> ${tmpUncapitalisedJavaName}List) {\r
reg${tmpJavaName}(CK_INS, cTL(${tmpUncapitalisedJavaName}List));\r
}\r
#end\r
\r
/**\r
* NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, SeveralRegistered.\r
- * @param ${tmpUncapitalisedJavaName}List The collection of ${col.UncapitalisedJavaName} as notInScope.\r
+ * @param ${tmpUncapitalisedJavaName}List The collection of ${col.uncapitalisedJavaName} as notInScope.\r
*/\r
- public void set${tmpJavaName}_NotInScope(Collection<${col.JavaNative}> ${tmpUncapitalisedJavaName}List) {\r
+ public void set${tmpJavaName}_NotInScope(Collection<${col.javaNative}> ${tmpUncapitalisedJavaName}List) {\r
reg${tmpJavaName}(CK_NINS, cTL(${tmpUncapitalisedJavaName}List));\r
}\r
#end\r
-#if (${col.isSingleKeyForeignKey()})\r
+#if (${col.isSingleKeyForeignKey()} && !${col.foreignKey.hasFixedCondition()})\r
#set ($relatedCBClassName = "${col.foreignKey.foreignTableExtendedConditionBeanClassName}")\r
#set ($relatedCQClassName = "${col.foreignKey.foreignTableExtendedConditionQueryClassName}")\r
#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_InScopeSubQuery_${col.foreignKey.foreignPropertyNameInitCap}")\r
#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_InScopeSubQuery_${col.foreignKey.foreignPropertyNameInitCap}")\r
\r
- /**\r
- * @param ${col.foreignKey.foreignTable.uncapitalisedJavaName}CBquery Query.\r
- * @deprecated Please use inScope${col.foreignKey.foreignPropertyNameInitCap}(subQuery) method.\r
- */\r
- public void set${subQueryPropertyNameInitCap}(${relatedCQClassName} ${col.foreignKey.foreignTable.uncapitalisedJavaName}CBquery) {\r
- String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(${col.foreignKey.foreignTable.uncapitalisedJavaName}CBquery);// for saving query-value.\r
- registerInScopeSubQuery(${col.foreignKey.foreignTable.uncapitalisedJavaName}CBquery, "${col.Name}", "${col.foreignKey.firstForeignColumnName}", subQueryPropertyName);\r
- }\r
- public void inScope${col.foreignKey.foreignPropertyNameInitCap}(${glSubQuery}<${relatedCBClassName}> subQuery) {\r
+ public void inScope${col.foreignKey.foreignPropertyNameInitCap}(SubQuery<${relatedCBClassName}> subQuery) {\r
assertObjectNotNull("subQuery<${relatedCBClassName}>", subQuery);\r
${relatedCBClassName} cb = new ${relatedCBClassName}(); cb.xsetupForInScopeSubQuery(); subQuery.query(cb);\r
- String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.query());// for saving query-value.\r
- registerInScopeSubQuery(cb.query(), "${col.Name}", "${col.foreignKey.firstForeignColumnName}", subQueryPropertyName);\r
+ String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.query()); // for saving query-value.\r
+ registerInScopeSubQuery(cb.query(), "${col.name}", "${col.foreignKey.firstForeignColumnName}", subQueryPropertyName);\r
}\r
- abstract public String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
+ public abstract String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
#end\r
#if (${col.hasSingleKeyReferrer()})\r
#foreach ($referrer in $col.singleKeyReferrers)\r
#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_InScopeSubQuery_${referrer.ReferrerPropertyNameInitCap}")\r
#end\r
\r
- /**\r
- * @param ${referrer.table.uncapitalisedJavaName}CBquery Query.\r
- * @deprecated Please use inScope${relationPropertyNameInitCap}(subQuery) method.\r
- */\r
- public void set${subQueryPropertyNameInitCap}(${relatedCQClassName} ${referrer.table.uncapitalisedJavaName}CBquery) {\r
- String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(${referrer.table.uncapitalisedJavaName}CBquery);// for saving query-value.\r
- registerInScopeSubQuery(${referrer.table.uncapitalisedJavaName}CBquery, "${col.Name}", "${referrer.firstLocalColumnName}", subQueryPropertyName);\r
- }\r
- public void inScope${relationPropertyNameInitCap}(${glSubQuery}<${relatedCBClassName}> subQuery) {\r
+ public void inScope${relationPropertyNameInitCap}(SubQuery<${relatedCBClassName}> subQuery) {\r
assertObjectNotNull("subQuery<${relatedCBClassName}>", subQuery);\r
${relatedCBClassName} cb = new ${relatedCBClassName}(); cb.xsetupForInScopeSubQuery(); subQuery.query(cb);\r
- String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.query());// for saving query-value.\r
- registerInScopeSubQuery(cb.query(), "${col.Name}", "${referrer.firstLocalColumnName}", subQueryPropertyName);\r
+ String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.query()); // for saving query-value.\r
+ registerInScopeSubQuery(cb.query(), "${col.name}", "${referrer.firstLocalColumnName}", subQueryPropertyName);\r
}\r
- abstract public String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
+ public abstract String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
#end\r
#end\r
#if (${col.hasSingleKeyReferrer()})\r
#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotInScopeSubQuery_${referrer.ReferrerPropertyNameInitCap}")\r
#end\r
\r
- public void notInScope${relationPropertyNameInitCap}(${glSubQuery}<${relatedCBClassName}> subQuery) {\r
+ public void notInScope${relationPropertyNameInitCap}(SubQuery<${relatedCBClassName}> subQuery) {\r
assertObjectNotNull("subQuery<${relatedCBClassName}>", subQuery);\r
${relatedCBClassName} cb = new ${relatedCBClassName}(); cb.xsetupForInScopeSubQuery(); subQuery.query(cb);\r
- String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.query());// for saving query-value.\r
- registerNotInScopeSubQuery(cb.query(), "${col.Name}", "${referrer.firstLocalColumnName}", subQueryPropertyName);\r
+ String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.query()); // for saving query-value.\r
+ registerNotInScopeSubQuery(cb.query(), "${col.name}", "${referrer.firstLocalColumnName}", subQueryPropertyName);\r
}\r
- abstract public String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
+ public abstract String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
#end\r
#end\r
#if (${col.hasSingleKeyReferrer()})\r
#end\r
\r
/**\r
- * @param ${referrer.table.uncapitalisedJavaName}CBquery Query.\r
- * @deprecated Please use exists${relationPropertyNameInitCap}(subQuery) method.\r
- */\r
- public void set${subQueryPropertyNameInitCap}(${relatedCQClassName} ${referrer.table.uncapitalisedJavaName}CBquery) {\r
- String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(${referrer.table.uncapitalisedJavaName}CBquery);// for saving query-value.\r
- registerExistsSubQuery(${referrer.table.uncapitalisedJavaName}CBquery, "${col.Name}", "${referrer.firstLocalColumnName}", subQueryPropertyName);\r
- }\r
- /**\r
* Set up 'exists' sub-query. {exists (select ${referrer.firstLocalColumnName} from ${referrer.table.name} where ...)}\r
* @param subQuery The sub-query of ${subQueryPropertyNameInitCap} for 'exists'. (NotNull)\r
*/\r
- public void exists${relationPropertyNameInitCap}(${glSubQuery}<${relatedCBClassName}> subQuery) {\r
+ public void exists${relationPropertyNameInitCap}(SubQuery<${relatedCBClassName}> subQuery) {\r
assertObjectNotNull("subQuery<${relatedCBClassName}>", subQuery);\r
${relatedCBClassName} cb = new ${relatedCBClassName}(); cb.xsetupForExistsSubQuery(); subQuery.query(cb);\r
- String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.query());// for saving query-value.\r
- registerExistsSubQuery(cb.query(), "${col.Name}", "${referrer.firstLocalColumnName}", subQueryPropertyName);\r
+ String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.query()); // for saving query-value.\r
+ registerExistsSubQuery(cb.query(), "${col.name}", "${referrer.firstLocalColumnName}", subQueryPropertyName);\r
}\r
- abstract public String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
+ public abstract String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
#end\r
#end\r
#if (${col.hasSingleKeyReferrer()})\r
* Set up 'not exists' sub-query. {not exists (select ${referrer.firstLocalColumnName} from ${referrer.table.name} where ...)}\r
* @param subQuery The sub-query of ${subQueryPropertyNameInitCap} for 'not exists'. (NotNull)\r
*/\r
- public void notExists${relationPropertyNameInitCap}(${glSubQuery}<${relatedCBClassName}> subQuery) {\r
+ public void notExists${relationPropertyNameInitCap}(SubQuery<${relatedCBClassName}> subQuery) {\r
assertObjectNotNull("subQuery<${relatedCBClassName}>", subQuery);\r
${relatedCBClassName} cb = new ${relatedCBClassName}(); cb.xsetupForExistsSubQuery(); subQuery.query(cb);\r
- String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.query());// for saving query-value.\r
- registerNotExistsSubQuery(cb.query(), "${col.Name}", "${referrer.firstLocalColumnName}", subQueryPropertyName);\r
+ String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.query()); // for saving query-value.\r
+ registerNotExistsSubQuery(cb.query(), "${col.name}", "${referrer.firstLocalColumnName}", subQueryPropertyName);\r
+ }\r
+ public abstract String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
+#end\r
+#end\r
+#if (${col.hasSingleKeyReferrer()})\r
+#foreach ($referrer in $col.singleKeyReferrers)\r
+#if (!${referrer.isOneToOne()})\r
+#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
+#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
+#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_SpecifyDerivedReferrer_${referrer.referrerPropertyNameInitCap}")\r
+#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_SpecifyDerivedReferrer_${referrer.referrerPropertyNameInitCap}")\r
+\r
+ public void xsderive${referrer.referrerPropertyNameInitCap}(String function, SubQuery<${relatedCBClassName}> subQuery, String aliasName) {\r
+ assertObjectNotNull("subQuery<${relatedCBClassName}>", subQuery);\r
+ ${relatedCBClassName} cb = new ${relatedCBClassName}(); cb.xsetupForDerivedReferrer(); subQuery.query(cb);\r
+ String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.query()); // for saving query-value.\r
+ registerSpecifyDerivedReferrer(function, cb.query(), "${col.name}", "${referrer.firstLocalColumnName}", subQueryPropertyName, aliasName);\r
}\r
- abstract public String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
+ public abstract String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
+#end\r
#end\r
#end\r
#if (${col.hasSingleKeyReferrer()})\r
#if (!${referrer.isOneToOne()})\r
#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_DeriveSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_DeriveSubQuery_${referrer.referrerPropertyNameInitCap}")\r
+#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_QueryDerivedReferrer_${referrer.referrerPropertyNameInitCap}")\r
+#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_QueryDerivedReferrer_${referrer.referrerPropertyNameInitCap}")\r
\r
- public void xderive${referrer.referrerPropertyNameInitCap}(String function, ${glSubQuery}<${relatedCBClassName}> subQuery, String aliasName) {\r
+ public QDRFunction<${relatedCBClassName}> derived${referrer.referrerPropertyNameInitCap}() {\r
+ return xcreateQDRFunction${referrer.referrerPropertyNameInitCap}();\r
+ }\r
+ protected QDRFunction<${relatedCBClassName}> xcreateQDRFunction${referrer.referrerPropertyNameInitCap}() {\r
+ return new QDRFunction<${relatedCBClassName}>(new QDRSetupper<${relatedCBClassName}>() {\r
+ public void setup(String function, SubQuery<${relatedCBClassName}> subQuery, String operand, Object value) {\r
+ xqderive${referrer.referrerPropertyNameInitCap}(function, subQuery, operand, value);\r
+ }\r
+ });\r
+ }\r
+ public void xqderive${referrer.referrerPropertyNameInitCap}(String function, SubQuery<${relatedCBClassName}> subQuery, String operand, Object value) {\r
assertObjectNotNull("subQuery<${relatedCBClassName}>", subQuery);\r
- ${relatedCBClassName} cb = new ${relatedCBClassName}(); cb.xsetupForDeriveReferrer(); subQuery.query(cb);\r
- String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.query());// for saving query-value.\r
- registerDeriveSubQuery(function, cb.query(), "${col.Name}", "${referrer.firstLocalColumnName}", subQueryPropertyName, aliasName);\r
+ ${relatedCBClassName} cb = new ${relatedCBClassName}(); cb.xsetupForDerivedReferrer(); subQuery.query(cb);\r
+ String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.query()); // for saving query-value.\r
+ String parameterPropertyName = keep${subQueryPropertyNameInitCap}Parameter(value);\r
+ registerQueryDerivedReferrer(function, cb.query(), "${col.name}", "${referrer.firstLocalColumnName}", subQueryPropertyName, operand, value, parameterPropertyName);\r
}\r
- abstract public String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
+ public abstract String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
+ public abstract String keep${subQueryPropertyNameInitCap}Parameter(Object parameterValue);\r
#end\r
#end\r
#end\r
#if (${col.isJavaNativeDateObject()})\r
\r
/**\r
- * Equal(=). And NullIgnored, OnceRegistered. {${col.columnDefinitionLineDisp}}\r
- * @param ${tmpUncapitalisedJavaName} The value of ${col.UncapitalisedJavaName} as equal.\r
+ * Equal(=). And NullIgnored, OnlyOnceRegistered. {${col.columnDefinitionLineDisp}}\r
+ * @param ${tmpUncapitalisedJavaName} The value of ${col.uncapitalisedJavaName} as equal.\r
*/\r
public void set${tmpJavaName}_Equal($col.javaNative ${tmpUncapitalisedJavaName}) {\r
reg${tmpJavaName}(CK_EQ, ${tmpUncapitalisedJavaName});\r
#if (${col.isAvailableDateNotEqual()})\r
\r
/**\r
- * NotEqual(!=). And NullIgnored, OnceRegistered.\r
- * @param ${tmpUncapitalisedJavaName} The value of ${col.UncapitalisedJavaName} as notEqual.\r
+ * NotEqual(!=). And NullIgnored, OnlyOnceRegistered.\r
+ * @param ${tmpUncapitalisedJavaName} The value of ${col.uncapitalisedJavaName} as notEqual.\r
*/\r
public void set${tmpJavaName}_NotEqual($col.javaNative ${tmpUncapitalisedJavaName}) {\r
reg${tmpJavaName}(CK_NE, ${tmpUncapitalisedJavaName});\r
#if (${col.isAvailableDateGreaterThan()})\r
\r
/**\r
- * GreaterThan(>). And NullIgnored, OnceRegistered.\r
- * @param ${tmpUncapitalisedJavaName} The value of ${col.UncapitalisedJavaName} as greaterThan.\r
+ * GreaterThan(>). And NullIgnored, OnlyOnceRegistered.\r
+ * @param ${tmpUncapitalisedJavaName} The value of ${col.uncapitalisedJavaName} as greaterThan.\r
*/\r
public void set${tmpJavaName}_GreaterThan($col.javaNative ${tmpUncapitalisedJavaName}) {\r
reg${tmpJavaName}(CK_GT, ${tmpUncapitalisedJavaName});\r
#if (${col.isAvailableDateLessThan()})\r
\r
/**\r
- * LessThan(>). And NullIgnored, OnceRegistered.\r
- * @param ${tmpUncapitalisedJavaName} The value of ${col.UncapitalisedJavaName} as lessThan.\r
+ * LessThan(>). And NullIgnored, OnlyOnceRegistered.\r
+ * @param ${tmpUncapitalisedJavaName} The value of ${col.uncapitalisedJavaName} as lessThan.\r
*/\r
public void set${tmpJavaName}_LessThan($col.javaNative ${tmpUncapitalisedJavaName}) {\r
reg${tmpJavaName}(CK_LT, ${tmpUncapitalisedJavaName});\r
#if (${col.isAvailableDateGreaterEqual()})\r
\r
/**\r
- * GreaterEqual(>). And NullIgnored, OnceRegistered.\r
- * @param ${tmpUncapitalisedJavaName} The value of ${col.UncapitalisedJavaName} as greaterEqual.\r
+ * GreaterEqual(>). And NullIgnored, OnlyOnceRegistered.\r
+ * @param ${tmpUncapitalisedJavaName} The value of ${col.uncapitalisedJavaName} as greaterEqual.\r
*/\r
public void set${tmpJavaName}_GreaterEqual($col.javaNative ${tmpUncapitalisedJavaName}) {\r
reg${tmpJavaName}(CK_GE, ${tmpUncapitalisedJavaName});\r
#if (${col.isAvailableDateLessEqual()})\r
\r
/**\r
- * LessEqual(>). And NullIgnored, OnceRegistered.\r
- * @param ${tmpUncapitalisedJavaName} The value of ${col.UncapitalisedJavaName} as lessEqual.\r
+ * LessEqual(>). And NullIgnored, OnlyOnceRegistered.\r
+ * @param ${tmpUncapitalisedJavaName} The value of ${col.uncapitalisedJavaName} as lessEqual.\r
*/\r
public void set${tmpJavaName}_LessEqual($col.javaNative ${tmpUncapitalisedJavaName}) {\r
reg${tmpJavaName}(CK_LE, ${tmpUncapitalisedJavaName});\r
#if (${col.isAvailableDateFromTo()} && !${col.isTorqueTypeTime()})\r
\r
/**\r
- * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, OnceRegistered. {${col.columnDefinitionLineDisp}}\r
- * @param fromDate The from-date of ${col.UncapitalisedJavaName}. (Nullable)\r
- * @param toDate The to-date of ${col.UncapitalisedJavaName}. (Nullable)\r
+ * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, OnlyOnceRegistered. {${col.columnDefinitionLineDisp}}\r
+ * @param fromDate The from-date of ${col.uncapitalisedJavaName}. (Nullable)\r
+ * @param toDate The to-date of ${col.uncapitalisedJavaName}. (Nullable)\r
* @param fromToOption The option of from-to. (NotNull)\r
*/\r
- public void set${tmpJavaName}_FromTo(java.util.Date fromDate, java.util.Date toDate, ${glPackageBaseCommonCOption}.${glConditionOptionFromToName} fromToOption) {\r
+ public void set${tmpJavaName}_FromTo(java.util.Date fromDate, java.util.Date toDate, FromToOption fromToOption) {\r
#if ($col.javaNative == "java.util.Date")\r
- registerFromToQuery(fromDate, toDate, getCValue${tmpJavaName}(), "${col.Name}", "${col.JavaName}", "${col.UncapitalisedJavaName}", fromToOption);\r
+ regFTQ(fromDate, toDate, getCValue${tmpJavaName}(), "${col.name}", fromToOption);\r
#else\r
- registerFromToQuery((fromDate != null ? new ${col.javaNative}(fromDate.getTime()) : null), (toDate != null ? new ${col.javaNative}(toDate.getTime()) : null), getCValue${tmpJavaName}(), "${col.Name}", "${col.JavaName}", "${col.UncapitalisedJavaName}", fromToOption);\r
+ regFTQ((fromDate != null ? new ${col.javaNative}(fromDate.getTime()) : null), (toDate != null ? new ${col.javaNative}(toDate.getTime()) : null), getCValue${tmpJavaName}(), "${col.name}", fromToOption);\r
#end\r
}\r
\r
/**\r
- * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, OnceRegistered. {${col.columnDefinitionLineDisp}}\r
- * @param fromDate The from-date of ${col.UncapitalisedJavaName}. (Nullable)\r
- * @param toDate The to-date of ${col.UncapitalisedJavaName}. (Nullable)\r
+ * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, OnlyOnceRegistered. {${col.columnDefinitionLineDisp}}\r
+ * @param fromDate The from-date of ${col.uncapitalisedJavaName}. (Nullable)\r
+ * @param toDate The to-date of ${col.uncapitalisedJavaName}. (Nullable)\r
*/\r
public void set${tmpJavaName}_DateFromTo(java.util.Date fromDate, java.util.Date toDate) {\r
- set${tmpJavaName}_FromTo(fromDate, toDate, new ${glPackageBaseCommonCOption}.${glConditionOptionDateFromToName}());\r
+ set${tmpJavaName}_FromTo(fromDate, toDate, new DateFromToOption());\r
}\r
#end\r
#end\r
#if (${col.isJavaNativeBooleanObject()})\r
\r
/**\r
- * Equal(=). And NullIgnored, OnceRegistered. {${col.columnDefinitionLineDisp}}\r
- * @param ${tmpUncapitalisedJavaName} The value of ${col.UncapitalisedJavaName} as equal.\r
+ * Equal(=). And NullIgnored, OnlyOnceRegistered. {${col.columnDefinitionLineDisp}}\r
+ * @param ${tmpUncapitalisedJavaName} The value of ${col.uncapitalisedJavaName} as equal.\r
*/\r
- public void set${tmpJavaName}_Equal($col.JavaNative ${tmpUncapitalisedJavaName}) {\r
+ public void set${tmpJavaName}_Equal(${col.javaNative} ${tmpUncapitalisedJavaName}) {\r
reg${tmpJavaName}(CK_EQ, ${tmpUncapitalisedJavaName});\r
}\r
+#if (${col.hasClassification()})\r
+#foreach ($classificationMap in $col.classificationMapList)\r
+\r
+ /**\r
+ * Equal(=). As ${classificationMap.get('name')}. And OnlyOnceRegistered. <br />\r
+ * $database.buildClassificationApplicationComment($classificationMap)\r
+ */\r
+ public void set${tmpJavaName}_Equal_${classificationMap.get('name')}() {\r
+ reg${tmpJavaName}(CK_EQ, new ${col.javaNative}(${glCDef}.${col.classificationName}.${classificationMap.get('name')}.code()));\r
+ }\r
+#end\r
+#end\r
#end\r
#if (!${col.isNotNull()} || ${col.isPrimaryKey()})\r
\r
/**\r
- * IsNull(is null). And OnceRegistered.\r
+ * IsNull(is null). And OnlyOnceRegistered.\r
*/\r
- public void set${tmpJavaName}_IsNull() { reg${tmpJavaName}(CK_ISN, DUMMY_OBJECT); }\r
+ public void set${tmpJavaName}_IsNull() { reg${tmpJavaName}(CK_ISN, DOBJ); }\r
\r
/**\r
- * IsNotNull(is not null). And OnceRegistered.\r
+ * IsNotNull(is not null). And OnlyOnceRegistered.\r
*/\r
- public void set${tmpJavaName}_IsNotNull() { reg${tmpJavaName}(CK_ISNN, DUMMY_OBJECT); }\r
+ public void set${tmpJavaName}_IsNotNull() { reg${tmpJavaName}(CK_ISNN, DOBJ); }\r
#end\r
\r
- protected void reg${tmpJavaName}(${glConditionKeyName} key, Object value) {\r
- registerQuery(key, value, getCValue${tmpJavaName}(), "${col.Name}", "${col.JavaName}", "${col.UncapitalisedJavaName}");\r
+ protected void reg${tmpJavaName}(ConditionKey k, Object v) { regQ(k, v, getCValue${tmpJavaName}(), "${col.name}"); }\r
+ abstract protected ConditionValue getCValue${tmpJavaName}();\r
+#end\r
+#if ($table.hasOnlyOnePrimaryKey())\r
+\r
+ // ===================================================================================\r
+ // Scalar SubQuery\r
+ // ===============\r
+ public SSQFunction<${myConditionBeanClassName}> scalar_Equal() {\r
+ return xcreateSSQFunction("=");\r
+ }\r
+\r
+ public SSQFunction<${myConditionBeanClassName}> scalar_GreaterEqual() {\r
+ return xcreateSSQFunction(">=");\r
+ }\r
+\r
+ public SSQFunction<${myConditionBeanClassName}> scalar_GreaterThan() {\r
+ return xcreateSSQFunction(">");\r
}\r
- protected void registerInline${tmpJavaName}(${glConditionKeyName} key, Object value) {\r
- registerInlineQuery(key, value, getCValue${tmpJavaName}(), "${col.Name}", "${col.JavaName}", "${col.UncapitalisedJavaName}");\r
+\r
+ public SSQFunction<${myConditionBeanClassName}> scalar_LessEqual() {\r
+ return xcreateSSQFunction("<=");\r
}\r
- abstract protected ${glConditionValueName} getCValue${tmpJavaName}();\r
+ \r
+ public SSQFunction<${myConditionBeanClassName}> scalar_LessThan() {\r
+ return xcreateSSQFunction("<");\r
+ }\r
+ \r
+ protected SSQFunction<${myConditionBeanClassName}> xcreateSSQFunction(final String operand) {\r
+ return new SSQFunction<${myConditionBeanClassName}>(new SSQSetupper<${myConditionBeanClassName}>() {\r
+ public void setup(String function, SubQuery<${myConditionBeanClassName}> subQuery) {\r
+ xscalarSubQuery(function, subQuery, operand);\r
+ }\r
+ });\r
+ }\r
+\r
+ protected void xscalarSubQuery(String function, SubQuery<${myConditionBeanClassName}> subQuery, String operand) {\r
+ assertObjectNotNull("subQuery<${myConditionBeanClassName}>", subQuery);\r
+ ${myConditionBeanClassName} cb = new ${myConditionBeanClassName}(); cb.xsetupForScalarSubQuery(); subQuery.query(cb);\r
+ String subQueryPropertyName = keepScalarSubQuery(cb.query()); // for saving query-value.\r
+ registerScalarSubQuery(function, cb.query(), subQueryPropertyName, operand);\r
+ }\r
+ public abstract String keepScalarSubQuery(${myConditionQueryClassName} subQuery);\r
+\r
+ // ===================================================================================\r
+ // MySelf InScope SubQuery\r
+ // =======================\r
+ /**\r
+ * Myself InScope SubQuery. {mainly for CLOB and Union}\r
+ * @param subQuery The implementation of sub query. (NotNull)\r
+ */\r
+ public void myselfInScope(SubQuery<${myConditionBeanClassName}> subQuery) {\r
+ assertObjectNotNull("subQuery<${myConditionBeanClassName}>", subQuery);\r
+ ${myConditionBeanClassName} cb = new ${myConditionBeanClassName}(); cb.xsetupForInScopeSubQuery(); subQuery.query(cb);\r
+ String subQueryPropertyName = keepMyselfInScopeSubQuery(cb.query()); // for saving query-value.\r
+ registerInScopeSubQuery(cb.query(), "${table.primaryKeyAsOne.name}", "${table.primaryKeyAsOne.name}", subQueryPropertyName);\r
+ }\r
+ public abstract String keepMyselfInScopeSubQuery(${myConditionQueryClassName} subQuery);\r
#end\r
\r
+ // ===================================================================================\r
+ // Very Internal\r
+ // =============\r
// Very Internal (for Suppressing Warn about 'Not Use Import')\r
- protected String getConditionBeanClassNameInternally() { return ${myConditionBeanClassName}.class.getName(); }\r
- protected String getConditionQueryClassNameInternally() { return ${myConditionQueryClassName}.class.getName(); }\r
+ String xCB() { return ${myConditionBeanClassName}.class.getName(); }\r
+ String xCQ() { return ${myConditionQueryClassName}.class.getName(); }\r
+ String xLSO() { return LikeSearchOption.class.getName(); }\r
}\r
\r
import java.util.Map;\r
\r
-import ${glPackageBaseCommonCBean}.${glConditionBeanAbstractName};\r
-import ${glPackageBaseCommonCBean}.${glConditionBeanInterfaceName};\r
-import ${glPackageBaseCommonCBean}.${glConditionQueryInterfaceName};\r
-import ${glPackageBaseCommonCBean}.${glSubQuery};\r
-import ${glPackageBaseCommonCBean}.${glUnionQuery};\r
+import org.seasar.dbflute.cbean.AbstractConditionBean;\r
+import org.seasar.dbflute.cbean.ConditionBean;\r
+import org.seasar.dbflute.cbean.ConditionQuery;\r
+import org.seasar.dbflute.cbean.SubQuery;\r
+import org.seasar.dbflute.cbean.UnionQuery;\r
+import org.seasar.dbflute.cbean.sqlclause.SqlClause;\r
+import org.seasar.dbflute.dbmeta.DBMetaProvider;\r
+import ${glPackageBaseCommon}.${glDBFluteConfig};\r
+import ${glPackageBaseCommon}.${glDBMetaInstanceHandler};\r
+import ${glPackageBaseCommon}.${glImplementedSqlClauseCreator};\r
import ${glPackageCB}.*;\r
import ${glPackageCQ}.*;\r
#if ($table.hasForeignKeyOrReferrerAsOne())\r
/**\r
* The base condition-bean of ${table.name}.\r
* @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public class ${myClassName} extends ${glConditionBeanAbstractName} {\r
+ */\r
+public class ${myClassName} extends AbstractConditionBean {\r
\r
// ===================================================================================\r
// Attribute\r
// =========\r
+ private final DBMetaProvider _dbmetaProvider = new ${glDBMetaInstanceHandler}();\r
protected ${myConditionQueryClassName} _conditionQuery;\r
\r
// ===================================================================================\r
+ // SqlClause\r
+ // =========\r
+ @Override\r
+ protected SqlClause createSqlClause() {\r
+ return new ${glImplementedSqlClauseCreator}().createSqlClause(this);\r
+ }\r
+ \r
+ // ===================================================================================\r
+ // DBMeta Provider\r
+ // ===============\r
+ @Override\r
+ protected DBMetaProvider getDBMetaProvider() {\r
+ return _dbmetaProvider;\r
+ }\r
+\r
+ // ===================================================================================\r
// Table Name\r
// ==========\r
public String getTableDbName() {\r
// ===================================================================================\r
// OrderBy Setting\r
// ===============\r
- public ${glConditionBeanInterfaceName} addOrderBy_PK_Asc() {\r
+ public ConditionBean addOrderBy_PK_Asc() {\r
#if ($table.hasPrimaryKey())\r
#foreach ($col in $table.primaryKey)\r
query().addOrderBy_${col.JavaName}_Asc();\r
#end\r
}\r
\r
- public ${glConditionBeanInterfaceName} addOrderBy_PK_Desc() {\r
+ public ConditionBean addOrderBy_PK_Desc() {\r
#if ($table.hasPrimaryKey())\r
#foreach ($col in $table.primaryKey)\r
query().addOrderBy_${col.JavaName}_Desc();\r
return _conditionQuery;\r
}\r
\r
- public ${glConditionQueryInterfaceName} getConditionQueryAsInterface() {\r
+ /**\r
+ * ${database.ImplementComment}\r
+ * @return The conditionQuery of the local table as interface. (NotNull)\r
+ */\r
+ public ConditionQuery localCQ() {\r
return getConditionQuery();\r
}\r
\r
/**\r
* Set up 'union'.\r
* <pre>\r
- * cb.query().union(new ${glUnionQuery}<${myConditionBeanClassName}>() {\r
+ * cb.query().union(new UnionQuery<${myConditionBeanClassName}>() {\r
* public void query(${myConditionBeanClassName} unionCB) {\r
* unionCB.query().setXxx...\r
* }\r
* </pre>\r
* @param unionQuery The query of 'union'. (NotNull)\r
*/\r
- public void union(${glUnionQuery}<${myConditionBeanClassName}> unionQuery) {\r
+ public void union(UnionQuery<${myConditionBeanClassName}> unionQuery) {\r
final ${myConditionBeanClassName} cb = new ${myConditionBeanClassName}(); cb.xsetupForUnion(); unionQuery.query(cb);\r
final ${myConditionQueryClassName} cq = cb.query(); query().xsetUnionQuery(cq);\r
}\r
/**\r
* Set up 'union all'.\r
* <pre>\r
- * cb.query().unionAll(new ${glUnionQuery}<${myConditionBeanClassName}>() {\r
+ * cb.query().unionAll(new UnionQuery<${myConditionBeanClassName}>() {\r
* public void query(${myConditionBeanClassName} unionCB) {\r
* unionCB.query().setXxx...\r
* }\r
* </pre>\r
* @param unionQuery The query of 'union'. (NotNull)\r
*/\r
- public void unionAll(${glUnionQuery}<${myConditionBeanClassName}> unionQuery) {\r
+ public void unionAll(UnionQuery<${myConditionBeanClassName}> unionQuery) {\r
final ${myConditionBeanClassName} cb = new ${myConditionBeanClassName}(); cb.xsetupForUnion(); unionQuery.query(cb);\r
final ${myConditionQueryClassName} cq = cb.query(); query().xsetUnionAllQuery(cq);\r
}\r
- \r
- /**\r
- * @param unionQuery The query of 'union'. (NotNull)\r
- * @deprecated Sorry! Please use union(${glUnionQuery}<${myConditionBeanClassName}> unionQuery).\r
- */\r
- public void union(${myConditionQueryClassName} unionQuery) {\r
- query().xsetUnionQuery(unionQuery);\r
+\r
+ public boolean hasUnionQueryOrUnionAllQuery() {\r
+ return query().hasUnionQueryOrUnionAllQuery();\r
}\r
+#if ($database.isAvailableDatabaseDependency())\r
+#if ($database.isDatabaseOracle())\r
\r
- /**\r
- * @param unionQuery The query of 'union'. (NotNull)\r
- * @deprecated Sorry! Please use unionAll(${glUnionQuery}<${myConditionBeanClassName}> unionQuery).\r
- */\r
- public void unionAll(${myConditionQueryClassName} unionQuery) {\r
- query().xsetUnionAllQuery(unionQuery);\r
+ // ===================================================================================\r
+ // Lock Wait\r
+ // =========\r
+ public ConditionBean lockForUpdateNoWait()\r
+ { if (helpIsSqlClauseOracle()) { helpGettingSqlClauseOracle().lockForUpdateNoWait(); } return this; }\r
+ public ConditionBean lockForUpdateWait(int waitSec)\r
+ { if (helpIsSqlClauseOracle()) { helpGettingSqlClauseOracle().lockForUpdateWait(waitSec); } return this; }\r
+\r
+ protected boolean helpIsSqlClauseOracle() {\r
+ return getSqlClause() instanceof org.seasar.dbflute.cbean.sqlclause.SqlClauseOracle;\r
}\r
\r
- public boolean hasUnionQueryOrUnionAllQuery() {\r
- return query().hasUnionQueryOrUnionAllQuery();\r
+ protected org.seasar.dbflute.cbean.sqlclause.SqlClauseOracle helpGettingSqlClauseOracle() {\r
+ return (org.seasar.dbflute.cbean.sqlclause.SqlClauseOracle)getSqlClause();\r
}\r
+#end\r
+#if ($database.isDatabaseDB2())\r
+\r
+ // [DBFlute-0.7.9]\r
+ // ===================================================================================\r
+ // Isolation Level\r
+ // ===============\r
+ // *Database Dependency\r
+ public void lockWithRR() { if (helpIsSqlClauseDb2()) { helpGettingSqlClauseDb2().lockWithRR(); } }\r
+ public void lockWithRS() { if (helpIsSqlClauseDb2()) { helpGettingSqlClauseDb2().lockWithRS(); } }\r
+ public void lockWithCS() { if (helpIsSqlClauseDb2()) { helpGettingSqlClauseDb2().lockWithCS(); } }\r
+ public void lockWithUR() { if (helpIsSqlClauseDb2()) { helpGettingSqlClauseDb2().lockWithUR(); } }\r
+\r
+ protected boolean helpIsSqlClauseDb2() {\r
+ return getSqlClause() instanceof org.seasar.dbflute.cbean.sqlclause.SqlClauseDb2;\r
+ }\r
+\r
+ protected org.seasar.dbflute.cbean.sqlclause.SqlClauseDb2 helpGettingSqlClauseDb2() {\r
+ return (org.seasar.dbflute.cbean.sqlclause.SqlClauseDb2)getSqlClause();\r
+ }\r
+#end\r
+#end\r
\r
// ===================================================================================\r
// Setup Select\r
// ============\r
-#foreach ($foreignKey in $table.foreignKeys)\r
-#set ($tmpPropertyName = "${foreignKey.foreignPropertyName}")\r
-#set ($tmpPropertyNameInitCap = "${foreignKey.foreignPropertyNameInitCap}")\r
-#set ($nestSelectSetuppperClassName = "${foreignKey.foreignTableNestSelectSetupperClassName}")\r
-\r
+#foreach ($fk in $table.foreignKeys)\r
+#set ($tmpPropertyName = "${fk.foreignPropertyName}")\r
+#set ($tmpPropertyNameInitCap = "${fk.foreignPropertyNameInitCap}")\r
+#set ($nestSelectSetuppperClassName = "${fk.foreignTableNestSelectSetupperClassName}")\r
+#set ($dynamicFixedConditionArgs = "")\r
+#set ($dynamicFixedConditionVariables = "")\r
+#if ($fk.hasDynamicFixedCondition())\r
+#set ($dynamicFixedConditionArgs = "${fk.dynamicFixedConditionFinalArgs}")\r
+#set ($dynamicFixedConditionVariables = "${fk.dynamicFixedConditionVariables}")\r
+#end\r
protected ${nestSelectSetuppperClassName} _nss${tmpPropertyNameInitCap};\r
public ${nestSelectSetuppperClassName} getNss${tmpPropertyNameInitCap}() {\r
if (_nss${tmpPropertyNameInitCap} == null) { _nss${tmpPropertyNameInitCap} = new ${nestSelectSetuppperClassName}(null); }\r
return _nss${tmpPropertyNameInitCap};\r
}\r
- public ${nestSelectSetuppperClassName} setupSelect_${tmpPropertyNameInitCap}() {\r
- doSetupSelect(new SsCall() { public ${glConditionQueryInterfaceName} qf() { return query().query${tmpPropertyNameInitCap}(); } });\r
- if (_nss${tmpPropertyNameInitCap} == null || !_nss${tmpPropertyNameInitCap}.hasConditionQuery()) { _nss${tmpPropertyNameInitCap} = new ${nestSelectSetuppperClassName}(query().query${tmpPropertyNameInitCap}()); }\r
+ public ${nestSelectSetuppperClassName} setupSelect_${tmpPropertyNameInitCap}(${dynamicFixedConditionArgs}) {\r
+ doSetupSelect(new SsCall() { public ConditionQuery qf() { return query().query${tmpPropertyNameInitCap}(${dynamicFixedConditionVariables}); } });\r
+ if (_nss${tmpPropertyNameInitCap} == null || !_nss${tmpPropertyNameInitCap}.hasConditionQuery())\r
+ { _nss${tmpPropertyNameInitCap} = new ${nestSelectSetuppperClassName}(query().query${tmpPropertyNameInitCap}(${dynamicFixedConditionVariables})); }\r
return _nss${tmpPropertyNameInitCap};\r
}\r
#end\r
return _nss${tmpPropertyNameInitCap};\r
}\r
public ${nestSelectSetuppperClassName} setupSelect_${tmpPropertyNameInitCap}() {\r
- doSetupSelect(new SsCall() { public ${glConditionQueryInterfaceName} qf() { return query().query${tmpPropertyNameInitCap}(); } });\r
+ doSetupSelect(new SsCall() { public ConditionQuery qf() { return query().query${tmpPropertyNameInitCap}(); } });\r
if (_nss${tmpPropertyNameInitCap} == null || !_nss${tmpPropertyNameInitCap}.hasConditionQuery()) { _nss${tmpPropertyNameInitCap} = new ${nestSelectSetuppperClassName}(query().query${tmpPropertyNameInitCap}()); }\r
return _nss${tmpPropertyNameInitCap};\r
}\r
protected Specification _specification;\r
public Specification specify() {\r
if (_specification == null) { _specification = new Specification(this, new SpQyCall<${myConditionQueryClassName}>() {\r
- public boolean has() { return true; } public ${myConditionQueryClassName} qy() { return query(); } }, _forDeriveReferrer); } return _specification;\r
+ public boolean has() { return true; } public ${myConditionQueryClassName} qy() { return query(); } }, _forDerivedReferrer, _forScalarSelect, _forScalarSubQuery, getDBMetaProvider()); }\r
+ return _specification;\r
}\r
+\r
public static class Specification extends AbstractSpecification<${myConditionQueryClassName}> {\r
protected SpQyCall<${myConditionQueryClassName}> _myQyCall;\r
-#foreach ($foreignKey in $table.foreignKeys)\r
-#set ($tmpPropertyName = "${foreignKey.foreignPropertyName}")\r
-#set ($tmpPropertyNameInitCap = "${foreignKey.foreignPropertyNameInitCap}")\r
-#set ($tmpCBClassName = "${foreignKey.foreignTableExtendedConditionBeanClassName}")\r
+#foreach ($fk in $table.foreignKeys)\r
+#set ($tmpPropertyName = "${fk.foreignPropertyName}")\r
+#set ($tmpPropertyNameInitCap = "${fk.foreignPropertyNameInitCap}")\r
+#set ($tmpCBClassName = "${fk.foreignTableExtendedConditionBeanClassName}")\r
protected ${tmpCBClassName}.Specification _${tmpPropertyName};\r
#end\r
#foreach ($referrer in $table.referrers)\r
protected ${tmpCBClassName}.Specification _${tmpPropertyName};\r
#end\r
#end\r
- public Specification(${glConditionBeanInterfaceName} baseCB, SpQyCall<${myConditionQueryClassName}> qyCall, boolean forDeriveReferrer) { super(baseCB, qyCall, forDeriveReferrer); _myQyCall = qyCall; }\r
+ public Specification(ConditionBean baseCB, SpQyCall<${myConditionQueryClassName}> qyCall\r
+ , boolean forDeriveReferrer, boolean forScalarSelect, boolean forScalarSubQuery\r
+ , DBMetaProvider dbmetaProvider)\r
+ { super(baseCB, qyCall, forDeriveReferrer, forScalarSelect, forScalarSubQuery, dbmetaProvider); _myQyCall = qyCall; }\r
#foreach ($col in $table.columns)\r
public void column${col.javaName}() { doColumn("${col.name}"); }\r
#end\r
#foreach ($col in $table.primaryKey)\r
column${col.javaName}();// PK\r
#end\r
-#foreach ($foreignKey in $table.foreignKeys)\r
-#set ($tmpPropertyName = "${foreignKey.foreignPropertyName}")\r
-#set ($tmpPropertyNameInitCap = "${foreignKey.foreignPropertyNameInitCap}")\r
+#foreach ($fk in $table.foreignKeys)\r
+#set ($tmpPropertyName = "${fk.foreignPropertyName}")\r
+#set ($tmpPropertyNameInitCap = "${fk.foreignPropertyNameInitCap}")\r
if (_myQyCall.qy().hasConditionQuery${tmpPropertyNameInitCap}()) {\r
-#foreach ($col in $foreignKey.localColumnList)\r
+#foreach ($col in $fk.localColumnList)\r
#if (!$col.isPrimaryKey())\r
column${col.javaName}();// FK\r
#end\r
#end\r
}\r
protected String getTableDbName() { return "$table.name"; }\r
-#foreach ($foreignKey in $table.foreignKeys)\r
-#set ($tmpPropertyName = "${foreignKey.foreignPropertyName}")\r
-#set ($tmpPropertyNameInitCap = "${foreignKey.foreignPropertyNameInitCap}")\r
-#set ($tmpCBClassName = "${foreignKey.foreignTableExtendedConditionBeanClassName}")\r
-#set ($tmpCQClassName = "${foreignKey.foreignTableExtendedConditionQueryClassName}")\r
+#foreach ($fk in $table.foreignKeys)\r
+#set ($tmpPropertyName = "${fk.foreignPropertyName}")\r
+#set ($tmpPropertyNameInitCap = "${fk.foreignPropertyNameInitCap}")\r
+#set ($tmpCBClassName = "${fk.foreignTableExtendedConditionBeanClassName}")\r
+#set ($tmpCQClassName = "${fk.foreignTableExtendedConditionQueryClassName}")\r
public ${tmpCBClassName}.Specification specify${tmpPropertyNameInitCap}() {\r
assertForeign("${tmpPropertyName}");\r
if (_${tmpPropertyName} == null) {\r
_${tmpPropertyName} = new ${tmpCBClassName}.Specification(_baseCB, new SpQyCall<${tmpCQClassName}>() {\r
public boolean has() { return _myQyCall.has() && _myQyCall.qy().hasConditionQuery${tmpPropertyNameInitCap}(); }\r
- public ${tmpCQClassName} qy() { return _myQyCall.qy().query${tmpPropertyNameInitCap}(); } }, _forDeriveReferrer);\r
+#if ($fk.hasDynamicFixedCondition())\r
+ public ${tmpCQClassName} qy() { return _myQyCall.qy().getConditionQuery${tmpPropertyNameInitCap}(); } }\r
+#else\r
+ public ${tmpCQClassName} qy() { return _myQyCall.qy().query${tmpPropertyNameInitCap}(); } }\r
+#end\r
+ , _forDerivedReferrer, _forScalarSelect, _forScalarSubQuery, _dbmetaProvider);\r
}\r
return _${tmpPropertyName};\r
}\r
if (_${tmpPropertyName} == null) {\r
_${tmpPropertyName} = new ${tmpCBClassName}.Specification(_baseCB, new SpQyCall<${tmpCQClassName}>() {\r
public boolean has() { return _myQyCall.has() && _myQyCall.qy().hasConditionQuery${tmpPropertyNameInitCap}(); }\r
- public ${tmpCQClassName} qy() { return _myQyCall.qy().query${tmpPropertyNameInitCap}(); } }, _forDeriveReferrer);\r
+ public ${tmpCQClassName} qy() { return _myQyCall.qy().query${tmpPropertyNameInitCap}(); } }\r
+ , _forDerivedReferrer, _forScalarSelect, _forScalarSubQuery, _dbmetaProvider);\r
}\r
return _${tmpPropertyName};\r
}\r
#set ($tmpLocalCQClassName = "${referrer.foreignTableExtendedConditionQueryClassName}")\r
public RAFunction<${tmpCBClassName}, ${tmpLocalCQClassName}> derived${tmpPropertyNameInitCap}() {\r
return new RAFunction<${tmpCBClassName}, ${tmpLocalCQClassName}>(_baseCB, _myQyCall.qy(), new RAQSetupper<${tmpCBClassName}, ${tmpLocalCQClassName}>() {\r
- public void setup(String function, ${glSubQuery}<${tmpCBClassName}> subQuery, ${tmpLocalCQClassName} cq, String aliasName) {\r
- cq.xderive${referrer.referrerPropertyNameInitCap}(function, subQuery, aliasName); } });\r
+ public void setup(String function, SubQuery<${tmpCBClassName}> subQuery, ${tmpLocalCQClassName} cq, String aliasName) {\r
+ cq.xsderive${referrer.referrerPropertyNameInitCap}(function, subQuery, aliasName); } }, _dbmetaProvider);\r
}\r
#end\r
#end\r
}\r
\r
+ // ===================================================================================\r
+ // Display SQL\r
+ // ===========\r
+ @Override\r
+ protected String getLogDateFormat() { return ${glDBFluteConfig}.getInstance().getLogDateFormat(); }\r
+ @Override\r
+ protected String getLogTimestampFormat() { return ${glDBFluteConfig}.getInstance().getLogTimestampFormat(); }\r
+\r
+ // ===================================================================================\r
+ // Internal\r
+ // ========\r
// Very Internal (for Suppressing Warn about 'Not Use Import')\r
protected String getConditionBeanClassNameInternally() { return ${myConditionBeanClassName}.class.getName(); }\r
protected String getConditionQueryClassNameInternally() { return ${myConditionQueryClassName}.class.getName(); }\r
- protected String getSubQueryClassNameInternally() { return ${glSubQuery}.class.getName(); }\r
+ protected String getSubQueryClassNameInternally() { return SubQuery.class.getName(); }\r
}\r
${database.allClassCopyright}package ${glPackageCIQ};\r
-\r
#set ($myClassName = "${myConditionInlineQueryClassName}")\r
#set ($myCQClassName = "${myBaseConditionQueryClassName}")\r
-import ${glPackageBaseCommonCBean}.*;\r
-import ${glPackageBaseCommonCKey}.*;\r
-import ${glPackageBaseCommonCOption}.${glConditionOptionInterfaceName};\r
-import ${glPackageBaseCommonCValue}.${glConditionValueName};\r
-import ${glPackageBaseCommonSqlClause}.${glSqlClauseName};\r
+\r
+import org.seasar.dbflute.cbean.*;\r
+import org.seasar.dbflute.cbean.ckey.*;\r
+import org.seasar.dbflute.cbean.coption.ConditionOption;\r
+import org.seasar.dbflute.cbean.cvalue.ConditionValue;\r
+import org.seasar.dbflute.cbean.sqlclause.SqlClause;\r
+import ${glPackageCB}.*;\r
import ${glPackageBaseCQ}.*;\r
import ${glPackageCQ}.*;\r
\r
/**\r
* The condition-inline-query of ${table.name}.\r
* @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
+ */\r
public class ${myClassName} extends ${myAbstractBaseConditionQueryClassName} {\r
\r
// ===================================================================================\r
// ===================================================================================\r
// Constructor\r
// ===========\r
- public ${myClassName}(${glConditionQueryInterfaceName} childQuery, ${glSqlClauseName} sqlClause, String aliasName, int nestLevel, ${myCQClassName} myCQ) {\r
+ public ${myClassName}(ConditionQuery childQuery, SqlClause sqlClause, String aliasName, int nestLevel, ${myCQClassName} myCQ) {\r
super(childQuery, sqlClause, aliasName, nestLevel);\r
_myCQ = myCQ;\r
_foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign property name.\r
// Override about Register\r
// =======================\r
@Override\r
- protected void reflectRelationOnUnionQuery(${glConditionQueryInterfaceName} baseQueryAsSuper, ${glConditionQueryInterfaceName} unionQueryAsSuper) {\r
+ protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, ConditionQuery unionQueryAsSuper) {\r
throw new UnsupportedOperationException("InlineQuery must not need UNION method: " + baseQueryAsSuper + " : " + unionQueryAsSuper);\r
}\r
\r
@Override\r
- protected void setupConditionValueAndRegisterWhereClause(${glConditionKeyName} key, Object value, ${glConditionValueName} cvalue\r
- , String colName, String capPropName, String uncapPropName) {\r
- registerInlineQuery(key, value, cvalue, colName, capPropName, uncapPropName);\r
+ protected void setupConditionValueAndRegisterWhereClause(ConditionKey k, Object v, ConditionValue cv, String col) {\r
+ regIQ(k, v, cv, col);\r
}\r
\r
@Override\r
- protected void setupConditionValueAndRegisterWhereClause(${glConditionKeyName} key, Object value, ${glConditionValueName} cvalue\r
- , String colName, String capPropName, String uncapPropName, ${glConditionOptionInterfaceName} option) {\r
- registerInlineQuery(key, value, cvalue, colName, capPropName, uncapPropName, option);\r
+ protected void setupConditionValueAndRegisterWhereClause(ConditionKey k, Object v, ConditionValue cv, String col, ConditionOption op) {\r
+ regIQ(k, v, cv, col, op);\r
}\r
\r
@Override\r
}\r
\r
@Override\r
- protected void registerExistsSubQuery(${glConditionQueryInterfaceName} subQuery\r
- , String columnName, String relatedColumnName, String propertyName) {\r
+ protected void registerExistsSubQuery(ConditionQuery subQuery\r
+ , String columnName, String relatedColumnName, String propertyName) {\r
throw new UnsupportedOperationException("Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery.");\r
}\r
\r
#foreach ($col in $table.columns)\r
#set ($tmpJavaName = "${col.JavaName}")\r
#set ($tmpUncapitalisedJavaName = "${col.UncapitalisedJavaName}")\r
- protected ${glConditionValueName} getCValue${tmpJavaName}() {\r
+ protected ConditionValue getCValue${tmpJavaName}() {\r
return _myCQ.get${tmpJavaName}();\r
}\r
#if (${col.isJavaNativeStringObject()})\r
-#if (${col.isSingleKeyForeignKey()})\r
+#if (${col.isSingleKeyForeignKey()} && !${col.foreignKey.hasFixedCondition()})\r
#set ($relatedCQClassName = "${col.foreignKey.foreignTableExtendedConditionQueryClassName}")\r
#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_InScopeSubQuery_${col.foreignKey.foreignPropertyNameInitCap}")\r
#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_InScopeSubQuery_${col.foreignKey.foreignPropertyNameInitCap}")\r
#if (!${referrer.isOneToOne()})\r
#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_DeriveSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_DeriveSubQuery_${referrer.referrerPropertyNameInitCap}")\r
+#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_SpecifyDerivedReferrer_${referrer.referrerPropertyNameInitCap}")\r
+#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_SpecifyDerivedReferrer_${referrer.referrerPropertyNameInitCap}")\r
public String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
- throw new UnsupportedOperationException("DeriveSubQuery at inline() is unsupported! Sorry!");\r
+ throw new UnsupportedOperationException("(Specify)DerivedReferrer at inline() is unsupported! Sorry!");\r
+ }\r
+#end\r
+#end\r
+#end\r
+#if (${col.hasSingleKeyReferrer()})\r
+#foreach ($referrer in $col.singleKeyReferrers)\r
+#if (!${referrer.isOneToOne()})\r
+#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
+#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
+#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_QueryDerivedReferrer_${referrer.referrerPropertyNameInitCap}")\r
+#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_QueryDerivedReferrer_${referrer.referrerPropertyNameInitCap}")\r
+ public String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
+ throw new UnsupportedOperationException("(Query)DerivedReferrer at inline() is unsupported! Sorry!");\r
+ }\r
+ public String keep${subQueryPropertyNameInitCap}Parameter(Object parameterValue) {\r
+ throw new UnsupportedOperationException("(Query)DerivedReferrer at inline() is unsupported! Sorry!");\r
}\r
#end\r
#end\r
#end\r
#end\r
#if (${col.isJavaNativeNumberObject()})\r
-#if (${col.isSingleKeyForeignKey()})\r
+#if (${col.isSingleKeyForeignKey()} && !${col.foreignKey.hasFixedCondition()})\r
#set ($relatedCQClassName = "${col.foreignKey.foreignTableExtendedConditionQueryClassName}")\r
#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_InScopeSubQuery_${col.foreignKey.foreignPropertyNameInitCap}")\r
#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_InScopeSubQuery_${col.foreignKey.foreignPropertyNameInitCap}")\r
#if (!${referrer.isOneToOne()})\r
#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_DeriveSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_DeriveSubQuery_${referrer.referrerPropertyNameInitCap}")\r
+#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_SpecifyDerivedReferrer_${referrer.referrerPropertyNameInitCap}")\r
+#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_SpecifyDerivedReferrer_${referrer.referrerPropertyNameInitCap}")\r
public String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
- throw new UnsupportedOperationException("DeriveSubQuery at inline() is unsupported! Sorry!");\r
+ throw new UnsupportedOperationException("(Specify)DerivedReferrer at inline() is unsupported! Sorry!");\r
}\r
#end\r
#end\r
#end\r
+#if (${col.hasSingleKeyReferrer()})\r
+#foreach ($referrer in $col.singleKeyReferrers)\r
+#if (!${referrer.isOneToOne()})\r
+#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
+#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
+#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_QueryDerivedReferrer_${referrer.referrerPropertyNameInitCap}")\r
+#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_QueryDerivedReferrer_${referrer.referrerPropertyNameInitCap}")\r
+ public String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
+ throw new UnsupportedOperationException("(Query)DerivedReferrer at inline() is unsupported! Sorry!");\r
+ }\r
+ public String keep${subQueryPropertyNameInitCap}Parameter(Object parameterValue) {\r
+ throw new UnsupportedOperationException("(Query)DerivedReferrer at inline() is unsupported! Sorry!");\r
+ }\r
+#end\r
+#end\r
+#end\r
+#end\r
#end\r
+#if ($table.hasOnlyOnePrimaryKey())\r
+\r
+ // ===================================================================================\r
+ // Scalar SubQuery\r
+ // ===============\r
+ public String keepScalarSubQuery(${myConditionQueryClassName} subQuery) {\r
+ throw new UnsupportedOperationException("ScalarSubQuery at inline() is unsupported! Sorry!");\r
+ }\r
+\r
+ // ===================================================================================\r
+ // MySelf InScope SubQuery\r
+ // =======================\r
+ public String keepMyselfInScopeSubQuery(${myConditionQueryClassName} subQuery) {\r
+ throw new UnsupportedOperationException("MyselfInScopeSubQuery at inline() is unsupported! Sorry!");\r
+ }\r
#end\r
\r
- protected String getConditionQueryClassNameInternally() { return ${myConditionQueryClassName}.class.getName(); }\r
+ // ===================================================================================\r
+ // Very Internal\r
+ // =============\r
+ // Very Internal (for Suppressing Warn about 'Not Use Import')\r
+ String xiCB() { return ${myConditionBeanClassName}.class.getName(); }\r
+ String xiCQ() { return ${myConditionQueryClassName}.class.getName(); }\r
}\r
\r
import java.util.Map;\r
\r
-import ${glPackageBaseCommonCBean}.*;\r
-import ${glPackageBaseCommonCValue}.${glConditionValueName};\r
-import ${glPackageBaseCommonSqlClause}.${glSqlClauseName};\r
+import org.seasar.dbflute.cbean.*;\r
+import org.seasar.dbflute.cbean.cvalue.ConditionValue;\r
+import org.seasar.dbflute.cbean.sqlclause.SqlClause;\r
import ${glPackageCIQ}.*;\r
+import ${glPackageCB}.*;\r
import ${glPackageCQ}.*;\r
\r
/**\r
* The base condition-query of ${table.name}.\r
* @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
+ */\r
public class ${myClassName} extends ${myAbstractBaseConditionQueryClassName} {\r
\r
// ===================================================================================\r
// ===================================================================================\r
// Constructor\r
// ===========\r
- public ${myClassName}(${glConditionQueryInterfaceName} childQuery, ${glSqlClauseName} sqlClause, String aliasName, int nestLevel) {\r
+ public ${myClassName}(ConditionQuery childQuery, SqlClause sqlClause, String aliasName, int nestLevel) {\r
super(childQuery, sqlClause, aliasName, nestLevel);\r
}\r
\r
* @return On-clause query. (NotNull)\r
*/\r
public ${myConditionInlineQueryClassName} on() {\r
- if (isBaseQuery(this)) { throw new UnsupportedOperationException("Unsupported onClause of Base Table!"); }\r
+ if (isBaseQuery(this)) { throw new UnsupportedOperationException("Unsupported on-clause for local table!"); }\r
${myConditionInlineQueryClassName} inlineQuery = inline(); inlineQuery.xsetOnClauseInline(true); return inlineQuery;\r
}\r
\r
#set ($tmpJavaName = "${col.JavaName}")\r
#set ($tmpUncapitalisedJavaName = "${col.UncapitalisedJavaName}")\r
\r
- protected ${glConditionValueName} _${tmpUncapitalisedJavaName};\r
- public ${glConditionValueName} get${tmpJavaName}() {\r
- if (_${tmpUncapitalisedJavaName} == null) { _${tmpUncapitalisedJavaName} = new ${glConditionValueName}(); }\r
+ protected ConditionValue _${tmpUncapitalisedJavaName};\r
+ public ConditionValue get${tmpJavaName}() {\r
+ if (_${tmpUncapitalisedJavaName} == null) { _${tmpUncapitalisedJavaName} = new ConditionValue(); }\r
return _${tmpUncapitalisedJavaName};\r
}\r
- protected ${glConditionValueName} getCValue${tmpJavaName}() { return get${tmpJavaName}(); }\r
+ protected ConditionValue getCValue${tmpJavaName}() { return get${tmpJavaName}(); }\r
#if (${col.isJavaNativeStringObject()})\r
-#if (${col.isSingleKeyForeignKey()})\r
+#if (${col.isSingleKeyForeignKey()} && !${col.foreignKey.hasFixedCondition()})\r
#set ($relatedCQClassName = "${col.foreignKey.foreignTableExtendedConditionQueryClassName}")\r
#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_InScopeSubQuery_${col.foreignKey.foreignPropertyNameInitCap}")\r
#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_InScopeSubQuery_${col.foreignKey.foreignPropertyNameInitCap}")\r
#if (!${referrer.isOneToOne()})\r
#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_DeriveSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_DeriveSubQuery_${referrer.referrerPropertyNameInitCap}")\r
+#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_SpecifyDerivedReferrer_${referrer.referrerPropertyNameInitCap}")\r
+#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_SpecifyDerivedReferrer_${referrer.referrerPropertyNameInitCap}")\r
#set ($subQueryKeepMapGeneric = "String, ${relatedCQClassName}")\r
\r
protected Map<${subQueryKeepMapGeneric}> _${subQueryPropertyName}Map;\r
#end\r
#end\r
#end\r
+#if (${col.hasSingleKeyReferrer()})\r
+#foreach ($referrer in $col.singleKeyReferrers)\r
+#if (!${referrer.isOneToOne()})\r
+#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
+#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
+#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_QueryDerivedReferrer_${referrer.referrerPropertyNameInitCap}")\r
+#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_QueryDerivedReferrer_${referrer.referrerPropertyNameInitCap}")\r
+#set ($subQueryKeepMapGeneric = "String, ${relatedCQClassName}")\r
+\r
+ protected Map<${subQueryKeepMapGeneric}> _${subQueryPropertyName}Map;\r
+ public Map<${subQueryKeepMapGeneric}> get${subQueryPropertyNameInitCap}() { return _${subQueryPropertyName}Map; }\r
+ public String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
+ if (_${subQueryPropertyName}Map == null) { _${subQueryPropertyName}Map = newLinkedHashMap(); }\r
+ String key = "subQueryMapKey" + (_${subQueryPropertyName}Map.size() + 1);\r
+ _${subQueryPropertyName}Map.put(key, subQuery); return "${subQueryPropertyName}." + key;\r
+ }\r
+ protected Map<String, Object> _${subQueryPropertyName}ParameterMap;\r
+ public Map<String, Object> get${subQueryPropertyNameInitCap}Parameter() { return _${subQueryPropertyName}ParameterMap; }\r
+ public String keep${subQueryPropertyNameInitCap}Parameter(Object parameterValue) {\r
+ if (_${subQueryPropertyName}ParameterMap == null) { _${subQueryPropertyName}ParameterMap = newLinkedHashMap(); }\r
+ String key = "subQueryParameterKey" + (_${subQueryPropertyName}ParameterMap.size() + 1);\r
+ _${subQueryPropertyName}ParameterMap.put(key, parameterValue); return "${subQueryPropertyName}Parameter." + key;\r
+ }\r
#end\r
- #if (${col.isJavaNativeNumberObject()})\r
- #if (${col.isSingleKeyForeignKey()})\r
- #set ($relatedCQClassName = "${col.foreignKey.foreignTableExtendedConditionQueryClassName}")\r
- #set ($subQueryPropertyNameInitCap = "${tmpJavaName}_InScopeSubQuery_${col.foreignKey.foreignPropertyNameInitCap}")\r
- #set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_InScopeSubQuery_${col.foreignKey.foreignPropertyNameInitCap}")\r
- #set ($subQueryKeepMapGeneric = "String, ${relatedCQClassName}")\r
+#end\r
+#end\r
+#end\r
+#if (${col.isJavaNativeNumberObject()})\r
+#if (${col.isSingleKeyForeignKey()} && !${col.foreignKey.hasFixedCondition()})\r
+#set ($relatedCQClassName = "${col.foreignKey.foreignTableExtendedConditionQueryClassName}")\r
+#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_InScopeSubQuery_${col.foreignKey.foreignPropertyNameInitCap}")\r
+#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_InScopeSubQuery_${col.foreignKey.foreignPropertyNameInitCap}")\r
+#set ($subQueryKeepMapGeneric = "String, ${relatedCQClassName}")\r
\r
protected Map<${subQueryKeepMapGeneric}> _${subQueryPropertyName}Map;\r
public Map<${subQueryKeepMapGeneric}> get${subQueryPropertyNameInitCap}() { return _${subQueryPropertyName}Map; }\r
#if (!${referrer.isOneToOne()})\r
#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_DeriveSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_DeriveSubQuery_${referrer.referrerPropertyNameInitCap}")\r
+#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_SpecifyDerivedReferrer_${referrer.referrerPropertyNameInitCap}")\r
+#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_SpecifyDerivedReferrer_${referrer.referrerPropertyNameInitCap}")\r
+#set ($subQueryKeepMapGeneric = "String, ${relatedCQClassName}")\r
+\r
+ protected Map<${subQueryKeepMapGeneric}> _${subQueryPropertyName}Map;\r
+ public Map<${subQueryKeepMapGeneric}> get${subQueryPropertyNameInitCap}() { return _${subQueryPropertyName}Map; }\r
+ public String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
+ if (_${subQueryPropertyName}Map == null) { _${subQueryPropertyName}Map = newLinkedHashMap(); }\r
+ String key = "subQueryMapKey" + (_${subQueryPropertyName}Map.size() + 1);\r
+ _${subQueryPropertyName}Map.put(key, subQuery); return "${subQueryPropertyName}." + key;\r
+ }\r
+#end\r
+#end\r
+#end\r
+#if (${col.hasSingleKeyReferrer()})\r
+#foreach ($referrer in $col.singleKeyReferrers)\r
+#if (!${referrer.isOneToOne()})\r
+#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
+#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
+#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_QueryDerivedReferrer_${referrer.referrerPropertyNameInitCap}")\r
+#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_QueryDerivedReferrer_${referrer.referrerPropertyNameInitCap}")\r
#set ($subQueryKeepMapGeneric = "String, ${relatedCQClassName}")\r
\r
protected Map<${subQueryKeepMapGeneric}> _${subQueryPropertyName}Map;\r
String key = "subQueryMapKey" + (_${subQueryPropertyName}Map.size() + 1);\r
_${subQueryPropertyName}Map.put(key, subQuery); return "${subQueryPropertyName}." + key;\r
}\r
+ protected Map<String, Object> _${subQueryPropertyName}ParameterMap;\r
+ public Map<String, Object> get${subQueryPropertyNameInitCap}Parameter() { return _${subQueryPropertyName}ParameterMap; }\r
+ public String keep${subQueryPropertyNameInitCap}Parameter(Object parameterValue) {\r
+ if (_${subQueryPropertyName}ParameterMap == null) { _${subQueryPropertyName}ParameterMap = newLinkedHashMap(); }\r
+ String key = "subQueryParameterKey" + (_${subQueryPropertyName}ParameterMap.size() + 1);\r
+ _${subQueryPropertyName}ParameterMap.put(key, parameterValue); return "${subQueryPropertyName}Parameter." + key;\r
+ }\r
#end\r
#end\r
#end\r
// ===================================================================================\r
// Union Query\r
// ===========\r
- protected void reflectRelationOnUnionQuery(${glConditionQueryInterfaceName} baseQueryAsSuper, ${glConditionQueryInterfaceName} unionQueryAsSuper) {\r
+ protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, ConditionQuery unionQueryAsSuper) {\r
#if ($table.hasForeignKeyOrRefererAsOne())\r
${myConditionQueryClassName} baseQuery = (${myConditionQueryClassName})baseQueryAsSuper;\r
${myConditionQueryClassName} unionQuery = (${myConditionQueryClassName})unionQueryAsSuper;\r
#end\r
-#foreach ($foreignKeys in $table.foreignKeys)\r
- if (baseQuery.hasConditionQuery${foreignKeys.foreignPropertyNameInitCap}()) {\r
- unionQuery.query${foreignKeys.foreignPropertyNameInitCap}().reflectRelationOnUnionQuery(baseQuery.query${foreignKeys.foreignPropertyNameInitCap}(), unionQuery.query${foreignKeys.foreignPropertyNameInitCap}());\r
+#foreach ($fk in $table.foreignKeys)\r
+ if (baseQuery.hasConditionQuery${fk.foreignPropertyNameInitCap}()) {\r
+#if ($fk.hasDynamicFixedCondition())\r
+ unionQuery.xsetParameterMap${fk.foreignPropertyNameInitCap}(baseQuery.getParameterMap${fk.foreignPropertyNameInitCap}());\r
+ unionQuery.getConditionQuery${fk.foreignPropertyNameInitCap}().reflectRelationOnUnionQuery(baseQuery.getConditionQuery${fk.foreignPropertyNameInitCap}(), unionQuery.getConditionQuery${fk.foreignPropertyNameInitCap}());\r
+#else\r
+ unionQuery.query${fk.foreignPropertyNameInitCap}().reflectRelationOnUnionQuery(baseQuery.query${fk.foreignPropertyNameInitCap}(), unionQuery.query${fk.foreignPropertyNameInitCap}());\r
+#end\r
}\r
#end\r
-#foreach ($refferer in $table.referrers)\r
-#if (${refferer.isOneToOne()})\r
- if (baseQuery.hasConditionQuery${refferer.reffererPropertyNameInitCapAsOne}()) {\r
- unionQuery.query${refferer.reffererPropertyNameInitCapAsOne}().reflectRelationOnUnionQuery(baseQuery.query${refferer.reffererPropertyNameInitCapAsOne}(), unionQuery.query${refferer.reffererPropertyNameInitCapAsOne}());\r
+#foreach ($referrer in $table.referrers)\r
+#if (${referrer.isOneToOne()})\r
+ if (baseQuery.hasConditionQuery${referrer.referrerPropertyNameInitCapAsOne}()) {\r
+ unionQuery.query${referrer.referrerPropertyNameInitCapAsOne}().reflectRelationOnUnionQuery(baseQuery.query${referrer.referrerPropertyNameInitCapAsOne}(), unionQuery.query${referrer.referrerPropertyNameInitCapAsOne}());\r
}\r
#end\r
#end\r
// ===================================================================================\r
// Foreign Query\r
// =============\r
-#foreach ($foreignKeys in $table.foreignKeys)\r
-#set ($foreignCQClassName = "${foreignKeys.foreignTableExtendedConditionQueryClassName}")\r
- \r
- public ${foreignCQClassName} query${foreignKeys.ForeignPropertyNameInitCap}() {\r
- return getConditionQuery${foreignKeys.ForeignPropertyNameInitCap}();\r
- }\r
- protected ${foreignCQClassName} _conditionQuery${foreignKeys.ForeignPropertyNameInitCap};\r
- public ${foreignCQClassName} getConditionQuery${foreignKeys.ForeignPropertyNameInitCap}() {\r
- if (_conditionQuery${foreignKeys.foreignPropertyNameInitCap} == null) {\r
- _conditionQuery${foreignKeys.foreignPropertyNameInitCap} = createQuery${foreignKeys.foreignPropertyNameInitCap}();\r
- setupOuterJoin_${foreignKeys.foreignPropertyNameInitCap}();\r
+#foreach ($fk in $table.foreignKeys)\r
+#set ($foreignCQClassName = "${fk.foreignTableExtendedConditionQueryClassName}")\r
+#set ($dynamicFixedConditionArgs = "")\r
+#if ($fk.hasDynamicFixedCondition())\r
+#set ($dynamicFixedConditionArgs = "${fk.dynamicFixedConditionArgs}")\r
+#end\r
+ public ${foreignCQClassName} query${fk.foreignPropertyNameInitCap}(${dynamicFixedConditionArgs}) {\r
+#if ($fk.hasDynamicFixedCondition())\r
+ Map<String, Object> parameterMap = getParameterMap${fk.foreignPropertyNameInitCap}();\r
+ ${fk.dynamicFixedConditionParameterMapSetup}\r
+#end\r
+ return getConditionQuery${fk.foreignPropertyNameInitCap}();\r
+ }\r
+ protected ${foreignCQClassName} _conditionQuery${fk.foreignPropertyNameInitCap};\r
+ public ${foreignCQClassName} getConditionQuery${fk.ForeignPropertyNameInitCap}() {\r
+ if (_conditionQuery${fk.foreignPropertyNameInitCap} == null) {\r
+ _conditionQuery${fk.foreignPropertyNameInitCap} = xcreateQuery${fk.foreignPropertyNameInitCap}();\r
+ xsetupOuterJoin${fk.foreignPropertyNameInitCap}();\r
}\r
- return _conditionQuery${foreignKeys.foreignPropertyNameInitCap};\r
+ return _conditionQuery${fk.foreignPropertyNameInitCap};\r
+ }\r
+#if ($fk.hasDynamicFixedCondition())\r
+ protected Map<String, Object> _parameterMap${fk.foreignPropertyNameInitCap};\r
+ public Map<String, Object> getParameterMap${fk.foreignPropertyNameInitCap}() {\r
+ if (_parameterMap${fk.foreignPropertyNameInitCap} == null) {\r
+ _parameterMap${fk.foreignPropertyNameInitCap} = newLinkedHashMap();\r
+ }\r
+ return _parameterMap${fk.foreignPropertyNameInitCap};\r
+ }\r
+ public void xsetParameterMap${fk.foreignPropertyNameInitCap}(Map<String, Object> parameterMap) {\r
+ _parameterMap${fk.foreignPropertyNameInitCap} = parameterMap; // for UnionQuery\r
}\r
- protected void setupOuterJoin_${foreignKeys.foreignPropertyNameInitCap}() {\r
+#end\r
+ protected ${foreignCQClassName} xcreateQuery${fk.foreignPropertyNameInitCap}() {\r
+ String nrp = resolveNextRelationPath("${table.name}", "${fk.foreignPropertyName}");\r
+ String jan = resolveJoinAliasName(nrp, getNextNestLevel());\r
+ ${foreignCQClassName} cq = new ${foreignCQClassName}(this, getSqlClause(), jan, getNextNestLevel());\r
+ cq.xsetForeignPropertyName("${fk.foreignPropertyName}"); cq.xsetRelationPath(nrp); return cq;\r
+ }\r
+ protected void xsetupOuterJoin${fk.foreignPropertyNameInitCap}() {\r
+ ${foreignCQClassName} cq = getConditionQuery${fk.foreignPropertyNameInitCap}();\r
Map<String, String> joinOnMap = newLinkedHashMap();\r
-#foreach ($columnName in $foreignKeys.LocalColumns)\r
+#foreach ($columnName in $fk.LocalColumns)\r
#set ($localColumn = $table.getColumn($columnName))\r
-#set ($foreignColumnName = $foreignKeys.getLocalForeignMapping().get($columnName))\r
- joinOnMap.put(getRealColumnName("${localColumn.name}"), getConditionQuery${foreignKeys.foreignPropertyNameInitCap}().getRealColumnName("${foreignColumnName}"));\r
+#set ($foreignColumnName = $fk.getLocalForeignMapping().get($columnName))\r
+ joinOnMap.put(getRealColumnName("${localColumn.name}"), cq.getRealColumnName("${foreignColumnName}"));\r
#end\r
-#if ($foreignKeys.hasFixedCondition())\r
- joinOnMap.put("$$fixedCondition$$", prepareFixedCondition("${foreignKeys.fixedCondition}", getRealAliasName(), getConditionQuery${foreignKeys.foreignPropertyNameInitCap}().getRealAliasName()));\r
+#if ($fk.hasFixedCondition())\r
+ joinOnMap.put("$$fixedCondition$$", ppFxCd("${fk.fixedCondition}", getRealAliasName(), cq.getRealAliasName()));\r
#end\r
- registerOuterJoin(getConditionQuery${foreignKeys.foreignPropertyNameInitCap}(), joinOnMap);\r
- }\r
- protected ${foreignCQClassName} createQuery${foreignKeys.foreignPropertyNameInitCap}() {\r
- String nrp = resolveNextRelationPath("${table.name}", "${foreignKeys.foreignPropertyName}");\r
- String jan = resolveJoinAliasName(nrp, getNextNestLevel());\r
- ${foreignCQClassName} cq = new ${foreignCQClassName}(this, getSqlClause(), jan, getNextNestLevel());\r
- cq.xsetForeignPropertyName("${foreignKeys.foreignPropertyName}"); cq.xsetRelationPath(nrp); return cq;\r
+ registerOuterJoin(cq, joinOnMap);\r
}\r
- public boolean hasConditionQuery${foreignKeys.ForeignPropertyNameInitCap}() {\r
- return _conditionQuery${foreignKeys.ForeignPropertyNameInitCap} != null;\r
+ public boolean hasConditionQuery${fk.ForeignPropertyNameInitCap}() {\r
+ return _conditionQuery${fk.ForeignPropertyNameInitCap} != null;\r
}\r
-#end\r
\r
+#end\r
#foreach ($referrer in $table.referrers)\r
#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
#if (${referrer.isOneToOne()})\r
-\r
public ${relatedCQClassName} query${referrer.referrerPropertyNameInitCapAsOne}() {\r
return getConditionQuery${referrer.referrerPropertyNameInitCapAsOne}();\r
}\r
protected ${relatedCQClassName} _conditionQuery${referrer.referrerPropertyNameInitCapAsOne};\r
public ${relatedCQClassName} getConditionQuery${referrer.referrerPropertyNameInitCapAsOne}() {\r
if (_conditionQuery${referrer.referrerPropertyNameInitCapAsOne} == null) {\r
- _conditionQuery${referrer.referrerPropertyNameInitCapAsOne} = createQuery${referrer.referrerPropertyNameInitCapAsOne}();\r
- setupOuterJoin_${referrer.referrerPropertyNameInitCapAsOne}();\r
+ _conditionQuery${referrer.referrerPropertyNameInitCapAsOne} = xcreateQuery${referrer.referrerPropertyNameInitCapAsOne}();\r
+ xsetupOuterJoin${referrer.referrerPropertyNameInitCapAsOne}();\r
}\r
return _conditionQuery${referrer.referrerPropertyNameInitCapAsOne};\r
}\r
- protected void setupOuterJoin_${referrer.referrerPropertyNameInitCapAsOne}() {\r
+ protected ${relatedCQClassName} xcreateQuery${referrer.referrerPropertyNameInitCapAsOne}() {\r
+ String nrp = resolveNextRelationPath("${table.name}", "${referrer.referrerPropertyNameAsOne}");\r
+ String jan = resolveJoinAliasName(nrp, getNextNestLevel());\r
+ ${relatedCQClassName} cq = new ${relatedCQClassName}(this, getSqlClause(), jan, getNextNestLevel());\r
+ cq.xsetForeignPropertyName("${referrer.referrerPropertyNameAsOne}"); cq.xsetRelationPath(nrp); return cq;\r
+ }\r
+ protected void xsetupOuterJoin${referrer.referrerPropertyNameInitCapAsOne}() {\r
+ ${relatedCQClassName} cq = getConditionQuery${referrer.referrerPropertyNameInitCapAsOne}();\r
Map<String, String> joinOnMap = newLinkedHashMap();\r
#foreach ($columnName in $referrer.foreignColumns)\r
#set ($foreignColumn = $table.getColumn($columnName))\r
#set ($referrerColumnName = $referrer.getForeignLocalMapping().get($columnName))\r
- joinOnMap.put(getRealColumnName("${foreignColumn.name}"), getConditionQuery${referrer.referrerPropertyNameInitCapAsOne}().getRealColumnName("${referrerColumnName}"));\r
+ joinOnMap.put(getRealColumnName("${foreignColumn.name}"), cq.getRealColumnName("${referrerColumnName}"));\r
#end\r
#if ($referrer.hasFixedCondition())\r
- joinOnMap.put("$$fixedCondition$$", prepareFixedCondition("${referrer.fixedCondition}", getRealAliasName(), getConditionQuery${referrer.referrerPropertyNameInitCapAsOne}().getRealAliasName()));\r
+ joinOnMap.put("$$fixedCondition$$", ppFxCd("${referrer.fixedCondition}", getRealAliasName(), cq.getRealAliasName()));\r
#end\r
- registerOuterJoin(getConditionQuery${referrer.referrerPropertyNameInitCapAsOne}(), joinOnMap);\r
- }\r
- protected ${relatedCQClassName} createQuery${referrer.referrerPropertyNameInitCapAsOne}() {\r
- String nrp = resolveNextRelationPath("${table.name}", "${referrer.referrerPropertyNameAsOne}");\r
- String jan = resolveJoinAliasName(nrp, getNextNestLevel());\r
- ${relatedCQClassName} cq = new ${relatedCQClassName}(this, getSqlClause(), jan, getNextNestLevel());\r
- cq.xsetForeignPropertyName("${referrer.referrerPropertyNameAsOne}"); cq.xsetRelationPath(nrp); return cq;\r
+ registerOuterJoin(cq, joinOnMap);\r
}\r
public boolean hasConditionQuery${referrer.referrerPropertyNameInitCapAsOne}() {\r
return _conditionQuery${referrer.referrerPropertyNameInitCapAsOne} != null;\r
}\r
+\r
#end\r
#end\r
+#if ($table.hasOnlyOnePrimaryKey())\r
+ // ===================================================================================\r
+ // Scalar SubQuery\r
+ // ===============\r
+ protected Map<String, ${myConditionQueryClassName}> _scalarSubQueryMap;\r
+ public Map<String, ${myConditionQueryClassName}> getScalarSubQuery() { return _scalarSubQueryMap; }\r
+ public String keepScalarSubQuery(${myConditionQueryClassName} subQuery) {\r
+ if (_scalarSubQueryMap == null) { _scalarSubQueryMap = newLinkedHashMap(); }\r
+ String key = "subQueryMapKey" + (_scalarSubQueryMap.size() + 1);\r
+ _scalarSubQueryMap.put(key, subQuery); return "scalarSubQuery." + key;\r
+ }\r
\r
- protected String getConditionQueryClassNameInternally() { return ${myConditionQueryClassName}.class.getName(); }\r
- protected String getMapClassNameInternally() { return Map.class.getName(); }\r
+ // ===================================================================================\r
+ // MySelf InScope SubQuery\r
+ // =======================\r
+ protected Map<String, ${myConditionQueryClassName}> _myselfInScopeSubQueryMap;\r
+ public Map<String, ${myConditionQueryClassName}> getMyselfInScopeSubQuery() { return _myselfInScopeSubQueryMap; }\r
+ public String keepMyselfInScopeSubQuery(${myConditionQueryClassName} subQuery) {\r
+ if (_myselfInScopeSubQueryMap == null) { _myselfInScopeSubQueryMap = newLinkedHashMap(); }\r
+ String key = "subQueryMapKey" + (_myselfInScopeSubQueryMap.size() + 1);\r
+ _myselfInScopeSubQueryMap.put(key, subQuery); return "myselfInScopeSubQuery." + key;\r
+ }\r
+\r
+#end\r
+ // ===================================================================================\r
+ // Very Internal\r
+ // =============\r
+ // Very Internal (for Suppressing Warn about 'Not Use Import')\r
+ String xCB() { return ${myConditionBeanClassName}.class.getName(); }\r
+ String xCQ() { return ${myConditionQueryClassName}.class.getName(); }\r
+ String xMap() { return Map.class.getName(); }\r
}\r
* The condition-bean of ${table.name}.\r
* <p>\r
* You can implement your original methods here.\r
- * This class is NOT overrided when re-generating.\r
+ * This class remains when re-generating.\r
* </p>\r
* @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
+ */\r
public class ${myClassName} extends ${glPackageBaseCB}.${myBaseConditionBeanClassName} {\r
}\r
${database.allClassCopyright}package ${glPackageCQ};\r
-\r
#set ($myClassName = "${myConditionQueryClassName}")\r
\r
-import ${glPackageBaseCommonCBean}.${glConditionQueryInterfaceName};\r
-import ${glPackageBaseCommonSqlClause}.${glSqlClauseName};\r
+import org.seasar.dbflute.cbean.ConditionQuery;\r
+import org.seasar.dbflute.cbean.sqlclause.SqlClause;\r
import ${glPackageBaseCQ}.${myBaseConditionQueryClassName};\r
\r
/**\r
* The condition-query of ${table.name}.\r
* <p>\r
* You can implement your original methods here.\r
- * This class is NOT overrided when re-generating.\r
+ * This class remains when re-generating.\r
* </p>\r
* @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
+ */\r
public class ${myClassName} extends ${myBaseConditionQueryClassName} {\r
\r
// ===================================================================================\r
* @param aliasName My alias name. (NotNull)\r
* @param nestLevel Nest level.\r
*/\r
- public ${myClassName}(${glConditionQueryInterfaceName} childQuery, ${glSqlClauseName} sqlClause, String aliasName, int nestLevel) {\r
+ public ${myClassName}(ConditionQuery childQuery, SqlClause sqlClause, String aliasName, int nestLevel) {\r
super(childQuery, sqlClause, aliasName, nestLevel);\r
}\r
\r
#set ($myClassName = "${myNestSelectSetupperClassName}")\r
\r
#if ($table.hasForeignKeyOrReferrerAsOne())\r
-import ${glPackageBaseCommonCBean}.${glConditionQueryInterfaceName};\r
+import org.seasar.dbflute.cbean.ConditionQuery;\r
#end\r
import ${glPackageCQ}.${myConditionQueryClassName};\r
\r
/**\r
- * The nest-select-setupper of ${table.name}.\r
+ * The nest select set-upper of ${table.name}.\r
* @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
+ */\r
public class ${myClassName} {\r
\r
protected ${myConditionQueryClassName} _query;\r
// ===================================================================================\r
// With Nested Foreign Table\r
// =========================\r
-#foreach ($foreignKeys in $table.foreignKeys)\r
-#set ($tmpPropertyName = "${foreignKeys.foreignPropertyName}")\r
-#set ($tmpPropertyNameInitCap = "${foreignKeys.foreignPropertyNameInitCap}")\r
- public ${foreignKeys.foreignTableNestSelectSetupperClassName} with${tmpPropertyNameInitCap}() {\r
- _query.doNss(new ${myConditionQueryClassName}.NssCall() { public ${glConditionQueryInterfaceName} qf() { return _query.query${tmpPropertyNameInitCap}(); }});\r
- return new ${foreignKeys.foreignTableNestSelectSetupperClassName}(_query.query${tmpPropertyNameInitCap}());\r
+#foreach ($fk in $table.foreignKeys)\r
+#set ($tmpPropertyName = "${fk.foreignPropertyName}")\r
+#set ($tmpPropertyNameInitCap = "${fk.foreignPropertyNameInitCap}")\r
+#set ($dynamicFixedConditionArgs = "")\r
+#set ($dynamicFixedConditionVariables = "")\r
+#if ($fk.hasDynamicFixedCondition())\r
+#set ($dynamicFixedConditionArgs = "${fk.dynamicFixedConditionFinalArgs}")\r
+#set ($dynamicFixedConditionVariables = "${fk.dynamicFixedConditionVariables}")\r
+#end\r
+ public ${fk.foreignTableNestSelectSetupperClassName} with${tmpPropertyNameInitCap}(${dynamicFixedConditionArgs}) {\r
+ _query.doNss(new ${myConditionQueryClassName}.NssCall() { public ConditionQuery qf() { return _query.query${tmpPropertyNameInitCap}(${dynamicFixedConditionVariables}); }});\r
+ return new ${fk.foreignTableNestSelectSetupperClassName}(_query.query${tmpPropertyNameInitCap}(${dynamicFixedConditionVariables}));\r
}\r
#end\r
\r
#set ($tmpPropertyName = "${referrer.reffererPropertyNameAsOne}")\r
#set ($tmpPropertyNameInitCap = "${referrer.reffererPropertyNameInitCapAsOne}")\r
public ${referrer.referrerTableNestSelectSetupperClassName} with${tmpPropertyNameInitCap}() {\r
- _query.doNss(new ${myConditionQueryClassName}.NssCall() { public ${glConditionQueryInterfaceName} qf() { return _query.query${tmpPropertyNameInitCap}(); }});\r
+ _query.doNss(new ${myConditionQueryClassName}.NssCall() { public ConditionQuery qf() { return _query.query${tmpPropertyNameInitCap}(); }});\r
return new ${referrer.referrerTableNestSelectSetupperClassName}(_query.query${tmpPropertyNameInitCap}());\r
}\r
#end\r
* The behavior of ${table.name}.\r
* <p>\r
* You can implement your original methods here.\r
- * This class is NOT overrided when re-generating.\r
+ * This class remains when re-generating.\r
* </p>\r
* @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
+ */\r
public class $myClassName extends ${glPackageBaseBhv}.${myBaseBhvClassName} {\r
}\r
* The cursor of ${table.name}.\r
* <p>\r
* You can implement your original methods here.\r
- * This class is NOT overrided when re-generating.\r
+ * This class remains when re-generating.\r
* </p>\r
* @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
+ */\r
public class ${myClassName} extends ${myBaseDaoCursorPackageName}.${myBaseTypeSafeCursorClassName} {\r
}\r
* The cursor handler of ${table.name}.\r
* <p>\r
* You can implement your original methods here.\r
- * This class is NOT overrided when re-generating.\r
+ * This class remains when re-generating.\r
* </p>\r
* @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
+ */\r
public abstract class ${myClassName} extends ${myBaseDaoCursorPackageName}.${myBaseTypeSafeCursorHandlerClassName} {\r
}\r
* This class is NOT overrided when re-generating.\r
* </p>\r
* @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
+ */\r
public class ${myClassName} extends ${glPackageBaseParameterBean}.${myBaseParameterBeanClassName} {\r
}\r
* The entity of ${table.name}.\r
* <p>\r
* You can implement your original methods here.\r
- * This class is NOT overrided when re-generating.\r
+ * This class remains when re-generating.\r
* </p>\r
* @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
+ */\r
public class $myClassName extends ${myBaseEntityPackageName}.${myBaseObjectClassName} {\r
\r
/** Serial version UID. (Default) */\r
* The entity of ${table.name}.\r
* <p>\r
* You can implement your original methods here.\r
- * This class is NOT overrided when re-generating.\r
+ * This class remains when re-generating.\r
* </p>\r
* @author ${database.ClassAuthor}\r
*/\r
--- /dev/null
+\r
+\r
+targetdatabase = $targetDatabase\r
+\r
+##\r
+## Loop by data-model.\r
+##\r
+#foreach ($dataModel in $dataModels)\r
+\r
+ ##\r
+ ## Loop by database.\r
+ ##\r
+ #foreach ($database in $dataModel.Databases)\r
+ $database.enableGenerateOutputDirectory()\r
+ \r
+ ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \r
+ ## Initialize CustomizeDao and AdditionalForeignKey and ClassificationDeployment and IncludeQuery.\r
+ ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \r
+ $database.initializeAdditionalPrimaryKey()\r
+ $database.initializeAdditionalForeignKey()\r
+ $database.initializeClassificationDeployment()\r
+ $database.initializeIncludeQuery()\r
+\r
+ ## *****************************************************************************************************************\r
+ ## Global Paramter\r
+ ## ***************\r
+ ## ===================================================================================\r
+ ## Language\r
+ ## ========\r
+ #set ($glTargetLanguage = ${database.targetLanguage})\r
+\r
+ ## ===================================================================================\r
+ ## Resource Directory\r
+ ## ==================\r
+ #set ($glResourceDirectory = ${database.resourceDirectory})\r
+\r
+ ## ===================================================================================\r
+ ## Extension\r
+ ## =========\r
+ #set ($glTemplateFileExtension = ${database.templateFileExtension})\r
+ #set ($glClassFileExtension = ${database.classFileExtension})\r
+\r
+ ## -----------------------------------------------------\r
+ ## Prefix\r
+ ## ------\r
+ #set ($glProjectPrefix = ${database.projectPrefix})\r
+ #set ($glBasePrefix = ${database.basePrefix})\r
+ #set ($glBaseSuffixForEntity = ${database.baseSuffixForEntity})\r
+\r
+ ## -----------------------------------------------------\r
+ ## Dicon\r
+ ## -----\r
+ #set ($glDBFluteDiconNamespace = "${database.DBFluteDiconNamespace}")\r
+ #set ($glDBFluteDiconFileName = "${database.DBFluteDiconFileName}")\r
+ #set ($glCreatorDiconFileName = "${database.DBFluteCreatorDiconFileName}")\r
+ #set ($glCustomizerDiconFileName = "${database.DBFluteCustomizerDiconFileName}")\r
+ #set ($glJ2eeDiconResourceName = "${database.j2eeDiconResourceName}")\r
+ #set ($glDBFluteBeansFileName = "${database.DBFluteBeansFileName}")\r
+\r
+ ## ===================================================================================\r
+ ## Variable\r
+ ## ========\r
+ #set ($glConditionBeanInitialName = "CB")\r
+ #set ($glConditionQueryInitialName = "CQ")\r
+ #set ($glAttachedCBArgsVariableName = "cb")\r
+ #set ($glParentVariablePrefix = "_parent")\r
+ #set ($glChildrenVariablePrefix = "_children")\r
+\r
+ ## ===================================================================================\r
+ ## Package\r
+ ## =======\r
+ ## [Common]\r
+ #set ($glPackageBaseCommon = "${database.baseCommonPackage}")\r
+ #set ($glPackageBaseCommonAnnotation = "${database.baseCommonPackage}.annotation")\r
+ #set ($glPackageBaseCommonBhv = "${database.baseCommonPackage}.bhv")\r
+ #set ($glPackageBaseCommonBhvBatch = "${database.baseCommonPackage}.bhv.batch")\r
+ #set ($glPackageBaseCommonBhvLoad = "${database.baseCommonPackage}.bhv.load")\r
+ #set ($glPackageBaseCommonBhvSetup = "${database.baseCommonPackage}.bhv.setup")\r
+ #set ($glPackageBaseCommonCBean = "${database.baseCommonPackage}.cbean")\r
+ #set ($glPackageBaseCommonCKey = "${database.baseCommonPackage}.cbean.ckey")\r
+ #set ($glPackageBaseCommonCBeanMapping = "${database.baseCommonPackage}.cbean.mapping")\r
+ #set ($glPackageBaseCommonCBeanGrouping = "${database.baseCommonPackage}.cbean.grouping")\r
+ #set ($glPackageBaseCommonCBeanOutsidesql = "${database.baseCommonPackage}.cbean.outsidesql")\r
+ #set ($glPackageBaseCommonCBeanOutsidesqlExecutor = "${database.baseCommonPackage}.cbean.outsidesql.executor")\r
+ #set ($glPackageBaseCommonCBeanPagenavi = "${database.baseCommonPackage}.cbean.pagenavi")\r
+ #set ($glPackageBaseCommonCBeanPagenaviGroup = "${database.baseCommonPackage}.cbean.pagenavi.group")\r
+ #set ($glPackageBaseCommonCBeanPagenaviRange = "${database.baseCommonPackage}.cbean.pagenavi.range")\r
+ #set ($glPackageBaseCommonSqlClause = "${database.baseCommonPackage}.cbean.sqlclause")\r
+ #set ($glPackageBaseCommonCValue = "${database.baseCommonPackage}.cbean.cvalue")\r
+ #set ($glPackageBaseCommonCOption = "${database.baseCommonPackage}.cbean.coption")\r
+ #set ($glPackageBaseCommonCOptionParts = "${database.baseCommonPackage}.cbean.coption.parts")\r
+ #set ($glPackageBaseCommonCOptionPartsLocal = "${database.baseCommonPackage}.cbean.coption.parts.local")\r
+ #set ($glPackageBaseCommonDBMeta = "${database.baseCommonPackage}.dbmeta")\r
+ #set ($glPackageBaseCommonDBMetaHierarchy = "${database.baseCommonPackage}.dbmeta.hierarchy")\r
+ #set ($glPackageBaseCommonDBMetaHierarchyBasic = "${database.baseCommonPackage}.dbmeta.hierarchy.basic")\r
+ #set ($glPackageBaseCommonDBMetaInfo = "${database.baseCommonPackage}.dbmeta.info")\r
+ #set ($glPackageBaseCommonException = "${database.baseCommonPackage}.exception")\r
+ #set ($glPackageBaseCommonHelper = "${database.baseCommonPackage}.helper")\r
+ #set ($glPackageBaseCommonHelperCharacter = "${database.baseCommonPackage}.helper.character")\r
+ #set ($glPackageBaseCommonHelperCharacterImpl = "${database.baseCommonPackage}.helper.character.impl")\r
+ #set ($glPackageBaseCommonHelperCollectionOrder = "${database.baseCommonPackage}.helper.collection.order")\r
+ #set ($glPackageBaseCommonHelperCollectionOrderImpl = "${database.baseCommonPackage}.helper.collection.order.impl")\r
+ #set ($glPackageBaseCommonHelperToken = "${database.baseCommonPackage}.helper.token")\r
+ #set ($glPackageBaseCommonHelperTokenLine = "${database.baseCommonPackage}.helper.token.line")\r
+ #set ($glPackageBaseCommonHelperTokenLineImpl = "${database.baseCommonPackage}.helper.token.line.impl")\r
+ #set ($glPackageBaseCommonHelperTokenFile = "${database.baseCommonPackage}.helper.token.file")\r
+ #set ($glPackageBaseCommonHelperTokenFileImpl = "${database.baseCommonPackage}.helper.token.file.impl")\r
+\r
+ #set ($glPackageBaseCommonInterceptor = "${database.baseCommonPackage}.interceptor")\r
+ #set ($glPackageBaseCommonJavaLike = "${database.baseCommonPackage}.javalike")\r
+ #set ($glPackageBaseCommonJdbc = "${database.baseCommonPackage}.jdbc")\r
+ #set ($glPackageBaseCommonJdbcHistory = "${database.baseCommonPackage}.jdbc.history")\r
+ #set ($glPackageBaseCommonS2Container = "${database.baseCommonPackage}.s2container")\r
+ #set ($glPackageBaseCommonS2Dao = "${database.baseCommonPackage}.s2dao")\r
+ #set ($glPackageBaseCommonS2DaoInternal = "${database.baseCommonPackage}.s2dao.internal")\r
+ #set ($glPackageBaseCommonS2DaoInternalSqlCommand = "${database.baseCommonPackage}.s2dao.internal.sqlcommand")\r
+ #set ($glPackageBaseCommonS2DaoInternalSqlHandler = "${database.baseCommonPackage}.s2dao.internal.sqlhandler")\r
+ #set ($glPackageBaseCommonS2DaoInternalSqlLog = "${database.baseCommonPackage}.s2dao.internal.sqllog")\r
+ #set ($glPackageBaseCommonS2DaoInternalSqlParser = "${database.baseCommonPackage}.s2dao.internal.sqlparser")\r
+ #set ($glPackageBaseCommonS2DaoInternalUtil = "${database.baseCommonPackage}.s2dao.internal.util")\r
+ #set ($glPackageBaseCommonUtil = "${database.baseCommonPackage}.util")\r
+\r
+ ## [Main]\r
+ #set ($glPackageBaseBhv = "${database.baseBehaviorPackage}")\r
+ #set ($glPackageBaseDao = "${database.baseDaoPackage}" )\r
+ #set ($glPackageBaseCustomizeDao = "${database.baseDaoPackage}.customize" )\r
+ #set ($glPackageBaseEntity = "${database.baseEntityPackage}")\r
+ #set ($glPackageBaseCustomizeEntity = "${database.baseEntityPackage}.customize" )\r
+ #set ($glPackageExtendedBhv = "${database.extendedBehaviorPackage}")\r
+ #set ($glPackageExtendedDao = "${database.extendedDaoPackage}")\r
+ #set ($glPackageExtendedCustomizeDao = "${database.extendedDaoPackage}.customize" )\r
+ #set ($glPackageExtendedEntity = "${database.extendedEntityPackage}")\r
+ #set ($glPackageExtendedCustomizeEntity = "${database.extendedEntityPackage}.customize" )\r
+ #set ($glPackageBaseDBMeta = "${glPackageBaseEntity}.dbmeta")\r
+ #set ($glPackageBaseCustomizeDBMeta = "${glPackageBaseCustomizeEntity}.dbmeta")\r
+ #set ($glPackageBaseSqlParameterBean = "${database.SqlParameterBeanPackage}.bsparam")\r
+ #set ($glPackageExtendedSqlParameterBean = "${database.SqlParameterBeanPackage}.exparam")\r
+\r
+ ## *****************************************************************************************************************\r
+ ## Parsing\r
+ ## *******\r
+ ## ===================================================================================\r
+ ## S2JDBC Entity\r
+ ## =============\r
+ #if ($database.hasS2jdbcDefinition() && $database.isTargetLanguageJava())\r
+ $database.debug("parseS2jdbcEntity() {")\r
+ #set ($myBaseEntityPackageName = "${database.s2jdbcBaseEntityPackage}")\r
+ #set ($myExtendedEntityPackageName = "${database.s2jdbcExtendedEntityPackage}")\r
+\r
+ #set ($path = $strings.getPackageAsPath(${myBaseEntityPackageName}))\r
+ $database.makeDirectory($path)\r
+ \r
+ #set ($path = $strings.getPackageAsPath(${myExtendedEntityPackageName}))\r
+ $database.makeDirectory($path)\r
+\r
+ #foreach ($table in $database.tables)\r
+ #set ($myBaseObjectClassName = "${database.s2jdbcBaseEntityPrefix}${table.javaName}${database.s2jdbcBaseEntitySuffix}")\r
+ #set ($myExtendedObjectClassName = "${table.javaName}")\r
+\r
+ $database.debug(" parse('${myExtendedObjectClassName}')")\r
+ \r
+ #set ( $path = "${strings.getPackageAsPath(${myBaseEntityPackageName})}${myBaseObjectClassName}.${glClassFileExtension}" )\r
+ $generator.parse("om/${glResourceDirectory}/other/s2jdbc/entity/S2jdbcBaseEntity.${glTemplateFileExtension}", $path, "table", $table)\r
+\r
+ #if (!$database.isStopGenerateExtendedEntity())\r
+ #set ( $path = "${strings.getPackageAsPath(${myExtendedEntityPackageName})}${myExtendedObjectClassName}.${glClassFileExtension}" )\r
+ #if (!$files.file(${generator.OutputPath},$path).exists())\r
+ $generator.parse("om/${glResourceDirectory}/other/s2jdbc/entity/S2jdbcExtendedEntity.${glTemplateFileExtension}", $path, "table", $table)\r
+ #end\r
+ #end\r
+\r
+ #end\r
+ $database.debug("}")\r
+ #end\r
+ #end\r
+#end\r
+\r
#set ($glBasePrefix = ${database.BasePrefix})\r
#set ($glBaseSuffixForEntity = ${database.BaseSuffixForEntity})\r
\r
- #set ($glDaoReadableInterfaceName = "${glProjectPrefix}DaoReadable")\r
- #set ($glDaoWritableInterfaceName = "${glProjectPrefix}DaoWritable")\r
-\r
- ## [Common-Entity]\r
- #set ($glEntityInterfaceName = "${glProjectPrefix}Entity")\r
- #set ($glEntityDefinedCommonColumnInterfaceName = "${glProjectPrefix}EntityDefinedCommonColumn")\r
-\r
- ## [ConditionBean]\r
- #set ($glConditionBeanInterfaceName = "${glProjectPrefix}ConditionBean")\r
-\r
- ## [Allcommon-ConditionBean-Option]\r
- #set ($glConditionOptionLikeSearchName = "${glProjectPrefix}LikeSearchOption")\r
-\r
- ## [DBMeta]\r
- #set ($glDBMetaInterfaceName = "${glProjectPrefix}DBMeta")\r
- #set ($glDBMetaAbstractName = "${glProjectPrefix}AbstractDBMeta")\r
- #set ($glDBMetaInstanceHandlerName = "${glProjectPrefix}DBMetaInstanceHandler")\r
-\r
- ## [Allcommon-DBMetaInfo]\r
- #set ($glForeignInfoName = "${glProjectPrefix}ForeignInfo")\r
- #set ($glRefererInfoName = "${glProjectPrefix}RefererInfo")\r
- #set ($glRelationInfoName = "${glProjectPrefix}RelationInfo")\r
- #set ($glUniqueInfoName = "${glProjectPrefix}UniqueInfo")\r
- #set ($glColumnInfoName = "${glProjectPrefix}ColumnInfo")\r
-\r
- ## [Helper]\r
- #set ($glMapListStringName = "${glProjectPrefix}MapListString")\r
- #set ($glMapListStringImplName = "${glProjectPrefix}MapListStringImpl")\r
- #set ($glMapStringBuilderName = "${glProjectPrefix}MapStringBuilder")\r
- #set ($glMapStringBuilderImplName = "${glProjectPrefix}MapStringBuilderImpl")\r
-\r
- ## [Allcommon-JDBC]\r
- #set ($glCursorHandlerName = "${glProjectPrefix}CursorHandler")\r
- #set ($glCursorFetcherName = "${glProjectPrefix}CursorFetcher")\r
- #set ($glLatestSqlProviderName = "${glProjectPrefix}LatestSqlProvider")\r
-\r
- ## [ClassificationDefinition]\r
- #set ($glClassificationDefinition = "${glProjectPrefix}ClassificationDefinition")\r
-\r
## [Package]\r
#set ($glPackageBaseCommon = "${database.baseCommonPackage}")\r
#set ($glPackageBaseCommonCBean = "${database.baseCommonPackage}.cbean")\r
* ${table.referrerPropertyNameCommaString}\r
* </pre>\r
* @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
+ */\r
public abstract class $myClassName implements java.io.Serializable {\r
\r
// ===================================================================================\r
* The entity of ${table.name}.\r
* <p>\r
* You can implement your original methods here.\r
- * This class is NOT overrided when re-generating.\r
+ * This class remains when re-generating.\r
* </p>\r
* @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
+ */\r
public class $myClassName extends ${myBaseEntityPackageName}.${myBaseObjectClassName} {\r
\r
/** Serial version UID. (Default) */\r
* ${table.versionNoColumnName}\r
* </pre>\r
* @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
+ */\r
public class ${myClassName} {\r
\r
// ===================================================================================\r
+++ /dev/null
-# ========================================================================================
-# for All
-# =======
-
-# -------------------------------------------------------------------
-# P R O J E C T
-# -------------------------------------------------------------------
-# @FirstProperty
-# @Required
-torque.project = ea2ddl
-
-# -------------------------------------------------------------------
-# T A R G E T D A T A B A S E
-# -------------------------------------------------------------------
-# This is the target database, only considered when generating
-# the SQL for your Torque project. Your possible choices are:
-#
-# axion, cloudscape, db2, db2400, hypersonic, interbase, mssql,
-# mysql, oracle, postgresql, sapdb, sybase, firebird, derby, h2
-# -------------------------------------------------------------------
-# @FirstProperty
-# @Required
-torque.database = msaccess
-
-# -------------------------------------------------------------------
-# T A R G E T L A N G U A G E
-# -------------------------------------------------------------------
-# (Default 'java')
-# The target language. Your possible choices are:
-# java, csharp
-# -------------------------------------------------------------------
-# @FirstProperty
-torque.targetLanguage = java
-
-# -------------------------------------------------------------------
-# T A R G E T C O N T A I N E R
-# -------------------------------------------------------------------
-# (Default 'seasar')
-# The target container. Your possible choices are:
-# seasar, spring
-# -------------------------------------------------------------------
-# @FirstProperty
-torque.targetContainer = seasar
-
-
-
-# ========================================================================================
-# for OM task
-# ===========
-
-# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
-# Basic
-# _/_/_/_/
-# /---------------------------------------------------------------------------
-# [Output Directory]
-# java.dir: (Default Java:'../src/main/java' CSharp:'../source')
-# The base output directory.
-#
-# If your project style is the same as example below,
-# you don't need to set up this property! (The default value is fit for you)
-#
-# *Java Project Style
-# {app-project}
-# |
-# |-dbflute_[project]
-# | |-build-[project].properties
-# | |-...
-# |
-# |-src/main/java // *Here!
-# |-src/main/resources
-# |-...
-#
-# *CSharp Project Style
-# [app-solution]/dbflute_[project]/build-[project].properties
-# [app-solution]/mydbflute/dbflute-0.6.3
-# [app-solution]/source/[app-solution].sln
-# [app-solution]/source/[app-project(top-namespace)]/[part-namespace]/AllCommon
-# [app-solution]/source/[app-project(top-namespace)]/[part-namespace]/BsBhv
-# [app-solution]/source/[app-project(top-namespace)]/[part-namespace]/...
-# [app-solution]/source/[app-project(top-namespace)]/Resources/DBFlute.dicon
-# [app-solution]/source/[app-project(top-namespace)]/Resources/Ado.dicon
-#
-# @FirstProperty
-torque.java.dir = ../../ea2ddl-dao/src/main/java
-# ----------------/
-
-# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
-# Package
-# _/_/
-# /---------------------------------------------------------------------------
-# [EntityDao Package]
-# packageBase:
-# The base directory of package.
-#
-# @FirstProperty
-torque.packageBase = jp.sourceforge.ea2ddl.dao
-# ----------------/
-
-# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
-# S2Dao Adjustment
-# _/_/_/_/_/_/
-# /---------------------------------------------------------------------------
-# [S2Dao Version]
-# s2daoVersion: (Default [The latest version])
-#
-# @JavaOnly
-torque.s2daoVersion = 1.0.47
-# ----------------/
-
-# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
-# Little Adjustment
-# _/_/_/_/_/_/
-torque.isDeleteOldTableClass = true
-
-
-# ========================================================================================
-# for JDBC task
-# =============
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# [Database Information]
-#
-# * * * * * * * * * * * * * * * * * * * * * * * * *
-# You should use './dfprop/databaseInfoMap.dfprop'
-# Look the file!
-# * * * * * * * * * * * * * * * * * * * * * * * * *
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-# =========================================================================================
-# for Internal
-# ============
-# Normally you don't need to change these properties.
-
-#
-# [JDBC to java-native mapping] (NotRequired - Default 'map:{}')
-#
-# ex) map:{INTEGER=java.lang.Integer;TIMESTAMP=java.util.Date}
-# ex) map:{} // If you don't want to change...
-#
-# Default mapping as follows:
-# * -----------------------------------------------------
-# * DBFlute Type | Java Type | CSharp Type |
-# * -----------------------------------------------------
-# * CHAR | java.lang.String | String |
-# * VARCHAR | java.lang.String | String |
-# * LONGVARCHAR | java.lang.String | String |
-# * NUMERIC | java.math.BigDecimal | decimal? |
-# * DECIMAL | java.math.BigDecimal | decimal? |
-# * BIT | java.lang.Boolean | bool? |
-# * TINYINT | java.math.BigDecimal | int? |
-# * SMALLINT | java.math.BigDecimal | int? |
-# * INTEGER | java.math.BigDecimal | int? |
-# * BIGINT | java.math.BigDecimal | int? |
-# * REAL | java.math.BigDecimal | decimal? |
-# * FLOAT | java.math.BigDecimal | decimal? |
-# * DOUBLE | java.math.BigDecimal | decimal? |
-# * BINARY | byte[] | byte[] |
-# * VARBINARY | byte[] | byte[] |
-# * LONGVARBINARY | byte[] | byte[] |
-# * DATE | java.util.Date | DateTime? |
-# * TIME | java.sql.Time | DateTime? |
-# * TIMESTAMP | java.sql.Timestamp | DateTime? |
-# *
-# * ------------------------------------------------------------------
-# * A couple variations have been introduced to cover cases
-# * that may arise, but are not covered above.
-# * BOOLEANCHAR | java.lang.Boolean |
-# * BOOLEANINT | OR java.lang.Boolean |
-# *
-torque.jdbcToJavaNativeMap = map:{TINYINT=java.lang.Integer;SMALLINT=java.lang.Integer;INTEGER=java.lang.Integer;BIGINT=java.lang.Long}
-
-# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
-# Dicon
-# _/_/
-# /---------------------------------------------------------------------------
-# [Dicon Adjustment Information]
-#
-# dbfluteDiconBeforeJ2eeIncludeDefinitionMap: (Default 'map:{}')
-# The definition map of dbflute dicon include path before j2ee including.
-# ex) map:{ dbflute/jdbc-xxx.dicon = dummy }
-#
-# dbfluteDiconOtherIncludeDefinitionMap: (Default 'map:{}')
-# The definition map of dbflute dicon other include path.
-# ex) map:{ dbflute/common.dicon = dummy }
-#
-#
-torque.dbfluteDiconBeforeJ2eeIncludeDefinitionMap = map:{}
-torque.dbfluteDiconOtherIncludeDefinitionMap = map:{}
-# ----------------/
+++ /dev/null
-@echo off\r
-\r
-set ANT_OPTS=-Xmx256M\r
-\r
-set MY_PROJECT_NAME=ldb\r
-\r
-rem set DBFLUTE_HOME=..\mydbflute\dbflute-x.x.x\r
+++ /dev/null
-#!/bin/sh
-
-export MY_PROJECT_NAME=ldb
-
-#export DBFLUTE_HOME=../mydbflute/dbflute-x.x.x
+++ /dev/null
-# =======================================================================================\r
-# for All\r
-# =======\r
-\r
-# -------------------------------------------------------------------\r
-# P R O J E C T\r
-# -------------------------------------------------------------------\r
-# @FirstProperty\r
-# @Required\r
-torque.project = ldb\r
-\r
-# -------------------------------------------------------------------\r
-# T A R G E T D A T A B A S E\r
-# -------------------------------------------------------------------\r
-# This is the target database, only considered when generating\r
-# the SQL for your Torque project. Your possible choices are:\r
-#\r
-# axion, cloudscape, db2, db2400, hypersonic, interbase, mssql,\r
-# mysql, oracle, postgresql, sapdb, sybase, firebird, derby\r
-# -------------------------------------------------------------------\r
-# @FirstProperty\r
-# @Required\r
-torque.database = derby\r
-\r
-# -------------------------------------------------------------------\r
-# T A R G E T L A N G U A G E\r
-# -------------------------------------------------------------------\r
-# (Default 'java')\r
-# The target language. Your possible choices are:\r
-# java, csharp\r
-# -------------------------------------------------------------------\r
-# @FirstProperty\r
-#torque.targetLanguage = java\r
-#torque.targetLanguageVersion = 6.0\r
-\r
-# -------------------------------------------------------------------\r
-# T E M P L A T E E N C O D I N G\r
-# -------------------------------------------------------------------\r
-# (Default 'UTF-8')\r
-# The encoding of Velocity template file.\r
-# -------------------------------------------------------------------\r
-#torque.templateFileEncoding = UTF-8\r
-\r
-# -------------------------------------------------------------------\r
-# S O U R C E F I L E E N C O D I N G\r
-# -------------------------------------------------------------------\r
-# (Default 'UTF-8')\r
-# The encoding of source file.\r
-# -------------------------------------------------------------------\r
-#torque.sourceFileEncoding = UTF-8\r
-\r
-\r
-\r
-# ========================================================================================\r
-# for OM task\r
-# ===========\r
-\r
-# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/\r
-# Basic\r
-# _/_/_/_/\r
-# /---------------------------------------------------------------------------\r
-# [Output Directory]\r
-# java.dir: (Default Java:'../src/main/java' CSharp:'../source')\r
-# The base output directory.\r
-#\r
-# *Java Project Style\r
-# If this value is '../src/main/java' and your project type is under maven,\r
-# you don't need to set up this property!\r
-#\r
-# {app-project}\r
-# |\r
-# |-dbflute_[project]\r
-# | |-build-[project].properties\r
-# | |-...\r
-# |\r
-# |-src/main/java // *Here!\r
-# |-src/main/resources\r
-# |-...\r
-#\r
-# *CSharp Project Style\r
-# [app-solution]/dbflute_[project]/build-[project].properties\r
-# [app-solution]/mydbflute/dbflute-0.6.0\r
-# [app-solution]/source/[app-solution].sln\r
-# [app-solution]/source/[app-project(top-namespace)]/[part-namespace]/AllCommon\r
-# [app-solution]/source/[app-project(top-namespace)]/[part-namespace]/BsBhv\r
-# [app-solution]/source/[app-project(top-namespace)]/[part-namespace]/...\r
-# [app-solution]/source/[app-project(top-namespace)]/Resources/DBFlute.dicon\r
-# [app-solution]/source/[app-project(top-namespace)]/Resources/Ado.dicon\r
-#\r
-# @FirstProperty\r
-#torque.java.dir = ../src/main/java\r
-# ----------------/\r
-\r
-# /---------------------------------------------------------------------------\r
-# [Class Author]\r
-# classAuthor: (Default 'DBFlute(AutoGenerator)')\r
-# The value of the author tag in class javadoc.\r
-# All classes are target.\r
-#\r
-#torque.classAuthor = DBFlute(AutoGenerator)\r
-# ----------------/\r
-\r
-# /---------------------------------------------------------------------------\r
-# [Naming]\r
-# isJavaNameOfTableSameAsDbName: (Default 'false')\r
-# [true]\r
-# Java name of table is same as db name.\r
-# ex) If the table name is 'OrderDetail', then the java name is 'OrderDetail'.\r
-# \r
-# [false]\r
-# ex) If the table name is 'ORDER_DETAIL', then the java name is 'OrderDetail'.\r
-# ex) If the table name is 'OrderDetail', then the java name is 'Orderdetail'.\r
-#\r
-# isJavaNameOfColumnSameAsDbName: (Default 'false')\r
-# [true]\r
-# Java name of column is same as db name.\r
-# ex) If the table name is 'OrderDetail', then the java name is 'OrderDetail'.\r
-# \r
-# [false]\r
-# ex) If the table name is 'ORDER_DETAIL', then the java name is 'OrderDetail'.\r
-# ex) If the table name is 'OrderDetail', then the java name is 'Orderdetail'.\r
-#\r
-# @FirstProperty\r
-#torque.isJavaNameOfTableSameAsDbName = false\r
-#\r
-# @FirstProperty\r
-#torque.isJavaNameOfColumnSameAsDbName = false\r
-# ----------------/\r
-\r
-# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/\r
-# Prefix\r
-# _/_/_/_/\r
-# /---------------------------------------------------------------------------\r
-# [PrefixAndSuffix]\r
-# projectPrefix: (Default null)\r
-# If the property is 'Ld', all class names are 'LdXxx'.\r
-#\r
-# @FirstProperty\r
-torque.projectPrefix = Ld\r
-# ----------------/\r
-\r
-# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/\r
-# Dicon\r
-# _/_/\r
-# /---------------------------------------------------------------------------\r
-# [Dicon Basic Information]\r
-# dbfluteDiconNamespace: (Default Java:'dbflute' CSharp:'DBFlute')\r
-# The namespace of dbflute dicon.\r
-#\r
-# dbfluteDiconPackageName: (Default Java:'../resources' CSharp:'../source/${topNamespace}/Resources')\r
-# The package name of dbflute dicon.\r
-#\r
-# dbfluteDiconFileName: (Default Java:'dbflute.dicon' CSharp:'DBFlute.dicon')\r
-# The file name of dbflute dicon. (Required)\r
-#\r
-# j2eeDiconResourceName: (Default Java:'j2ee.dicon' CSharp:'Ado.dicon')\r
-# The resource name of J2EE dicon.\r
-#\r
-# *Attension:\r
-# It is necessary that main dicon of application includes dbflute dicon.\r
-# ex) App dicon includes dbflute dicon.\r
-#\r
-# @FirstProperty\r
-#torque.dbfluteDiconNamespace = dbflute\r
-#torque.dbfluteDiconPackageName = ../resources\r
-#torque.dbfluteDiconFileName = dbflute.dicon\r
-torque.j2eeDiconResourceName = j2ee-ldb.dicon\r
-# ----------------/\r
-\r
-# /---------------------------------------------------------------------------\r
-# [Dicon Adjustment Information]\r
-#\r
-# dbfluteDiconBeforeJ2eeIncludeDefinitionMap: (Default 'map:{}')\r
-# The definition map of dbflute dicon include path before j2ee including.\r
-# ex) map:{ dbflute/jdbc-xxx.dicon = dummy }\r
-#\r
-# dbfluteDiconOtherIncludeDefinitionMap: (Default 'map:{}')\r
-# The definition map of dbflute dicon other include path.\r
-# ex) map:{ dbflute/common.dicon = dummy }\r
-#\r
-#\r
-#torque.dbfluteDiconBeforeJ2eeIncludeDefinitionMap = map:{}\r
-#torque.dbfluteDiconOtherIncludeDefinitionMap = map:{}\r
-# ----------------/\r
-\r
-# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/\r
-# Package\r
-# _/_/\r
-# /---------------------------------------------------------------------------\r
-# [EntityDao Package]\r
-# packageBase: (Default '')\r
-# The base directory of package.\r
-#\r
-# *If this property is specified and other package properties is not specified, \r
-# Then The packages of generated class are as follows:\r
-#\r
-# ex) packageBase = org.seasar.dbflute.example.dbflute.ldb\r
-# baseCommonPackage --> org.seasar.dbflute.example.dbflute.ldb.allcommon\r
-# baseBehaviorPackage --> org.seasar.dbflute.example.dbflute.ldb.bsbhv\r
-# baseDaoPackage --> org.seasar.dbflute.example.dbflute.ldb.bsdao\r
-# baseEntityPackage --> org.seasar.dbflute.example.dbflute.ldb.bsentity\r
-# conditionBeanPackage --> org.seasar.dbflute.example.dbflute.ldb.cbean\r
-# extendedBehaviorPackage --> org.seasar.dbflute.example.dbflute.ldb.exbhv\r
-# extendedDaoPackage --> org.seasar.dbflute.example.dbflute.ldb.exdao\r
-# extendedEntityPackage --> org.seasar.dbflute.example.dbflute.ldb.exentity\r
-#\r
-# *If this property is not specified, you should specify the other package properties.\r
-#\r
-#\r
-# baseCommonPackage: (Default Java:'allcommon' C#:'allcommon')\r
-# baseBehaviorPackage: (Default Java:'bsbhv' C#:'bsbhv')\r
-# baseDaoPackage: (Default Java:'bsdao' C#:'bsdao')\r
-# baseEntityPackage: (Default Java:'bsentity' C#:'bsentity')\r
-# conditionBeanPackage: (Default Java:'cbean' C#:'cbean')\r
-# extendedBehaviorPackage: (Default Java:'exbhv' C#:'exbhv')\r
-# extendedDaoPackage: (Default Java:'exdao' C#:'exdao')\r
-# extendedEntityPackage: (Default Java:'exentity' C#:'exentity')\r
-#\r
-# @FirstProperty\r
-torque.packageBase = dbflute.ldb\r
-# ----------------/\r
-\r
-# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/\r
-# S2Dao Adjustment\r
-# _/_/_/_/_/_/\r
-# /---------------------------------------------------------------------------\r
-# [S2Dao Version]\r
-# s2daoVersion: (Default [The latest version])\r
-#\r
-# @FirstProperty\r
-# @JavaOnly\r
-#torque.s2daoVersion = 1.0.46\r
-# ----------------/\r
-\r
-# /---------------------------------------------------------------------------\r
-# [S2Dao Component]\r
-# extendedDaoMetaDataFactoryImplClassName: (Default [dbflute provides])\r
-# Your original DaoMetaDataFactory.\r
-#\r
-# extendedAnnotationReaderFactoryClassName: (Default 'org.seasar.dao.impl.AnnotationReaderFactoryImpl')\r
-# Your original AnnotationReaderFactory.\r
-#\r
-# @JavaOnly\r
-#torque.extendedDaoMetaDataFactoryImplClassName = \r
-#torque.extendedAnnotationReaderFactoryClassName = \r
-# ----------------/\r
-\r
-# /---------------------------------------------------------------------------\r
-# [S2Dao Component]\r
-# daoSqlFileEncoding: (Default 'UTF-8')\r
-# Your original encoding of sql file for dao.\r
-#\r
-# @JavaOnly\r
-#torque.daoSqlFileEncoding = UTF-8\r
-# ----------------/\r
-\r
-# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/\r
-# Adavance\r
-# _/_/\r
-\r
-# /---------------------------------------------------------------------------\r
-# [Sequence]\r
-# sequenceDefinitionMap: (Default 'map:{}')\r
-# The method 'XxxDao#selectNextVal()' is generated for its table primary key.\r
-#\r
-# ex) public String selectNextVal_SQL = "select gen_id(BOOK_BOOK_ID_INC, 1) from RDB$DATABASE";\r
-# public java.math.BigDecimal selectNextVal();\r
-# // This example is for the database of Firebird\r
-#\r
-# sequenceReturnType: (Default 'java.math.BigDecimal')\r
-# The return type of The method 'XxxDao#selectNextVal()' as DEFAULT!\r
-# If the primary key type of the table is BigDecimal\r
-# , The return type is the same as it inspite of this property.\r
-#\r
-# isAvailableBehaviorInsertSequenceInjection: (Default 'true')\r
-# [true]\r
-# Inject sequence (auto) to primary key on behavior insert.\r
-#\r
-# *Apache Derby does not support Sequence-Object.\r
-# But I want to test this property.\r
-#\r
-torque.sequenceDefinitionMap = map:{ COLLECTION_STATUS_LOOKUP = testSeq }\r
-#torque.sequenceReturnType = java.lang.Integer\r
-#torque.isAvailableBehaviorInsertSequenceInjection = true\r
-# ----------------/\r
-\r
-# /---------------------------------------------------------------------------\r
-# [Identity]\r
-# identityDefinitionMap: (NotRequired - Default 'map:{}')\r
-# ID annotation of s2dao is generated for its table primary key.\r
-#\r
-# ex) public static final String bookId_ID = "identity";\r
-#\r
-# *Identity must be auto-registered by JDBC auto-increment information.\r
-#\r
-#torque.identityDefinitionMap = map:{ \\r
-# AUTHOR = AUTHOR_ID \\r
-# ; BOOK = BOOK_ID \\r
-# ; COLLECTION = COLLECTION_ID \\r
-# }\r
-\r
-# ----------------/\r
-\r
-# /--------------------------------------------------------------------------\r
-# [Optimistic Lock]\r
-# updateDateFieldName: (Default null)\r
-# The field name of update-date. \r
-# For example, if this property is 'UPDATE_DATE',\r
-# the annotation is generated as follows:\r
-# public static final String TIMESTAMP_PROPERTY = "updateDate";\r
-#\r
-# updateDateExceptTableList: (Default list:{})\r
-# The tables are out-of-target of 'updateDateFieldName'.\r
-# ex) list:{ prefix:LB_ }\r
-#\r
-# versionNoFieldName: (Default null)\r
-# The field name of version-no. \r
-# For example, if this property id 'VERSION_NO'\r
-# the annotation is generated as follows:\r
-# public static final String VERSION_NO_PROPERTY = "versionNo";\r
-#\r
-torque.updateDateFieldName = U_TIMESTAMP\r
-torque.updateDateExceptTableList = list:{ prefix:LB_ }\r
-#torque.versionNoFieldName = null\r
-# ----------------/\r
-\r
-# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/\r
-# Making Option\r
-# _/_/_/_/\r
-# /---------------------------------------------------------------------------\r
-# [Making Option]\r
-# isMakeDeprecated: (Default 'false')\r
-# [true]\r
-# Make deprecated method and class and so on...\r
-# *You shuold set this property FALSE!\r
-#\r
-# isMakeRecentlyDeprecated: (Default 'true')\r
-# [true]\r
-# Make RECENTLY deprecated method and class and so on...\r
-# *You shuold set this property FALSE!\r
-#\r
-# isMakeConditionQueryEqualEmptyString: (Default 'false')\r
-# [true]\r
-# Make equal empty-string method of condition-query.\r
-#\r
-# isMakeBehaviorCopyInsert: (Default 'false')\r
-# [true]\r
-# Make copy insert method of behavior.\r
-#\r
-# isMakeBehaviorLoopUpdate: (Default 'false')\r
-# [true]\r
-# Make loop update method of behavior.\r
-#\r
-# isMakeTraceablePreparedStatement: (Default 'false')\r
-# [true]\r
-# Make traceable prepared statement.\r
-#\r
-torque.isMakeDeprecated = true\r
-torque.isMakeRecentlyDeprecated = true\r
-torque.isMakeConditionQueryEqualEmptyString = true\r
-\r
-# @JavaOnly\r
-torque.isMakeBehaviorCopyInsert = true\r
-torque.isMakeBehaviorLoopUpdate = true\r
-torque.isMakeTraceablePreparedStatement = true\r
-\r
-#@Deprecated\r
-#torque.isMakeConditionQueryNumericArgumentLong = false\r
-#torque.isMakeBehaviorForUpdate = true\r
-# ----------------/\r
-\r
-# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/\r
-# Little Adjustment\r
-# _/_/_/_/_/_/\r
-# /---------------------------------------------------------------------------\r
-# [Non PrimaryKey Writable] (Default 'false')\r
-# [true]\r
-# Generate writable method at Non PrimaryKey Table.\r
-#\r
-# [false]\r
-# Non.\r
-#\r
-# @JavaOnly\r
-torque.isAvailableNonPrimaryKeyWritable = true\r
-# ----------------/\r
-\r
-# /---------------------------------------------------------------------------\r
-# [Adding Schema To TableSqlName] (Default 'false')\r
-# [true]\r
-# Add schema to table sql-name.\r
-#\r
-# [false]\r
-# Non.\r
-#\r
-# @JavaOnly\r
-torque.isAvailableAddingSchemaToTableSqlName = false\r
-# ----------------/\r
-\r
-\r
-\r
-# ========================================================================================\r
-# for JDBC task\r
-# =============\r
-\r
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
-# [Database Informaition]\r
-# \r
-# * * * * * * * * * * * * * * * * * * * * * * * * *\r
-# You shuold use './dfprop/databaseInfoMap.dfprop'\r
-# Look the file!\r
-# * * * * * * * * * * * * * * * * * * * * * * * * *\r
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
-\r
-\r
-\r
-# ========================================================================================\r
-# for Internal\r
-# ============\r
-# Normally you don't need to change these properties.\r
-\r
-#\r
-# [JDBC to java-native mapping] (NotRequired - Default 'map:{}')\r
-#\r
-# ex) map:{INTEGER=java.lang.Integer;TIMESTAMP=java.util.Date}\r
-# ex) map:{} // If you don't want to change...\r
-#\r
-# Default mapping as follows:\r
-# * ----------------------------------------------------\r
-# * JDBC Type | Java Type | CSharp Type |\r
-# * ----------------------------------------------------\r
-# * CHAR | java.lang.String | String |\r
-# * VARCHAR | java.lang.String | String |\r
-# * LONGVARCHAR | java.lang.String | String |\r
-# * NUMERIC | java.math.BigDecimal | decimal? |\r
-# * DECIMAL | java.math.BigDecimal | decimal? |\r
-# * BIT | java.lang.Boolean | bool? |\r
-# * BOOLEAN | java.lang.Boolean | bool? |\r
-# * TINYINT | java.lang.Integer | int? |\r
-# * SMALLINT | java.lang.Integer | int? |\r
-# * INTEGER | java.lang.Integer | int? |\r
-# * BIGINT | java.lang.Long | long? |\r
-# * REAL | java.math.BigDecimal | decimal? |\r
-# * FLOAT | java.math.BigDecimal | decimal? |\r
-# * DOUBLE | java.math.BigDecimal | decimal? |\r
-# * BINARY | byte[] | byte[] |\r
-# * VARBINARY | byte[] | byte[] |\r
-# * LONGVARBINARY | byte[] | byte[] |\r
-# * DATE | java.util.Date | DateTime? |\r
-# * TIME | java.sql.Time | DateTime? |\r
-# * TIMESTAMP | java.sql.Timestamp | DateTime? |\r
-# * ----------------------------------------------------\r
-# torque.jdbcToJavaNativeMap = map:{NUMERIC=$$AutoMapping$$;DECIMAL=$$AutoMapping$$}\r
-\r
-# [The list of java-native that treated as String] (NotRequired - Default 'list:{}')\r
-# *This property overrides all-default-value.\r
-#\r
-# Default list as follows: (When you set this empty)\r
-# Java{String} / CSharp{String}\r
-#\r
-#torque.javaNativeStringList = list:{}\r
-\r
-# [The list of java-native that treated as Boolean] (NotRequired - Default 'list:{}')\r
-# *This property overrides all-default-value.\r
-#\r
-# Default list as follows: (When you set this empty)\r
-# Java{Boolean} / CSharp{Nullables.NullableBoolean}\r
-#\r
-#torque.javaNativeBooleanList = list:{}\r
-\r
-# [The list of java-native that treated as Number] (NotRequired - Default 'list:{}')\r
-# *This property overrides all-default-value.\r
-#\r
-# Default list as follows: (When you set this empty)\r
-# Java{Byte, Short, Integer, Long, Float, Double, BigDecimal, BigInteger} / CSharp{Nullables.NullableDecimal}\r
-#\r
-#torque.javaNativeNumberList = list:{}\r
-\r
-# [The list of java-native that treated as Date] (NotRequired - Default 'list:{}')\r
-# *This property overrides all-default-value.\r
-#\r
-# Default list as follows: (When you set this empty)\r
-# Java{Date, Time, Timestamp} / CSharp{Nullables.NullableDateTime}\r
-#\r
-#torque.javaNativeDateList = list:{}\r
-\r
-# [The list of java-native that treated as Binary] (NotRequired - Default 'list:{}')\r
-# *This property overrides all-default-value.\r
-#\r
-# Default list as follows: (When you set this empty)\r
-# byte[]\r
-#\r
-#torque.javaNativeBinaryList = list:{}\r
-\r
-\r
-# /---------------------------------------------------------------------------\r
-# [ToLowerInGeneratorUnderscoreMethod] (NotRequired - Default 'true')\r
-# [true]\r
-#\r
-# [false]\r
-#\r
-#torque.isAvailableToLowerInGeneratorUnderscoreMethod = true\r
-# ----------------/\r
+++ /dev/null
-# /---------------------------------------------------------------------------\r
-# [Additional ForeignKey]\r
-# additionalForeignKeyMap: (NotRequired - Default 'map:{}')\r
-#\r
-# If foreign key does not exist in your database,\r
-# you can set up here as virtual foreign key for DBFlute.\r
-# \r
-# ex) map:{\r
-# ; FK_BOOK_AUTHOR = map:{\r
-# ; localTableName = BOOK ; foreignTableName = AUTHOR\r
-# ; localColumnName = AUTHOR_ID ; foreignColumnName = AUTHOR_ID\r
-# }\r
-# ; FK_BOOK_PUBLISHER = map:{\r
-# ; localTableName = BOOK ; foreignTableName = PUBLISHER\r
-# ; localColumnName = PUBLISHER_ID ; foreignColumnName = PUBLISHER_ID\r
-# }\r
-# }\r
-#\r
-map:{\r
- ; FK_TEST_LENDING_COLLECTION = map:{\r
- ; localTableName = LENDING_COLLECTION ; foreignTableName = LIBRARY_USER\r
- ; localColumnName = LIBRARY_ID/LB_USER_ID ; foreignColumnName = LIBRARY_ID/LB_USER_ID\r
- }\r
- ; FK_DEADLINK_TEST = map:{\r
- ; localTableName = BOOK ; foreignTableName = COLLECTION_STATUS_LOOKUP\r
- ; localColumnName = GENRE_CODE ; foreignColumnName = COLLECTION_STATUS_CODE\r
- }\r
-}\r
-# ----------------/\r
-\r
-\r
+++ /dev/null
-/*\r
- * Copyright(c) DBFlute TestCo.,TestLtd. All Rights Reserved.\r
- */
\ No newline at end of file
+++ /dev/null
-# /---------------------------------------------------------------------------\r
-# [Classification]\r
-# classificationDefinitionMap: (NotRequired - Default 'map:{}')\r
-#\r
-# ex) map:{\r
-# ; YesNo = list:{\r
-# ; map:{code=y;name=Yes;alias=はい}\r
-# ; map:{code=n;name=No;alias=いいえ}\r
-# }\r
-# ; CollectionStatus = list:{\r
-# ; map:{code=NOR; comment=通常状態を示す}\r
-# ; map:{code=WAT; comment=待ち状態を示す}\r
-# ; map:{code=OUT; comment=貸し出し中を示す}\r
-# }\r
-# }\r
-#\r
-# ex) From Database Example\r
-# map:{\r
-# CollectionStatus = list:{\r
-# map:{table=COLLECTION_STATUS_LOOKUP;code=COLLECTION_STATUS_CODE;name=COLLECTION_STATUS_NAME}\r
-# }\r
-# }\r
-#\r
-map:{\r
- ; YesNo = list:{\r
- ; map:{code=y;name=Yes;alias=はい}\r
- ; map:{code=n;name=No;alias=いいえ}\r
- }\r
- ; CollectionStatus = list:{\r
- ; map:{code=NOR; comment=通常状態を示す}\r
- ; map:{code=WAT; comment=待ち状態を示す}\r
- ; map:{code=OUT; comment=貸し出し中を示す}\r
- }\r
-}\r
-# ----------------/\r
-\r
-\r
+++ /dev/null
-# /---------------------------------------------------------------------------\r
-# [Classification]\r
-# classificationDefinitionMap: (NotRequired - Default 'map:{}')\r
-#\r
-# ex) map:{\r
-# ; $$ALL$$ = map:{suffix:_YN=YesNo}\r
-# ; COLLECTION_STATUS = map:{COLLECTION_STATUS_CODE=CollectionStatus}\r
-# ; COLLECTION_STATUS_LOOKUP = map:{COLLECTION_STATUS_CODE=CollectionStatus}\r
-# }\r
-#\r
-# ex) From Database Example\r
-# map:{\r
-# CollectionStatus = list:{\r
-# map:{table=COLLECTION_STATUS_LOOKUP;code=COLLECTION_STATUS_CODE;name=COLLECTION_STATUS_NAME}\r
-# }\r
-# }\r
-#\r
-map:{\r
- ; $$ALL$$ = map:{suffix:_YN=YesNo}\r
- ; COLLECTION_STATUS = map:{COLLECTION_STATUS_CODE=CollectionStatus}\r
- ; COLLECTION_STATUS_LOOKUP = map:{COLLECTION_STATUS_CODE=CollectionStatus}\r
- }\r
-# ----------------/\r
-\r
+++ /dev/null
-map:{\r
- ; driver = {Please write your setting! at './dfprop/databaseInfoMap.dfprop'}\r
- ; url = ...\r
- ; schema = ...\r
- ; user = ...\r
- ; password = ...\r
-}
\ No newline at end of file
+++ /dev/null
-@echo off\r
-\r
-%~d0\r
-cd %~p0\r
-call _project.bat\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Specify the file path to be used as build-properties.\r
-rem nnnnnnnnnn/\r
-set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Execute {Document}.\r
-rem nnnnnnnnnn/\r
-call %DBFLUTE_HOME%\etc\cmd\_df-doc.cmd %MY_PROPERTIES_PATH%\r
-\r
-pause\r
-\r
-\r
+++ /dev/null
-#!/bin/sh
-
-cd `dirname $0`
-. _project.sh
-
-echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
-echo "Specify the file path to be used as build-properties."
-echo "nnnnnnnnnn/"
-export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties
-
-echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
-echo "Execute {Document}."
-echo "nnnnnnnnnn/"
-sh $DBFLUTE_HOME/etc/cmd/_df-doc.sh $MY_PROPERTIES_PATH
-
+++ /dev/null
-@echo off\r
-\r
-%~d0\r
-cd %~p0\r
-call _project.bat\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Specify the file path to be used as build-properties.\r
-rem nnnnnnnnnn/\r
-set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Execute {Generate}.\r
-rem nnnnnnnnnn/\r
-call %DBFLUTE_HOME%\etc\cmd\_df-generate.cmd %MY_PROPERTIES_PATH%\r
-\r
-pause\r
-\r
-\r
+++ /dev/null
-#!/bin/sh
-
-cd `dirname $0`
-. _project.sh
-
-echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
-echo "Specify the file path to be used as build-properties."
-echo "nnnnnnnnnn/"
-export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties
-
-echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
-echo "Execute {Generate}."
-echo "nnnnnnnnnn/"
-sh $DBFLUTE_HOME/etc/cmd/_df-generate.sh $MY_PROPERTIES_PATH
-
-
-
+++ /dev/null
-@echo off\r
-\r
-%~d0\r
-cd %~p0\r
-call _project.bat\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Specify the file path to be used as build-properties.\r
-rem nnnnnnnnnn/\r
-set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Execute {JDBC and Document}.\r
-rem nnnnnnnnnn/\r
-call %DBFLUTE_HOME%\etc\cmd\_df-jdbc.cmd %MY_PROPERTIES_PATH%\r
-\r
-pause\r
-\r
-\r
+++ /dev/null
-#!/bin/sh
-
-cd `dirname $0`
-. _project.sh
-
-echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
-echo "Specify the file path to be used as build-properties."
-echo "nnnnnnnnnn/"
-export MY_PROPERTIES_PATH="build-${MY_PROJECT_NAME}.properties"
-
-echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
-echo "Execute {JDBC and Document}."
-echo "nnnnnnnnnn/"
-sh ${DBFLUTE_HOME}/etc/cmd/_df-jdbc.sh ${MY_PROPERTIES_PATH}
-
-
+++ /dev/null
-@echo off\r
-\r
-%~d0\r
-cd %~p0\r
-call _project.bat\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Specify the file path to be used as build-properties.\r
-rem nnnnnnnnnn/\r
-set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Execute {Outsite-Sql-Test}.\r
-rem nnnnnnnnnn/\r
-call %DBFLUTE_HOME%\etc\cmd\_df-outside-sql-test.cmd %MY_PROPERTIES_PATH%\r
-\r
-pause\r
-\r
-\r
+++ /dev/null
-#!/bin/sh
-
-cd `dirname $0`
-. _project.sh
-
-echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
-echo "Specify the file path to be used as build-properties."
-echo "nnnnnnnnnn/"
-export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties
-
-echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
-echo "Execute {Outsite-Sql-Test}."
-echo "nnnnnnnnnn/"
-sh $DBFLUTE_HOME/etc/cmd/_df-outside-sql-test.sh $MY_PROPERTIES_PATH
-
-
+++ /dev/null
-ALTER TABLE BLACK_ACTION DROP CONSTRAINT FK_BLACK_ACTION_BLACK_LIST\r
-;\r
-\r
-ALTER TABLE BLACK_ACTION DROP CONSTRAINT FK_BLACK_ACTION_LOOKUP\r
-;\r
-\r
-ALTER TABLE BLACK_LIST DROP CONSTRAINT FK_BLACK_LIST_LB_USER\r
-;\r
-\r
-ALTER TABLE BOOK DROP CONSTRAINT FK_BOOK_AUTHOR\r
-;\r
-\r
-ALTER TABLE BOOK DROP CONSTRAINT FK_BOOK_PUBLISHER\r
-;\r
-\r
-ALTER TABLE BOOK DROP CONSTRAINT FK_BOOK_GENRE\r
-;\r
-\r
-ALTER TABLE COLLECTION DROP CONSTRAINT FK_COLLECTION_BOOK\r
-;\r
-\r
-ALTER TABLE COLLECTION DROP CONSTRAINT FK_COLLECTION_LIBRARY\r
-;\r
-\r
-ALTER TABLE COLLECTION_STATUS DROP CONSTRAINT FK_COLLECTION_STATUS_COLLECTION\r
-;\r
-\r
-ALTER TABLE COLLECTION_STATUS DROP CONSTRAINT FK_COLLECTION_STATUS_LOOKUP\r
-;\r
-\r
-ALTER TABLE GENRE DROP CONSTRAINT FK_GENRE_GENRE\r
-;\r
-\r
-ALTER TABLE LB_USER DROP CONSTRAINT FK_LB_USER_LIBRARY\r
-;\r
-\r
-ALTER TABLE LENDING DROP CONSTRAINT FK_LENDING_LIBRARY\r
-;\r
-\r
-ALTER TABLE LENDING DROP CONSTRAINT FK_LENDING_LB_USER\r
-;\r
-\r
-ALTER TABLE LENDING_COLLECTION DROP CONSTRAINT FK_LENDING_COLLECTION_LENDING\r
-;\r
-\r
-ALTER TABLE LENDING_COLLECTION DROP CONSTRAINT FK_LENDING_COLLECTION_COL\r
-;\r
-\r
-ALTER TABLE NEXT_LIBRARY DROP CONSTRAINT FK_NEXT_LIBRARY_LIBRARY_ID\r
-;\r
-\r
-ALTER TABLE NEXT_LIBRARY DROP CONSTRAINT FK_NEXT_LIBRARY_NEXT_LIBRARY_ID\r
-;\r
-\r
-\r
-DROP TABLE AUTHOR\r
-;\r
-DROP TABLE BLACK_ACTION\r
-;\r
-DROP TABLE BLACK_ACTION_LOOKUP\r
-;\r
-DROP TABLE BLACK_LIST\r
-;\r
-DROP TABLE BOOK\r
-;\r
-DROP TABLE COLLECTION\r
-;\r
-DROP TABLE COLLECTION_STATUS\r
-;\r
-DROP TABLE COLLECTION_STATUS_LOOKUP\r
-;\r
-DROP TABLE GARBAGE\r
-;\r
-DROP TABLE GENRE\r
-;\r
-DROP TABLE LB_USER\r
-;\r
-DROP TABLE LENDING\r
-;\r
-DROP TABLE LENDING_COLLECTION\r
-;\r
-DROP TABLE LIBRARY\r
-;\r
-DROP TABLE NEXT_LIBRARY\r
-;\r
-DROP TABLE PUBLISHER\r
-;\r
-\r
-CREATE TABLE AUTHOR ( \r
- AUTHOR_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1),\r
- AUTHOR_NAME varchar(80) NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE BLACK_ACTION ( \r
- BLACK_ACTION_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1),\r
- BLACK_LIST_ID integer NOT NULL,\r
- BLACK_ACTION_CODE char(3) NOT NULL,\r
- BLACK_LEVEL smallint NOT NULL,\r
- EVIDENCE_PHOTOGRAPH blob,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE BLACK_ACTION_LOOKUP ( \r
- BLACK_ACTION_CODE char(3) NOT NULL,\r
- BLACK_ACTION_NAME varchar(80) NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE BLACK_LIST ( \r
- BLACK_LIST_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1),\r
- LB_USER_ID integer NOT NULL,\r
- BLACK_RANK char(3) NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE BOOK ( \r
- BOOK_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1),\r
- ISBN_NO varchar(20) NOT NULL,\r
- BOOK_NAME varchar(80) NOT NULL,\r
- AUTHOR_ID integer NOT NULL,\r
- PUBLISHER_ID integer NOT NULL,\r
- MAX_LENDING_DATE_COUNT smallint NOT NULL,\r
- GENRE_CODE varchar(12),\r
- OPENING_PART clob,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE COLLECTION ( \r
- COLLECTION_ID integer NOT NULL,\r
- LIBRARY_ID smallint NOT NULL,\r
- BOOK_ID integer NOT NULL,\r
- ARRIVAL_DATE timestamp NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE COLLECTION_STATUS ( \r
- COLLECTION_ID integer NOT NULL,\r
- COLLECTION_STATUS_CODE char(3) NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE COLLECTION_STATUS_LOOKUP ( \r
- COLLECTION_STATUS_CODE char(3) NOT NULL,\r
- COLLECTION_STATUS_NAME varchar(80) NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE GARBAGE ( \r
- GARBAGE_MEMO varchar(50),\r
- GARBAGE_TIME timestamp\r
-)\r
-;\r
-\r
-CREATE TABLE GENRE ( \r
- GENRE_CODE varchar(12) NOT NULL,\r
- GENRE_NAME varchar(80) NOT NULL,\r
- PARENT_GENRE_CODE varchar(12),\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE LB_USER ( \r
- LB_USER_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1),\r
- LB_USER_NAME varchar(80) NOT NULL,\r
- LIBRARY_ID smallint NOT NULL,\r
- USER_PASSWORD varchar(50) NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE LENDING ( \r
- LENDING_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1),\r
- LIBRARY_ID smallint NOT NULL,\r
- LB_USER_ID integer NOT NULL,\r
- LENDING_DATE timestamp NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE LENDING_COLLECTION ( \r
- LENDING_ID integer NOT NULL,\r
- COLLECTION_ID integer NOT NULL,\r
- RETURN_LIMIT_DATE timestamp NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE LIBRARY ( \r
- LIBRARY_ID smallint NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1),\r
- LIBRARY_NAME varchar(80) NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE NEXT_LIBRARY ( \r
- LIBRARY_ID smallint NOT NULL,\r
- NEXT_LIBRARY_ID smallint NOT NULL,\r
- DISTANCE_KM integer NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE PUBLISHER ( \r
- PUBLISHER_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1),\r
- PUBLISHER_NAME varchar(80) NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-\r
-ALTER TABLE AUTHOR ADD CONSTRAINT PK_AUTHOR \r
- PRIMARY KEY (AUTHOR_ID)\r
-;\r
-\r
-ALTER TABLE BLACK_ACTION ADD CONSTRAINT PK_BLACK_ACTION \r
- PRIMARY KEY (BLACK_ACTION_ID)\r
-;\r
-\r
-ALTER TABLE BLACK_ACTION_LOOKUP ADD CONSTRAINT PK_BLACK_ACTION_LOOKUP \r
- PRIMARY KEY (BLACK_ACTION_CODE)\r
-;\r
-\r
-ALTER TABLE BLACK_LIST ADD CONSTRAINT PK_BLACK_LIST \r
- PRIMARY KEY (BLACK_LIST_ID)\r
-;\r
-\r
-ALTER TABLE BOOK ADD CONSTRAINT PK_BOOK \r
- PRIMARY KEY (BOOK_ID)\r
-;\r
-\r
-ALTER TABLE COLLECTION ADD CONSTRAINT PK_COLLECTION \r
- PRIMARY KEY (COLLECTION_ID)\r
-;\r
-\r
-ALTER TABLE COLLECTION_STATUS ADD CONSTRAINT PK_COLLECTION_STATUS \r
- PRIMARY KEY (COLLECTION_ID)\r
-;\r
-\r
-ALTER TABLE COLLECTION_STATUS_LOOKUP ADD CONSTRAINT PK_COLLECTION_STATUS_LOOKUP \r
- PRIMARY KEY (COLLECTION_STATUS_CODE)\r
-;\r
-\r
-ALTER TABLE GENRE ADD CONSTRAINT PK_GENRE \r
- PRIMARY KEY (GENRE_CODE)\r
-;\r
-\r
-ALTER TABLE LB_USER ADD CONSTRAINT PK_LB_USER \r
- PRIMARY KEY (LB_USER_ID)\r
-;\r
-\r
-ALTER TABLE LENDING ADD CONSTRAINT PK_LENDING \r
- PRIMARY KEY (LENDING_ID)\r
-;\r
-\r
-ALTER TABLE LENDING_COLLECTION ADD CONSTRAINT PK_LENDING_COLLECTION \r
- PRIMARY KEY (LENDING_ID, COLLECTION_ID)\r
-;\r
-\r
-ALTER TABLE LIBRARY ADD CONSTRAINT PK_LIBRARY \r
- PRIMARY KEY (LIBRARY_ID)\r
-;\r
-\r
-ALTER TABLE NEXT_LIBRARY ADD CONSTRAINT PK_NEXT_LIBRARY \r
- PRIMARY KEY (LIBRARY_ID, NEXT_LIBRARY_ID)\r
-;\r
-\r
-ALTER TABLE PUBLISHER ADD CONSTRAINT PK_PUBLISHER \r
- PRIMARY KEY (PUBLISHER_ID)\r
-;\r
-\r
-\r
-ALTER TABLE BOOK\r
- ADD CONSTRAINT UQ_BOOK_ISBN_NO UNIQUE (ISBN_NO)\r
-;\r
-\r
-ALTER TABLE COLLECTION\r
- ADD CONSTRAINT UQ_COLLECTION_Primary UNIQUE (LIBRARY_ID, BOOK_ID)\r
-;\r
-\r
-ALTER TABLE LENDING\r
- ADD CONSTRAINT UQ_LENDING_Primary UNIQUE (LIBRARY_ID, LB_USER_ID)\r
-;\r
-\r
-ALTER TABLE BLACK_LIST\r
- ADD CONSTRAINT UQ_BLACK_LIST_LB_USER_ID UNIQUE (LB_USER_ID)\r
-;\r
-\r
-ALTER TABLE LIBRARY\r
- ADD CONSTRAINT UQ_LIBRARY_LIBRARY_NAME UNIQUE (LIBRARY_NAME)\r
-;\r
-\r
-\r
-\r
-ALTER TABLE BLACK_ACTION ADD CONSTRAINT FK_BLACK_ACTION_BLACK_LIST \r
- FOREIGN KEY (BLACK_LIST_ID) REFERENCES BLACK_LIST (BLACK_LIST_ID)\r
-;\r
-\r
-ALTER TABLE BLACK_ACTION ADD CONSTRAINT FK_BLACK_ACTION_LOOKUP \r
- FOREIGN KEY (BLACK_ACTION_CODE) REFERENCES BLACK_ACTION_LOOKUP (BLACK_ACTION_CODE)\r
-;\r
-\r
-ALTER TABLE BLACK_LIST ADD CONSTRAINT FK_BLACK_LIST_LB_USER \r
- FOREIGN KEY (LB_USER_ID) REFERENCES LB_USER (LB_USER_ID)\r
-;\r
-\r
-ALTER TABLE BOOK ADD CONSTRAINT FK_BOOK_AUTHOR \r
- FOREIGN KEY (AUTHOR_ID) REFERENCES AUTHOR (AUTHOR_ID)\r
-;\r
-\r
-ALTER TABLE BOOK ADD CONSTRAINT FK_BOOK_PUBLISHER \r
- FOREIGN KEY (PUBLISHER_ID) REFERENCES PUBLISHER (PUBLISHER_ID)\r
-;\r
-\r
-ALTER TABLE BOOK ADD CONSTRAINT FK_BOOK_GENRE \r
- FOREIGN KEY (GENRE_CODE) REFERENCES GENRE (GENRE_CODE)\r
-;\r
-\r
-ALTER TABLE COLLECTION ADD CONSTRAINT FK_COLLECTION_BOOK \r
- FOREIGN KEY (BOOK_ID) REFERENCES BOOK (BOOK_ID)\r
-;\r
-\r
-ALTER TABLE COLLECTION ADD CONSTRAINT FK_COLLECTION_LIBRARY \r
- FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID)\r
-;\r
-\r
-ALTER TABLE COLLECTION_STATUS ADD CONSTRAINT FK_COLLECTION_STATUS_COLLECTION \r
- FOREIGN KEY (COLLECTION_ID) REFERENCES COLLECTION (COLLECTION_ID)\r
-;\r
-\r
-ALTER TABLE COLLECTION_STATUS ADD CONSTRAINT FK_COLLECTION_STATUS_LOOKUP \r
- FOREIGN KEY (COLLECTION_STATUS_CODE) REFERENCES COLLECTION_STATUS_LOOKUP (COLLECTION_STATUS_CODE)\r
-;\r
-\r
-ALTER TABLE GENRE ADD CONSTRAINT FK_GENRE_GENRE \r
- FOREIGN KEY (PARENT_GENRE_CODE) REFERENCES GENRE (GENRE_CODE)\r
-;\r
-\r
-ALTER TABLE LB_USER ADD CONSTRAINT FK_LB_USER_LIBRARY \r
- FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID)\r
-;\r
-\r
-ALTER TABLE LENDING ADD CONSTRAINT FK_LENDING_LIBRARY \r
- FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID)\r
-;\r
-\r
-ALTER TABLE LENDING ADD CONSTRAINT FK_LENDING_LB_USER \r
- FOREIGN KEY (LB_USER_ID) REFERENCES LB_USER (LB_USER_ID)\r
-;\r
-\r
-ALTER TABLE LENDING_COLLECTION ADD CONSTRAINT FK_LENDING_COLLECTION_LENDING \r
- FOREIGN KEY (LENDING_ID) REFERENCES LENDING (LENDING_ID)\r
-;\r
-\r
-ALTER TABLE LENDING_COLLECTION ADD CONSTRAINT FK_LENDING_COLLECTION_COL \r
- FOREIGN KEY (COLLECTION_ID) REFERENCES COLLECTION (COLLECTION_ID)\r
-;\r
-\r
-ALTER TABLE NEXT_LIBRARY ADD CONSTRAINT FK_NEXT_LIBRARY_LIBRARY_ID \r
- FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID)\r
-;\r
-\r
-ALTER TABLE NEXT_LIBRARY ADD CONSTRAINT FK_NEXT_LIBRARY_NEXT_LIBRARY_ID \r
- FOREIGN KEY (NEXT_LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID)\r
-;\r
+++ /dev/null
-@echo off\r
-\r
-%~d0\r
-cd %~p0\r
-call _project.bat\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Specify the file path to be used as build-properties.\r
-rem nnnnnnnnnn/\r
-set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Execute {Replace-Schema}.\r
-rem nnnnnnnnnn/\r
-call %DBFLUTE_HOME%\etc\cmd\_df-replace-schema.cmd %MY_PROPERTIES_PATH%\r
-\r
-pause\r
-\r
-\r
+++ /dev/null
-#!/bin/sh
-
-cd `dirname $0`
-. _project.sh
-
-echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
-echo "Specify the file path to be used as build-properties."
-echo "nnnnnnnnnn/"
-export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties
-
-echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
-echo "Execute {Replace-Schema}."
-echo "nnnnnnnnnn/"
-sh $DBFLUTE_HOME/etc/cmd/_df-replace-schema.sh $MY_PROPERTIES_PATH
-
-
+++ /dev/null
-@echo off\r
-\r
-%~d0\r
-cd %~p0\r
-call _project.bat\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Specify the file path to be used as build-properties.\r
-rem nnnnnnnnnn/\r
-set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Execute {Invoke Sql Directory}.\r
-rem nnnnnnnnnn/\r
-call %DBFLUTE_HOME%\etc\cmd\_df-sql2entity.cmd %MY_PROPERTIES_PATH%\r
-\r
-pause\r
-\r
-\r
+++ /dev/null
-#!/bin/sh
-
-cd `dirname $0`
-. _project.sh
-
-echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
-echo "Specify the file path to be used as build-properties."
-echo "nnnnnnnnnn/"
-export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties
-
-echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
-echo "Execute {Invoke Sql Directory}."
-echo "nnnnnnnnnn/"
-sh $DBFLUTE_HOME/etc/cmd/_df-sql2entity.sh $MY_PROPERTIES_PATH
-
-
+++ /dev/null
-@echo off\r
-\r
-set ANT_OPTS=-Xmx256M\r
-\r
-set MY_PROJECT_NAME=minimumProperties\r
-\r
-rem set DBFLUTE_HOME=..\mydbflute\dbflute-x.x.x\r
+++ /dev/null
-# =======================================================================================\r
-# for All\r
-# =======\r
-\r
-# -------------------------------------------------------------------\r
-# P R O J E C T\r
-# -------------------------------------------------------------------\r
-# @FirstProperty\r
-# @Required\r
-torque.project = minimumProperties\r
-\r
-# -------------------------------------------------------------------\r
-# T A R G E T D A T A B A S E\r
-# -------------------------------------------------------------------\r
-# This is the target database, only considered when generating\r
-# the SQL for your Torque project. Your possible choices are:\r
-#\r
-# axion, cloudscape, db2, db2400, hypersonic, interbase, mssql,\r
-# mysql, oracle, postgresql, sapdb, sybase, firebird, derby, h2\r
-# -------------------------------------------------------------------\r
-# @FirstProperty\r
-# @Required\r
-torque.database = mysql\r
-\r
-# -------------------------------------------------------------------\r
-# T A R G E T L A N G U A G E\r
-# -------------------------------------------------------------------\r
-# (Default 'java')\r
-# The target language. Your possible choices are:\r
-# java, csharp\r
-# -------------------------------------------------------------------\r
-# @FirstProperty\r
-torque.targetLanguage = csharp\r
-\r
-\r
-\r
-# =======================================================================================\r
-# for OM task\r
-# ===========\r
-\r
-# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/\r
-# Basic\r
-# _/_/_/_/\r
-# /---------------------------------------------------------------------------\r
-# [Output Directory]\r
-# java.dir: (Default Java:'../src/main/java' CSharp:'../source')\r
-# The base output directory.\r
-#\r
-# If your project style is the same as example below,\r
-# you don't need to set up this property! (The default value is fit for you)\r
-#\r
-# *Java Project Style\r
-# {app-project}\r
-# |\r
-# |-dbflute_[project]\r
-# | |-build-[project].properties\r
-# | |-...\r
-# |\r
-# |-src/main/java // *Here!\r
-# |-src/main/resources\r
-# |-...\r
-#\r
-# *CSharp Project Style\r
-# [app-solution]/dbflute_[project]/build-[project].properties\r
-# [app-solution]/mydbflute/dbflute-0.6.3\r
-# [app-solution]/source/[app-solution].sln\r
-# [app-solution]/source/[app-project(top-namespace)]/[part-namespace]/AllCommon\r
-# [app-solution]/source/[app-project(top-namespace)]/[part-namespace]/BsBhv\r
-# [app-solution]/source/[app-project(top-namespace)]/[part-namespace]/...\r
-# [app-solution]/source/[app-project(top-namespace)]/Resources/DBFlute.dicon\r
-# [app-solution]/source/[app-project(top-namespace)]/Resources/Ado.dicon\r
-#\r
-# @FirstProperty\r
-#torque.java.dir = ../src/main/java\r
-# ----------------/\r
-\r
-# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/\r
-# Package\r
-# _/_/\r
-# /---------------------------------------------------------------------------\r
-# [EntityDao Package]\r
-# packageBase: (Default '')\r
-# The base directory of package.\r
-#\r
-# *If this property is specified and other package properties is not specified, \r
-# Then The packages of generated class are as follows:\r
-#\r
-# ex) packageBase = org.seasar.dbflute.example.dbflute.ldb\r
-# baseCommonPackage --> org.seasar.dbflute.example.dbflute.ldb.allcommon\r
-# baseBehaviorPackage --> org.seasar.dbflute.example.dbflute.ldb.bsbhv\r
-# baseDaoPackage --> org.seasar.dbflute.example.dbflute.ldb.bsdao\r
-# baseEntityPackage --> org.seasar.dbflute.example.dbflute.ldb.bsentity\r
-# conditionBeanPackage --> org.seasar.dbflute.example.dbflute.ldb.cbean\r
-# extendedBehaviorPackage --> org.seasar.dbflute.example.dbflute.ldb.exbhv\r
-# extendedDaoPackage --> org.seasar.dbflute.example.dbflute.ldb.exdao\r
-# extendedEntityPackage --> org.seasar.dbflute.example.dbflute.ldb.exentity\r
-#\r
-# *If this property is not specified, you should specify the other package properties.\r
-#\r
-#\r
-# baseCommonPackage: (Default Java:'allcommon' C#:'allcommon')\r
-# baseBehaviorPackage: (Default Java:'bsbhv' C#:'bsbhv')\r
-# baseDaoPackage: (Default Java:'bsdao' C#:'bsdao')\r
-# baseEntityPackage: (Default Java:'bsentity' C#:'bsentity')\r
-# conditionBeanPackage: (Default Java:'cbean' C#:'cbean')\r
-# extendedBehaviorPackage: (Default Java:'exbhv' C#:'exbhv')\r
-# extendedDaoPackage: (Default Java:'exdao' C#:'exdao')\r
-# extendedEntityPackage: (Default Java:'exentity' C#:'exentity')\r
-#\r
-# @FirstProperty\r
-torque.packageBase = DfExample.DBFlute\r
-# ----------------/\r
-\r
-# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/\r
-# S2Dao Adjustment\r
-# _/_/_/_/_/_/\r
-# /---------------------------------------------------------------------------\r
-# [S2Dao Version]\r
-# s2daoVersion: (Default [The latest version])\r
-#\r
-# @JavaOnly\r
-#torque.s2daoVersion = 1.0.47\r
-# ----------------/\r
-\r
-\r
-\r
-# =======================================================================================\r
-# for JDBC task\r
-# =============\r
-\r
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
-# [Database Information]\r
-# \r
-# * * * * * * * * * * * * * * * * * * * * * * * * *\r
-# You should use './dfprop/databaseInfoMap.dfprop'\r
-# Look the file!\r
-# * * * * * * * * * * * * * * * * * * * * * * * * *\r
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
-\r
-\r
-\r
-# =========================================================================================\r
-# for Internal\r
-# ============\r
-# Normally you don't need to change these properties.\r
-\r
-#\r
-# [JDBC to java-native mapping] (NotRequired - Default 'map:{}')\r
-#\r
-# ex) map:{INTEGER=java.lang.Integer;TIMESTAMP=java.util.Date}\r
-# ex) map:{} // If you don't want to change...\r
-#\r
-# Default mapping as follows:\r
-# * ----------------------------------------------------\r
-# * JDBC Type | Java Type | CSharp Type |\r
-# * ----------------------------------------------------\r
-# * CHAR | java.lang.String | String |\r
-# * VARCHAR | java.lang.String | String |\r
-# * LONGVARCHAR | java.lang.String | String |\r
-# * NUMERIC | java.math.BigDecimal | decimal? |\r
-# * DECIMAL | java.math.BigDecimal | decimal? |\r
-# * BIT | java.lang.Boolean | bool? |\r
-# * BOOLEAN | java.lang.Boolean | bool? |\r
-# * TINYINT | java.lang.Integer | int? |\r
-# * SMALLINT | java.lang.Integer | int? |\r
-# * INTEGER | java.lang.Integer | int? |\r
-# * BIGINT | java.lang.Long | long? |\r
-# * REAL | java.math.BigDecimal | decimal? |\r
-# * FLOAT | java.math.BigDecimal | decimal? |\r
-# * DOUBLE | java.math.BigDecimal | decimal? |\r
-# * BINARY | byte[] | byte[] |\r
-# * VARBINARY | byte[] | byte[] |\r
-# * LONGVARBINARY | byte[] | byte[] |\r
-# * DATE | java.util.Date | DateTime? |\r
-# * TIME | java.sql.Time | DateTime? |\r
-# * TIMESTAMP | java.sql.Timestamp | DateTime? |\r
-# * ----------------------------------------------------\r
-# torque.jdbcToJavaNativeMap = map:{NUMERIC=$$AutoMapping$$;DECIMAL=$$AutoMapping$$}
\ No newline at end of file
+++ /dev/null
-# /---------------------------------------------------------------------------\r
-# [Database Information]\r
-# databaseInfoMap: \r
-# driver -- The class name of JDBC-Driver.\r
-# url -- The url for connecting database.\r
-# schema -- The schema name.\r
-# user -- The database user name.\r
-# password -- The database password.\r
-#\r
-# @FirstProperty\r
-map:{\r
- ; driver = {Please write your setting! at './dfprop/databaseInfoMap.dfprop'}\r
- ; url = ...\r
- ; schema = ...\r
- ; user = ...\r
- ; password = ...\r
-}\r
-# ----------------/
\ No newline at end of file
+++ /dev/null
-@echo off\r
-\r
-%~d0\r
-cd %~p0\r
-call _project.bat\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Specify the file path to be used as build-properties.\r
-rem nnnnnnnnnn/\r
-set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Execute {Document}.\r
-rem nnnnnnnnnn/\r
-call %DBFLUTE_HOME%\etc\cmd\_df-doc.cmd %MY_PROPERTIES_PATH%\r
-\r
-pause\r
-\r
-\r
+++ /dev/null
-@echo off\r
-\r
-%~d0\r
-cd %~p0\r
-call _project.bat\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Specify the file path to be used as build-properties.\r
-rem nnnnnnnnnn/\r
-set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Execute {Generate}.\r
-rem nnnnnnnnnn/\r
-call %DBFLUTE_HOME%\etc\cmd\_df-generate.cmd %MY_PROPERTIES_PATH%\r
-\r
-pause\r
-\r
-\r
+++ /dev/null
-@echo off\r
-\r
-%~d0\r
-cd %~p0\r
-call _project.bat\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Specify the file path to be used as build-properties.\r
-rem nnnnnnnnnn/\r
-set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Execute {JDBC and Document}.\r
-rem nnnnnnnnnn/\r
-call %DBFLUTE_HOME%\etc\cmd\_df-jdbc.cmd %MY_PROPERTIES_PATH%\r
-\r
-pause\r
-\r
-\r
+++ /dev/null
-Directory for LogFile\r
+++ /dev/null
-Directory for Document\r
+++ /dev/null
-@echo off\r
-\r
-%~d0\r
-cd %~p0\r
-call _project.bat\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Specify the file path to be used as build-properties.\r
-rem nnnnnnnnnn/\r
-set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Execute {Outsite-Sql-Test}.\r
-rem nnnnnnnnnn/\r
-call %DBFLUTE_HOME%\etc\cmd\_df-outside-sql-test.cmd %MY_PROPERTIES_PATH%\r
-\r
-pause\r
-\r
-\r
+++ /dev/null
-ALTER TABLE BLACK_ACTION DROP CONSTRAINT FK_BLACK_ACTION_BLACK_LIST\r
-;\r
-\r
-ALTER TABLE BLACK_ACTION DROP CONSTRAINT FK_BLACK_ACTION_LOOKUP\r
-;\r
-\r
-ALTER TABLE BLACK_LIST DROP CONSTRAINT FK_BLACK_LIST_LB_USER\r
-;\r
-\r
-ALTER TABLE BOOK DROP CONSTRAINT FK_BOOK_AUTHOR\r
-;\r
-\r
-ALTER TABLE BOOK DROP CONSTRAINT FK_BOOK_PUBLISHER\r
-;\r
-\r
-ALTER TABLE BOOK DROP CONSTRAINT FK_BOOK_GENRE\r
-;\r
-\r
-ALTER TABLE COLLECTION DROP CONSTRAINT FK_COLLECTION_BOOK\r
-;\r
-\r
-ALTER TABLE COLLECTION DROP CONSTRAINT FK_COLLECTION_LIBRARY\r
-;\r
-\r
-ALTER TABLE COLLECTION_STATUS DROP CONSTRAINT FK_COLLECTION_STATUS_COLLECTION\r
-;\r
-\r
-ALTER TABLE COLLECTION_STATUS DROP CONSTRAINT FK_COLLECTION_STATUS_LOOKUP\r
-;\r
-\r
-ALTER TABLE GENRE DROP CONSTRAINT FK_GENRE_GENRE\r
-;\r
-\r
-ALTER TABLE LB_USER DROP CONSTRAINT FK_LB_USER_LIBRARY\r
-;\r
-\r
-ALTER TABLE LENDING DROP CONSTRAINT FK_LENDING_LIBRARY\r
-;\r
-\r
-ALTER TABLE LENDING DROP CONSTRAINT FK_LENDING_LB_USER\r
-;\r
-\r
-ALTER TABLE LENDING_COLLECTION DROP CONSTRAINT FK_LENDING_COLLECTION_LENDING\r
-;\r
-\r
-ALTER TABLE LENDING_COLLECTION DROP CONSTRAINT FK_LENDING_COLLECTION_COL\r
-;\r
-\r
-ALTER TABLE NEXT_LIBRARY DROP CONSTRAINT FK_NEXT_LIBRARY_LIBRARY_ID\r
-;\r
-\r
-ALTER TABLE NEXT_LIBRARY DROP CONSTRAINT FK_NEXT_LIBRARY_NEXT_LIBRARY_ID\r
-;\r
-\r
-\r
-DROP TABLE AUTHOR\r
-;\r
-DROP TABLE BLACK_ACTION\r
-;\r
-DROP TABLE BLACK_ACTION_LOOKUP\r
-;\r
-DROP TABLE BLACK_LIST\r
-;\r
-DROP TABLE BOOK\r
-;\r
-DROP TABLE COLLECTION\r
-;\r
-DROP TABLE COLLECTION_STATUS\r
-;\r
-DROP TABLE COLLECTION_STATUS_LOOKUP\r
-;\r
-DROP TABLE GARBAGE\r
-;\r
-DROP TABLE GENRE\r
-;\r
-DROP TABLE LB_USER\r
-;\r
-DROP TABLE LENDING\r
-;\r
-DROP TABLE LENDING_COLLECTION\r
-;\r
-DROP TABLE LIBRARY\r
-;\r
-DROP TABLE NEXT_LIBRARY\r
-;\r
-DROP TABLE PUBLISHER\r
-;\r
-\r
-CREATE TABLE AUTHOR ( \r
- AUTHOR_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1),\r
- AUTHOR_NAME varchar(80) NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE BLACK_ACTION ( \r
- BLACK_ACTION_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1),\r
- BLACK_LIST_ID integer NOT NULL,\r
- BLACK_ACTION_CODE char(3) NOT NULL,\r
- BLACK_LEVEL smallint NOT NULL,\r
- EVIDENCE_PHOTOGRAPH blob,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE BLACK_ACTION_LOOKUP ( \r
- BLACK_ACTION_CODE char(3) NOT NULL,\r
- BLACK_ACTION_NAME varchar(80) NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE BLACK_LIST ( \r
- BLACK_LIST_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1),\r
- LB_USER_ID integer NOT NULL,\r
- BLACK_RANK char(3) NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE BOOK ( \r
- BOOK_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1),\r
- ISBN_NO varchar(20) NOT NULL,\r
- BOOK_NAME varchar(80) NOT NULL,\r
- AUTHOR_ID integer NOT NULL,\r
- PUBLISHER_ID integer NOT NULL,\r
- MAX_LENDING_DATE_COUNT smallint NOT NULL,\r
- GENRE_CODE varchar(12),\r
- OPENING_PART clob,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE COLLECTION ( \r
- COLLECTION_ID integer NOT NULL,\r
- LIBRARY_ID smallint NOT NULL,\r
- BOOK_ID integer NOT NULL,\r
- ARRIVAL_DATE timestamp NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE COLLECTION_STATUS ( \r
- COLLECTION_ID integer NOT NULL,\r
- COLLECTION_STATUS_CODE char(3) NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE COLLECTION_STATUS_LOOKUP ( \r
- COLLECTION_STATUS_CODE char(3) NOT NULL,\r
- COLLECTION_STATUS_NAME varchar(80) NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE GARBAGE ( \r
- GARBAGE_MEMO varchar(50),\r
- GARBAGE_TIME timestamp\r
-)\r
-;\r
-\r
-CREATE TABLE GENRE ( \r
- GENRE_CODE varchar(12) NOT NULL,\r
- GENRE_NAME varchar(80) NOT NULL,\r
- PARENT_GENRE_CODE varchar(12),\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE LB_USER ( \r
- LB_USER_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1),\r
- LB_USER_NAME varchar(80) NOT NULL,\r
- LIBRARY_ID smallint NOT NULL,\r
- USER_PASSWORD varchar(50) NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE LENDING ( \r
- LENDING_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1),\r
- LIBRARY_ID smallint NOT NULL,\r
- LB_USER_ID integer NOT NULL,\r
- LENDING_DATE timestamp NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE LENDING_COLLECTION ( \r
- LENDING_ID integer NOT NULL,\r
- COLLECTION_ID integer NOT NULL,\r
- RETURN_LIMIT_DATE timestamp NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE LIBRARY ( \r
- LIBRARY_ID smallint NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1),\r
- LIBRARY_NAME varchar(80) NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE NEXT_LIBRARY ( \r
- LIBRARY_ID smallint NOT NULL,\r
- NEXT_LIBRARY_ID smallint NOT NULL,\r
- DISTANCE_KM integer NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE PUBLISHER ( \r
- PUBLISHER_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1),\r
- PUBLISHER_NAME varchar(80) NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-\r
-ALTER TABLE AUTHOR ADD CONSTRAINT PK_AUTHOR \r
- PRIMARY KEY (AUTHOR_ID)\r
-;\r
-\r
-ALTER TABLE BLACK_ACTION ADD CONSTRAINT PK_BLACK_ACTION \r
- PRIMARY KEY (BLACK_ACTION_ID)\r
-;\r
-\r
-ALTER TABLE BLACK_ACTION_LOOKUP ADD CONSTRAINT PK_BLACK_ACTION_LOOKUP \r
- PRIMARY KEY (BLACK_ACTION_CODE)\r
-;\r
-\r
-ALTER TABLE BLACK_LIST ADD CONSTRAINT PK_BLACK_LIST \r
- PRIMARY KEY (BLACK_LIST_ID)\r
-;\r
-\r
-ALTER TABLE BOOK ADD CONSTRAINT PK_BOOK \r
- PRIMARY KEY (BOOK_ID)\r
-;\r
-\r
-ALTER TABLE COLLECTION ADD CONSTRAINT PK_COLLECTION \r
- PRIMARY KEY (COLLECTION_ID)\r
-;\r
-\r
-ALTER TABLE COLLECTION_STATUS ADD CONSTRAINT PK_COLLECTION_STATUS \r
- PRIMARY KEY (COLLECTION_ID)\r
-;\r
-\r
-ALTER TABLE COLLECTION_STATUS_LOOKUP ADD CONSTRAINT PK_COLLECTION_STATUS_LOOKUP \r
- PRIMARY KEY (COLLECTION_STATUS_CODE)\r
-;\r
-\r
-ALTER TABLE GENRE ADD CONSTRAINT PK_GENRE \r
- PRIMARY KEY (GENRE_CODE)\r
-;\r
-\r
-ALTER TABLE LB_USER ADD CONSTRAINT PK_LB_USER \r
- PRIMARY KEY (LB_USER_ID)\r
-;\r
-\r
-ALTER TABLE LENDING ADD CONSTRAINT PK_LENDING \r
- PRIMARY KEY (LENDING_ID)\r
-;\r
-\r
-ALTER TABLE LENDING_COLLECTION ADD CONSTRAINT PK_LENDING_COLLECTION \r
- PRIMARY KEY (LENDING_ID, COLLECTION_ID)\r
-;\r
-\r
-ALTER TABLE LIBRARY ADD CONSTRAINT PK_LIBRARY \r
- PRIMARY KEY (LIBRARY_ID)\r
-;\r
-\r
-ALTER TABLE NEXT_LIBRARY ADD CONSTRAINT PK_NEXT_LIBRARY \r
- PRIMARY KEY (LIBRARY_ID, NEXT_LIBRARY_ID)\r
-;\r
-\r
-ALTER TABLE PUBLISHER ADD CONSTRAINT PK_PUBLISHER \r
- PRIMARY KEY (PUBLISHER_ID)\r
-;\r
-\r
-\r
-ALTER TABLE BOOK\r
- ADD CONSTRAINT UQ_BOOK_ISBN_NO UNIQUE (ISBN_NO)\r
-;\r
-\r
-ALTER TABLE COLLECTION\r
- ADD CONSTRAINT UQ_COLLECTION_Primary UNIQUE (LIBRARY_ID, BOOK_ID)\r
-;\r
-\r
-ALTER TABLE LENDING\r
- ADD CONSTRAINT UQ_LENDING_Primary UNIQUE (LIBRARY_ID, LB_USER_ID)\r
-;\r
-\r
-ALTER TABLE BLACK_LIST\r
- ADD CONSTRAINT UQ_BLACK_LIST_LB_USER_ID UNIQUE (LB_USER_ID)\r
-;\r
-\r
-ALTER TABLE LIBRARY\r
- ADD CONSTRAINT UQ_LIBRARY_LIBRARY_NAME UNIQUE (LIBRARY_NAME)\r
-;\r
-\r
-\r
-\r
-ALTER TABLE BLACK_ACTION ADD CONSTRAINT FK_BLACK_ACTION_BLACK_LIST \r
- FOREIGN KEY (BLACK_LIST_ID) REFERENCES BLACK_LIST (BLACK_LIST_ID)\r
-;\r
-\r
-ALTER TABLE BLACK_ACTION ADD CONSTRAINT FK_BLACK_ACTION_LOOKUP \r
- FOREIGN KEY (BLACK_ACTION_CODE) REFERENCES BLACK_ACTION_LOOKUP (BLACK_ACTION_CODE)\r
-;\r
-\r
-ALTER TABLE BLACK_LIST ADD CONSTRAINT FK_BLACK_LIST_LB_USER \r
- FOREIGN KEY (LB_USER_ID) REFERENCES LB_USER (LB_USER_ID)\r
-;\r
-\r
-ALTER TABLE BOOK ADD CONSTRAINT FK_BOOK_AUTHOR \r
- FOREIGN KEY (AUTHOR_ID) REFERENCES AUTHOR (AUTHOR_ID)\r
-;\r
-\r
-ALTER TABLE BOOK ADD CONSTRAINT FK_BOOK_PUBLISHER \r
- FOREIGN KEY (PUBLISHER_ID) REFERENCES PUBLISHER (PUBLISHER_ID)\r
-;\r
-\r
-ALTER TABLE BOOK ADD CONSTRAINT FK_BOOK_GENRE \r
- FOREIGN KEY (GENRE_CODE) REFERENCES GENRE (GENRE_CODE)\r
-;\r
-\r
-ALTER TABLE COLLECTION ADD CONSTRAINT FK_COLLECTION_BOOK \r
- FOREIGN KEY (BOOK_ID) REFERENCES BOOK (BOOK_ID)\r
-;\r
-\r
-ALTER TABLE COLLECTION ADD CONSTRAINT FK_COLLECTION_LIBRARY \r
- FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID)\r
-;\r
-\r
-ALTER TABLE COLLECTION_STATUS ADD CONSTRAINT FK_COLLECTION_STATUS_COLLECTION \r
- FOREIGN KEY (COLLECTION_ID) REFERENCES COLLECTION (COLLECTION_ID)\r
-;\r
-\r
-ALTER TABLE COLLECTION_STATUS ADD CONSTRAINT FK_COLLECTION_STATUS_LOOKUP \r
- FOREIGN KEY (COLLECTION_STATUS_CODE) REFERENCES COLLECTION_STATUS_LOOKUP (COLLECTION_STATUS_CODE)\r
-;\r
-\r
-ALTER TABLE GENRE ADD CONSTRAINT FK_GENRE_GENRE \r
- FOREIGN KEY (PARENT_GENRE_CODE) REFERENCES GENRE (GENRE_CODE)\r
-;\r
-\r
-ALTER TABLE LB_USER ADD CONSTRAINT FK_LB_USER_LIBRARY \r
- FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID)\r
-;\r
-\r
-ALTER TABLE LENDING ADD CONSTRAINT FK_LENDING_LIBRARY \r
- FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID)\r
-;\r
-\r
-ALTER TABLE LENDING ADD CONSTRAINT FK_LENDING_LB_USER \r
- FOREIGN KEY (LB_USER_ID) REFERENCES LB_USER (LB_USER_ID)\r
-;\r
-\r
-ALTER TABLE LENDING_COLLECTION ADD CONSTRAINT FK_LENDING_COLLECTION_LENDING \r
- FOREIGN KEY (LENDING_ID) REFERENCES LENDING (LENDING_ID)\r
-;\r
-\r
-ALTER TABLE LENDING_COLLECTION ADD CONSTRAINT FK_LENDING_COLLECTION_COL \r
- FOREIGN KEY (COLLECTION_ID) REFERENCES COLLECTION (COLLECTION_ID)\r
-;\r
-\r
-ALTER TABLE NEXT_LIBRARY ADD CONSTRAINT FK_NEXT_LIBRARY_LIBRARY_ID \r
- FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID)\r
-;\r
-\r
-ALTER TABLE NEXT_LIBRARY ADD CONSTRAINT FK_NEXT_LIBRARY_NEXT_LIBRARY_ID \r
- FOREIGN KEY (NEXT_LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID)\r
-;\r
+++ /dev/null
-@echo off\r
-\r
-%~d0\r
-cd %~p0\r
-call _project.bat\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Specify the file path to be used as build-properties.\r
-rem nnnnnnnnnn/\r
-set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Execute {Replace-Schema}.\r
-rem nnnnnnnnnn/\r
-call %DBFLUTE_HOME%\etc\cmd\_df-replace-schema.cmd %MY_PROPERTIES_PATH%\r
-\r
-pause\r
-\r
-\r
+++ /dev/null
-Directory for SchemaFile\r
+++ /dev/null
-@echo off\r
-\r
-%~d0\r
-cd %~p0\r
-call _project.bat\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Specify the file path to be used as build-properties.\r
-rem nnnnnnnnnn/\r
-set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Execute {Invoke Sql Directory}.\r
-rem nnnnnnnnnn/\r
-call %DBFLUTE_HOME%\etc\cmd\_df-sql2entity.cmd %MY_PROPERTIES_PATH%\r
-\r
-pause\r
-\r
-\r
+++ /dev/null
-@echo off\r
-\r
-set ANT_OPTS=-Xmx256M\r
-\r
-set MY_PROJECT_NAME=minimumProperties\r
-\r
-rem set DBFLUTE_HOME=..\mydbflute\dbflute-x.x.x\r
+++ /dev/null
-#!/bin/sh
-
-export ANT_OPTS=-Xmx256m
-
-export MY_PROJECT_NAME=minimumProperties
-
-#export DBFLUTE_HOME=../mydbflute/dbflute-x.x.x
+++ /dev/null
-# =======================================================================================\r
-# for All\r
-# =======\r
-\r
-# -------------------------------------------------------------------\r
-# P R O J E C T\r
-# -------------------------------------------------------------------\r
-# @FirstProperty\r
-# @Required\r
-torque.project = minimumProperties\r
-\r
-# -------------------------------------------------------------------\r
-# T A R G E T D A T A B A S E\r
-# -------------------------------------------------------------------\r
-# This is the target database, only considered when generating\r
-# the SQL for your Torque project. Your possible choices are:\r
-#\r
-# axion, cloudscape, db2, db2400, hypersonic, interbase, mssql,\r
-# mysql, oracle, postgresql, sapdb, sybase, firebird, derby, h2\r
-# -------------------------------------------------------------------\r
-# @FirstProperty\r
-# @Required\r
-torque.database = derby\r
-\r
-# -------------------------------------------------------------------\r
-# T A R G E T L A N G U A G E\r
-# -------------------------------------------------------------------\r
-# (Default 'java')\r
-# The target language. Your possible choices are:\r
-# java, csharp\r
-# -------------------------------------------------------------------\r
-# @FirstProperty\r
-#torque.targetLanguage = java\r
-\r
-\r
-\r
-# =======================================================================================\r
-# for OM task\r
-# ===========\r
-\r
-# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/\r
-# Basic\r
-# _/_/_/_/\r
-# /---------------------------------------------------------------------------\r
-# [Output Directory]\r
-# java.dir: (Default Java:'../src/main/java' CSharp:'../source')\r
-# The base output directory.\r
-#\r
-# If your project style is the same as example below,\r
-# you don't need to set up this property! (The default value is fit for you)\r
-#\r
-# *Java Project Style\r
-# {app-project}\r
-# |\r
-# |-dbflute_[project]\r
-# | |-build-[project].properties\r
-# | |-...\r
-# |\r
-# |-src/main/java // *Here!\r
-# |-src/main/resources\r
-# |-...\r
-#\r
-# *CSharp Project Style\r
-# [app-solution]/dbflute_[project]/build-[project].properties\r
-# [app-solution]/mydbflute/dbflute-0.6.3\r
-# [app-solution]/source/[app-solution].sln\r
-# [app-solution]/source/[app-project(top-namespace)]/[part-namespace]/AllCommon\r
-# [app-solution]/source/[app-project(top-namespace)]/[part-namespace]/BsBhv\r
-# [app-solution]/source/[app-project(top-namespace)]/[part-namespace]/...\r
-# [app-solution]/source/[app-project(top-namespace)]/Resources/DBFlute.dicon\r
-# [app-solution]/source/[app-project(top-namespace)]/Resources/Ado.dicon\r
-#\r
-# @FirstProperty\r
-#torque.java.dir = ../src/main/java\r
-# ----------------/\r
-\r
-# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/\r
-# Package\r
-# _/_/\r
-# /---------------------------------------------------------------------------\r
-# [EntityDao Package]\r
-# packageBase:\r
-# The base directory of package.\r
-#\r
-# @FirstProperty\r
-torque.packageBase = org.seasar.dbflute.example.dbflute.ldb\r
-# ----------------/\r
-\r
-# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/\r
-# S2Dao Adjustment\r
-# _/_/_/_/_/_/\r
-# /---------------------------------------------------------------------------\r
-# [S2Dao Version]\r
-# s2daoVersion: (Default [The latest version])\r
-#\r
-# @JavaOnly\r
-#torque.s2daoVersion = 1.0.47\r
-# ----------------/\r
-\r
-\r
-\r
-# =======================================================================================\r
-# for JDBC task\r
-# =============\r
-\r
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
-# [Database Information]\r
-# \r
-# * * * * * * * * * * * * * * * * * * * * * * * * *\r
-# You should use './dfprop/databaseInfoMap.dfprop'\r
-# Look the file!\r
-# * * * * * * * * * * * * * * * * * * * * * * * * *\r
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
-\r
-\r
-\r
-# =========================================================================================\r
-# for Internal\r
-# ============\r
-# Normally you don't need to change these properties.\r
-\r
-#\r
-# [JDBC to java-native mapping] (NotRequired - Default 'map:{}')\r
-#\r
-# ex) map:{INTEGER=java.lang.Integer;TIMESTAMP=java.util.Date}\r
-# ex) map:{} // If you don't want to change...\r
-#\r
-# Default mapping as follows:\r
-# * ----------------------------------------------------\r
-# * JDBC Type | Java Type | CSharp Type |\r
-# * ----------------------------------------------------\r
-# * CHAR | java.lang.String | String |\r
-# * VARCHAR | java.lang.String | String |\r
-# * LONGVARCHAR | java.lang.String | String |\r
-# * NUMERIC | java.math.BigDecimal | decimal? |\r
-# * DECIMAL | java.math.BigDecimal | decimal? |\r
-# * BIT | java.lang.Boolean | bool? |\r
-# * BOOLEAN | java.lang.Boolean | bool? |\r
-# * TINYINT | java.lang.Integer | int? |\r
-# * SMALLINT | java.lang.Integer | int? |\r
-# * INTEGER | java.lang.Integer | int? |\r
-# * BIGINT | java.lang.Long | long? |\r
-# * REAL | java.math.BigDecimal | decimal? |\r
-# * FLOAT | java.math.BigDecimal | decimal? |\r
-# * DOUBLE | java.math.BigDecimal | decimal? |\r
-# * BINARY | byte[] | byte[] |\r
-# * VARBINARY | byte[] | byte[] |\r
-# * LONGVARBINARY | byte[] | byte[] |\r
-# * DATE | java.util.Date | DateTime? |\r
-# * TIME | java.sql.Time | DateTime? |\r
-# * TIMESTAMP | java.sql.Timestamp | DateTime? |\r
-# * ----------------------------------------------------\r
-# torque.jdbcToJavaNativeMap = map:{NUMERIC=$$AutoMapping$$;DECIMAL=$$AutoMapping$$}\r
+++ /dev/null
-# /---------------------------------------------------------------------------\r
-# [Database Information]\r
-# databaseInfoMap: \r
-# driver -- The class name of JDBC-Driver.\r
-# url -- The url for connecting database.\r
-# schema -- The schema name.\r
-# user -- The database user name.\r
-# password -- The database password.\r
-#\r
-# @FirstProperty\r
-map:{\r
- ; driver = {Please write your setting! at './dfprop/databaseInfoMap.dfprop'}\r
- ; url = ...\r
- ; schema = ...\r
- ; user = ...\r
- ; password = ...\r
-}\r
-# ----------------/
\ No newline at end of file
+++ /dev/null
-@echo off\r
-\r
-%~d0\r
-cd %~p0\r
-call _project.bat\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Specify the file path to be used as build-properties.\r
-rem nnnnnnnnnn/\r
-set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Execute {Document}.\r
-rem nnnnnnnnnn/\r
-call %DBFLUTE_HOME%\etc\cmd\_df-doc.cmd %MY_PROPERTIES_PATH%\r
-\r
-pause\r
-\r
-\r
+++ /dev/null
-#!/bin/sh
-
-cd `dirname $0`
-. _project.sh
-
-echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
-echo "Specify the file path to be used as build-properties."
-echo "nnnnnnnnnn/"
-export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties
-
-echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
-echo "Execute {Document}."
-echo "nnnnnnnnnn/"
-sh $DBFLUTE_HOME/etc/cmd/_df-doc.sh $MY_PROPERTIES_PATH
-
+++ /dev/null
-@echo off\r
-\r
-%~d0\r
-cd %~p0\r
-call _project.bat\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Specify the file path to be used as build-properties.\r
-rem nnnnnnnnnn/\r
-set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Execute {Generate}.\r
-rem nnnnnnnnnn/\r
-call %DBFLUTE_HOME%\etc\cmd\_df-generate.cmd %MY_PROPERTIES_PATH%\r
-\r
-pause\r
-\r
-\r
+++ /dev/null
-#!/bin/sh
-
-cd `dirname $0`
-. _project.sh
-
-echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
-echo "Specify the file path to be used as build-properties."
-echo "nnnnnnnnnn/"
-export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties
-
-echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
-echo "Execute {Generate}."
-echo "nnnnnnnnnn/"
-sh $DBFLUTE_HOME/etc/cmd/_df-generate.sh $MY_PROPERTIES_PATH
-
-
-
+++ /dev/null
-@echo off\r
-\r
-%~d0\r
-cd %~p0\r
-call _project.bat\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Specify the file path to be used as build-properties.\r
-rem nnnnnnnnnn/\r
-set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Execute {JDBC and Document}.\r
-rem nnnnnnnnnn/\r
-call %DBFLUTE_HOME%\etc\cmd\_df-jdbc.cmd %MY_PROPERTIES_PATH%\r
-\r
-pause\r
-\r
-\r
+++ /dev/null
-#!/bin/sh
-
-cd `dirname $0`
-. _project.sh
-
-echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
-echo "Specify the file path to be used as build-properties."
-echo "nnnnnnnnnn/"
-export MY_PROPERTIES_PATH="build-${MY_PROJECT_NAME}.properties"
-
-echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
-echo "Execute {JDBC and Document}."
-echo "nnnnnnnnnn/"
-sh ${DBFLUTE_HOME}/etc/cmd/_df-jdbc.sh ${MY_PROPERTIES_PATH}
-
-
+++ /dev/null
-Directory for LogFile\r
+++ /dev/null
-Directory for Document\r
+++ /dev/null
-@echo off\r
-\r
-%~d0\r
-cd %~p0\r
-call _project.bat\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Specify the file path to be used as build-properties.\r
-rem nnnnnnnnnn/\r
-set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Execute {Outsite-Sql-Test}.\r
-rem nnnnnnnnnn/\r
-call %DBFLUTE_HOME%\etc\cmd\_df-outside-sql-test.cmd %MY_PROPERTIES_PATH%\r
-\r
-pause\r
-\r
-\r
+++ /dev/null
-#!/bin/sh
-
-cd `dirname $0`
-. _project.sh
-
-echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
-echo "Specify the file path to be used as build-properties."
-echo "nnnnnnnnnn/"
-export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties
-
-echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
-echo "Execute {Outsite-Sql-Test}."
-echo "nnnnnnnnnn/"
-sh $DBFLUTE_HOME/etc/cmd/_df-outside-sql-test.sh $MY_PROPERTIES_PATH
-
-
+++ /dev/null
-ALTER TABLE BLACK_ACTION DROP CONSTRAINT FK_BLACK_ACTION_BLACK_LIST\r
-;\r
-\r
-ALTER TABLE BLACK_ACTION DROP CONSTRAINT FK_BLACK_ACTION_LOOKUP\r
-;\r
-\r
-ALTER TABLE BLACK_LIST DROP CONSTRAINT FK_BLACK_LIST_LB_USER\r
-;\r
-\r
-ALTER TABLE BOOK DROP CONSTRAINT FK_BOOK_AUTHOR\r
-;\r
-\r
-ALTER TABLE BOOK DROP CONSTRAINT FK_BOOK_PUBLISHER\r
-;\r
-\r
-ALTER TABLE BOOK DROP CONSTRAINT FK_BOOK_GENRE\r
-;\r
-\r
-ALTER TABLE COLLECTION DROP CONSTRAINT FK_COLLECTION_BOOK\r
-;\r
-\r
-ALTER TABLE COLLECTION DROP CONSTRAINT FK_COLLECTION_LIBRARY\r
-;\r
-\r
-ALTER TABLE COLLECTION_STATUS DROP CONSTRAINT FK_COLLECTION_STATUS_COLLECTION\r
-;\r
-\r
-ALTER TABLE COLLECTION_STATUS DROP CONSTRAINT FK_COLLECTION_STATUS_LOOKUP\r
-;\r
-\r
-ALTER TABLE GENRE DROP CONSTRAINT FK_GENRE_GENRE\r
-;\r
-\r
-ALTER TABLE LB_USER DROP CONSTRAINT FK_LB_USER_LIBRARY\r
-;\r
-\r
-ALTER TABLE LENDING DROP CONSTRAINT FK_LENDING_LIBRARY\r
-;\r
-\r
-ALTER TABLE LENDING DROP CONSTRAINT FK_LENDING_LB_USER\r
-;\r
-\r
-ALTER TABLE LENDING_COLLECTION DROP CONSTRAINT FK_LENDING_COLLECTION_LENDING\r
-;\r
-\r
-ALTER TABLE LENDING_COLLECTION DROP CONSTRAINT FK_LENDING_COLLECTION_COL\r
-;\r
-\r
-ALTER TABLE NEXT_LIBRARY DROP CONSTRAINT FK_NEXT_LIBRARY_LIBRARY_ID\r
-;\r
-\r
-ALTER TABLE NEXT_LIBRARY DROP CONSTRAINT FK_NEXT_LIBRARY_NEXT_LIBRARY_ID\r
-;\r
-\r
-\r
-DROP TABLE AUTHOR\r
-;\r
-DROP TABLE BLACK_ACTION\r
-;\r
-DROP TABLE BLACK_ACTION_LOOKUP\r
-;\r
-DROP TABLE BLACK_LIST\r
-;\r
-DROP TABLE BOOK\r
-;\r
-DROP TABLE COLLECTION\r
-;\r
-DROP TABLE COLLECTION_STATUS\r
-;\r
-DROP TABLE COLLECTION_STATUS_LOOKUP\r
-;\r
-DROP TABLE GARBAGE\r
-;\r
-DROP TABLE GENRE\r
-;\r
-DROP TABLE LB_USER\r
-;\r
-DROP TABLE LENDING\r
-;\r
-DROP TABLE LENDING_COLLECTION\r
-;\r
-DROP TABLE LIBRARY\r
-;\r
-DROP TABLE NEXT_LIBRARY\r
-;\r
-DROP TABLE PUBLISHER\r
-;\r
-\r
-CREATE TABLE AUTHOR ( \r
- AUTHOR_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1),\r
- AUTHOR_NAME varchar(80) NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE BLACK_ACTION ( \r
- BLACK_ACTION_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1),\r
- BLACK_LIST_ID integer NOT NULL,\r
- BLACK_ACTION_CODE char(3) NOT NULL,\r
- BLACK_LEVEL smallint NOT NULL,\r
- EVIDENCE_PHOTOGRAPH blob,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE BLACK_ACTION_LOOKUP ( \r
- BLACK_ACTION_CODE char(3) NOT NULL,\r
- BLACK_ACTION_NAME varchar(80) NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE BLACK_LIST ( \r
- BLACK_LIST_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1),\r
- LB_USER_ID integer NOT NULL,\r
- BLACK_RANK char(3) NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE BOOK ( \r
- BOOK_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1),\r
- ISBN_NO varchar(20) NOT NULL,\r
- BOOK_NAME varchar(80) NOT NULL,\r
- AUTHOR_ID integer NOT NULL,\r
- PUBLISHER_ID integer NOT NULL,\r
- MAX_LENDING_DATE_COUNT smallint NOT NULL,\r
- GENRE_CODE varchar(12),\r
- OPENING_PART clob,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE COLLECTION ( \r
- COLLECTION_ID integer NOT NULL,\r
- LIBRARY_ID smallint NOT NULL,\r
- BOOK_ID integer NOT NULL,\r
- ARRIVAL_DATE timestamp NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE COLLECTION_STATUS ( \r
- COLLECTION_ID integer NOT NULL,\r
- COLLECTION_STATUS_CODE char(3) NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE COLLECTION_STATUS_LOOKUP ( \r
- COLLECTION_STATUS_CODE char(3) NOT NULL,\r
- COLLECTION_STATUS_NAME varchar(80) NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE GARBAGE ( \r
- GARBAGE_MEMO varchar(50),\r
- GARBAGE_TIME timestamp\r
-)\r
-;\r
-\r
-CREATE TABLE GENRE ( \r
- GENRE_CODE varchar(12) NOT NULL,\r
- GENRE_NAME varchar(80) NOT NULL,\r
- PARENT_GENRE_CODE varchar(12),\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE LB_USER ( \r
- LB_USER_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1),\r
- LB_USER_NAME varchar(80) NOT NULL,\r
- LIBRARY_ID smallint NOT NULL,\r
- USER_PASSWORD varchar(50) NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE LENDING ( \r
- LENDING_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1),\r
- LIBRARY_ID smallint NOT NULL,\r
- LB_USER_ID integer NOT NULL,\r
- LENDING_DATE timestamp NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE LENDING_COLLECTION ( \r
- LENDING_ID integer NOT NULL,\r
- COLLECTION_ID integer NOT NULL,\r
- RETURN_LIMIT_DATE timestamp NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE LIBRARY ( \r
- LIBRARY_ID smallint NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1),\r
- LIBRARY_NAME varchar(80) NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE NEXT_LIBRARY ( \r
- LIBRARY_ID smallint NOT NULL,\r
- NEXT_LIBRARY_ID smallint NOT NULL,\r
- DISTANCE_KM integer NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-CREATE TABLE PUBLISHER ( \r
- PUBLISHER_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1),\r
- PUBLISHER_NAME varchar(80) NOT NULL,\r
- R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,\r
- R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL,\r
- U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL\r
-)\r
-;\r
-\r
-\r
-ALTER TABLE AUTHOR ADD CONSTRAINT PK_AUTHOR \r
- PRIMARY KEY (AUTHOR_ID)\r
-;\r
-\r
-ALTER TABLE BLACK_ACTION ADD CONSTRAINT PK_BLACK_ACTION \r
- PRIMARY KEY (BLACK_ACTION_ID)\r
-;\r
-\r
-ALTER TABLE BLACK_ACTION_LOOKUP ADD CONSTRAINT PK_BLACK_ACTION_LOOKUP \r
- PRIMARY KEY (BLACK_ACTION_CODE)\r
-;\r
-\r
-ALTER TABLE BLACK_LIST ADD CONSTRAINT PK_BLACK_LIST \r
- PRIMARY KEY (BLACK_LIST_ID)\r
-;\r
-\r
-ALTER TABLE BOOK ADD CONSTRAINT PK_BOOK \r
- PRIMARY KEY (BOOK_ID)\r
-;\r
-\r
-ALTER TABLE COLLECTION ADD CONSTRAINT PK_COLLECTION \r
- PRIMARY KEY (COLLECTION_ID)\r
-;\r
-\r
-ALTER TABLE COLLECTION_STATUS ADD CONSTRAINT PK_COLLECTION_STATUS \r
- PRIMARY KEY (COLLECTION_ID)\r
-;\r
-\r
-ALTER TABLE COLLECTION_STATUS_LOOKUP ADD CONSTRAINT PK_COLLECTION_STATUS_LOOKUP \r
- PRIMARY KEY (COLLECTION_STATUS_CODE)\r
-;\r
-\r
-ALTER TABLE GENRE ADD CONSTRAINT PK_GENRE \r
- PRIMARY KEY (GENRE_CODE)\r
-;\r
-\r
-ALTER TABLE LB_USER ADD CONSTRAINT PK_LB_USER \r
- PRIMARY KEY (LB_USER_ID)\r
-;\r
-\r
-ALTER TABLE LENDING ADD CONSTRAINT PK_LENDING \r
- PRIMARY KEY (LENDING_ID)\r
-;\r
-\r
-ALTER TABLE LENDING_COLLECTION ADD CONSTRAINT PK_LENDING_COLLECTION \r
- PRIMARY KEY (LENDING_ID, COLLECTION_ID)\r
-;\r
-\r
-ALTER TABLE LIBRARY ADD CONSTRAINT PK_LIBRARY \r
- PRIMARY KEY (LIBRARY_ID)\r
-;\r
-\r
-ALTER TABLE NEXT_LIBRARY ADD CONSTRAINT PK_NEXT_LIBRARY \r
- PRIMARY KEY (LIBRARY_ID, NEXT_LIBRARY_ID)\r
-;\r
-\r
-ALTER TABLE PUBLISHER ADD CONSTRAINT PK_PUBLISHER \r
- PRIMARY KEY (PUBLISHER_ID)\r
-;\r
-\r
-\r
-ALTER TABLE BOOK\r
- ADD CONSTRAINT UQ_BOOK_ISBN_NO UNIQUE (ISBN_NO)\r
-;\r
-\r
-ALTER TABLE COLLECTION\r
- ADD CONSTRAINT UQ_COLLECTION_Primary UNIQUE (LIBRARY_ID, BOOK_ID)\r
-;\r
-\r
-ALTER TABLE LENDING\r
- ADD CONSTRAINT UQ_LENDING_Primary UNIQUE (LIBRARY_ID, LB_USER_ID)\r
-;\r
-\r
-ALTER TABLE BLACK_LIST\r
- ADD CONSTRAINT UQ_BLACK_LIST_LB_USER_ID UNIQUE (LB_USER_ID)\r
-;\r
-\r
-ALTER TABLE LIBRARY\r
- ADD CONSTRAINT UQ_LIBRARY_LIBRARY_NAME UNIQUE (LIBRARY_NAME)\r
-;\r
-\r
-\r
-\r
-ALTER TABLE BLACK_ACTION ADD CONSTRAINT FK_BLACK_ACTION_BLACK_LIST \r
- FOREIGN KEY (BLACK_LIST_ID) REFERENCES BLACK_LIST (BLACK_LIST_ID)\r
-;\r
-\r
-ALTER TABLE BLACK_ACTION ADD CONSTRAINT FK_BLACK_ACTION_LOOKUP \r
- FOREIGN KEY (BLACK_ACTION_CODE) REFERENCES BLACK_ACTION_LOOKUP (BLACK_ACTION_CODE)\r
-;\r
-\r
-ALTER TABLE BLACK_LIST ADD CONSTRAINT FK_BLACK_LIST_LB_USER \r
- FOREIGN KEY (LB_USER_ID) REFERENCES LB_USER (LB_USER_ID)\r
-;\r
-\r
-ALTER TABLE BOOK ADD CONSTRAINT FK_BOOK_AUTHOR \r
- FOREIGN KEY (AUTHOR_ID) REFERENCES AUTHOR (AUTHOR_ID)\r
-;\r
-\r
-ALTER TABLE BOOK ADD CONSTRAINT FK_BOOK_PUBLISHER \r
- FOREIGN KEY (PUBLISHER_ID) REFERENCES PUBLISHER (PUBLISHER_ID)\r
-;\r
-\r
-ALTER TABLE BOOK ADD CONSTRAINT FK_BOOK_GENRE \r
- FOREIGN KEY (GENRE_CODE) REFERENCES GENRE (GENRE_CODE)\r
-;\r
-\r
-ALTER TABLE COLLECTION ADD CONSTRAINT FK_COLLECTION_BOOK \r
- FOREIGN KEY (BOOK_ID) REFERENCES BOOK (BOOK_ID)\r
-;\r
-\r
-ALTER TABLE COLLECTION ADD CONSTRAINT FK_COLLECTION_LIBRARY \r
- FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID)\r
-;\r
-\r
-ALTER TABLE COLLECTION_STATUS ADD CONSTRAINT FK_COLLECTION_STATUS_COLLECTION \r
- FOREIGN KEY (COLLECTION_ID) REFERENCES COLLECTION (COLLECTION_ID)\r
-;\r
-\r
-ALTER TABLE COLLECTION_STATUS ADD CONSTRAINT FK_COLLECTION_STATUS_LOOKUP \r
- FOREIGN KEY (COLLECTION_STATUS_CODE) REFERENCES COLLECTION_STATUS_LOOKUP (COLLECTION_STATUS_CODE)\r
-;\r
-\r
-ALTER TABLE GENRE ADD CONSTRAINT FK_GENRE_GENRE \r
- FOREIGN KEY (PARENT_GENRE_CODE) REFERENCES GENRE (GENRE_CODE)\r
-;\r
-\r
-ALTER TABLE LB_USER ADD CONSTRAINT FK_LB_USER_LIBRARY \r
- FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID)\r
-;\r
-\r
-ALTER TABLE LENDING ADD CONSTRAINT FK_LENDING_LIBRARY \r
- FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID)\r
-;\r
-\r
-ALTER TABLE LENDING ADD CONSTRAINT FK_LENDING_LB_USER \r
- FOREIGN KEY (LB_USER_ID) REFERENCES LB_USER (LB_USER_ID)\r
-;\r
-\r
-ALTER TABLE LENDING_COLLECTION ADD CONSTRAINT FK_LENDING_COLLECTION_LENDING \r
- FOREIGN KEY (LENDING_ID) REFERENCES LENDING (LENDING_ID)\r
-;\r
-\r
-ALTER TABLE LENDING_COLLECTION ADD CONSTRAINT FK_LENDING_COLLECTION_COL \r
- FOREIGN KEY (COLLECTION_ID) REFERENCES COLLECTION (COLLECTION_ID)\r
-;\r
-\r
-ALTER TABLE NEXT_LIBRARY ADD CONSTRAINT FK_NEXT_LIBRARY_LIBRARY_ID \r
- FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID)\r
-;\r
-\r
-ALTER TABLE NEXT_LIBRARY ADD CONSTRAINT FK_NEXT_LIBRARY_NEXT_LIBRARY_ID \r
- FOREIGN KEY (NEXT_LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID)\r
-;\r
+++ /dev/null
-@echo off\r
-\r
-%~d0\r
-cd %~p0\r
-call _project.bat\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Specify the file path to be used as build-properties.\r
-rem nnnnnnnnnn/\r
-set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Execute {Replace-Schema}.\r
-rem nnnnnnnnnn/\r
-call %DBFLUTE_HOME%\etc\cmd\_df-replace-schema.cmd %MY_PROPERTIES_PATH%\r
-\r
-pause\r
-\r
-\r
+++ /dev/null
-#!/bin/sh
-
-cd `dirname $0`
-. _project.sh
-
-echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
-echo "Specify the file path to be used as build-properties."
-echo "nnnnnnnnnn/"
-export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties
-
-echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
-echo "Execute {Replace-Schema}."
-echo "nnnnnnnnnn/"
-sh $DBFLUTE_HOME/etc/cmd/_df-replace-schema.sh $MY_PROPERTIES_PATH
-
-
+++ /dev/null
-Directory for SchemaFile\r
+++ /dev/null
-@echo off\r
-\r
-%~d0\r
-cd %~p0\r
-call _project.bat\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Specify the file path to be used as build-properties.\r
-rem nnnnnnnnnn/\r
-set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties\r
-\r
-rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\r
-rem Execute {Invoke Sql Directory}.\r
-rem nnnnnnnnnn/\r
-call %DBFLUTE_HOME%\etc\cmd\_df-sql2entity.cmd %MY_PROPERTIES_PATH%\r
-\r
-pause\r
-\r
-\r
+++ /dev/null
-#!/bin/sh
-
-cd `dirname $0`
-. _project.sh
-
-echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
-echo "Specify the file path to be used as build-properties."
-echo "nnnnnnnnnn/"
-export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties
-
-echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
-echo "Execute {Invoke Sql Directory}."
-echo "nnnnnnnnnn/"
-sh $DBFLUTE_HOME/etc/cmd/_df-sql2entity.sh $MY_PROPERTIES_PATH
-
-
+++ /dev/null
-\r
-\r
-<html>\r
-<head>\r
- <title>project-schema-ea2ddl</title>\r
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
- <style>\r
- .normalFont {\r
- font-family: Verdana; font-size: 10pt;\r
- }\r
- </style>\r
-</head>\r
-\r
-<body class="normalFont">\r
- <table border="1" cellspacing="0" cellpadding="0">\r
- <tr bgcolor="#CCCCCC">\r
- <th class="normalFont">Table Name</th>\r
- <th class="normalFont">Entity Name</th>\r
- <th class="normalFont">Foreign Table</th>\r
- <th class="normalFont">Referrer Table</th>\r
- <th class="normalFont">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_attribute">t_attribute</a></td>\r
- <td class="normalFont">TAttribute</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_attributeconstraints">t_attributeconstraints</a></td>\r
- <td class="normalFont">TAttributeconstraints</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_attributetag">t_attributetag</a></td>\r
- <td class="normalFont">TAttributetag</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_authors">t_authors</a></td>\r
- <td class="normalFont">TAuthors</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_cardinality">t_cardinality</a></td>\r
- <td class="normalFont">TCardinality</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_category">t_category</a></td>\r
- <td class="normalFont">TCategory</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_clients">t_clients</a></td>\r
- <td class="normalFont">TClients</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_complexitytypes">t_complexitytypes</a></td>\r
- <td class="normalFont">TComplexitytypes</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_connector">t_connector</a></td>\r
- <td class="normalFont">TConnector</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_connectorconstraint">t_connectorconstraint</a></td>\r
- <td class="normalFont">TConnectorconstraint</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_connectortag">t_connectortag</a></td>\r
- <td class="normalFont">TConnectortag</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_connectortypes">t_connectortypes</a></td>\r
- <td class="normalFont">TConnectortypes</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_constants">t_constants</a></td>\r
- <td class="normalFont">TConstants</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_constrainttypes">t_constrainttypes</a></td>\r
- <td class="normalFont">TConstrainttypes</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_datatypes">t_datatypes</a></td>\r
- <td class="normalFont">TDatatypes</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_diagram">t_diagram</a></td>\r
- <td class="normalFont">TDiagram</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_diagramlinks">t_diagramlinks</a></td>\r
- <td class="normalFont">TDiagramlinks</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_diagramobjects">t_diagramobjects</a></td>\r
- <td class="normalFont">TDiagramobjects</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_diagramtypes">t_diagramtypes</a></td>\r
- <td class="normalFont">TDiagramtypes</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_document">t_document</a></td>\r
- <td class="normalFont">TDocument</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_ecf">t_ecf</a></td>\r
- <td class="normalFont">TEcf</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_efforttypes">t_efforttypes</a></td>\r
- <td class="normalFont">TEfforttypes</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_files">t_files</a></td>\r
- <td class="normalFont">TFiles</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_genopt">t_genopt</a></td>\r
- <td class="normalFont">TGenopt</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_glossary">t_glossary</a></td>\r
- <td class="normalFont">TGlossary</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_html">t_html</a></td>\r
- <td class="normalFont">THtml</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_image">t_image</a></td>\r
- <td class="normalFont">TImage</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_implement">t_implement</a></td>\r
- <td class="normalFont">TImplement</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_issues">t_issues</a></td>\r
- <td class="normalFont">TIssues</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_lists">t_lists</a></td>\r
- <td class="normalFont">TLists</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_mainttypes">t_mainttypes</a></td>\r
- <td class="normalFont">TMainttypes</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_method">t_method</a></td>\r
- <td class="normalFont">TMethod</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_metrictypes">t_metrictypes</a></td>\r
- <td class="normalFont">TMetrictypes</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_object">t_object</a></td>\r
- <td class="normalFont">TObject</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_objectconstraint">t_objectconstraint</a></td>\r
- <td class="normalFont">TObjectconstraint</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_objecteffort">t_objecteffort</a></td>\r
- <td class="normalFont">TObjecteffort</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_objectfiles">t_objectfiles</a></td>\r
- <td class="normalFont">TObjectfiles</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_objectmetrics">t_objectmetrics</a></td>\r
- <td class="normalFont">TObjectmetrics</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_objectproblems">t_objectproblems</a></td>\r
- <td class="normalFont">TObjectproblems</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_objectproperties">t_objectproperties</a></td>\r
- <td class="normalFont">TObjectproperties</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_objectrequires">t_objectrequires</a></td>\r
- <td class="normalFont">TObjectrequires</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_objectresource">t_objectresource</a></td>\r
- <td class="normalFont">TObjectresource</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_objectrisks">t_objectrisks</a></td>\r
- <td class="normalFont">TObjectrisks</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_objectscenarios">t_objectscenarios</a></td>\r
- <td class="normalFont">TObjectscenarios</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_objecttests">t_objecttests</a></td>\r
- <td class="normalFont">TObjecttests</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_objecttrx">t_objecttrx</a></td>\r
- <td class="normalFont">TObjecttrx</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_objecttypes">t_objecttypes</a></td>\r
- <td class="normalFont">TObjecttypes</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_ocf">t_ocf</a></td>\r
- <td class="normalFont">TOcf</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_operation">t_operation</a></td>\r
- <td class="normalFont">TOperation</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_operationparams">t_operationparams</a></td>\r
- <td class="normalFont">TOperationparams</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_operationposts">t_operationposts</a></td>\r
- <td class="normalFont">TOperationposts</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_operationpres">t_operationpres</a></td>\r
- <td class="normalFont">TOperationpres</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_operationtag">t_operationtag</a></td>\r
- <td class="normalFont">TOperationtag</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_package">t_package</a></td>\r
- <td class="normalFont">TPackage</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_palette">t_palette</a></td>\r
- <td class="normalFont">TPalette</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_paletteitem">t_paletteitem</a></td>\r
- <td class="normalFont">TPaletteitem</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_phase">t_phase</a></td>\r
- <td class="normalFont">TPhase</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_primitives">t_primitives</a></td>\r
- <td class="normalFont">TPrimitives</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_problemtypes">t_problemtypes</a></td>\r
- <td class="normalFont">TProblemtypes</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_projectroles">t_projectroles</a></td>\r
- <td class="normalFont">TProjectroles</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_propertytypes">t_propertytypes</a></td>\r
- <td class="normalFont">TPropertytypes</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_requiretypes">t_requiretypes</a></td>\r
- <td class="normalFont">TRequiretypes</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_resources">t_resources</a></td>\r
- <td class="normalFont">TResources</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_risktypes">t_risktypes</a></td>\r
- <td class="normalFont">TRisktypes</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_roleconstraint">t_roleconstraint</a></td>\r
- <td class="normalFont">TRoleconstraint</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_rtf">t_rtf</a></td>\r
- <td class="normalFont">TRtf</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_rtfreport">t_rtfreport</a></td>\r
- <td class="normalFont">TRtfreport</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_rules">t_rules</a></td>\r
- <td class="normalFont">TRules</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_scenariotypes">t_scenariotypes</a></td>\r
- <td class="normalFont">TScenariotypes</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_script">t_script</a></td>\r
- <td class="normalFont">TScript</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_secgroup">t_secgroup</a></td>\r
- <td class="normalFont">TSecgroup</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_secgrouppermission">t_secgrouppermission</a></td>\r
- <td class="normalFont">TSecgrouppermission</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_seclocks">t_seclocks</a></td>\r
- <td class="normalFont">TSeclocks</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_secpermission">t_secpermission</a></td>\r
- <td class="normalFont">TSecpermission</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_secpolicies">t_secpolicies</a></td>\r
- <td class="normalFont">TSecpolicies</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_secuser">t_secuser</a></td>\r
- <td class="normalFont">TSecuser</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_secusergroup">t_secusergroup</a></td>\r
- <td class="normalFont">TSecusergroup</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_secuserpermission">t_secuserpermission</a></td>\r
- <td class="normalFont">TSecuserpermission</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_snapshot">t_snapshot</a></td>\r
- <td class="normalFont">TSnapshot</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_statustypes">t_statustypes</a></td>\r
- <td class="normalFont">TStatustypes</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_stereotypes">t_stereotypes</a></td>\r
- <td class="normalFont">TStereotypes</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_taggedvalue">t_taggedvalue</a></td>\r
- <td class="normalFont">TTaggedvalue</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_tasks">t_tasks</a></td>\r
- <td class="normalFont">TTasks</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_tcf">t_tcf</a></td>\r
- <td class="normalFont">TTcf</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_template">t_template</a></td>\r
- <td class="normalFont">TTemplate</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_testclass">t_testclass</a></td>\r
- <td class="normalFont">TTestclass</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_testplans">t_testplans</a></td>\r
- <td class="normalFont">TTestplans</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_testtypes">t_testtypes</a></td>\r
- <td class="normalFont">TTesttypes</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_trxtypes">t_trxtypes</a></td>\r
- <td class="normalFont">TTrxtypes</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_umlpattern">t_umlpattern</a></td>\r
- <td class="normalFont">TUmlpattern</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_version">t_version</a></td>\r
- <td class="normalFont">TVersion</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_xref">t_xref</a></td>\r
- <td class="normalFont">TXref</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_xrefsystem">t_xrefsystem</a></td>\r
- <td class="normalFont">TXrefsystem</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#t_xrefuser">t_xrefuser</a></td>\r
- <td class="normalFont">TXrefuser</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#usys_system">usys_system</a></td>\r
- <td class="normalFont">UsysSystem</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#usysOldTables">usysOldTables</a></td>\r
- <td class="normalFont">Usysoldtables</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#usysQueries">usysQueries</a></td>\r
- <td class="normalFont">Usysqueries</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><a href="#usysTables">usysTables</a></td>\r
- <td class="normalFont">Usystables</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- </table>\r
-\r
-\r
-<a name="t_attribute"/>\r
-<h2>t_attribute</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_attributeObject_ID">Object_ID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">objectId</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_attributeName">Name</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">name</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_attributeScope">Scope</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">scope</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_attributeStereotype">Stereotype</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">stereotype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_attributeContainment">Containment</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">containment</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_attributeIsStatic">IsStatic</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">isstatic</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_attributeIsCollection">IsCollection</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">iscollection</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_attributeIsOrdered">IsOrdered</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">isordered</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_attributeAllowDuplicates">AllowDuplicates</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">allowduplicates</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_attributeLowerBound">LowerBound</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">lowerbound</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_attributeUpperBound">UpperBound</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">upperbound</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_attributeContainer">Container</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">container</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_attributeNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_attributeDerived">Derived</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 1 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">derived</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_attributeID">ID</td>\r
- <td class="normalFont">COUNTER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">id</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_attributePos">Pos</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">pos</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_attributeGenOption">GenOption</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">genoption</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_attributeLength">Length</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">length</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_attributePrecision">Precision</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">precision</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_attributeScale">Scale</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">scale</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_attributeStyle">Style</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">style</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_attributeClassifier">Classifier</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">classifier</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_attributeType">Type</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">type</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_attributeea_guid">ea_guid</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">eaGuid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_attributeStyleEx">StyleEx</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">styleex</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_attributeconstraints"/>\r
-<h2>t_attributeconstraints</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_attributeconstraintsObject_ID">Object_ID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">objectId</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_attributeconstraintsConstraint">Constraint</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">constraint</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_attributeconstraintsAttName">AttName</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">attname</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_attributeconstraintsType">Type</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">type</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_attributeconstraintsNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_attributeconstraintsID">ID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">id</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_attributetag"/>\r
-<h2>t_attributetag</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_attributetagPropertyID">PropertyID</td>\r
- <td class="normalFont">COUNTER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">propertyid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_attributetagElementID">ElementID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">elementid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_attributetagProperty">Property</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">property</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_attributetagVALUE">VALUE</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">value</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_attributetagNOTES">NOTES</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_attributetagea_guid">ea_guid</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 40 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">eaGuid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_authors"/>\r
-<h2>t_authors</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_authorsAuthorName">AuthorName</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">authorname</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_authorsRoles">Roles</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">roles</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_authorsNotes">Notes</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_cardinality"/>\r
-<h2>t_cardinality</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_cardinalityCardinality">Cardinality</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">cardinality</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_category"/>\r
-<h2>t_category</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_categoryCategoryID">CategoryID</td>\r
- <td class="normalFont">COUNTER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">categoryid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_categoryName">Name</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">name</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_categoryType">Type</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">type</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_categoryNOTES">NOTES</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_clients"/>\r
-<h2>t_clients</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_clientsName">Name</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">name</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_clientsOrganisation">Organisation</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">organisation</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_clientsPhone1">Phone1</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">phone1</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_clientsPhone2">Phone2</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">phone2</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_clientsMobile">Mobile</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">mobile</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_clientsFax">Fax</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">fax</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_clientsEmail">Email</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">email</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_clientsRoles">Roles</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">roles</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_clientsNotes">Notes</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_complexitytypes"/>\r
-<h2>t_complexitytypes</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_complexitytypesComplexity">Complexity</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">complexity</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_complexitytypesNumericWeight">NumericWeight</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">numericweight</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_connector"/>\r
-<h2>t_connector</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_connectorConnector_ID">Connector_ID</td>\r
- <td class="normalFont">COUNTER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">connectorId</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorName">Name</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">name</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorDirection">Direction</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">direction</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorConnector_Type">Connector_Type</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">connectorType</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorSubType">SubType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">subtype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorSourceCard">SourceCard</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">sourcecard</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorSourceAccess">SourceAccess</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">sourceaccess</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorSourceElement">SourceElement</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">sourceelement</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorDestCard">DestCard</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">destcard</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorDestAccess">DestAccess</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">destaccess</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorDestElement">DestElement</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">destelement</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorSourceRole">SourceRole</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">sourcerole</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorSourceRoleType">SourceRoleType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">sourceroletype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorSourceRoleNote">SourceRoleNote</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">sourcerolenote</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorSourceContainment">SourceContainment</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">sourcecontainment</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorSourceIsAggregate">SourceIsAggregate</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">sourceisaggregate</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorSourceIsOrdered">SourceIsOrdered</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">sourceisordered</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorSourceQualifier">SourceQualifier</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">sourcequalifier</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorDestRole">DestRole</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">destrole</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorDestRoleType">DestRoleType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">destroletype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorDestRoleNote">DestRoleNote</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">destrolenote</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorDestContainment">DestContainment</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">destcontainment</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorDestIsAggregate">DestIsAggregate</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">destisaggregate</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorDestIsOrdered">DestIsOrdered</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">destisordered</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorDestQualifier">DestQualifier</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">destqualifier</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorStart_Object_ID">Start_Object_ID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">startObjectId</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorEnd_Object_ID">End_Object_ID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">endObjectId</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorTop_Start_Label">Top_Start_Label</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">topStartLabel</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorTop_Mid_Label">Top_Mid_Label</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">topMidLabel</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorTop_End_Label">Top_End_Label</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">topEndLabel</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorBtm_Start_Label">Btm_Start_Label</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">btmStartLabel</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorBtm_Mid_Label">Btm_Mid_Label</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">btmMidLabel</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorBtm_End_Label">Btm_End_Label</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">btmEndLabel</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorStart_Edge">Start_Edge</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">startEdge</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorEnd_Edge">End_Edge</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">endEdge</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorPtStartX">PtStartX</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">ptstartx</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorPtStartY">PtStartY</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">ptstarty</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorPtEndX">PtEndX</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">ptendx</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorPtEndY">PtEndY</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">ptendy</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorSeqNo">SeqNo</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">seqno</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> For sequence diagrams - stores sequence number</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorHeadStyle">HeadStyle</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">headstyle</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Head style - filled, open ... depends on connector</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorLineStyle">LineStyle</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">linestyle</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Line is dot, dash... depends on connector</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorRouteStyle">RouteStyle</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">routestyle</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Route line direct/auto ...user selection</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorIsBold">IsBold</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">isbold</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Line style is bold or normal</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorLineColor">LineColor</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">linecolor</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Color of line</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorStereotype">Stereotype</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">stereotype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorVirtualInheritance">VirtualInheritance</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 1 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">virtualinheritance</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorLinkAccess">LinkAccess</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">linkaccess</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorPDATA1">PDATA1</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">pdata1</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorPDATA2">PDATA2</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">pdata2</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorPDATA3">PDATA3</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">pdata3</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorPDATA4">PDATA4</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">pdata4</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorPDATA5">PDATA5</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">pdata5</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorDiagramID">DiagramID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">diagramid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_connectorea_guid">ea_guid</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 40 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">eaGuid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorSourceConstraint">SourceConstraint</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">sourceconstraint</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorDestConstraint">DestConstraint</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">destconstraint</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorSourceIsNavigable">SourceIsNavigable</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">sourceisnavigable</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorDestIsNavigable">DestIsNavigable</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">destisnavigable</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorIsRoot">IsRoot</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">isroot</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorIsLeaf">IsLeaf</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">isleaf</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorIsSpec">IsSpec</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">isspec</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorSourceChangeable">SourceChangeable</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 12 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">sourcechangeable</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorDestChangeable">DestChangeable</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 12 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">destchangeable</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorSourceTS">SourceTS</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 12 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">sourcets</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorDestTS">DestTS</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 12 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">destts</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorStateFlags">StateFlags</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">stateflags</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorActionFlags">ActionFlags</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">actionflags</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorIsSignal">IsSignal</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">issignal</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorIsStimulus">IsStimulus</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">isstimulus</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorDispatchAction">DispatchAction</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">dispatchaction</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorTarget2">Target2</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">target2</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorStyleEx">StyleEx</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">styleex</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorSourceStereotype">SourceStereotype</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">sourcestereotype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorDestStereotype">DestStereotype</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">deststereotype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorSourceStyle">SourceStyle</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">sourcestyle</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorDestStyle">DestStyle</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">deststyle</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorEventFlags">EventFlags</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">eventflags</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_connectorconstraint"/>\r
-<h2>t_connectorconstraint</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_connectorconstraintConnectorID">ConnectorID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">connectorid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_connectorconstraintConstraint">Constraint</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">constraint</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorconstraintConstraintType">ConstraintType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">constrainttype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectorconstraintNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_connectortag"/>\r
-<h2>t_connectortag</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_connectortagPropertyID">PropertyID</td>\r
- <td class="normalFont">COUNTER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">propertyid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectortagElementID">ElementID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">elementid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectortagProperty">Property</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">property</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectortagVALUE">VALUE</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">value</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectortagNOTES">NOTES</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectortagea_guid">ea_guid</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 40 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">eaGuid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_connectortypes"/>\r
-<h2>t_connectortypes</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_connectortypesConnector_Type">Connector_Type</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">connectorType</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_connectortypesDescription">Description</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">description</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_constants"/>\r
-<h2>t_constants</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_constantsConstantName">ConstantName</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">constantname</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_constantsConstantValue">ConstantValue</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">constantvalue</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_constrainttypes"/>\r
-<h2>t_constrainttypes</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_constrainttypesConstraint">Constraint</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 16 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">constraint</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Metric Code</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_constrainttypesDescription">Description</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">description</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Description of Metric</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_constrainttypesNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Further notes</td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_datatypes"/>\r
-<h2>t_datatypes</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_datatypesType">Type</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">type</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_datatypesProductName">ProductName</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">productname</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_datatypesDataType">DataType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">datatype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_datatypesSize">Size</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">size</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_datatypesMaxLen">MaxLen</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">maxlen</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_datatypesMaxPrec">MaxPrec</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">maxprec</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_datatypesMaxScale">MaxScale</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">maxscale</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_datatypesDefaultLen">DefaultLen</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">defaultlen</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_datatypesDefaultPrec">DefaultPrec</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">defaultprec</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_datatypesDefaultScale">DefaultScale</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">defaultscale</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_datatypesUser">User</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">user</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_datatypesPDATA1">PDATA1</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">pdata1</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_datatypesPDATA2">PDATA2</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">pdata2</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_datatypesPDATA3">PDATA3</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">pdata3</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_datatypesPDATA4">PDATA4</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">pdata4</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_datatypesHasLength">HasLength</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">haslength</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_datatypesGenericType">GenericType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">generictype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_datatypesDatatypeID">DatatypeID</td>\r
- <td class="normalFont">COUNTER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">datatypeid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_diagram"/>\r
-<h2>t_diagram</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_diagramDiagram_ID">Diagram_ID</td>\r
- <td class="normalFont">COUNTER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">diagramId</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramPackage_ID">Package_ID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">packageId</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Diagram belongs in this package</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramParentID">ParentID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">parentid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Optional objectID that this diagram exists under - e.g.Sequence diagram under UseCase node</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramDiagram_Type">Diagram_Type</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">diagramType</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramName">Name</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">name</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramVersion">Version</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">version</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramAuthor">Author</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">author</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramShowDetails">ShowDetails</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">showdetails</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramStereotype">Stereotype</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">stereotype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramAttPub">AttPub</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">attpub</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramAttPri">AttPri</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">attpri</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramAttPro">AttPro</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">attpro</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramOrientation">Orientation</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 1 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">orientation</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramcx">cx</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">cx</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramcy">cy</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">cy</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramScale">Scale</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">scale</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramCreatedDate">CreatedDate</td>\r
- <td class="normalFont">DATETIME</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">createddate</td>\r
- <td class="normalFont">java.sql.Timestamp</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramModifiedDate">ModifiedDate</td>\r
- <td class="normalFont">DATETIME</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">modifieddate</td>\r
- <td class="normalFont">java.sql.Timestamp</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramHTMLPath">HTMLPath</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">htmlpath</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramShowForeign">ShowForeign</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">showforeign</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramShowBorder">ShowBorder</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">showborder</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramShowPackageContents">ShowPackageContents</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">showpackagecontents</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramPDATA">PDATA</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">pdata</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramLocked">Locked</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">locked</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_diagramea_guid">ea_guid</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 40 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">eaGuid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramTPos">TPos</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">tpos</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramSwimlanes">Swimlanes</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">swimlanes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramStyleEx">StyleEx</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">styleex</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_diagramlinks"/>\r
-<h2>t_diagramlinks</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramlinksDiagramID">DiagramID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">diagramid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramlinksConnectorID">ConnectorID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">connectorid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramlinksGeometry">Geometry</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">geometry</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramlinksStyle">Style</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">style</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramlinksHidden">Hidden</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">hidden</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramlinksPath">Path</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">path</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_diagramlinksInstance_ID">Instance_ID</td>\r
- <td class="normalFont">COUNTER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">instanceId</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_diagramobjects"/>\r
-<h2>t_diagramobjects</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramobjectsDiagram_ID">Diagram_ID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">diagramId</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramobjectsObject_ID">Object_ID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">objectId</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramobjectsRectTop">RectTop</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">recttop</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramobjectsRectLeft">RectLeft</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">rectleft</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramobjectsRectRight">RectRight</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">rectright</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramobjectsRectBottom">RectBottom</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">rectbottom</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramobjectsSequence">Sequence</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">sequence</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramobjectsObjectStyle">ObjectStyle</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">objectstyle</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_diagramobjectsInstance_ID">Instance_ID</td>\r
- <td class="normalFont">COUNTER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">instanceId</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_diagramtypes"/>\r
-<h2>t_diagramtypes</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_diagramtypesDiagram_Type">Diagram_Type</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">diagramType</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramtypesName">Name</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">name</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_diagramtypesPackage_ID">Package_ID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">packageId</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_document"/>\r
-<h2>t_document</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_documentDocID">DocID</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 40 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">docid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_documentDocName">DocName</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 100 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">docname</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_documentNotes">Notes</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_documentStyle">Style</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">style</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_documentElementID">ElementID</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 40 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">elementid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_documentElementType">ElementType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">elementtype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_documentStrContent">StrContent</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">strcontent</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_documentBinContent">BinContent</td>\r
- <td class="normalFont">LONGBINARY</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">bincontent</td>\r
- <td class="normalFont">byte[]</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_documentDocType">DocType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 100 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">doctype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_documentAuthor">Author</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">author</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_documentVersion">Version</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">version</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_documentIsActive">IsActive</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">isactive</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_documentSequence">Sequence</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">sequence</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_documentDocDate">DocDate</td>\r
- <td class="normalFont">DATETIME</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">docdate</td>\r
- <td class="normalFont">java.sql.Timestamp</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_ecf"/>\r
-<h2>t_ecf</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_ecfECFID">ECFID</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 12 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">ecfid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Technical Factor Coe</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_ecfDescription">Description</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">description</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Description of TCF</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_ecfWeight">Weight</td>\r
- <td class="normalFont">DOUBLE</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">weight</td>\r
- <td class="normalFont">java.math.BigDecimal</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Weighting</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_ecfValue">Value</td>\r
- <td class="normalFont">DOUBLE</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">value</td>\r
- <td class="normalFont">java.math.BigDecimal</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_ecfNotes">Notes</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Comment</td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_efforttypes"/>\r
-<h2>t_efforttypes</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_efforttypesEffortType">EffortType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 12 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">efforttype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Risk Code</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_efforttypesDescription">Description</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">description</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Description of Risk</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_efforttypesNumericWeight">NumericWeight</td>\r
- <td class="normalFont">DOUBLE</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">numericweight</td>\r
- <td class="normalFont">java.math.BigDecimal</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Numeric factor to apply to metric - accepts decimal fractions</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_efforttypesNotes">Notes</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Further notes</td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_files"/>\r
-<h2>t_files</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_filesFileID">FileID</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">fileid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_filesAppliesTo">AppliesTo</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">appliesto</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_filesCategory">Category</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 100 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">category</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_filesName">Name</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 150 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">name</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_filesFile">File</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">file</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_filesNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_filesFileDate">FileDate</td>\r
- <td class="normalFont">DATETIME</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">filedate</td>\r
- <td class="normalFont">java.sql.Timestamp</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_filesFileSize">FileSize</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">filesize</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_genopt"/>\r
-<h2>t_genopt</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_genoptAppliesTo">AppliesTo</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 12 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">appliesto</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_genoptOption">Option</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">option</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_glossary"/>\r
-<h2>t_glossary</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_glossaryTerm">Term</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">term</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_glossaryType">Type</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">type</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_glossaryMeaning">Meaning</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">meaning</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_glossaryGlossaryID">GlossaryID</td>\r
- <td class="normalFont">COUNTER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">glossaryid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_html"/>\r
-<h2>t_html</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_htmlType">Type</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">type</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_htmlTemplate">Template</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">template</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_image"/>\r
-<h2>t_image</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_imageImageID">ImageID</td>\r
- <td class="normalFont">COUNTER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">imageid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_imageName">Name</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">name</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_imageType">Type</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">type</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_imageImage">Image</td>\r
- <td class="normalFont">LONGBINARY</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">image</td>\r
- <td class="normalFont">byte[]</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_implement"/>\r
-<h2>t_implement</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_implementType">Type</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">type</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_issues"/>\r
-<h2>t_issues</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_issuesIssue">Issue</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">issue</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_issuesIssueDate">IssueDate</td>\r
- <td class="normalFont">DATETIME</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">issuedate</td>\r
- <td class="normalFont">java.sql.Timestamp</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_issuesOwner">Owner</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">owner</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_issuesStatus">Status</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">status</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_issuesNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_issuesResolver">Resolver</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">resolver</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_issuesDateResolved">DateResolved</td>\r
- <td class="normalFont">DATETIME</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">dateresolved</td>\r
- <td class="normalFont">java.sql.Timestamp</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_issuesResolution">Resolution</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">resolution</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_issuesIssueID">IssueID</td>\r
- <td class="normalFont">COUNTER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">issueid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_issuesCategory">Category</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">category</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_issuesPriority">Priority</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">priority</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_issuesSeverity">Severity</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">severity</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_issuesIssueType">IssueType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 100 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">issuetype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_lists"/>\r
-<h2>t_lists</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_listsListID">ListID</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">listid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_listsCategory">Category</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 100 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">category</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_listsName">Name</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 150 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">name</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_listsNVal">NVal</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">nval</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_listsNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_mainttypes"/>\r
-<h2>t_mainttypes</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_mainttypesMaintType">MaintType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 12 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">mainttype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Maintenance Type</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_mainttypesDescription">Description</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">description</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Description</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_mainttypesNumericWeight">NumericWeight</td>\r
- <td class="normalFont">DOUBLE</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">numericweight</td>\r
- <td class="normalFont">java.math.BigDecimal</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Numeric weight tot apply to this type of problem</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_mainttypesNotes">Notes</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Further notes</td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_method"/>\r
-<h2>t_method</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_methodObject_ID">Object_ID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">objectId</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_methodName">Name</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">name</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_methodScope">Scope</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">scope</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_methodType">Type</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">type</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_metrictypes"/>\r
-<h2>t_metrictypes</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_metrictypesMetric">Metric</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 12 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">metric</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Metric Code</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_metrictypesDescription">Description</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">description</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Description of Metric</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_metrictypesNumericWeight">NumericWeight</td>\r
- <td class="normalFont">DOUBLE</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">numericweight</td>\r
- <td class="normalFont">java.math.BigDecimal</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Numeric factor to apply to metric - accepts decimal fractions</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_metrictypesNotes">Notes</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Further notes</td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_object"/>\r
-<h2>t_object</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_objectObject_ID">Object_ID</td>\r
- <td class="normalFont">COUNTER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">objectId</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> The objects unique ID</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectObject_Type">Object_Type</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">objectType</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> The object type</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectDiagram_ID">Diagram_ID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">diagramId</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Diagram ID</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectName">Name</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">name</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Object name</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectAlias">Alias</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">alias</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectAuthor">Author</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">author</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectVersion">Version</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">version</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectNote">Note</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">note</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectPackage_ID">Package_ID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">packageId</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectStereotype">Stereotype</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">stereotype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectNType">NType</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">ntype</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectComplexity">Complexity</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">complexity</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Subjective Measure of object complexity</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectEffort">Effort</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">effort</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Estimated Effort</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectStyle">Style</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">style</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectBackcolor">Backcolor</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">backcolor</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectBorderStyle">BorderStyle</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">borderstyle</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Dash, dot ... depends on object - default = solid</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectBorderWidth">BorderWidth</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">borderwidth</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectFontcolor">Fontcolor</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">fontcolor</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectBordercolor">Bordercolor</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">bordercolor</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectCreatedDate">CreatedDate</td>\r
- <td class="normalFont">DATETIME</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">createddate</td>\r
- <td class="normalFont">java.sql.Timestamp</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectModifiedDate">ModifiedDate</td>\r
- <td class="normalFont">DATETIME</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">modifieddate</td>\r
- <td class="normalFont">java.sql.Timestamp</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectStatus">Status</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">status</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectTagged">Tagged</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">tagged</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectPDATA1">PDATA1</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">pdata1</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Private data - may be used for different reasons by different object types</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectPDATA2">PDATA2</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">pdata2</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectPDATA3">PDATA3</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">pdata3</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectPDATA4">PDATA4</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">pdata4</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectPDATA5">PDATA5</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">pdata5</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectConcurrency">Concurrency</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">concurrency</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectVisibility">Visibility</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">visibility</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectPersistence">Persistence</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">persistence</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectCardinality">Cardinality</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">cardinality</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectGenType">GenType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">gentype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectGenFile">GenFile</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">genfile</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectHeader1">Header1</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">header1</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectHeader2">Header2</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">header2</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectPhase">Phase</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">phase</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectScope">Scope</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 25 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">scope</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectGenOption">GenOption</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">genoption</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectGenLinks">GenLinks</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">genlinks</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectClassifier">Classifier</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">classifier</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_objectea_guid">ea_guid</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 40 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">eaGuid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectParentID">ParentID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">parentid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectRunState">RunState</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">runstate</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectClassifier_guid">Classifier_guid</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 40 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">classifierGuid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectTPos">TPos</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">tpos</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectIsRoot">IsRoot</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">isroot</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectIsLeaf">IsLeaf</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">isleaf</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectIsSpec">IsSpec</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">isspec</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectIsActive">IsActive</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">isactive</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectStateFlags">StateFlags</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">stateflags</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectPackageFlags">PackageFlags</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">packageflags</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectMultiplicity">Multiplicity</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">multiplicity</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectStyleEx">StyleEx</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">styleex</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectActionFlags">ActionFlags</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">actionflags</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectEventFlags">EventFlags</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">eventflags</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_objectconstraint"/>\r
-<h2>t_objectconstraint</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_objectconstraintObject_ID">Object_ID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">objectId</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_objectconstraintConstraint">Constraint</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">constraint</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_objectconstraintConstraintType">ConstraintType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 30 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">constrainttype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectconstraintWeight">Weight</td>\r
- <td class="normalFont">DOUBLE</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">weight</td>\r
- <td class="normalFont">java.math.BigDecimal</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectconstraintNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectconstraintStatus">Status</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">status</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_objecteffort"/>\r
-<h2>t_objecteffort</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_objecteffortObject_ID">Object_ID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">objectId</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_objecteffortEffort">Effort</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">effort</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objecteffortEffortType">EffortType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 12 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">efforttype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objecteffortEValue">EValue</td>\r
- <td class="normalFont">DOUBLE</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">evalue</td>\r
- <td class="normalFont">java.math.BigDecimal</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objecteffortNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_objectfiles"/>\r
-<h2>t_objectfiles</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_objectfilesObject_ID">Object_ID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">objectId</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_objectfilesFileName">FileName</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">filename</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectfilesType">Type</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">type</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectfilesNote">Note</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">note</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectfilesFileSize">FileSize</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">filesize</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectfilesFileDate">FileDate</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">filedate</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_objectmetrics"/>\r
-<h2>t_objectmetrics</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_objectmetricsObject_ID">Object_ID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">objectId</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Object metric applies to</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_objectmetricsMetric">Metric</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">metric</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectmetricsMetricType">MetricType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 12 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">metrictype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Metric code</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectmetricsEValue">EValue</td>\r
- <td class="normalFont">DOUBLE</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">evalue</td>\r
- <td class="normalFont">java.math.BigDecimal</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Value to give this metric in this context</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectmetricsNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_objectproblems"/>\r
-<h2>t_objectproblems</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_objectproblemsObject_ID">Object_ID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">objectId</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_objectproblemsProblem">Problem</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">problem</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_objectproblemsProblemType">ProblemType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">problemtype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectproblemsDateReported">DateReported</td>\r
- <td class="normalFont">DATETIME</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">datereported</td>\r
- <td class="normalFont">java.sql.Timestamp</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectproblemsStatus">Status</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">status</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectproblemsProblemNotes">ProblemNotes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">problemnotes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectproblemsReportedBy">ReportedBy</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">reportedby</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectproblemsResolvedBy">ResolvedBy</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">resolvedby</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectproblemsDateResolved">DateResolved</td>\r
- <td class="normalFont">DATETIME</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">dateresolved</td>\r
- <td class="normalFont">java.sql.Timestamp</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectproblemsVersion">Version</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">version</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectproblemsResolverNotes">ResolverNotes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">resolvernotes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectproblemsPriority">Priority</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">priority</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectproblemsSeverity">Severity</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">severity</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_objectproperties"/>\r
-<h2>t_objectproperties</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_objectpropertiesPropertyID">PropertyID</td>\r
- <td class="normalFont">COUNTER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">propertyid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectpropertiesObject_ID">Object_ID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">objectId</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectpropertiesProperty">Property</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">property</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectpropertiesValue">Value</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">value</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectpropertiesNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectpropertiesea_guid">ea_guid</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 40 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">eaGuid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_objectrequires"/>\r
-<h2>t_objectrequires</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_objectrequiresReqID">ReqID</td>\r
- <td class="normalFont">COUNTER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">reqid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectrequiresObject_ID">Object_ID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">objectId</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectrequiresRequirement">Requirement</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">requirement</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectrequiresReqType">ReqType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">reqtype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectrequiresStatus">Status</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">status</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectrequiresNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectrequiresStability">Stability</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">stability</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectrequiresDifficulty">Difficulty</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">difficulty</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectrequiresPriority">Priority</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">priority</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectrequiresLastUpdate">LastUpdate</td>\r
- <td class="normalFont">DATETIME</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">lastupdate</td>\r
- <td class="normalFont">java.sql.Timestamp</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_objectresource"/>\r
-<h2>t_objectresource</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_objectresourceObject_ID">Object_ID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">objectId</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_objectresourceResource">Resource</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">resource</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_objectresourceRole">Role</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">role</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectresourceTime">Time</td>\r
- <td class="normalFont">DOUBLE</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">time</td>\r
- <td class="normalFont">java.math.BigDecimal</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectresourceNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectresourcePercentComplete">PercentComplete</td>\r
- <td class="normalFont">SMALLINT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">percentcomplete</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectresourceDateStart">DateStart</td>\r
- <td class="normalFont">DATETIME</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">datestart</td>\r
- <td class="normalFont">java.sql.Timestamp</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectresourceDateEnd">DateEnd</td>\r
- <td class="normalFont">DATETIME</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">dateend</td>\r
- <td class="normalFont">java.sql.Timestamp</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectresourceHistory">History</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">history</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectresourceExpectedHours">ExpectedHours</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">expectedhours</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectresourceActualHours">ActualHours</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">actualhours</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_objectrisks"/>\r
-<h2>t_objectrisks</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_objectrisksObject_ID">Object_ID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">objectId</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_objectrisksRisk">Risk</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">risk</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectrisksRiskType">RiskType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 12 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">risktype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectrisksEValue">EValue</td>\r
- <td class="normalFont">DOUBLE</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">evalue</td>\r
- <td class="normalFont">java.math.BigDecimal</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectrisksNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_objectscenarios"/>\r
-<h2>t_objectscenarios</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_objectscenariosObject_ID">Object_ID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">objectId</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_objectscenariosScenario">Scenario</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">scenario</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectscenariosScenarioType">ScenarioType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 12 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">scenariotype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectscenariosEValue">EValue</td>\r
- <td class="normalFont">DOUBLE</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">evalue</td>\r
- <td class="normalFont">java.math.BigDecimal</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectscenariosNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectscenariosXMLContent">XMLContent</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">xmlcontent</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objectscenariosea_guid">ea_guid</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 40 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">eaGuid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_objecttests"/>\r
-<h2>t_objecttests</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_objecttestsObject_ID">Object_ID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">objectId</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_objecttestsTest">Test</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">test</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_objecttestsTestClass">TestClass</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">testclass</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objecttestsTestType">TestType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">testtype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objecttestsNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objecttestsInputData">InputData</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">inputdata</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objecttestsAcceptanceCriteria">AcceptanceCriteria</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">acceptancecriteria</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objecttestsStatus">Status</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 32 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">status</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objecttestsDateRun">DateRun</td>\r
- <td class="normalFont">DATETIME</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">daterun</td>\r
- <td class="normalFont">java.sql.Timestamp</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objecttestsResults">Results</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">results</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objecttestsRunBy">RunBy</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">runby</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objecttestsCheckBy">CheckBy</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">checkby</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_objecttrx"/>\r
-<h2>t_objecttrx</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_objecttrxObject_ID">Object_ID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">objectId</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_objecttrxTRX">TRX</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">trx</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_objecttrxTRXType">TRXType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 12 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">trxtype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objecttrxWeight">Weight</td>\r
- <td class="normalFont">DOUBLE</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">weight</td>\r
- <td class="normalFont">java.math.BigDecimal</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objecttrxNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_objecttypes"/>\r
-<h2>t_objecttypes</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_objecttypesObject_Type">Object_Type</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">objectType</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objecttypesDescription">Description</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">description</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objecttypesDesignObject">DesignObject</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">designobject</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_objecttypesImageID">ImageID</td>\r
- <td class="normalFont">SMALLINT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">imageid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_ocf"/>\r
-<h2>t_ocf</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_ocfObjectType">ObjectType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">objecttype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Type of Object e.g Actor, UseCase, Class</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_ocfComplexityWeight">ComplexityWeight</td>\r
- <td class="normalFont">DOUBLE</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">complexityweight</td>\r
- <td class="normalFont">java.math.BigDecimal</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Factor to multiply complexty by for metrics</td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_operation"/>\r
-<h2>t_operation</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_operationOperationID">OperationID</td>\r
- <td class="normalFont">COUNTER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">operationid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationObject_ID">Object_ID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">objectId</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationName">Name</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">name</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationScope">Scope</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">scope</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationType">Type</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">type</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationReturnArray">ReturnArray</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 1 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">returnarray</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationStereotype">Stereotype</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">stereotype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationIsStatic">IsStatic</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 1 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">isstatic</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationConcurrency">Concurrency</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">concurrency</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationBehaviour">Behaviour</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">behaviour</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationGenOption">GenOption</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">genoption</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationPos">Pos</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">pos</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationStyle">Style</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">style</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationPure">Pure</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">pure</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationClassifier">Classifier</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">classifier</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationCode">Code</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">code</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationIsRoot">IsRoot</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">isroot</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationIsLeaf">IsLeaf</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">isleaf</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationIsQuery">IsQuery</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">isquery</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationStateFlags">StateFlags</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">stateflags</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationea_guid">ea_guid</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">eaGuid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationStyleEx">StyleEx</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">styleex</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_operationparams"/>\r
-<h2>t_operationparams</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_operationparamsOperationID">OperationID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">operationid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_operationparamsName">Name</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">name</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationparamsType">Type</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">type</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationparamsNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationparamsPos">Pos</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">pos</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationparamsStyle">Style</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">style</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationparamsKind">Kind</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 12 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">kind</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationparamsClassifier">Classifier</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">classifier</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationparamsea_guid">ea_guid</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">eaGuid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationparamsStyleEx">StyleEx</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">styleex</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_operationposts"/>\r
-<h2>t_operationposts</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_operationpostsOperationID">OperationID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">operationid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_operationpostsPostCondition">PostCondition</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">postcondition</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationpostsType">Type</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">type</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationpostsNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_operationpres"/>\r
-<h2>t_operationpres</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_operationpresOperationID">OperationID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">operationid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_operationpresPreCondition">PreCondition</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">precondition</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationpresType">Type</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">type</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationpresNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_operationtag"/>\r
-<h2>t_operationtag</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_operationtagPropertyID">PropertyID</td>\r
- <td class="normalFont">COUNTER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">propertyid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationtagElementID">ElementID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">elementid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationtagProperty">Property</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">property</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationtagVALUE">VALUE</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">value</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationtagNOTES">NOTES</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_operationtagea_guid">ea_guid</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 40 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">eaGuid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_package"/>\r
-<h2>t_package</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_packagePackage_ID">Package_ID</td>\r
- <td class="normalFont">COUNTER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">packageId</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_packageName">Name</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">name</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_packageParent_ID">Parent_ID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">parentId</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_packageCreatedDate">CreatedDate</td>\r
- <td class="normalFont">DATETIME</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">createddate</td>\r
- <td class="normalFont">java.sql.Timestamp</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_packageModifiedDate">ModifiedDate</td>\r
- <td class="normalFont">DATETIME</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">modifieddate</td>\r
- <td class="normalFont">java.sql.Timestamp</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_packageNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_packageea_guid">ea_guid</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 40 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">eaGuid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_packageXMLPath">XMLPath</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">xmlpath</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_packageIsControlled">IsControlled</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">iscontrolled</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_packageLastLoadDate">LastLoadDate</td>\r
- <td class="normalFont">DATETIME</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">lastloaddate</td>\r
- <td class="normalFont">java.sql.Timestamp</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_packageLastSaveDate">LastSaveDate</td>\r
- <td class="normalFont">DATETIME</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">lastsavedate</td>\r
- <td class="normalFont">java.sql.Timestamp</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_packageVersion">Version</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">version</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_packagePkgOwner">PkgOwner</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">pkgowner</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_packageUMLVersion">UMLVersion</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">umlversion</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_packageUseDTD">UseDTD</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">usedtd</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_packageLogXML">LogXML</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">logxml</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_packageCodePath">CodePath</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">codepath</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_packageNamespace">Namespace</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">namespace</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_packageTPos">TPos</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">tpos</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_packagePackageFlags">PackageFlags</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">packageflags</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_packageBatchSave">BatchSave</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">batchsave</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_packageBatchLoad">BatchLoad</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">batchload</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_palette"/>\r
-<h2>t_palette</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_palettePaletteID">PaletteID</td>\r
- <td class="normalFont">COUNTER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">paletteid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_paletteName">Name</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">name</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_paletteType">Type</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">type</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_paletteitem"/>\r
-<h2>t_paletteitem</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_paletteitemPaletteID">PaletteID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">paletteid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_paletteitemItemID">ItemID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">itemid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_phase"/>\r
-<h2>t_phase</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_phasePhaseID">PhaseID</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 40 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">phaseid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_phasePhaseName">PhaseName</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 100 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">phasename</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_phasePhaseNotes">PhaseNotes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">phasenotes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_phasePhaseStyle">PhaseStyle</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">phasestyle</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_phaseStartDate">StartDate</td>\r
- <td class="normalFont">DATETIME</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">startdate</td>\r
- <td class="normalFont">java.sql.Timestamp</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_phaseEndDate">EndDate</td>\r
- <td class="normalFont">DATETIME</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">enddate</td>\r
- <td class="normalFont">java.sql.Timestamp</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_phasePhaseContent">PhaseContent</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">phasecontent</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_primitives"/>\r
-<h2>t_primitives</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_primitivesDatatype">Datatype</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">datatype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_primitivesDescription">Description</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">description</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_problemtypes"/>\r
-<h2>t_problemtypes</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_problemtypesProblemType">ProblemType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 12 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">problemtype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Metric Code</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_problemtypesDescription">Description</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">description</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Description of Metric</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_problemtypesNumericWeight">NumericWeight</td>\r
- <td class="normalFont">DOUBLE</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">numericweight</td>\r
- <td class="normalFont">java.math.BigDecimal</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Numeric factor to apply to metric - accepts decimal fractions</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_problemtypesNotes">Notes</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Further notes</td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_projectroles"/>\r
-<h2>t_projectroles</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_projectrolesRole">Role</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">role</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Role Name</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_projectrolesDescription">Description</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">description</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Description</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_projectrolesNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Further notes</td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_propertytypes"/>\r
-<h2>t_propertytypes</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_propertytypesProperty">Property</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">property</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_propertytypesDescription">Description</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">description</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_propertytypesNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_requiretypes"/>\r
-<h2>t_requiretypes</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_requiretypesRequirement">Requirement</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 12 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">requirement</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Rrequirement Code</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_requiretypesDescription">Description</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">description</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Description of Metric</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_requiretypesNumericWeight">NumericWeight</td>\r
- <td class="normalFont">DOUBLE</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">numericweight</td>\r
- <td class="normalFont">java.math.BigDecimal</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Numeric factor to apply to metric - accepts decimal fractions</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_requiretypesNotes">Notes</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Further notes</td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_resources"/>\r
-<h2>t_resources</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_resourcesName">Name</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">name</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_resourcesOrganisation">Organisation</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">organisation</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_resourcesPhone1">Phone1</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">phone1</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_resourcesPhone2">Phone2</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">phone2</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_resourcesMobile">Mobile</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">mobile</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_resourcesFax">Fax</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">fax</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_resourcesEmail">Email</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">email</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_resourcesRoles">Roles</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">roles</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_resourcesNotes">Notes</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_risktypes"/>\r
-<h2>t_risktypes</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_risktypesRisk">Risk</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 12 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">risk</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Risk Code</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_risktypesDescription">Description</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">description</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Description of Risk</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_risktypesNumericWeight">NumericWeight</td>\r
- <td class="normalFont">DOUBLE</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">numericweight</td>\r
- <td class="normalFont">java.math.BigDecimal</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Numeric factor to apply to metric - accepts decimal fractions</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_risktypesNotes">Notes</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Further notes</td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_roleconstraint"/>\r
-<h2>t_roleconstraint</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_roleconstraintConnectorID">ConnectorID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">connectorid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_roleconstraintConstraint">Constraint</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">constraint</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_roleconstraintConnectorEnd">ConnectorEnd</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">connectorend</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_roleconstraintConstraintType">ConstraintType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 12 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">constrainttype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_roleconstraintNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_rtf"/>\r
-<h2>t_rtf</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rtfType">Type</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">type</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rtfTemplate">Template</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">template</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_rtfreport"/>\r
-<h2>t_rtfreport</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_rtfreportTemplateID">TemplateID</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 200 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">templateid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rtfreportRootPackage">RootPackage</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">rootpackage</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rtfreportFilename">Filename</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">filename</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rtfreportDetails">Details</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">details</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rtfreportProcessChildren">ProcessChildren</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">processchildren</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rtfreportShowDiagrams">ShowDiagrams</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">showdiagrams</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rtfreportHeading">Heading</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">heading</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rtfreportRequirements">Requirements</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">requirements</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rtfreportAssociations">Associations</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">associations</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rtfreportScenarios">Scenarios</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">scenarios</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rtfreportChildDiagrams">ChildDiagrams</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">childdiagrams</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rtfreportAttributes">Attributes</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">attributes</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rtfreportMethods">Methods</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">methods</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rtfreportImageType">ImageType</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">imagetype</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rtfreportPaging">Paging</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">paging</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rtfreportIntro">Intro</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">intro</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rtfreportResources">Resources</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">resources</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rtfreportConstraints">Constraints</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">constraints</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rtfreportTagged">Tagged</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">tagged</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rtfreportShowTag">ShowTag</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">showtag</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rtfreportShowAlias">ShowAlias</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">showalias</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rtfreportPDATA1">PDATA1</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">pdata1</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rtfreportPDATA2">PDATA2</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">pdata2</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rtfreportPDATA3">PDATA3</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">pdata3</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rtfreportPDATA4">PDATA4</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">pdata4</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_rules"/>\r
-<h2>t_rules</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_rulesRuleID">RuleID</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">ruleid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rulesRuleName">RuleName</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">rulename</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rulesRuleType">RuleType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">ruletype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rulesRuleActive">RuleActive</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">ruleactive</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rulesErrorMsg">ErrorMsg</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">errormsg</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rulesFlags">Flags</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">flags</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rulesRuleOCL">RuleOCL</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">ruleocl</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rulesNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_rulesRuleXML">RuleXML</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">rulexml</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_scenariotypes"/>\r
-<h2>t_scenariotypes</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_scenariotypesScenarioType">ScenarioType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 12 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">scenariotype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Metric Code</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_scenariotypesDescription">Description</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">description</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Description of Metric</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_scenariotypesNumericWeight">NumericWeight</td>\r
- <td class="normalFont">DOUBLE</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">numericweight</td>\r
- <td class="normalFont">java.math.BigDecimal</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Numeric factor to apply to metric - accepts decimal fractions</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_scenariotypesNotes">Notes</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Further notes</td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_script"/>\r
-<h2>t_script</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_scriptScriptID">ScriptID</td>\r
- <td class="normalFont">COUNTER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">scriptid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_scriptScriptCategory">ScriptCategory</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 100 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">scriptcategory</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_scriptScriptName">ScriptName</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 150 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">scriptname</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_scriptScriptAuthor">ScriptAuthor</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">scriptauthor</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_scriptNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_scriptScript">Script</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">script</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_secgroup"/>\r
-<h2>t_secgroup</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_secgroupGroupID">GroupID</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 40 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">groupid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_secgroupGroupName">GroupName</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 32 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">groupname</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_secgroupDescription">Description</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 100 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">description</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_secgrouppermission"/>\r
-<h2>t_secgrouppermission</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_secgrouppermissionGroupID">GroupID</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 40 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">groupid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_secgrouppermissionPermissionID">PermissionID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">permissionid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_seclocks"/>\r
-<h2>t_seclocks</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_seclocksUserID">UserID</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 40 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">userid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_seclocksGroupID">GroupID</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 40 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">groupid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_seclocksEntityType">EntityType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 32 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">entitytype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_seclocksEntityID">EntityID</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 40 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">entityid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_seclocksTimestamp">Timestamp</td>\r
- <td class="normalFont">DATETIME</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">timestamp</td>\r
- <td class="normalFont">java.sql.Timestamp</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_seclocksLockType">LockType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">locktype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_secpermission"/>\r
-<h2>t_secpermission</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_secpermissionPermissionID">PermissionID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">permissionid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_secpermissionPermissionName">PermissionName</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">permissionname</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_secpolicies"/>\r
-<h2>t_secpolicies</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_secpoliciesProperty">Property</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 100 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">property</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_secpoliciesValue">Value</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">value</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_secuser"/>\r
-<h2>t_secuser</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_secuserUserID">UserID</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 40 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">userid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_secuserUserLogin">UserLogin</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 32 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">userlogin</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_secuserFirstName">FirstName</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">firstname</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_secuserSurname">Surname</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">surname</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_secuserDepartment">Department</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">department</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_secuserPassword">Password</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 12 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">password</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_secusergroup"/>\r
-<h2>t_secusergroup</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_secusergroupUserID">UserID</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 40 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">userid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_secusergroupGroupID">GroupID</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 40 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">groupid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_secuserpermission"/>\r
-<h2>t_secuserpermission</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_secuserpermissionUserID">UserID</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 40 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">userid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_secuserpermissionPermissionID">PermissionID</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">permissionid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_snapshot"/>\r
-<h2>t_snapshot</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_snapshotSnapshotID">SnapshotID</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 40 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">snapshotid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_snapshotSeriesID">SeriesID</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 40 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">seriesid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_snapshotPosition">Position</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">position</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_snapshotSnapshotName">SnapshotName</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 100 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">snapshotname</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_snapshotNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_snapshotStyle">Style</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">style</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_snapshotElementID">ElementID</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 40 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">elementid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_snapshotElementType">ElementType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">elementtype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_snapshotStrContent">StrContent</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">strcontent</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_snapshotBinContent1">BinContent1</td>\r
- <td class="normalFont">LONGBINARY</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">bincontent1</td>\r
- <td class="normalFont">byte[]</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_snapshotBinContent2">BinContent2</td>\r
- <td class="normalFont">LONGBINARY</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">bincontent2</td>\r
- <td class="normalFont">byte[]</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_statustypes"/>\r
-<h2>t_statustypes</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_statustypesStatus">Status</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">status</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_statustypesDescription">Description</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">description</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_stereotypes"/>\r
-<h2>t_stereotypes</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_stereotypesStereotype">Stereotype</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">stereotype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_stereotypesAppliesTo">AppliesTo</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">appliesto</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_stereotypesDescription">Description</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">description</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_stereotypesMFEnabled">MFEnabled</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">mfenabled</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_stereotypesMFPath">MFPath</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">mfpath</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_stereotypesMetafile">Metafile</td>\r
- <td class="normalFont">LONGBINARY</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">metafile</td>\r
- <td class="normalFont">byte[]</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_stereotypesStyle">Style</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">style</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_stereotypesea_guid">ea_guid</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">eaGuid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_stereotypesVisualType">VisualType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 100 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">visualtype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_taggedvalue"/>\r
-<h2>t_taggedvalue</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_taggedvaluePropertyID">PropertyID</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 40 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">propertyid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_taggedvalueElementID">ElementID</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 40 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">elementid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_taggedvalueBaseClass">BaseClass</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 100 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">baseclass</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_taggedvalueTagValue">TagValue</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">tagvalue</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_taggedvalueNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_tasks"/>\r
-<h2>t_tasks</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_tasksTaskID">TaskID</td>\r
- <td class="normalFont">COUNTER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">taskid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_tasksName">Name</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">name</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_tasksTaskType">TaskType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">tasktype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_tasksNOTES">NOTES</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_tasksPriority">Priority</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">priority</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_tasksStatus">Status</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">status</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_tasksOwner">Owner</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">owner</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_tasksStartDate">StartDate</td>\r
- <td class="normalFont">DATETIME</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">startdate</td>\r
- <td class="normalFont">java.sql.Timestamp</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_tasksEndDate">EndDate</td>\r
- <td class="normalFont">DATETIME</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">enddate</td>\r
- <td class="normalFont">java.sql.Timestamp</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_tasksPhase">Phase</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">phase</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_tasksHistory">History</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">history</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_tasksPercent">Percent</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">percent</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_tasksTotalTime">TotalTime</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">totaltime</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_tasksActualTime">ActualTime</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">actualtime</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_tasksAssignedTo">AssignedTo</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 100 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">assignedto</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_tcf"/>\r
-<h2>t_tcf</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_tcfTCFID">TCFID</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 12 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">tcfid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Technical Factor Coe</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_tcfDescription">Description</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">description</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Description of TCF</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_tcfWeight">Weight</td>\r
- <td class="normalFont">DOUBLE</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">weight</td>\r
- <td class="normalFont">java.math.BigDecimal</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Weighting</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_tcfValue">Value</td>\r
- <td class="normalFont">DOUBLE</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">value</td>\r
- <td class="normalFont">java.math.BigDecimal</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_tcfNotes">Notes</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Comment</td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_template"/>\r
-<h2>t_template</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_templateTemplateID">TemplateID</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 40 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">templateid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_templateTemplateType">TemplateType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">templatetype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_templateTemplateName">TemplateName</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 100 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">templatename</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_templateNotes">Notes</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_templateStyle">Style</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">style</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_templateTemplate">Template</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">template</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_testclass"/>\r
-<h2>t_testclass</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_testclassTestClass">TestClass</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">testclass</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_testclassDescription">Description</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">description</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_testplans"/>\r
-<h2>t_testplans</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_testplansPlanID">PlanID</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">planid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_testplansCategory">Category</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 100 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">category</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_testplansName">Name</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 150 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">name</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_testplansAuthor">Author</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">author</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_testplansNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_testplansTestPlan">TestPlan</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">testplan</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_testtypes"/>\r
-<h2>t_testtypes</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_testtypesTestType">TestType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 12 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">testtype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Metric Code</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_testtypesDescription">Description</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">description</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Description of Metric</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_testtypesNumericWeight">NumericWeight</td>\r
- <td class="normalFont">DOUBLE</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">numericweight</td>\r
- <td class="normalFont">java.math.BigDecimal</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Numeric factor to apply to metric - accepts decimal fractions</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_testtypesNotes">Notes</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Further notes</td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_trxtypes"/>\r
-<h2>t_trxtypes</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_trxtypesDescription">Description</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">description</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Description of Metric</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_trxtypesNumericWeight">NumericWeight</td>\r
- <td class="normalFont">DOUBLE</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">numericweight</td>\r
- <td class="normalFont">java.math.BigDecimal</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Numeric factor to apply to metric - accepts decimal fractions</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_trxtypesNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> Further notes</td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_trxtypesTRX">TRX</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">trx</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_trxtypesTRX_ID">TRX_ID</td>\r
- <td class="normalFont">COUNTER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">trxId</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_trxtypesStyle">Style</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">style</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_umlpattern"/>\r
-<h2>t_umlpattern</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_umlpatternPatternID">PatternID</td>\r
- <td class="normalFont">COUNTER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">patternid</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_umlpatternPatternCategory">PatternCategory</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 100 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">patterncategory</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_umlpatternPatternName">PatternName</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 150 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">patternname</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_umlpatternStyle">Style</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">style</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_umlpatternNotes">Notes</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_umlpatternPatternXML">PatternXML</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">patternxml</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_umlpatternVersion">Version</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">version</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_version"/>\r
-<h2>t_version</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_versionElementID">ElementID</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">elementid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_versionVersionID">VersionID</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">versionid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_versionElementType">ElementType</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 100 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">elementtype</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_versionFlags">Flags</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">flags</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_versionExternalFile">ExternalFile</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">externalfile</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_versionNotes">Notes</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">notes</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_versionOwner">Owner</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">owner</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_versionVersionDate">VersionDate</td>\r
- <td class="normalFont">DATETIME</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">versiondate</td>\r
- <td class="normalFont">java.sql.Timestamp</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_versionBranch">Branch</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">branch</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_versionElementXML">ElementXML</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">elementxml</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_xref"/>\r
-<h2>t_xref</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_xrefXrefID">XrefID</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">xrefid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefName">Name</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">name</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefType">Type</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">type</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefVisibility">Visibility</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">visibility</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefNamespace">Namespace</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">namespace</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefRequirement">Requirement</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">requirement</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefConstraint">Constraint</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">constraint</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefBehavior">Behavior</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">behavior</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefPartition">Partition</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">partition</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefDescription">Description</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">description</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefClient">Client</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">client</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefSupplier">Supplier</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">supplier</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefLink">Link</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">link</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_xrefsystem"/>\r
-<h2>t_xrefsystem</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_xrefsystemXrefID">XrefID</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">xrefid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefsystemToolID">ToolID</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">toolid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefsystemName">Name</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">name</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefsystemType">Type</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">type</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefsystemVisibility">Visibility</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">visibility</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefsystemNamespace">Namespace</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">namespace</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefsystemRequirement">Requirement</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">requirement</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefsystemConstraint">Constraint</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">constraint</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefsystemBehavior">Behavior</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">behavior</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefsystemPartition">Partition</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">partition</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefsystemDescription">Description</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">description</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefsystemClient">Client</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">client</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefsystemSupplier">Supplier</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">supplier</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefsystemLink">Link</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">link</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="t_xrefuser"/>\r
-<h2>t_xrefuser</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="t_xrefuserXrefID">XrefID</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">xrefid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefuserToolID">ToolID</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">toolid</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefuserName">Name</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">name</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefuserType">Type</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">type</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefuserVisibility">Visibility</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">visibility</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefuserNamespace">Namespace</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">namespace</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefuserRequirement">Requirement</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">requirement</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefuserConstraint">Constraint</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">constraint</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefuserBehavior">Behavior</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">behavior</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefuserPartition">Partition</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">partition</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefuserDescription">Description</td>\r
- <td class="normalFont">LONGCHAR</td>\r
- <td class="normalFont"><center> 2147483647 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">description</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefuserClient">Client</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">client</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefuserSupplier">Supplier</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">supplier</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="t_xrefuserLink">Link</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 255 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">link</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="usys_system"/>\r
-<h2>usys_system</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="usys_systemProperty">Property</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">property</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="usys_systemValue">Value</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">value</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="usysOldTables"/>\r
-<h2>usysOldTables</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="usysOldTablesTableName">TableName</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">tablename</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="usysOldTablesNewName">NewName</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">newname</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="usysOldTablesRelOrder">RelOrder</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">relorder</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="usysOldTablesFixCode">FixCode</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">fixcode</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="usysQueries"/>\r
-<h2>usysQueries</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="usysQueriesQueryName">QueryName</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">queryname</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="usysQueriesNewName">NewName</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">newname</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="usysQueriesFixCode">FixCode</td>\r
- <td class="normalFont">BIT</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">fixcode</td>\r
- <td class="normalFont">Boolean</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-<a name="usysTables"/>\r
-<h2>usysTables</h2>\r
-\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">JavaType</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> o </center></td>\r
- <td class="normalFont" id="usysTablesTableName">TableName</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">tablename</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="usysTablesRelOrder">RelOrder</td>\r
- <td class="normalFont">INTEGER</td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">relorder</td>\r
- <td class="normalFont">java.lang.Integer</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="usysTablesDisplayName">DisplayName</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">displayname</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="usysTablesFromVer">FromVer</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">fromver</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
- <tr>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont" id="usysTablesToVer">ToVer</td>\r
- <td class="normalFont">VARCHAR</td>\r
- <td class="normalFont"><center> 50 </center></td>\r
- <td class="normalFont"><center> </center></td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"><a href="#"></a> </td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont">tover</td>\r
- <td class="normalFont">String</td>\r
- <td class="normalFont"> </td>\r
- <td class="normalFont"> </td>\r
- </tr>\r
-</table>\r
-<script>\r
-</script>\r
-\r
-\r
-\r
-</body>\r
-</html>\r
+++ /dev/null
-Directory for Document\r
+++ /dev/null
-Directory for SchemaFile\r
+++ /dev/null
-#set ( $hfname= "data/dataset.vm" )\r
-#set ( $fname= "data/table.vm" )\r
-\r
-#foreach ($dataModel in $dataModels)\r
-#foreach ($database in $dataModel.Databases)\r
- #if ($project)\r
- #if ($dataModel.MultipleDatabases)\r
- #set ( $outFile = "${project}-${database.Name}-data.dtd" )\r
- #else\r
- #set ( $outFile = "${project}-data.dtd" )\r
- #end\r
- $generator.parse($hfname,$outFile,"tables",$database.Tables)\r
- #foreach ($tbl in $database.Tables)\r
- $generator.parse($fname,$outFile,"table",$tbl)\r
- #end\r
- #else\r
- #foreach ($tbl in $database.Tables)\r
- $generator.parse($fname,"","table",$tbl)\r
- #end\r
- #end\r
-#end\r
-#end\r
+++ /dev/null
-<!ELEMENT dataset (\r
-#foreach($tbl in $tables)#if($velocityCount>1)|\r
-#end\r
- ${tbl.JavaName}#end\r
-)*>\r
-<!ATTLIST dataset\r
- name CDATA #REQUIRED\r
->\r
-\r
+++ /dev/null
-#set ( $tfname= "data/dump/top.vm" )\r
-#set ( $fname= "data/dump/row.vm" )\r
-#set ( $bfname= "data/dump/bottom.vm" )\r
-#set ($q = '"')\r
-\r
-#foreach ($dataModel in $dataModels)\r
-#foreach ($database in $dataModel.Databases)\r
-\r
-#if ($project)\r
- #if ($database.Name)\r
- #set ($outFile="${project}-${database.Name}-${dataset}-data.xml")\r
- #else\r
- #set ( $outFile = "${project}-${dataset}-data.xml" )\r
- #end\r
-#else\r
- #set ( $outFile = "" )\r
-#end\r
-\r
-$generator.parse($tfname,$outFile,"dataset",$dataset)\r
-#foreach ($tbl in $database.Tables)\r
-fetching table $tbl.Name\r
- #foreach ($r in $tableTool.fetch($tbl.Name)).##\r
- #set ($rout = "<$tbl.JavaName")\r
- #foreach ($col in $tbl.Columns)\r
- #if ($r.get($col.Name))\r
- #set ($cval = $r.get($col.Name))\r
- #set ($rout = "$rout ${col.JavaName}=$q$escape.getText($cval)$q")\r
- #end\r
- #end\r
- #set ($rout = "$rout/>")\r
- $generator.parse($fname,$outFile,"row", $rout)\r
- #end\r
-#end\r
-$generator.parse($bfname,$outFile,"tables",$database.Tables)\r
-\r
-#end\r
-#end\r
+++ /dev/null
-</dataset>\r
+++ /dev/null
-<?xml version="1.0" encoding="Windows-31J" standalone="no" ?>\r
-<!DOCTYPE dataset SYSTEM "file://${project}-data.dtd">\r
-<dataset name="$dataset">\r
-\r
+++ /dev/null
-<!ELEMENT $table.JavaName EMPTY>\r
-<!ATTLIST $table.JavaName\r
-#foreach ($col in $table.columns)\r
- $col.JavaName CDATA #if($col.isNotNull())#REQUIRED#else#IMPLIED#end\r
-\r
-#end\r
->\r
-\r
+++ /dev/null
-#set ( $database = $dataModel.database )\r
-<?xml version="1.0"?>\r
-\r
-<document>\r
- <properties>\r
- <title>$dataModel.name</title>\r
- </properties>\r
-\r
- <body>\r
-\r
- <section name="$dataModel.name">\r
- <table>\r
- <tr>\r
- <th>Table Name</th>\r
- <th>OM Class</th>\r
- <th>Description</th>\r
- </tr>\r
-#foreach ($tbl in $database.tables)\r
- <tr>\r
- <td><a href="#$tbl.Name">$tbl.Name</a></td>\r
- <td>$tbl.JavaName</td>\r
- <td>$!tbl.Description</td>\r
- </tr>\r
-#end\r
- </table>\r
- <p/>\r
-\r
-#foreach ($tbl in $database.tables)\r
-$generator.parse("doc/anakia/table.vm", null, "table", $tbl)\r
-#end\r
-\r
- </section>\r
-</body>\r
-</document>\r
+++ /dev/null
-<subsection name="$table.Name">\r
- <p>\r
- $!table.Description\r
- </p>\r
-\r
- <table>\r
- <tr>\r
- <th>Name</th>\r
- <th>Type</th>\r
- <th>Size</th>\r
- <th>Default</th>\r
- <th>JavaName</th>\r
- <th>PK</th>\r
- <th>FK</th>\r
- <th>not null</th>\r
- <th>Description</th>\r
- </tr>\r
- #foreach ($col in $table.Columns)\r
- <tr>\r
- <td>$col.Name</td>\r
- <td>$col.Type</td>\r
- <td>$col.printSize()</td>\r
- #if ($col.DefaultValue && !$col.DefaultValue.equalsIgnoreCase("NULL") )\r
- <td>$escape.getText($col.DefaultValue)</td>\r
- #else\r
- <td></td>\r
- #end\r
- <td>$col.JavaName</td>\r
- <td>#if ($col.isPrimaryKey()==true)X#end</td>\r
- <td>#if ($col.isForeignKey()==true)X#end</td>\r
- <td>#if ($col.isNotNull()==true)X#end</td>\r
- <td>$!col.Description</td>\r
- </tr>\r
- #end\r
- </table>\r
-\r
-</subsection>\r
+++ /dev/null
-#set ( $database = $dataModel.database )\r
-${database.initializeClassificationDeployment()}\r
-\r
-<html>\r
-<head>\r
- <title>$dataModel.name</title>\r
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
- <style>\r
- .normalFont {\r
- $docHtmlNormalFont\r
- }\r
- </style>\r
-</head>\r
-\r
-<body class="normalFont">\r
- <table border="1" cellspacing="0" cellpadding="0">\r
- <tr bgcolor="#CCCCCC">\r
- <th class="normalFont">Table Name</th>\r
- <th class="normalFont">Entity Name</th>\r
- <th class="normalFont">Foreign Table</th>\r
- <th class="normalFont">Referrer Table</th>\r
- <th class="normalFont">Comment</th>\r
- </tr>\r
-#foreach ($tbl in $database.tables)\r
- <tr>\r
- <td class="normalFont"><a href="#$tbl.Name">$tbl.Name</a></td>\r
- <td class="normalFont">$tbl.javaName</td>\r
- <td class="normalFont">$tbl.foreignTableNameCommaStringWithHtmlHref</td>\r
- <td class="normalFont">$tbl.referrerTableNameCommaStringWithHtmlHref</td>\r
- <td class="normalFont">#if ($tbl.hasComment()) ${tbl.comment}#else #end</td>\r
- </tr>\r
-#end\r
- </table>\r
-\r
-#foreach ($tbl in $database.tables)\r
-$generator.parse("doc/html/table.vm", null, "table", $tbl)\r
-#end\r
-\r
-#if ($database.hasClassificationDefinitionMap())\r
- <p/>\r
- <p/>\r
- <h2>Classification Definition</h2>\r
- <p/>\r
- <table border="1" cellspacing="0" cellpadding="0">\r
- <tr bgcolor="#CCCCCC">\r
- <th class="normalFont">Classification</th>\r
- <th class="normalFont">Top Comment</th>\r
- <th class="normalFont">Definition</th>\r
- </tr>\r
-#foreach ($classificationName in $database.classificationNameList)\r
- #set ($classificationMapList = $database.classificationDefinitionMap.get($classificationName))\r
- #set ($existTop = false)\r
- #if ($database.classificationTopDefinitionMap.containsKey($classificationName))\r
- #set ($classificationTopMap = $database.classificationTopDefinitionMap.get($classificationName))\r
- #set ($existTop = true)\r
- #else\r
- #set ($existTop = false)\r
- #end\r
-\r
- <tr>\r
- <td class="normalFont">$classificationName</td>\r
- <td class="normalFont">#if ($existTop && $classificationTopMap.containsKey('topComment'))$classificationTopMap.get('topComment')#else #end</td>\r
- <td class="normalFont">\r
- <table border="1">\r
- <tr bgcolor="#EEEEEE">\r
- <th class="normalFont">Code</th>\r
- <th class="normalFont">Name</th>\r
- <th class="normalFont">Comment</th>\r
- </tr>\r
-#foreach ($classificationMap in $classificationMapList)\r
- <tr>\r
- <td><a name="$classificationName"/>$classificationMap.get('code')</td>\r
- <td>${classificationMap.get('name')}</td>\r
- <td>#if ($classificationMap.containsKey('comment'))${classificationMap.get('comment')}#else #end</td>\r
- </tr>\r
-#end\r
- </table>\r
- </td>\r
- </tr>\r
-#end\r
- </table>\r
-#end\r
-\r
-</body>\r
-</html>\r
+++ /dev/null
-\r
-<a name="$table.name"/>\r
-<h2>$table.name</h2>\r
-$!table.Description\r
-<p/>\r
-<table border="1" cellspacing="0">\r
- <tr>\r
- <th class="normalFont" bgcolor="#CCCCCC">PK</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">INC</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">UQ</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Name</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Size</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">NotNull</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Default</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ForeignTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">ReferrerTable</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">PropertyName</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">${table.database.targetLanguageInitCap}Type</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Classification</th>\r
- <th class="normalFont" bgcolor="#CCCCCC">Comment</th>\r
- </tr>\r
-#foreach ($col in $table.columns)\r
- <tr>\r
- <td class="normalFont"><center> #if ($col.isPrimaryKey())o#else #end </center></td>\r
- <td class="normalFont"><center> #if ($col.isAutoIncrement())o#else #end </center></td>\r
- <td class="normalFont"><center> #if ($col.isUnique())o#else #end </center></td>\r
- <td class="normalFont" id="${table.name}${col.name}">${col.name}</td>\r
- <td class="normalFont">${col.dbType}</td>\r
- <td class="normalFont"><center>#if ($col.hasColumnSize()) ${col.columnSize} #else #end </center></td>\r
- <td class="normalFont"><center> #if ($col.isNotNull())o#else #end </center></td>\r
- <td class="normalFont">#if ($col.hasDefaultValue() && !$col.isAutoIncrement()) ${col.defaultValue}#else #end</td>\r
- <td class="normalFont"><a href="#${col.foreignTableName}">${col.foreignTableName}</a> </td>\r
- <td class="normalFont">${col.referrerTableCommaStringWithHtmlHref} </td>\r
- <td class="normalFont">${col.javaBeansRulePropertyName}</td>\r
- <td class="normalFont">${col.javaNative}</td>\r
- <td class="normalFont">#if ($col.hasClassification()==true)<a href="${table.database.sharp}${col.classificationName}">${col.classificationName}</a>#else #end</td>\r
- <td class="normalFont">#if ($col.hasComment()) ${col.comment}#else #end</td>\r
- </tr>\r
-#end\r
-</table>\r
-<script>\r
-#foreach ($foreignKey in $table.foreignKeys)\r
-if(document.getElementById) {\r
-#foreach ($columnName in $foreignKey.localColumns)\r
- var col = document.getElementById("${table.name}${columnName}");\r
- if (col != null) {\r
- col.style.backgroundColor = "${docHtmlFkColor}";\r
- col.title="Foreignkey from ${foreignKey.foreignTableName}.${foreignKey.foreignColumnNames}";\r
- }\r
-#end\r
-}\r
-#end\r
-</script>\r
+++ /dev/null
-\r
-\r
-targetdatabase = $targetDatabase\r
-\r
-##\r
-## Loop by data-model.\r
-##\r
-#foreach ($dataModel in $dataModels)\r
-\r
- ##\r
- ## Loop by database.\r
- ##\r
- #foreach ($database in $dataModel.Databases)\r
- $database.enableGenerateOutputDirectory()\r
-\r
- ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- ## Initialize CustomizeDao and AdditionalForeignKey and ClassificationDeployment and IncludeQuery.\r
- ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- $database.initializeAdditionalPrimaryKey()\r
- $database.initializeAdditionalForeignKey()\r
- $database.initializeClassificationDeployment()\r
- $database.initializeIncludeQuery()\r
- $database.checkProperties()\r
-\r
- ## *****************************************************************************************************************\r
- ## Global Paramter\r
- ## ***************\r
- ## ===================================================================================\r
- ## Language\r
- ## ========\r
- #set ($glTargetLanguage = ${database.targetLanguage})\r
-\r
- ## ===================================================================================\r
- ## Resource Directory\r
- ## ==================\r
- #set ($glResourceDirectory = ${database.resourceDirectory})\r
-\r
- ## ===================================================================================\r
- ## Extension\r
- ## =========\r
- #set ($glTemplateFileExtension = ${database.templateFileExtension})\r
- #set ($glClassFileExtension = ${database.classFileExtension})\r
-\r
- ## -----------------------------------------------------\r
- ## Prefix\r
- ## ------\r
- #set ($glProjectPrefix = ${database.projectPrefix})\r
- #set ($glBasePrefix = ${database.basePrefix})\r
- #set ($glBaseSuffixForEntity = ${database.baseSuffixForEntity})\r
-\r
- ## -----------------------------------------------------\r
- ## Dicon\r
- ## -----\r
- #set ($glDaoDiconNamespace = "${database.daoDiconNamespace}")\r
- #set ($glDBFluteDiconNamespace = "${database.daoDiconNamespace}")\r
- #set ($glDaoDiconFileName = "${database.daoDiconFileName}")\r
- #set ($glDBFluteDiconFileName = "${database.DBFluteDiconFileName}")\r
- #set ($glCreatorDiconFileName = "${database.DBFluteCreatorDiconFileName}")\r
- #set ($glCustomizerDiconFileName = "${database.DBFluteCustomizerDiconFileName}")\r
- #set ($glJdbcDiconResourceName = "${database.jdbcDiconResourceName}")\r
- #set ($glDBFluteBeansFileName = "${database.DBFluteBeansFileName}")\r
-\r
- ## -----------------------------------------------------\r
- ## Class Name\r
- ## ----------\r
- ## [Allcommon-Annotation]\r
- #set ($glOutsideSqlAnnotation = "OutsideSql")\r
-\r
- ## [Allcommon-Base-AccessContext]\r
- #set ($glAccessContextName = "${glProjectPrefix}AccessContext")\r
-\r
- ## [Allcommon-Base-Dao]\r
- #set ($glDaoReadableInterfaceName = "${glProjectPrefix}DaoReadable")\r
- #set ($glDaoWritableInterfaceName = "${glProjectPrefix}DaoWritable")\r
-\r
- ## [Allcommon-Base-Entity]\r
- #set ($glEntityInterfaceName = "${glProjectPrefix}Entity")\r
- #set ($glEntityDefinedCommonColumnInterfaceName = "${glProjectPrefix}EntityDefinedCommonColumn")\r
-\r
- ## [Allcommon-Base-BFinder]\r
- #set ($glBFinderName = "${glProjectPrefix}BFinder")\r
-\r
- ## [Allcommon-Base-CacheAbstractSelector]\r
- #set ($glCacheAbstractSelector = "${glProjectPrefix}CacheAbstractSelector")\r
-\r
- ## [Allcommon-Base-DaoSelector]\r
- #set ($glDaoSelectorInterfaceName = "${glProjectPrefix}DaoSelector")\r
- #set ($glCacheDaoSelectorName = "${glProjectPrefix}CacheDaoSelector")\r
-\r
- ## [Allcommon-Base-BehaviorSelector]\r
- #set ($glBehaviorSelectorInterfaceName = "${glProjectPrefix}BehaviorSelector")\r
- #set ($glCacheBehaviorSelectorName = "${glProjectPrefix}CacheBehaviorSelector")\r
-\r
- ## [Allcommon-Base-GenMetaData]\r
- #set ($glGenMetaDataClassName = "${glProjectPrefix}GenMetaData")\r
-\r
- ## [Allcommon-Base-InternalMapContext]\r
- #set ($glInternalMapContextName = "${glProjectPrefix}InternalMapContext")\r
-\r
- ## [Allcommon-Base-ClassificationDefinition]\r
- #set ($glClassificationDefinition = "${glProjectPrefix}ClassificationDefinition")\r
- #set ($glCDef = "${glProjectPrefix}CDef")\r
-\r
- ## [Allcommon-Base-Log]\r
- #set ($glQLog = "${glProjectPrefix}QLog")\r
- #set ($glXLog = "${glProjectPrefix}XLog")\r
-\r
- ## [Allcommon-Base-DBFluteConfig]\r
- #set ($glDBFluteConfig = "${glProjectPrefix}DBFluteConfig")\r
-\r
- ## [Allcommon-Behavior]\r
- #set ($glBehaviorReadableAbstractName = "${glProjectPrefix}AbstractBehaviorReadable")\r
- #set ($glBehaviorWritableAbstractName = "${glProjectPrefix}AbstractBehaviorWritable")\r
- #set ($glBehaviorReadableInterfaceName = "${glProjectPrefix}BehaviorReadable")\r
- #set ($glBehaviorWritableInterfaceName = "${glProjectPrefix}BehaviorWritable")\r
-\r
- ## [Allcommon-Behavior-Batch]\r
- #set ($glTokenFileReflectionOptionName = "${glProjectPrefix}TokenFileReflectionOption")\r
- #set ($glTokenFileReflectionResultName = "${glProjectPrefix}TokenFileReflectionResult")\r
- #set ($glTokenFileReflectionFailureName = "${glProjectPrefix}TokenFileReflectionFailure")\r
- #set ($glTokenFileOutputOptionName = "${glProjectPrefix}TokenFileOutputOption")\r
- #set ($glTokenFileOutputResultName = "${glProjectPrefix}TokenFileOutputResult")\r
-\r
- ## [Allcommon-Behavior-Load]\r
- #set ($glLoadReferrerOptionName = "${glProjectPrefix}LoadReferrerOption")\r
-\r
- ## [Allcommon-Behavior-Setup]\r
- #set ($glConditionBeanSetupperName = "${glProjectPrefix}ConditionBeanSetupper")\r
- #set ($glEntityListSetupperName = "${glProjectPrefix}EntityListSetupper")\r
- #set ($glValueLabelSetupperName = "${glProjectPrefix}ValueLabelSetupper")\r
- #set ($glValueLabelBoxName = "${glProjectPrefix}ValueLabelBox")\r
-\r
- ## [Allcommon-ConditionBean]\r
- #set ($glFetchNarrowingBeanInterfaceName = "${glProjectPrefix}FetchNarrowingBean")\r
- #set ($glSimplePagingBeanName = "${glProjectPrefix}SimplePagingBean")\r
- #set ($glSimpleOrderByBeanName = "${glProjectPrefix}SimpleOrderByBean")\r
- #set ($glConditionBeanInterfaceName = "${glProjectPrefix}ConditionBean")\r
- #set ($glConditionQueryInterfaceName = "${glProjectPrefix}ConditionQuery")\r
- #set ($glOrderByBeanInterfaceName = "${glProjectPrefix}OrderByBean")\r
- #set ($glPagingBeanInterfaceName = "${glProjectPrefix}PagingBean")\r
- #set ($glSelectResourceInterfaceName = "${glProjectPrefix}SelectResource")\r
- #set ($glFetchNarrowingBeanContextName = "${glProjectPrefix}FetchNarrowingBeanContext")\r
- #set ($glMapParameterBeanInterfaceName = "${glProjectPrefix}MapParameterBean")\r
- #set ($glPagingHandlerName = "${glProjectPrefix}PagingHandler")\r
- #set ($glPagingInvokerName = "${glProjectPrefix}PagingInvoker")\r
- #set ($glPagingResultBeanName = "${glProjectPrefix}PagingResultBean")\r
- #set ($glListResultBeanName = "${glProjectPrefix}ListResultBean")\r
- #set ($glResultBeanBuilderName = "${glProjectPrefix}ResultBeanBuilder")\r
- #set ($glConditionBeanContextName = "${glProjectPrefix}ConditionBeanContext")\r
- #set ($glConditionBeanAbstractName = "${glProjectPrefix}AbstractConditionBean")\r
- #set ($glConditionQueryAbstractName = "${glProjectPrefix}AbstractConditionQuery")\r
- #set ($glConditionKeyName = "${glProjectPrefix}ConditionKey")\r
- #set ($glConditionValueName = "${glProjectPrefix}ConditionValue")\r
- #set ($glSubQuery = "${glProjectPrefix}SubQuery")\r
- #set ($glUnionQuery = "${glProjectPrefix}UnionQuery")\r
-\r
- ## [Allcommon-ConditionBean-Option]\r
- #set ($glConditionOptionInterfaceName = "${glProjectPrefix}ConditionOption")\r
- #set ($glConditionOptionSimpleStringName = "${glProjectPrefix}SimpleStringOption")\r
- #set ($glConditionOptionFromToName = "${glProjectPrefix}FromToOption")\r
- #set ($glConditionOptionDateFromToName = "${glProjectPrefix}DateFromToOption")\r
- #set ($glConditionOptionLikeSearchName = "${glProjectPrefix}LikeSearchOption")\r
- #set ($glConditionOptionInScopeName = "${glProjectPrefix}InScopeOption")\r
- #set ($glConditionOptionPartsSplitName = "${glProjectPrefix}SplitOptionParts")\r
- #set ($glConditionOptionPartsToUpperLowerCaseName = "${glProjectPrefix}ToUpperLowerCaseOptionParts")\r
- #set ($glConditionOptionPartsToSingleByteName = "${glProjectPrefix}ToSingleByteOptionParts")\r
- #set ($glConditionOptionPartsAgentJapaneseName = "${glProjectPrefix}JapaneseOptionPartsAgent")\r
-\r
- ## [Allcommon-ConditionBean-Grouping]\r
- #set ($glGroupingOptionName = "${glProjectPrefix}GroupingOption")\r
- #set ($glGroupingRowEndDeterminerName = "${glProjectPrefix}GroupingRowEndDeterminer")\r
- #set ($glGroupingRowResourceName = "${glProjectPrefix}GroupingRowResource")\r
- #set ($glGroupingRowSetupperName = "${glProjectPrefix}GroupingRowSetupper")\r
-\r
- ## [Allcommon-ConditionBean-Mapping]\r
- #set ($glEntityDtoMapperName = "${glProjectPrefix}EntityDtoMapper")\r
-\r
- ## [Allcommon-ConditionBean-OutsideSql]\r
- #set ($glOutsideSqlContextName = "${glProjectPrefix}OutsideSqlContext")\r
- #set ($glOutsideSqlDaoName = "${glProjectPrefix}OutsideSqlDao")\r
- #set ($glOutsideSqlOptionName = "${glProjectPrefix}OutsideSqlOption")\r
- #set ($glProcedurePmbName = "${glProjectPrefix}ProcedurePmb")\r
-\r
- ## [Allcommon-ConditionBean-OutsideSql-Executor]\r
- #set ($glOutsideSqlBasicExecutorName = "${glProjectPrefix}OutsideSqlBasicExecutor")\r
- #set ($glOutsideSqlCursorExecutorName = "${glProjectPrefix}OutsideSqlCursorExecutor")\r
- #set ($glOutsideSqlPagingExecutorName = "${glProjectPrefix}OutsideSqlPagingExecutor")\r
- #set ($glOutsideSqlEntityExecutorName = "${glProjectPrefix}OutsideSqlEntityExecutor")\r
-\r
- ## [Allcommon-ConditionBean-Pagenavi]\r
- #set ($glPageNumberLinkName = "${glProjectPrefix}PageNumberLink")\r
- #set ($glPageNumberLinkSetupperName = "${glProjectPrefix}PageNumberLinkSetupper")\r
- #set ($glPageGroupBeanName = "${glProjectPrefix}PageGroupBean")\r
- #set ($glPageGroupOptionName = "${glProjectPrefix}PageGroupOption")\r
- #set ($glPageRangeBeanName = "${glProjectPrefix}PageRangeBean")\r
- #set ($glPageRangeOptionName = "${glProjectPrefix}PageRangeOption")\r
-\r
- ## [Allcommon-ConditionBean-SqlClause]\r
- #set ($glSqlClauseName = "${glProjectPrefix}SqlClause")\r
- #set ($glSqlClauseInterfaceName = "${glProjectPrefix}SqlClause")\r
- #set ($glSqlClauseAbstractName = "${glProjectPrefix}AbstractSqlClause")\r
- #set ($glOrderByClauseName = "${glProjectPrefix}OrderByClause")\r
- #set ($glOrderByElementName = "${glProjectPrefix}OrderByElement")\r
- #set ($glWhereClauseSimpleFilterInterfaceName = "${glProjectPrefix}WhereClauseSimpleFilter")\r
-\r
- ## [Allcommon-DBMeta]\r
- #set ($glDBMetaInterfaceName = "${glProjectPrefix}DBMeta")\r
- #set ($glDBMetaAbstractName = "${glProjectPrefix}AbstractDBMeta")\r
- #set ($glDBMetaInstanceHandlerName = "${glProjectPrefix}DBMetaInstanceHandler")\r
-\r
- ## [Allcommon-DBMetaHierarchy]\r
- #set ($glHierarchyArrangerName = "${glProjectPrefix}HierarchyArranger")\r
- #set ($glHierarchyBasicRequestName = "${glProjectPrefix}HierarchyBasicRequest")\r
- #set ($glHierarchyRequestName = "${glProjectPrefix}HierarchyRequest")\r
- #set ($glHierarchyRequestElementName = "${glProjectPrefix}HierarchyRequestElement")\r
- #set ($glHierarchySourceColumnName = "${glProjectPrefix}HierarchySourceColumn")\r
- #set ($glHierarchySourceIteratorName = "${glProjectPrefix}HierarchySourceIterator")\r
- #set ($glHierarchySourceRowName = "${glProjectPrefix}HierarchySourceRow")\r
-\r
- ## [Allcommon-DBMetaHierarchyBasic]\r
- #set ($glHierarchySourceEntityColumnName = "${glProjectPrefix}HierarchySourceEntityColumn")\r
- #set ($glHierarchySourceEntityListIteratorName = "${glProjectPrefix}HierarchySourceEntityListIterator")\r
- #set ($glHierarchySourceEntityRowName = "${glProjectPrefix}HierarchySourceEntityRow")\r
- #set ($glHierarchySourceListIteratorName = "${glProjectPrefix}HierarchySourceListIterator")\r
- #set ($glHierarchySourceRowSetupperName = "${glProjectPrefix}HierarchySourceRowSetupper")\r
-\r
- ## [Allcommon-DBMetaInfo]\r
- #set ($glForeignInfoName = "${glProjectPrefix}ForeignInfo")\r
- #set ($glReferrerInfoName = "${glProjectPrefix}ReferrerInfo")\r
- #set ($glRelationInfoName = "${glProjectPrefix}RelationInfo")\r
- #set ($glUniqueInfoName = "${glProjectPrefix}UniqueInfo")\r
- #set ($glColumnInfoName = "${glProjectPrefix}ColumnInfo")\r
-\r
- ## [Allcommon-Exception]\r
- #set ($glBatchEntityAlreadyUpdatedException = "${glProjectPrefix}BatchEntityAlreadyUpdatedException")\r
- #set ($glBindVariableCommentNotFoundPropertyException = "${glProjectPrefix}BindVariableCommentNotFoundPropertyException")\r
- #set ($glBindVariableParameterNullValueException = "${glProjectPrefix}BindVariableParameterNullValueException")\r
- #set ($glDangerousResultSizeExceptionName = "${glProjectPrefix}DangerousResultSizeException")\r
- #set ($glDangerousResultSizeException = "${glProjectPrefix}DangerousResultSizeException")\r
- #set ($glEmbeddedValueCommentNotFoundPropertyException = "${glProjectPrefix}EmbeddedValueCommentNotFoundPropertyException")\r
- #set ($glEmbeddedValueParameterNullValueException = "${glProjectPrefix}EmbeddedValueParameterNullValueException")\r
- #set ($glEndCommentNotFoundException = "${glProjectPrefix}EndCommentNotFoundException")\r
- #set ($glEntityAlreadyUpdatedException = "${glProjectPrefix}EntityAlreadyUpdatedException")\r
- #set ($glEntityAlreadyDeletedException = "${glProjectPrefix}EntityAlreadyDeletedException")\r
- #set ($glEntityAlreadyExistsException = "${glProjectPrefix}EntityAlreadyExistsException")\r
- #set ($glEntityDuplicatedException = "${glProjectPrefix}EntityDuplicatedException")\r
- #set ($glIfCommentConditionNotFoundException = "${glProjectPrefix}IfCommentConditionNotFoundException")\r
- #set ($glIfCommentNotBooleanResultException = "${glProjectPrefix}IfCommentNotBooleanResultException")\r
- #set ($glIfCommentWrongExpressionException = "${glProjectPrefix}IfCommentWrongExpressionException")\r
- #set ($glOutsideSqlNotFoundException = "${glProjectPrefix}OutsideSqlNotFoundException")\r
- #set ($glRequiredOptionNotFoundException = "${glProjectPrefix}RequiredOptionNotFoundException")\r
- #set ($glRecordHasOverlappedException = "${glProjectPrefix}RecordHasOverlappedException")\r
- #set ($glRecordHasAlreadyBeenDeletedException = "${glProjectPrefix}RecordHasAlreadyBeenDeletedException")\r
- #set ($glSQLFailureException = "${glProjectPrefix}SQLFailureException")\r
-\r
- ## [Allcommon-Helper]\r
- #set ($glMapListStringName = "${glProjectPrefix}MapListString")\r
- #set ($glMapListStringImplName = "${glProjectPrefix}MapListStringImpl")\r
- #set ($glMapStringBuilderName = "${glProjectPrefix}MapStringBuilder")\r
- #set ($glMapStringBuilderImplName = "${glProjectPrefix}MapStringBuilderImpl")\r
-\r
- #set ($glGeneralCharacterName = "${glProjectPrefix}GeneralCharacter")\r
- #set ($glGeneralCharacterImplName = "${glProjectPrefix}GeneralCharacterImpl")\r
-\r
- #set ($glJapaneseCharacterName = "${glProjectPrefix}JapaneseCharacter")\r
- #set ($glJapaneseCharacterImplName = "${glProjectPrefix}JapaneseCharacterImpl")\r
-\r
- #set ($glInvokeNameExtractingResourceName = "${glProjectPrefix}InvokeNameExtractingResource")\r
- #set ($glInvokeNameExtractorName = "${glProjectPrefix}InvokeNameExtractor")\r
- #set ($glInvokeNameExtractorImplName = "${glProjectPrefix}InvokeNameExtractorImpl")\r
- #set ($glInvokeNameResultName = "${glProjectPrefix}InvokeNameResult")\r
-\r
- #set ($glLineTokenName = "${glProjectPrefix}LineToken")\r
- #set ($glLineTokenImplName = "${glProjectPrefix}LineTokenImpl")\r
- #set ($glLineTokenizingOptionName = "${glProjectPrefix}LineTokenizingOption")\r
- #set ($glLineMakingOptionName = "${glProjectPrefix}LineMakingOption")\r
-\r
- #set ($glFileTokenName = "${glProjectPrefix}FileToken")\r
- #set ($glFileTokenImplName = "${glProjectPrefix}FileTokenImpl")\r
-\r
- #set ($glFileTokenizingOptionName = "${glProjectPrefix}FileTokenizingOption")\r
- #set ($glFileTokenizingRowResourceName = "${glProjectPrefix}FileTokenizingRowResource")\r
- #set ($glFileTokenizingCallbackName = "${glProjectPrefix}FileTokenizingCallback")\r
- #set ($glFileTokenizingHeaderInfoName = "${glProjectPrefix}FileTokenizingHeaderInfo")\r
-\r
- #set ($glFileMakingOptionName = "${glProjectPrefix}FileMakingOption")\r
- #set ($glFileMakingRowResourceName = "${glProjectPrefix}FileMakingRowResource")\r
- #set ($glFileMakingCallbackName = "${glProjectPrefix}FileMakingCallback")\r
- #set ($glFileMakingHeaderInfoName = "${glProjectPrefix}FileMakingHeaderInfo")\r
- #set ($glFileMakingSimpleFacadeName = "${glProjectPrefix}FileMakingSimpleFacade")\r
- #set ($glFileMakingSimpleFacadeImplName = "${glProjectPrefix}FileMakingSimpleFacadeImpl")\r
-\r
- #set ($glAccordingToOrderName = "${glProjectPrefix}AccordingToOrder")\r
- #set ($glAccordingToOrderOptionName = "${glProjectPrefix}AccordingToOrderOption")\r
- #set ($glAccordingToOrderIdExtractorName = "${glProjectPrefix}AccordingToOrderIdExtractor")\r
- #set ($glAccordingToOrderImplName = "${glProjectPrefix}AccordingToOrderImpl")\r
-\r
- ## [Allcommon-JavaLike]\r
- #set ($glJavaBasic = "${glProjectPrefix}JavaBasic")\r
- #set ($glJavaCollection = "${glProjectPrefix}JavaCollection")\r
- #set ($glJavaException = "${glProjectPrefix}JavaException")\r
- #set ($glJavaReflection = "${glProjectPrefix}JavaReflection")\r
-\r
- ## [Allcommon-JDBC]\r
- #set ($glCursorHandlerName = "${glProjectPrefix}CursorHandler")\r
- #set ($glCursorFetcherName = "${glProjectPrefix}CursorFetcher")\r
- #set ($glLatestSqlProviderName = "${glProjectPrefix}LatestSqlProvider")\r
- #set ($glStatementConfig = "${glProjectPrefix}StatementConfig")\r
-\r
- ## [Allcommon-JDBC-History]\r
- #set ($glPreparedExecutionBeanName = "${glProjectPrefix}PreparedExecutionBean")\r
- #set ($glPreparedParameterElementName = "${glProjectPrefix}PreparedParameterElement")\r
- #set ($glStatementHistoryName = "${glProjectPrefix}StatementHistory")\r
- #set ($glStatementHistoryWitnessName = "${glProjectPrefix}StatementHistoryWitness")\r
- #set ($glTraceablePreparedStatementName = "${glProjectPrefix}TraceablePreparedStatement")\r
-\r
- ## [Allcommon-S2Container]\r
- #set ($glBehaviorCreator = "${glProjectPrefix}BehaviorCreator")\r
-\r
- ## [Allcommon-S2Dao]\r
- #set ($glS2DaoInterceptor = "${glProjectPrefix}S2DaoInterceptor")\r
- #set ($glDaoInterceptor = "${glProjectPrefix}S2DaoInterceptor")\r
- #set ($glS2DaoLatestSqlProvider = "${glProjectPrefix}S2DaoLatestSqlProvider")\r
- #set ($glDaoLatestSqlProvider = "${glProjectPrefix}S2DaoLatestSqlProvider")\r
- #set ($glS2DaoMetaDataExtension = "${glProjectPrefix}S2DaoMetaDataExtension")\r
- #set ($glDaoMetaDataExtension = "${glProjectPrefix}S2DaoMetaDataExtension")\r
- #set ($glS2DaoMetaDataFactoryImpl = "${glProjectPrefix}S2DaoMetaDataFactoryImpl")\r
- #set ($glDaoMetaDataFactoryImpl = "${glProjectPrefix}S2DaoMetaDataFactoryImpl")\r
- #set ($glS2BeanMetaDataFactoryImpl = "${glProjectPrefix}S2BeanMetaDataFactoryImpl")\r
- #set ($glBeanMetaDataFactoryImpl = "${glProjectPrefix}S2BeanMetaDataFactoryImpl")\r
- #set ($glS2DaoPropertyTypeFactoryBuilderExtension = "${glProjectPrefix}S2DaoPropertyTypeFactoryBuilderExtension")\r
- #set ($glDaoPropertyTypeFactoryBuilderExtension = "${glProjectPrefix}S2DaoPropertyTypeFactoryBuilderExtension")\r
- #set ($glS2DaoSelectDynamicCommand = "${glProjectPrefix}S2DaoSelectDynamicCommand")\r
- #set ($glSelectDynamicCommand = "${glProjectPrefix}S2DaoSelectDynamicCommand")\r
- #set ($glDaoStatementFactory = "${glProjectPrefix}S2DaoStatementFactory")\r
- #set ($glFetchNarrowingResultSetFactory = "${glProjectPrefix}FetchNarrowingResultSetFactory")\r
- #set ($glFetchNarrowingResultSetWrapper = "${glProjectPrefix}FetchNarrowingResultSetWrapper")\r
- #set ($glS2DaoSetting = "${glProjectPrefix}S2DaoSetting")\r
-\r
- ## [Allcommon-S2Dao-Internal]\r
- #set ($glInternalAbstractBeanMetaDataResultSetHandler = "${glProjectPrefix}InternalAbstractBeanMetaDataResultSetHandler")\r
- #set ($glInternalAbstractDtoMetaDataResultSetHandler = "${glProjectPrefix}InternalAbstractDtoMetaDataResultSetHandler")\r
- #set ($glInternalBeanArrayMetaDataResultSetHandler = "${glProjectPrefix}InternalBeanArrayMetaDataResultSetHandler")\r
- #set ($glInternalBeanListMetaDataResultSetHandler = "${glProjectPrefix}InternalBeanListMetaDataResultSetHandler")\r
- #set ($glInternalBeanGenericListMetaDataResultSetHandler = "${glProjectPrefix}InternalBeanGenericListMetaDataResultSetHandler")\r
-\r
- #set ($glInternalAbstractAutoStaticCommand = "${glProjectPrefix}InternalAbstractAutoStaticCommand")\r
- #set ($glInternalAbstractBatchAutoStaticCommand = "${glProjectPrefix}InternalAbstractBatchAutoStaticCommand")\r
- #set ($glInternalAbstractDynamicCommand = "${glProjectPrefix}InternalAbstractDynamicCommand")\r
- #set ($glInternalAbstractSqlCommand = "${glProjectPrefix}InternalAbstractSqlCommand")\r
- #set ($glInternalAbstractStaticCommand = "${glProjectPrefix}InternalAbstractStaticCommand")\r
- #set ($glInternalDeleteAutoStaticCommand = "${glProjectPrefix}InternalDeleteAutoStaticCommand")\r
- #set ($glInternalDeleteBatchAutoStaticCommand = "${glProjectPrefix}InternalDeleteBatchAutoStaticCommand")\r
- #set ($glInternalDeleteQueryAutoDynamicCommand = "${glProjectPrefix}InternalDeleteQueryAutoDynamicCommand")\r
- #set ($glInternalInsertAutoDynamicCommand = "${glProjectPrefix}InternalInsertAutoDynamicCommand")\r
- #set ($glInternalInsertBatchAutoStaticCommand = "${glProjectPrefix}InternalInsertBatchAutoStaticCommand")\r
- #set ($glInternalProcedureCommand = "${glProjectPrefix}InternalProcedureCommand")\r
- #set ($glInternalUpdateAutoDynamicCommand = "${glProjectPrefix}InternalUpdateAutoDynamicCommand")\r
- #set ($glInternalUpdateBatchAutoStaticCommand = "${glProjectPrefix}InternalUpdateBatchAutoStaticCommand")\r
- #set ($glInternalUpdateDynamicCommand = "${glProjectPrefix}InternalUpdateDynamicCommand")\r
- #set ($glInternalUpdateModifiedOnlyCommand = "${glProjectPrefix}InternalUpdateModifiedOnlyCommand")\r
- #set ($glInternalUpdateQueryAutoDynamicCommand = "${glProjectPrefix}InternalUpdateQueryAutoDynamicCommand")\r
-\r
- #set ($glInternalAbstractAutoHandler = "${glProjectPrefix}InternalAbstractAutoHandler")\r
- #set ($glInternalAbstractBatchAutoHandler = "${glProjectPrefix}InternalAbstractBatchAutoHandler")\r
- #set ($glInternalBasicHandler = "${glProjectPrefix}InternalBasicHandler")\r
- #set ($glInternalBasicSelectHandler = "${glProjectPrefix}InternalBasicSelectHandler")\r
- #set ($glInternalBasicUpdateHandler = "${glProjectPrefix}InternalBasicUpdateHandler")\r
- #set ($glInternalCommandContextHandler = "${glProjectPrefix}InternalCommandContextHandler")\r
- #set ($glInternalDeleteAutoHandler = "${glProjectPrefix}InternalDeleteAutoHandler")\r
- #set ($glInternalDeleteBatchAutoHandler = "${glProjectPrefix}InternalDeleteBatchAutoHandler")\r
- #set ($glInternalInsertAutoHandler = "${glProjectPrefix}InternalInsertAutoHandler")\r
- #set ($glInternalInsertBatchAutoHandler = "${glProjectPrefix}InternalInsertBatchAutoHandler")\r
- #set ($glInternalProcedureHandler = "${glProjectPrefix}InternalProcedureHandler")\r
- #set ($glInternalUpdateAutoHandler = "${glProjectPrefix}InternalUpdateAutoHandler")\r
- #set ($glInternalUpdateBatchAutoHandler = "${glProjectPrefix}InternalUpdateBatchAutoHandler")\r
- #set ($glInternalSqlLog = "${glProjectPrefix}InternalSqlLog")\r
- #set ($glInternalSqlLogRegistry = "${glProjectPrefix}InternalSqlLogRegistry")\r
- #set ($glInternalCommandContextCreator = "${glProjectPrefix}InternalCommandContextCreator")\r
- #set ($glInternalSqlParser = "${glProjectPrefix}InternalSqlParser")\r
- #set ($glInternalSqlTokenizer = "${glProjectPrefix}InternalSqlTokenizer")\r
- #set ($glInternalBindVariableUtil = "${glProjectPrefix}InternalBindVariableUtil")\r
-\r
- ## [Allcommon-S2Dao-Internal-Various]\r
- #set ($glInternalProcedureMetaData = "${glProjectPrefix}InternalProcedureMetaData")\r
- #set ($glInternalProcedureMetaDataFactory = "${glProjectPrefix}InternalProcedureMetaDataFactory")\r
- #set ($glInternalProcedureParameterType = "${glProjectPrefix}InternalProcedureParameterType")\r
- #set ($glInternalRowCreator = "${glProjectPrefix}InternalRowCreator")\r
- #set ($glInternalRelationRowCreator = "${glProjectPrefix}InternalRelationRowCreator")\r
-\r
- ## [Allcommon-Util]\r
- #set ($glSimpleAssertUtil = "${glProjectPrefix}SimpleAssertUtil")\r
- #set ($glSimpleStringUtil = "${glProjectPrefix}SimpleStringUtil")\r
- #set ($glSimpleSystemUtil = "${glProjectPrefix}SimpleSystemUtil")\r
- #set ($glValueLabelUtilName = "${glProjectPrefix}ValueLabelUtil")\r
- #set ($glTraceViewUtilName = "${glProjectPrefix}TraceViewUtil")\r
-\r
- ## ===================================================================================\r
- ## Variable\r
- ## ========\r
- #set ($glConditionBeanInitialName = "CB")\r
- #set ($glConditionQueryInitialName = "CQ")\r
- #set ($glAttachedCBArgsVariableName = "cb")\r
- #set ($glParentVariablePrefix = "_parent")\r
- #set ($glChildrenVariablePrefix = "_children")\r
-\r
- ## ===================================================================================\r
- ## Package\r
- ## =======\r
- ## [Common]\r
- #set ($glPackageBaseCommon = "${database.baseCommonPackage}")\r
- #set ($glPackageBaseCommonAnnotation = "${database.baseCommonPackage}.annotation")\r
- #set ($glPackageBaseCommonBhv = "${database.baseCommonPackage}.bhv")\r
- #set ($glPackageBaseCommonBhvBatch = "${database.baseCommonPackage}.bhv.batch")\r
- #set ($glPackageBaseCommonBhvLoad = "${database.baseCommonPackage}.bhv.load")\r
- #set ($glPackageBaseCommonBhvSetup = "${database.baseCommonPackage}.bhv.setup")\r
- #set ($glPackageBaseCommonCBean = "${database.baseCommonPackage}.cbean")\r
- #set ($glPackageBaseCommonCKey = "${database.baseCommonPackage}.cbean.ckey")\r
- #set ($glPackageBaseCommonCBeanMapping = "${database.baseCommonPackage}.cbean.mapping")\r
- #set ($glPackageBaseCommonCBeanGrouping = "${database.baseCommonPackage}.cbean.grouping")\r
- #set ($glPackageBaseCommonCBeanOutsidesql = "${database.baseCommonPackage}.cbean.outsidesql")\r
- #set ($glPackageBaseCommonCBeanOutsidesqlExecutor = "${database.baseCommonPackage}.cbean.outsidesql.executor")\r
- #set ($glPackageBaseCommonCBeanPagenavi = "${database.baseCommonPackage}.cbean.pagenavi")\r
- #set ($glPackageBaseCommonCBeanPagenaviGroup = "${database.baseCommonPackage}.cbean.pagenavi.group")\r
- #set ($glPackageBaseCommonCBeanPagenaviRange = "${database.baseCommonPackage}.cbean.pagenavi.range")\r
- #set ($glPackageBaseCommonSqlClause = "${database.baseCommonPackage}.cbean.sqlclause")\r
- #set ($glPackageBaseCommonCValue = "${database.baseCommonPackage}.cbean.cvalue")\r
- #set ($glPackageBaseCommonCOption = "${database.baseCommonPackage}.cbean.coption")\r
- #set ($glPackageBaseCommonCOptionParts = "${database.baseCommonPackage}.cbean.coption.parts")\r
- #set ($glPackageBaseCommonCOptionPartsLocal = "${database.baseCommonPackage}.cbean.coption.parts.local")\r
- #set ($glPackageBaseCommonDBMeta = "${database.baseCommonPackage}.dbmeta")\r
- #set ($glPackageBaseCommonDBMetaHierarchy = "${database.baseCommonPackage}.dbmeta.hierarchy")\r
- #set ($glPackageBaseCommonDBMetaHierarchyBasic = "${database.baseCommonPackage}.dbmeta.hierarchy.basic")\r
- #set ($glPackageBaseCommonDBMetaInfo = "${database.baseCommonPackage}.dbmeta.info")\r
- #set ($glPackageBaseCommonException = "${database.baseCommonPackage}.exception")\r
- #set ($glPackageBaseCommonHelper = "${database.baseCommonPackage}.helper")\r
- #set ($glPackageBaseCommonHelperCharacter = "${database.baseCommonPackage}.helper.character")\r
- #set ($glPackageBaseCommonHelperCharacterImpl = "${database.baseCommonPackage}.helper.character.impl")\r
- #set ($glPackageBaseCommonHelperCollectionOrder = "${database.baseCommonPackage}.helper.collection.order")\r
- #set ($glPackageBaseCommonHelperCollectionOrderImpl = "${database.baseCommonPackage}.helper.collection.order.impl")\r
- #set ($glPackageBaseCommonHelperStackTrace = "${database.baseCommonPackage}.helper.stacktrace")\r
- #set ($glPackageBaseCommonHelperStackTraceImpl = "${database.baseCommonPackage}.helper.stacktrace.impl")\r
- #set ($glPackageBaseCommonHelperToken = "${database.baseCommonPackage}.helper.token")\r
- #set ($glPackageBaseCommonHelperTokenLine = "${database.baseCommonPackage}.helper.token.line")\r
- #set ($glPackageBaseCommonHelperTokenLineImpl = "${database.baseCommonPackage}.helper.token.line.impl")\r
- #set ($glPackageBaseCommonHelperTokenFile = "${database.baseCommonPackage}.helper.token.file")\r
- #set ($glPackageBaseCommonHelperTokenFileImpl = "${database.baseCommonPackage}.helper.token.file.impl")\r
-\r
- #set ($glPackageBaseCommonJavaLike = "${database.baseCommonPackage}.javalike")\r
- #set ($glPackageBaseCommonJdbc = "${database.baseCommonPackage}.jdbc")\r
- #set ($glPackageBaseCommonJdbcHistory = "${database.baseCommonPackage}.jdbc.history")\r
- #set ($glPackageBaseCommonS2Container = "${database.baseCommonPackage}.s2container")\r
- #set ($glPackageBaseCommonS2Dao = "${database.baseCommonPackage}.s2dao")\r
- #set ($glPackageBaseCommonS2DaoInternal = "${database.baseCommonPackage}.s2dao.internal")\r
- #set ($glPackageBaseCommonS2DaoInternalVarious = "${database.baseCommonPackage}.s2dao.internal.various")\r
- #set ($glPackageBaseCommonS2DaoInternalRsHandler = "${database.baseCommonPackage}.s2dao.internal.rshandler")\r
- #set ($glPackageBaseCommonS2DaoInternalSqlCommand = "${database.baseCommonPackage}.s2dao.internal.sqlcommand")\r
- #set ($glPackageBaseCommonS2DaoInternalSqlHandler = "${database.baseCommonPackage}.s2dao.internal.sqlhandler")\r
- #set ($glPackageBaseCommonS2DaoInternalSqlLog = "${database.baseCommonPackage}.s2dao.internal.sqllog")\r
- #set ($glPackageBaseCommonS2DaoInternalSqlParser = "${database.baseCommonPackage}.s2dao.internal.sqlparser")\r
- #set ($glPackageBaseCommonS2DaoInternalUtil = "${database.baseCommonPackage}.s2dao.internal.util")\r
- #set ($glPackageBaseCommonUtil = "${database.baseCommonPackage}.util")\r
-\r
- #if ($database.isTargetLanguageCSharp())\r
- ## [Common]\r
- #set ($glPackageBaseCommon = "${database.baseCommonPackage}")\r
- #set ($glPackageBaseCommonAnnotation = "${database.baseCommonPackage}.Annotation")\r
- #set ($glPackageBaseCommonBhv = "${database.baseCommonPackage}.Bhv")\r
- #set ($glPackageBaseCommonBhvBatch = "${database.baseCommonPackage}.Bhv.Batch")\r
- #set ($glPackageBaseCommonBhvLoad = "${database.baseCommonPackage}.Bhv.Load")\r
- #set ($glPackageBaseCommonBhvSetup = "${database.baseCommonPackage}.Bhv.Setup")\r
- #set ($glPackageBaseCommonCBean = "${database.baseCommonPackage}.CBean")\r
- #set ($glPackageBaseCommonCKey = "${database.baseCommonPackage}.CBean.CKey")\r
- #set ($glPackageBaseCommonCBeanMapping = "${database.baseCommonPackage}.CBean.Mapping")\r
- #set ($glPackageBaseCommonCBeanGrouping = "${database.baseCommonPackage}.CBean.Grouping")\r
- #set ($glPackageBaseCommonCBeanOutsidesql = "${database.baseCommonPackage}.CBean.OutsideSql")\r
- #set ($glPackageBaseCommonCBeanOutsidesqlExecutor = "${database.baseCommonPackage}.CBean.OutsideSql.Executor")\r
- #set ($glPackageBaseCommonCBeanPagenavi = "${database.baseCommonPackage}.CBean.PageNavi")\r
- #set ($glPackageBaseCommonCBeanPagenaviGroup = "${database.baseCommonPackage}.CBean.PageNavi.Group")\r
- #set ($glPackageBaseCommonCBeanPagenaviRange = "${database.baseCommonPackage}.CBean.PageNavi.Range")\r
- #set ($glPackageBaseCommonSqlClause = "${database.baseCommonPackage}.CBean.SClause")\r
- #set ($glPackageBaseCommonCValue = "${database.baseCommonPackage}.CBean.CValue")\r
- #set ($glPackageBaseCommonCOption = "${database.baseCommonPackage}.CBean.COption")\r
- #set ($glPackageBaseCommonCOptionParts = "${database.baseCommonPackage}.CBean.COption.Parts")\r
- #set ($glPackageBaseCommonCOptionPartsLocal = "${database.baseCommonPackage}.CBean.COption.Parts.Local")\r
- #set ($glPackageBaseCommonDBMeta = "${database.baseCommonPackage}.Dbm")\r
- #set ($glPackageBaseCommonDBMetaHierarchy = "${database.baseCommonPackage}.Dbm.Hierarchy")\r
- #set ($glPackageBaseCommonDBMetaHierarchyBasic = "${database.baseCommonPackage}.Dbm.Hierarchy.Basic")\r
- #set ($glPackageBaseCommonDBMetaInfo = "${database.baseCommonPackage}.Dbm.Info")\r
- #set ($glPackageBaseCommonException = "${database.baseCommonPackage}.Exp")\r
- #set ($glPackageBaseCommonHelper = "${database.baseCommonPackage}.Helper")\r
- #set ($glPackageBaseCommonHelperCharacter = "${database.baseCommonPackage}.Helper.Character")\r
- #set ($glPackageBaseCommonHelperCharacterImpl = "${database.baseCommonPackage}.Helper.Character.Impl")\r
- #set ($glPackageBaseCommonHelperCollectionOrder = "${database.baseCommonPackage}.Helper.Collection.Order")\r
- #set ($glPackageBaseCommonHelperCollectionOrderImpl = "${database.baseCommonPackage}.Helper.Collection.Order.Impl")\r
- #set ($glPackageBaseCommonHelperStackTrace = "${database.baseCommonPackage}.Helper.StTrace")\r
- #set ($glPackageBaseCommonHelperStackTraceImpl = "${database.baseCommonPackage}.Helper.StTrace.Impl")\r
- #set ($glPackageBaseCommonHelperToken = "${database.baseCommonPackage}.Helper.Token")\r
- #set ($glPackageBaseCommonHelperTokenLine = "${database.baseCommonPackage}.Helper.Token.Line")\r
- #set ($glPackageBaseCommonHelperTokenLineImpl = "${database.baseCommonPackage}.Helper.Token.Line.Impl")\r
- #set ($glPackageBaseCommonHelperTokenFile = "${database.baseCommonPackage}.Helper.Token.File")\r
- #set ($glPackageBaseCommonHelperTokenFileImpl = "${database.baseCommonPackage}.Helper.Token.File.Impl")\r
- #set ($glPackageBaseCommonJavaLike = "${database.baseCommonPackage}.JavaLike")\r
- #set ($glPackageBaseCommonJdbc = "${database.baseCommonPackage}.Ado")\r
- #set ($glPackageBaseCommonJdbcHistory = "${database.baseCommonPackage}.Ado.History")\r
- #set ($glPackageBaseCommonS2Container = "${database.baseCommonPackage}.S2Container")\r
- #set ($glPackageBaseCommonS2Dao = "${database.baseCommonPackage}.S2Dao")\r
- #set ($glPackageBaseCommonS2DaoInternalVarious = "${database.baseCommonPackage}.S2Dao.Internal.Various")\r
- #set ($glPackageBaseCommonS2DaoInternalRsHandler = "${database.baseCommonPackage}.S2Dao.Internal.RsHandler")\r
- #set ($glPackageBaseCommonS2DaoInternalSqlCommand = "${database.baseCommonPackage}.S2Dao.Internal.SqlCommand")\r
- #set ($glPackageBaseCommonS2DaoInternalSqlHandler = "${database.baseCommonPackage}.S2Dao.Internal.SqlHandler")\r
- #set ($glPackageBaseCommonS2DaoInternalSqlParser = "${database.baseCommonPackage}.S2Dao.Internal.SqlParser")\r
- #set ($glPackageBaseCommonS2DaoInternalUtil = "${database.baseCommonPackage}.S2Dao.Internal.Util")\r
- #set ($glPackageBaseCommonUtil = "${database.baseCommonPackage}.Util")\r
- #end\r
-\r
- ## [Main]\r
- #set ($glPackageBaseBhv = "${database.baseBehaviorPackage}")\r
- #set ($glPackageBaseDao = "${database.baseDaoPackage}" )\r
- #set ($glPackageBaseCustomizeDao = "${database.baseDaoPackage}.customize" )\r
- #set ($glPackageBaseEntity = "${database.baseEntityPackage}")\r
- #set ($glPackageBaseCustomizeEntity = "${database.baseEntityPackage}.customize" )\r
- #set ($glPackageExtendedBhv = "${database.extendedBehaviorPackage}")\r
- #set ($glPackageExtendedDao = "${database.extendedDaoPackage}")\r
- #set ($glPackageExtendedCustomizeDao = "${database.extendedDaoPackage}.customize" )\r
- #set ($glPackageExtendedEntity = "${database.extendedEntityPackage}")\r
- #set ($glPackageExtendedCustomizeEntity = "${database.extendedEntityPackage}.customize" )\r
- #set ($glPackageBaseCB = "${database.conditionBeanPackage}.bs")\r
- #set ($glPackageCB = "${database.conditionBeanPackage}")\r
- #set ($glPackageBaseCQ = "${database.conditionBeanPackage}.cq.bs")\r
- #set ($glPackageCQ = "${database.conditionBeanPackage}.cq")\r
- #set ($glPackageCIQ = "${database.conditionBeanPackage}.cq.ciq")\r
- #set ($glPackageNss = "${database.conditionBeanPackage}.nss")\r
- #set ($glPackageBaseDBMeta = "${glPackageBaseEntity}.dbmeta")\r
- #set ($glPackageBaseCustomizeDBMeta = "${glPackageBaseCustomizeEntity}.dbmeta")\r
- #set ($glPackageBaseSqlParameterBean = "${database.SqlParameterBeanPackage}.bsparam")\r
- #set ($glPackageExtendedSqlParameterBean = "${database.SqlParameterBeanPackage}.exparam")\r
- #set ($glPackageArgumentBean = "${database.ArgumentBeanPackage}")\r
-\r
- #if ($database.isTargetLanguageCSharp())\r
- #set ($glPackageBaseBhv = "${database.baseBehaviorPackage}")\r
- #set ($glPackageBaseDao = "${database.baseDaoPackage}" )\r
- #set ($glPackageBaseCustomizeDao = "${database.baseDaoPackage}.Customize" )\r
- #set ($glPackageBaseEntity = "${database.baseEntityPackage}")\r
- #set ($glPackageBaseCustomizeEntity = "${database.baseEntityPackage}.Customize" )\r
- #set ($glPackageExtendedBhv = "${database.extendedBehaviorPackage}")\r
- #set ($glPackageExtendedDao = "${database.extendedDaoPackage}")\r
- #set ($glPackageExtendedCustomizeDao = "${database.extendedDaoPackage}.Customize" )\r
- #set ($glPackageExtendedEntity = "${database.extendedEntityPackage}")\r
- #set ($glPackageExtendedCustomizeEntity = "${database.extendedEntityPackage}.Customize" )\r
- #set ($glPackageBaseCB = "${database.conditionBeanPackage}.BS")\r
- #set ($glPackageCB = "${database.conditionBeanPackage}")\r
- #set ($glPackageBaseCQ = "${database.conditionBeanPackage}.CQ.BS")\r
- #set ($glPackageCQ = "${database.conditionBeanPackage}.CQ")\r
- #set ($glPackageCIQ = "${database.conditionBeanPackage}.CQ.Ciq")\r
- #set ($glPackageNss = "${database.conditionBeanPackage}.Nss")\r
- #set ($glPackageBaseDBMeta = "${glPackageBaseEntity}.Dbm")\r
- #set ($glPackageBaseCustomizeDBMeta = "${glPackageBaseCustomizeEntity}.Dbm")\r
- #set ($glPackageBaseSqlParameterBean = "${database.SqlParameterBeanPackage}.BsParam")\r
- #set ($glPackageExtendedSqlParameterBean = "${database.SqlParameterBeanPackage}.ExParam")\r
- #set ($glPackageArgumentBean = "${database.ArgumentBeanPackage}")\r
- #end\r
-\r
- ## *****************************************************************************************************************\r
- ## Parsing\r
- ## *******\r
- ## ===================================================================================\r
- ## annotation\r
- ## ==========\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonAnnotation}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info("public void parseAllcommonAnnotation) {")\r
- $database.info(" parse('OutsideSql');")\r
-\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonAnnotation})}${glOutsideSqlAnnotation}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/annotation/OutsideSql.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info("}")\r
-\r
- ## ===================================================================================\r
- ## behavior\r
- ## ========\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonBhv}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info("public void parseAllcommonBehavior) {")\r
- $database.info(" parse('BehaviorReadable');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonBhv})}${glBehaviorReadableInterfaceName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/bhv/BehaviorReadable.${glTemplateFileExtension}",$path ,"", "")\r
- $database.info(" parse('BehaviorWritable');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonBhv})}${glBehaviorWritableInterfaceName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/bhv/BehaviorWritable.${glTemplateFileExtension}",$path ,"", "")\r
- $database.info(" parse('AbstractBehaviorReadable');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonBhv})}${glBehaviorReadableAbstractName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/bhv/AbstractBehaviorReadable.${glTemplateFileExtension}",$path ,"", "")\r
- $database.info(" parse('AbstractBehaviorWritable');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonBhv})}${glBehaviorWritableAbstractName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/bhv/AbstractBehaviorWritable.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- #if ($database.isTargetLanguageJava())\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonBhvBatch}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parseTokenFileReflectionOption()")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonBhvBatch})}${glTokenFileReflectionOptionName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/bhv/batch/TokenFileReflectionOption.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parseTokenFileReflectionResult()")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonBhvBatch})}${glTokenFileReflectionResultName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/bhv/batch/TokenFileReflectionResult.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parseTokenFileReflectionFailure()")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonBhvBatch})}${glTokenFileReflectionFailureName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/bhv/batch/TokenFileReflectionFailure.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parseTokenFileOutputOption()")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonBhvBatch})}${glTokenFileOutputOptionName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/bhv/batch/TokenFileOutputOption.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parseTokenFileOutputResult()")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonBhvBatch})}${glTokenFileOutputResultName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/bhv/batch/TokenFileOutputResult.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonBhvLoad}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parse('LoadReferrerOption')")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonBhvLoad})}${glLoadReferrerOptionName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/bhv/load/LoadReferrerOption.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonBhvSetup}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parseConditionBeanSetupper()")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonBhvSetup})}${glConditionBeanSetupperName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/bhv/setup/ConditionBeanSetupper.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parseEntityListSetupper()")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonBhvSetup})}${glEntityListSetupperName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/bhv/setup/EntityListSetupper.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parseValueLabelSetupper()")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonBhvSetup})}${glValueLabelSetupperName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/bhv/setup/ValueLabelSetupper.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parseValueLabelBox()")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonBhvSetup})}${glValueLabelBoxName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/bhv/setup/ValueLabelBox.${glTemplateFileExtension}",$path ,"", "")\r
- #end\r
- #if ($database.isTargetLanguageCSharp())\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonBhvLoad}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parse('LoadReferrerOption')")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonBhvLoad})}${glLoadReferrerOptionName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/bhv/load/LoadReferrerOption.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonBhvSetup}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parseConditionBeanSetupper()")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonBhvSetup})}${glConditionBeanSetupperName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/bhv/Setup/ConditionBeanSetupper.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parseEntityListSetupper()")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonBhvSetup})}${glEntityListSetupperName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/bhv/Setup/EntityListSetupper.${glTemplateFileExtension}",$path ,"", "")\r
- #end\r
- $database.info("}")\r
-\r
- ## ===================================================================================\r
- ## access-context\r
- ## ==============\r
- $database.info("public void parseAccessContext() {")\r
- $database.info(" parseAccessContext()")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommon})}${glAccessContextName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/AccessContext.${glTemplateFileExtension}",$path ,"", "")\r
- $database.info("}")\r
-\r
- ## -----------------------------------------------------\r
- ## allcommon dao\r
- ## -------------\r
- $database.info("public void parseDaoInterface() {")\r
- $database.info(" parseDaoReadable")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommon})}${glDaoReadableInterfaceName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/DaoReadable.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parseDaoWritable")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommon})}${glDaoWritableInterfaceName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/DaoWritable.${glTemplateFileExtension}",$path ,"", "")\r
- $database.info("}")\r
-\r
- ## -----------------------------------------------------\r
- ## allcommon entity\r
- ## ----------------\r
- $database.info("public void parseEntityInterface() {")\r
- $database.info(" parseEntity();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommon})}${glEntityInterfaceName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/Entity.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parseEntityDefinedCommonColumn();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommon})}${glEntityDefinedCommonColumnInterfaceName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/EntityDefinedCommonColumn.${glTemplateFileExtension}",$path ,"", "")\r
- $database.info("}")\r
-\r
- ## -----------------------------------------------------\r
- ## allcommon condition-bean\r
- ## ------------------------\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonCBean}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info("public void parseConditionBeanFramework() {")\r
- $database.info(" parseFetchNarrowingBeanContext()")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBean})}${glFetchNarrowingBeanContextName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/FetchNarrowingBeanContext.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parseFetchNarrowingBean()")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBean})}${glFetchNarrowingBeanInterfaceName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/FetchNarrowingBean.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- #if (!$database.isTargetLanguageCSharp())\r
- $database.info(" parseSimpleOrderByBean()")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBean})}${glSimpleOrderByBeanName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/SimpleOrderByBean.${glTemplateFileExtension}",$path ,"", "")\r
- #end\r
-\r
- $database.info(" parseSimplePagingBean()")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBean})}${glSimplePagingBeanName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/SimplePagingBean.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parse('PagingHandler')")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBean})}${glPagingHandlerName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/PagingHandler.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parse('PagingInvoker')")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBean})}${glPagingInvokerName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/PagingInvoker.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parse('PagingResultBean');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBean})}${glPagingResultBeanName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/PagingResultBean.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parse('ListResultBean');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBean})}${glListResultBeanName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/ListResultBean.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parse('ResultBeanBuilder');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBean})}${glResultBeanBuilderName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/ResultBeanBuilder.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parseConditionBeanContext()")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBean})}${glConditionBeanContextName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/ConditionBeanContext.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parseConditionBean()")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBean})}${glConditionBeanInterfaceName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/ConditionBean.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parseConditionQuery()")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBean})}${glConditionQueryInterfaceName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/ConditionQuery.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parse('MapParameterBean');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBean})}${glMapParameterBeanInterfaceName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/MapParameterBean.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parsePagingBean()")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBean})}${glPagingBeanInterfaceName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/PagingBean.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parseOrderByBean()")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBean})}${glOrderByBeanInterfaceName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/OrderByBean.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parseSelectResource()")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBean})}${glSelectResourceInterfaceName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/SelectResource.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parse('SubQuery')")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBean})}${glSubQuery}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/SubQuery.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parse('UnionQuery')")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBean})}${glUnionQuery}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/UnionQuery.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonCBean}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parseAbstractConditionBean")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBean})}${glConditionBeanAbstractName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/AbstractConditionBean.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parseAbstractConditionQuery")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBean})}${glConditionQueryAbstractName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/AbstractConditionQuery.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- ## -----------------------------------------------------\r
- ## allcommon condition-bean condition-key\r
- ## --------------------------------------\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonCKey}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parseConditionKey")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCKey})}${glConditionKeyName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/ckey/ConditionKey.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parseConditionKey_equal")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCKey})}${glConditionKeyName}Equal.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/ckey/ConditionKey_equal.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parseConditionKey_notEqual")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCKey})}${glConditionKeyName}NotEqual.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/ckey/ConditionKey_notEqual.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parseConditionKey_greaterThan")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCKey})}${glConditionKeyName}GreaterThan.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/ckey/ConditionKey_greaterThan.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parseConditionKey_lessThan")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCKey})}${glConditionKeyName}LessThan.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/ckey/ConditionKey_lessThan.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parseConditionKey_greaterEqual")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCKey})}${glConditionKeyName}GreaterEqual.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/ckey/ConditionKey_greaterEqual.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parseConditionKey_lessEqual")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCKey})}${glConditionKeyName}LessEqual.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/ckey/ConditionKey_lessEqual.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parseConditionKey_prefixSearch")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCKey})}${glConditionKeyName}PrefixSearch.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/ckey/ConditionKey_prefixSearch.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parseConditionKey_likeSearch")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCKey})}${glConditionKeyName}LikeSearch.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/ckey/ConditionKey_likeSearch.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parseConditionKey_inScope")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCKey})}${glConditionKeyName}InScope.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/ckey/ConditionKey_inScope.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parseConditionKey_notInScope")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCKey})}${glConditionKeyName}NotInScope.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/ckey/ConditionKey_notInScope.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parseConditionKey_isNull")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCKey})}${glConditionKeyName}IsNull.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/ckey/ConditionKey_isNull.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parseConditionKey_isNotNull")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCKey})}${glConditionKeyName}IsNotNull.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/ckey/ConditionKey_isNotNull.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- ## -----------------------------------------------------\r
- ## allcommon condition-bean condition-option\r
- ## -----------------------------------------\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonCOption}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parseConditionOption")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCOption})}${glConditionOptionInterfaceName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/coption/ConditionOption.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parse('SimpleStringOption')")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCOption})}${glConditionOptionSimpleStringName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/coption/SimpleStringOption.${glTemplateFileExtension}",$path ,"", "")\r
- \r
- $database.info(" parse('FromToOption');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCOption})}${glConditionOptionFromToName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/coption/FromToOption.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parse('DateFromToOption');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCOption})}${glConditionOptionDateFromToName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/coption/DateFromToOption.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parseLikeSearchOption")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCOption})}${glConditionOptionLikeSearchName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/coption/LikeSearchOption.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- #if ($database.isTargetLanguageJava())\r
- $database.info(" parseInScopeOption")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCOption})}${glConditionOptionInScopeName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/coption/InScopeOption.${glTemplateFileExtension}",$path ,"", "")\r
- #end\r
-\r
- #if ($database.isTargetLanguageJava())\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonCOptionParts}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parseSplitOptionParts")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCOptionParts})}${glConditionOptionPartsSplitName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/coption/parts/SplitOptionParts.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parseToUpperLowerCaseOptionParts")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCOptionParts})}${glConditionOptionPartsToUpperLowerCaseName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/coption/parts/ToUpperLowerCaseOptionParts.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parseToSingleByteOptionParts")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCOptionParts})}${glConditionOptionPartsToSingleByteName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/coption/parts/ToSingleByteOptionParts.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonCOptionPartsLocal}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parseJapaneseOptionPartsAgent")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCOptionPartsLocal})}${glConditionOptionPartsAgentJapaneseName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/coption/parts/local/JapaneseOptionPartsAgent.${glTemplateFileExtension}",$path ,"", "")\r
- #end\r
-\r
- ## -------------------------------------------------------\r
- ## allcommon condition-bean condition-value\r
- ## ----------------------------------------\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonCValue}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parseConditionValue")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCValue})}${glConditionValueName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/cvalue/ConditionValue.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- ## -------------------------------------------------------\r
- ## allcommon condition-bean grouping\r
- ## ---------------------------------\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonCBeanGrouping}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parse('GroupingOption');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBeanGrouping})}${glGroupingOptionName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/grouping/GroupingOption.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parse('GroupingRowEndDeterminer');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBeanGrouping})}${glGroupingRowEndDeterminerName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/grouping/GroupingRowEndDeterminer.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parse('GroupingRowResource');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBeanGrouping})}${glGroupingRowResourceName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/grouping/GroupingRowResource.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parse('GroupingRowSetupper');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBeanGrouping})}${glGroupingRowSetupperName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/grouping/GroupingRowSetupper.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonCBeanMapping}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parse('EntityDtoMapper');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBeanMapping})}${glEntityDtoMapperName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/mapping/EntityDtoMapper.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- ## -----------------------------------------------------\r
- ## allcommon condition-bean outside-sql\r
- ## ------------------------------------\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonCBeanOutsidesql}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parse('OutsideSqlContext');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBeanOutsidesql})}${glOutsideSqlContextName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/outsidesql/OutsideSqlContext.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parse('OutsideSqlDao');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBeanOutsidesql})}${glOutsideSqlDaoName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/outsidesql/OutsideSqlDao.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parse('OutsideSqlOption');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBeanOutsidesql})}${glOutsideSqlOptionName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/outsidesql/OutsideSqlOption.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parse('ProcedurePmb');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBeanOutsidesql})}${glProcedurePmbName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/outsidesql/ProcedurePmb.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonCBeanOutsidesqlExecutor}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parse('OutsideSqlBasicExecutor');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBeanOutsidesqlExecutor})}${glOutsideSqlBasicExecutorName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parse('OutsideSqlCursorExecutor');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBeanOutsidesqlExecutor})}${glOutsideSqlCursorExecutorName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parse('OutsideSqlPagingExecutor');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBeanOutsidesqlExecutor})}${glOutsideSqlPagingExecutorName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parse('OutsideSqlEntityExecutor');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBeanOutsidesqlExecutor})}${glOutsideSqlEntityExecutorName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- ## -----------------------------------------------------\r
- ## allcommon condition-bean page-navi\r
- ## ----------------------------------\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonCBeanPagenavi}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parse('PageNumberLink');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBeanPagenavi})}${glPageNumberLinkName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/pagenavi/PageNumberLink.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parse('PageNumberLinkSetupper');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBeanPagenavi})}${glPageNumberLinkSetupperName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/pagenavi/PageNumberLinkSetupper.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonCBeanPagenaviGroup}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parse('PageGroupBean');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBeanPagenaviGroup})}${glPageGroupBeanName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/pagenavi/group/PageGroupBean.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parse('PageGroupOption');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBeanPagenaviGroup})}${glPageGroupOptionName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/pagenavi/group/PageGroupOption.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonCBeanPagenaviRange}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parse('PageRangeBean');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBeanPagenaviRange})}${glPageRangeBeanName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/pagenavi/range/PageRangeBean.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parse('PageRangeOption');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonCBeanPagenaviRange})}${glPageRangeOptionName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/pagenavi/range/PageRangeOption.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- ## -------------------------------------------------------\r
- ## allcommon condition-bean sql-clause\r
- ## -----------------------------------\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonSqlClause}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parseSqlClause")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonSqlClause})}${glSqlClauseInterfaceName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/sqlclause/SqlClause.${glTemplateFileExtension}",$path ,"" ,"")\r
-\r
- $database.info(" parseAbstractSqlClause")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonSqlClause})}${glSqlClauseAbstractName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/sqlclause/AbstractSqlClause.${glTemplateFileExtension}",$path ,"" ,"")\r
-\r
- #if ($database.isTargetLanguageJava())\r
-\r
- $database.info(" parse('WhereClauseSimpleFilter');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonSqlClause})}${glWhereClauseSimpleFilterInterfaceName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/sqlclause/WhereClauseSimpleFilter.${glTemplateFileExtension}",$path ,"" ,"")\r
-\r
- $database.info(" parseSqlClause_derby")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonSqlClause})}${glSqlClauseInterfaceName}Derby.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/sqlclause/SqlClause_derby.${glTemplateFileExtension}",$path ,"" ,"")\r
-\r
- $database.info(" parseSqlClause_h2")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonSqlClause})}${glSqlClauseInterfaceName}H2.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/sqlclause/SqlClause_h2.${glTemplateFileExtension}",$path ,"" ,"")\r
-\r
- $database.info(" parseSqlClause_oracle")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonSqlClause})}${glSqlClauseInterfaceName}Oracle.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/sqlclause/SqlClause_oracle.${glTemplateFileExtension}",$path ,"" ,"")\r
-\r
- $database.info(" parseSqlClause_firebird")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonSqlClause})}${glSqlClauseInterfaceName}Firebird.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/sqlclause/SqlClause_firebird.${glTemplateFileExtension}",$path ,"" ,"")\r
-\r
- $database.info(" parseSqlClause_mysql")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonSqlClause})}${glSqlClauseInterfaceName}MySql.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/sqlclause/SqlClause_mysql.${glTemplateFileExtension}",$path ,"" ,"")\r
-\r
- $database.info(" parseSqlClause_postgresql")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonSqlClause})}${glSqlClauseInterfaceName}PostgreSql.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/sqlclause/SqlClause_postgresql.${glTemplateFileExtension}",$path ,"" ,"")\r
-\r
- $database.info(" parseSqlClause_mssql")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonSqlClause})}${glSqlClauseInterfaceName}SqlServer.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/sqlclause/SqlClause_mssql.${glTemplateFileExtension}",$path ,"" ,"")\r
-\r
- $database.info(" parseSqlClause_db2")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonSqlClause})}${glSqlClauseInterfaceName}Db2.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/sqlclause/SqlClause_db2.${glTemplateFileExtension}",$path ,"" ,"")\r
-\r
- $database.info(" parseSqlClause_interbase")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonSqlClause})}${glSqlClauseInterfaceName}Interbase.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/sqlclause/SqlClause_interbase.${glTemplateFileExtension}",$path ,"" ,"")\r
-\r
- $database.info(" parseSqlClause_default")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonSqlClause})}${glSqlClauseInterfaceName}Default.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/sqlclause/SqlClause_default.${glTemplateFileExtension}",$path ,"" ,"")\r
- #end\r
- #if ($database.isTargetLanguageCSharp())\r
- $database.info(" parseSqlClause_${database.DatabaseType}")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonSqlClause})}${glSqlClauseInterfaceName}${database.DaoGenDbName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/sqlclause/SqlClause_${database.DatabaseType}.${glTemplateFileExtension}",$path ,"" ,"")\r
- #end\r
-\r
- $database.info(" parseOrderByClause")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonSqlClause})}${glOrderByClauseName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/sqlclause/OrderByClause.${glTemplateFileExtension}",$path ,"" ,"")\r
-\r
- $database.info(" parseOrderByElement")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonSqlClause})}${glOrderByElementName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/cbean/sqlclause/OrderByElement.${glTemplateFileExtension}",$path ,"" ,"")\r
-\r
- $database.info("}")\r
-\r
- ## -------------------------------------------------------\r
- ## allcommon dbmeta\r
- ## ----------------\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonDBMeta}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info("public void parseDBMetaClass() {")\r
- $database.info(" parseDBMeta();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonDBMeta})}${glDBMetaInterfaceName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/dbmeta/DBMeta.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parseAbstractDBMeta();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonDBMeta})}${glDBMetaAbstractName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/dbmeta/AbstractDBMeta.${glTemplateFileExtension}",$path,"", "")\r
-\r
- #if ($database.isTargetLanguageJava())\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonDBMetaHierarchy}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parse('HierarchyArranger');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonDBMetaHierarchy})}${glHierarchyArrangerName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/dbmeta/hierarchy/HierarchyArranger.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('HierarchyBasicRequest');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonDBMetaHierarchy})}${glHierarchyBasicRequestName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/dbmeta/hierarchy/HierarchyBasicRequest.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('HierarchyRequest');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonDBMetaHierarchy})}${glHierarchyRequestName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/dbmeta/hierarchy/HierarchyRequest.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('HierarchyRequestElement');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonDBMetaHierarchy})}${glHierarchyRequestElementName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/dbmeta/hierarchy/HierarchyRequestElement.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('HierarchySourceColumn');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonDBMetaHierarchy})}${glHierarchySourceColumnName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/dbmeta/hierarchy/HierarchySourceColumn.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('HierarchySourceIterator');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonDBMetaHierarchy})}${glHierarchySourceIteratorName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/dbmeta/hierarchy/HierarchySourceIterator.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('HierarchySourceRow');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonDBMetaHierarchy})}${glHierarchySourceRowName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/dbmeta/hierarchy/HierarchySourceRow.${glTemplateFileExtension}",$path,"", "")\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonDBMetaHierarchyBasic}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parse('HierarchySourceEntityColumn');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonDBMetaHierarchyBasic})}${glHierarchySourceEntityColumnName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityColumn.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('HierarchySourceEntityListIterator');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonDBMetaHierarchyBasic})}${glHierarchySourceEntityListIteratorName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityListIterator.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('HierarchySourceEntityRow');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonDBMetaHierarchyBasic})}${glHierarchySourceEntityRowName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityRow.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('HierarchySourceListIterator');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonDBMetaHierarchyBasic})}${glHierarchySourceListIteratorName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/dbmeta/hierarchy/basic/HierarchySourceListIterator.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('HierarchySourceRowSetupper');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonDBMetaHierarchyBasic})}${glHierarchySourceRowSetupperName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/dbmeta/hierarchy/basic/HierarchySourceRowSetupper.${glTemplateFileExtension}",$path,"", "")\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonDBMetaInfo}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parse('ForeignInfo');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonDBMetaInfo})}${glForeignInfoName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/dbmeta/info/ForeignInfo.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('ReferrerInfo');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonDBMetaInfo})}${glReferrerInfoName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/dbmeta/info/ReferrerInfo.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('RelationInfo');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonDBMetaInfo})}${glRelationInfoName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/dbmeta/info/RelationInfo.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('UniqueInfo');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonDBMetaInfo})}${glUniqueInfoName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/dbmeta/info/UniqueInfo.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('ColumnInfo');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonDBMetaInfo})}${glColumnInfoName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/dbmeta/info/ColumnInfo.${glTemplateFileExtension}",$path,"", "")\r
- #end\r
-\r
- #if ($database.isTargetLanguageCSharp())\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonDBMetaInfo}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parse('ForeignInfo');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonDBMetaInfo})}${glForeignInfoName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/dbmeta/info/ForeignInfo.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('ReferrerInfo');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonDBMetaInfo})}${glReferrerInfoName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/dbmeta/info/ReferrerInfo.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('RelationInfo');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonDBMetaInfo})}${glRelationInfoName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/dbmeta/info/RelationInfo.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('UniqueInfo');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonDBMetaInfo})}${glUniqueInfoName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/dbmeta/info/UniqueInfo.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('ColumnInfo');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonDBMetaInfo})}${glColumnInfoName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/dbmeta/info/ColumnInfo.${glTemplateFileExtension}",$path,"", "")\r
- #end\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonDBMeta}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parseDBMetaInstanceHandler();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonDBMeta})}${glDBMetaInstanceHandlerName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/dbmeta/DBMetaInstanceHandler.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info("}")\r
-\r
- ## -------------------------------------------------------\r
- ## allcommon exception\r
- ## -------------------\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonException}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info("public void parseExceptionClass() {")\r
-\r
- $database.info(" parse('BatchEntityAlreadyUpdatedException');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonException})}${glBatchEntityAlreadyUpdatedException}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/exception/BatchEntityAlreadyUpdatedException.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('BindVariableCommentNotFoundPropertyException');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonException})}${glBindVariableCommentNotFoundPropertyException}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/exception/BindVariableCommentNotFoundPropertyException.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('BindVariableParameterNullValueException');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonException})}${glBindVariableParameterNullValueException}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/exception/BindVariableParameterNullValueException.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('EmbeddedValueCommentNotFoundPropertyException');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonException})}${glEmbeddedValueCommentNotFoundPropertyException}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/exception/EmbeddedValueCommentNotFoundPropertyException.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('EmbeddedValueParameterNullValueException');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonException})}${glEmbeddedValueParameterNullValueException}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/exception/EmbeddedValueParameterNullValueException.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('EndCommentNotFoundException');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonException})}${glEndCommentNotFoundException}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/exception/EndCommentNotFoundException.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('IfCommentConditionNotFoundException');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonException})}${glIfCommentConditionNotFoundException}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/exception/IfCommentConditionNotFoundException.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('IfCommentNotBooleanResultException');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonException})}${glIfCommentNotBooleanResultException}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/exception/IfCommentNotBooleanResultException.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('IfCommentWrongExpressionException');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonException})}${glIfCommentWrongExpressionException}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/exception/IfCommentWrongExpressionException.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('DangerousResultSizeException');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonException})}${glDangerousResultSizeException}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/exception/DangerousResultSizeException.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('EntityAlreadyUpdatedException');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonException})}${glEntityAlreadyUpdatedException}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/exception/EntityAlreadyUpdatedException.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('EntityAlreadyDeletedException');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonException})}${glEntityAlreadyDeletedException}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/exception/EntityAlreadyDeletedException.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('EntityAlreadyExistsException');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonException})}${glEntityAlreadyExistsException}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/exception/EntityAlreadyExistsException.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('EntityDuplicatedException');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonException})}${glEntityDuplicatedException}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/exception/EntityDuplicatedException.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('OutsideSqlNotFoundException');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonException})}${glOutsideSqlNotFoundException}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/exception/OutsideSqlNotFoundException.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('RequiredOptionNotFoundException');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonException})}${glRequiredOptionNotFoundException}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/exception/RequiredOptionNotFoundException.${glTemplateFileExtension}",$path,"", "")\r
-\r
- #if ($database.isTargetLanguageJava())\r
- $database.info(" parseRecordHasAlreadyBeenDeletedException();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonException})}${glRecordHasAlreadyBeenDeletedException}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/exception/RecordHasAlreadyBeenDeletedException.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parseRecordHasOverlappedException();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonException})}${glRecordHasOverlappedException}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/exception/RecordHasOverlappedException.${glTemplateFileExtension}",$path,"", "")\r
- #end\r
-\r
- ## DBFlute-0.7.7\r
- $database.info(" parse('SQLFailureException');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonException})}${glSQLFailureException}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/exception/SQLFailureException.${glTemplateFileExtension}",$path,"", "")\r
- $database.info("}")\r
-\r
- ## -------------------------------------------------------\r
- ## allcommon helper\r
- ## ----------------\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonHelper}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info("public void parseHelperClass() {")\r
-\r
- $database.info(" parseMapListString();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonHelper})}${glMapListStringName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/helper/MapListString.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parseMapListStringImpl();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonHelper})}${glMapListStringImplName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/helper/MapListStringImpl.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parseMapStringBuilder();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonHelper})}${glMapStringBuilderName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/helper/MapStringBuilder.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parseMapStringBuilderImpl();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonHelper})}${glMapStringBuilderImplName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/helper/MapStringBuilderImpl.${glTemplateFileExtension}",$path,"", "")\r
-\r
- #if ($database.isTargetLanguageJava())\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonHelperCharacter}))\r
- $database.makeDirectory($path)\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonHelperCharacterImpl}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parseGeneralCharacter();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonHelperCharacter})}${glGeneralCharacterName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/helper/character/GeneralCharacter.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parseGeneralCharacterImpl();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonHelperCharacterImpl})}${glGeneralCharacterImplName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/helper/character/impl/GeneralCharacterImpl.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parseJapaneseCharacter();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonHelperCharacter})}${glJapaneseCharacterName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/helper/character/JapaneseCharacter.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parseJapaneseCharacterImpl();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonHelperCharacterImpl})}${glJapaneseCharacterImplName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/helper/character/impl/JapaneseCharacterImpl.${glTemplateFileExtension}",$path,"", "")\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonHelperCollectionOrder}))\r
- $database.makeDirectory($path)\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonHelperCollectionOrderImpl}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parseAccordingToOrder();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonHelperCollectionOrder})}${glAccordingToOrderName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/helper/collection/order/AccordingToOrder.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parseAccordingToOrderOption();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonHelperCollectionOrder})}${glAccordingToOrderOptionName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/helper/collection/order/AccordingToOrderOption.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parseAccordingToOrderIdExtractor();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonHelperCollectionOrder})}${glAccordingToOrderIdExtractorName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/helper/collection/order/AccordingToOrderIdExtractor.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parseAccordingToOrderImpl();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonHelperCollectionOrderImpl})}${glAccordingToOrderImplName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/helper/collection/order/impl/AccordingToOrderImpl.${glTemplateFileExtension}",$path,"", "")\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonHelperStackTrace}))\r
- $database.makeDirectory($path)\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonHelperStackTraceImpl}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parse('InvokeNameExtractingResource');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonHelperStackTrace})}${glInvokeNameExtractingResourceName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/helper/stacktrace/InvokeNameExtractingResource.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InvokeNameExtractor');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonHelperStackTrace})}${glInvokeNameExtractorName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/helper/stacktrace/InvokeNameExtractor.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InvokeNameResult');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonHelperStackTrace})}${glInvokeNameResultName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/helper/stacktrace/InvokeNameResult.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InvokeNameExtractorImpl');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonHelperStackTraceImpl})}${glInvokeNameExtractorImplName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/helper/stacktrace/impl/InvokeNameExtractorImpl.${glTemplateFileExtension}",$path,"", "")\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonHelperToken}))\r
- $database.makeDirectory($path)\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonHelperTokenLine}))\r
- $database.makeDirectory($path)\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonHelperTokenLineImpl}))\r
- $database.makeDirectory($path)\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonHelperTokenFile}))\r
- $database.makeDirectory($path)\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonHelperTokenFileImpl}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parseLineToken();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonHelperTokenLine})}${glLineTokenName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/helper/token/line/LineToken.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parseLineTokenImpl();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonHelperTokenLineImpl})}${glLineTokenImplName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/helper/token/line/impl/LineTokenImpl.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parseLineTokenizingOption();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonHelperTokenLine})}${glLineTokenizingOptionName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/helper/token/line/LineTokenizingOption.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parseLineMakingOption();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonHelperTokenLine})}${glLineMakingOptionName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/helper/token/line/LineMakingOption.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parseFileToken();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonHelperTokenFile})}${glFileTokenName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/helper/token/file/FileToken.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parseFileTokenImpl();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonHelperTokenFileImpl})}${glFileTokenImplName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/helper/token/file/impl/FileTokenImpl.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parseFileTokenizingOption();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonHelperTokenFile})}${glFileTokenizingOptionName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/helper/token/file/FileTokenizingOption.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parseFileTokenizingRowResource();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonHelperTokenFile})}${glFileTokenizingRowResourceName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/helper/token/file/FileTokenizingRowResource.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parseFileTokenizingCallback();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonHelperTokenFile})}${glFileTokenizingCallbackName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/helper/token/file/FileTokenizingCallback.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parseFileTokenizingHeaderInfo();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonHelperTokenFile})}${glFileTokenizingHeaderInfoName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/helper/token/file/FileTokenizingHeaderInfo.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parseFileMakingOption();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonHelperTokenFile})}${glFileMakingOptionName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/helper/token/file/FileMakingOption.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parseFileMakingRowResource();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonHelperTokenFile})}${glFileMakingRowResourceName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/helper/token/file/FileMakingRowResource.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parseFileMakingCallback();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonHelperTokenFile})}${glFileMakingCallbackName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/helper/token/file/FileMakingCallback.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parseFileMakingHeaderInfo();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonHelperTokenFile})}${glFileMakingHeaderInfoName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/helper/token/file/FileMakingHeaderInfo.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parseFileMakingSimpleFacade();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonHelperTokenFile})}${glFileMakingSimpleFacadeName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/helper/token/file/FileMakingSimpleFacade.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parseFileMakingSimpleFacadeImpl();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonHelperTokenFileImpl})}${glFileMakingSimpleFacadeImplName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/helper/token/file/impl/FileMakingSimpleFacadeImpl.${glTemplateFileExtension}",$path,"", "")\r
- #end\r
-\r
- $database.info("}")\r
-\r
- ## -------------------------------------------------------\r
- ## allcommon classification\r
- ## ------------------------\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommon}))\r
- $database.makeDirectory($path)\r
-\r
- #if ($database.hasClassificationDefinitionMap())\r
- $database.info("parseAllcommonClassification() {")\r
-\r
- $database.info(" parse('ClassificationDefinition');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommon})}${glClassificationDefinition}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/ClassificationDefinition.${glTemplateFileExtension}",$path ,"" ,"")\r
-\r
- $database.info(" parse('CDef');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommon})}${glCDef}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/CDef.${glTemplateFileExtension}",$path ,"" ,"")\r
-\r
- $database.info("}")\r
- #end\r
-\r
- ## -------------------------------------------------------\r
- ## allcommon s2container\r
- ## ---------------------\r
- #if ($database.isTargetLanguageJava())\r
- $database.info("parseAllcommonS2Container() {")\r
- #if ($database.isTargetContainerSeasar())\r
- #if ($database.isAvailableHotDeploy())\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonS2Container}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parse('BehaviorCreator');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2Container})}${glBehaviorCreator}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2container/BehaviorCreator.${glTemplateFileExtension}",$path ,"" ,"")\r
-\r
- #foreach ($dbfluteDiconPackageName in $database.DBFluteDiconPackageNameList)\r
- #set ($path = "${dbfluteDiconPackageName}" )\r
- $database.makeDirectory($path)\r
-\r
- #set ($path = "${dbfluteDiconPackageName}/${glDBFluteDiconFileName}" )\r
- $database.info(" ${path}")\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2container/DBFluteHotDeployDicon.${glTemplateFileExtension}", $path, "", "")\r
-\r
- #set ($path = "${dbfluteDiconPackageName}/${glCreatorDiconFileName}" )\r
- $database.info(" ${path}")\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2container/DBFluteCreatorDicon.${glTemplateFileExtension}", $path, "", "")\r
-\r
- #set ($path = "${dbfluteDiconPackageName}/${glCustomizerDiconFileName}" )\r
- $database.info(" ${path}")\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2container/DBFluteCustomizerDicon.${glTemplateFileExtension}", $path, "", "")\r
- #end\r
- #else\r
- #foreach ($dbfluteDiconPackageName in $database.DBFluteDiconPackageNameList)\r
- #set ($path = "${dbfluteDiconPackageName}" )\r
- $database.makeDirectory($path)\r
-\r
- #set ($path = "${dbfluteDiconPackageName}/${glDBFluteDiconFileName}" )\r
- $database.info(" ${path}")\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2container/DBFluteNormalDicon.${glTemplateFileExtension}", $path, "", "")\r
- #end\r
- #end\r
- #end\r
- #if ($database.isTargetContainerSpring())\r
- #foreach ($dbfluteDiconPackageName in $database.DBFluteDiconPackageNameList)\r
- #set ($path = "${dbfluteDiconPackageName}" )\r
- $database.makeDirectory($path)\r
-\r
- #set ($path = "${dbfluteDiconPackageName}/${glDBFluteBeansFileName}" )\r
- $database.info(" ${path}")\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2container/DBFluteBeans.${glTemplateFileExtension}", $path, "", "")\r
- #end\r
- #end\r
- $database.info("}")\r
- #else\r
- #if (!$database.isTargetLanguageCSharp())\r
- $database.info("parseDBFluteDicon() {")\r
- #foreach ($dbfluteDiconPackageName in $database.DBFluteDiconPackageNameList)\r
- #set ($path = "${dbfluteDiconPackageName}" )\r
- $database.makeDirectory($path)\r
-\r
- #set ($path = "${dbfluteDiconPackageName}/${glDBFluteDiconFileName}" )\r
- $database.info(" ${path}")\r
- $generator.parse("om/${glResourceDirectory}/allcommon/DaoDicon.${glTemplateFileExtension}", $path, "", "")\r
- #end\r
- #end\r
- #end\r
-\r
- ## -------------------------------------------------------\r
- ## allcommon flute\r
- ## ---------------\r
- #if ($database.isTargetContainerSeasar() && $database.isTargetLanguageJava())\r
- $database.info("public void parseBFinder() {")\r
- $database.info(" parse('BFinder');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommon})}${glBFinderName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/BFinder.${glTemplateFileExtension}",$path ,"", "")\r
- $database.info("}")\r
- #end\r
-\r
- ## -------------------------------------------------------\r
- ## allcommon selector\r
- ## ------------------\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommon}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info("public void parseSelector() {")\r
- #if ($database.isTargetLanguageJava())\r
- $database.info(" parse('CacheAbstractSelector');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommon})}${glCacheAbstractSelector}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/CacheAbstractSelector.${glTemplateFileExtension}",$path ,"", "")\r
- #end\r
- $database.info(" parse('BehaviorSelector');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommon})}${glBehaviorSelectorInterfaceName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/BehaviorSelector.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommon}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parse('CacheBehaviorSelector');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommon})}${glCacheBehaviorSelectorName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/CacheBehaviorSelector.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- $database.info(" parse('DaoSelector');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommon})}${glDaoSelectorInterfaceName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/DaoSelector.${glTemplateFileExtension}",$path ,"", "")\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommon}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parseCacheDaoSelector();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommon})}${glCacheDaoSelectorName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/CacheDaoSelector.${glTemplateFileExtension}",$path ,"", "")\r
- $database.info("}")\r
-\r
- ## -----------------------------------------------------------------------------------------------------\r
- ## Parse gen meta data\r
- ## -------------------\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommon}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info("parseGenMetaData();")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommon})}${glGenMetaDataClassName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/GenMetaData.${glTemplateFileExtension}",$path ,"" ,"")\r
-\r
- ## -----------------------------------------------------------------------------------------------------\r
- ## Parse internal map context\r
- ## --------------------------\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommon}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info("parse('InternalMapContext');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommon})}${glInternalMapContextName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/InternalMapContext.${glTemplateFileExtension}",$path ,"" ,"")\r
-\r
- ## -----------------------------------------------------------------------------------------------------\r
- ## Parse qlog\r
- ## ----------\r
- $database.info("parse('QLog');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommon})}${glQLog}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/QLog.${glTemplateFileExtension}",$path ,"" ,"")\r
-\r
- $database.info("parse('XLog');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommon})}${glXLog}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/XLog.${glTemplateFileExtension}",$path ,"" ,"")\r
-\r
- $database.info("parse('DBFluteConfig');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommon})}${glDBFluteConfig}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/DBFluteConfig.${glTemplateFileExtension}",$path ,"" ,"")\r
-\r
- ## -----------------------------------------------------------------------------------------------------\r
- ## Parse java like\r
- ## ---------------\r
- #if ($database.isTargetLanguageCSharp())\r
- $database.info("public void parseJavaLike() {")\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonJavaLike}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parse('JavaBasic');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonJavaLike})}${glJavaBasic}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/javalike/JavaBasic.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('JavaCollection');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonJavaLike})}${glJavaCollection}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/javalike/JavaCollection.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('JavaException');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonJavaLike})}${glJavaException}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/javalike/JavaException.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('JavaReflection');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonJavaLike})}${glJavaReflection}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/javalike/JavaReflection.${glTemplateFileExtension}",$path,"", "")\r
- #end\r
-\r
- ## -----------------------------------------------------------------------------------------------------\r
- ## Parse jdbc class\r
- ## ----------------\r
- $database.info("public void parseJdbcClass() {")\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonJdbc}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parse('CursorHandler');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonJdbc})}${glCursorHandlerName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/jdbc/CursorHandler.${glTemplateFileExtension}",$path,"", "")\r
-\r
- #if ($database.isTargetLanguageJava())\r
- $database.info(" parse('LatestSqlProvider');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonJdbc})}${glLatestSqlProviderName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/jdbc/LatestSqlProvider.${glTemplateFileExtension}",$path,"", "")\r
- #end\r
-\r
- $database.info(" parse('StatementConfig');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonJdbc})}${glStatementConfig}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/jdbc/StatementConfig.${glTemplateFileExtension}",$path,"", "")\r
- $database.info("}")\r
-\r
- ## -----------------------------------------------------------------------------------------------------\r
- ## Parse extended s2dao class\r
- ## --------------------------\r
- $database.info("public void parseS2DaoClass() {")\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonS2Dao}))\r
- $database.makeDirectory($path)\r
-\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2Dao})}${glS2DaoInterceptor}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/S2DaoInterceptor.${glTemplateFileExtension}",$path,"", "")\r
-\r
- #if ($database.isTargetLanguageJava() && $database.isVersionAfter1046())\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2Dao})}${glDaoLatestSqlProvider}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/S2DaoLatestSqlProvider.${glTemplateFileExtension}",$path,"", "")\r
- #end\r
-\r
- #if ($database.isVersionAfter1047())\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2Dao})}${glS2DaoMetaDataExtension}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/S2DaoMetaDataExtension.${glTemplateFileExtension}",$path,"", "")\r
- #else\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2Dao})}${glS2DaoMetaDataExtension}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/S2DaoMetaDataExtension-s4546.${glTemplateFileExtension}",$path,"", "")\r
- #end\r
-\r
- #if ($database.isVersionAfter1047())\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2Dao})}${glDaoMetaDataFactoryImpl}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/S2DaoMetaDataFactoryImpl.${glTemplateFileExtension}",$path,"", "")\r
- #else\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2Dao})}${glDaoMetaDataFactoryImpl}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/S2DaoMetaDataFactoryImpl-s4546.${glTemplateFileExtension}",$path,"", "")\r
- #end\r
-\r
- #if ($database.isTargetLanguageJava())\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2Dao})}${glS2BeanMetaDataFactoryImpl}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/S2BeanMetaDataFactoryImpl.${glTemplateFileExtension}",$path,"", "")\r
- #end\r
-\r
- #if ($database.isTargetLanguageJava() && $database.isVersionAfter1047())\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2Dao})}${glS2DaoPropertyTypeFactoryBuilderExtension}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/S2DaoPropertyTypeFactoryBuilderExtension.${glTemplateFileExtension}",$path,"", "")\r
- #end\r
-\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2Dao})}${glS2DaoSelectDynamicCommand}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/S2DaoSelectDynamicCommand.${glTemplateFileExtension}",$path,"", "")\r
-\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2Dao})}${glFetchNarrowingResultSetFactory}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/FetchNarrowingResultSetFactory.${glTemplateFileExtension}",$path,"", "")\r
-\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2Dao})}${glFetchNarrowingResultSetWrapper}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/FetchNarrowingResultSetWrapper.${glTemplateFileExtension}",$path,"", "")\r
-\r
- #if ($database.isTargetLanguageCSharp())\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2Dao})}${glS2DaoSetting}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/S2DaoSetting.${glTemplateFileExtension}",$path,"", "")\r
- #end\r
-\r
- #if ($database.isTargetLanguageJava())\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalRsHandler}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parse('InternalAbstractDtoMetaDataResultSetHandler');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalRsHandler})}${glInternalAbstractDtoMetaDataResultSetHandler}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/rshandler/InternalAbstractDtoMetaDataResultSetHandler.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalAbstractBeanMetaDataResultSetHandler');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalRsHandler})}${glInternalAbstractBeanMetaDataResultSetHandler}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/rshandler/InternalAbstractBeanMetaDataResultSetHandler.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalBeanArrayMetaDataResultSetHandler');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalRsHandler})}${glInternalBeanArrayMetaDataResultSetHandler}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/rshandler/InternalBeanArrayMetaDataResultSetHandler.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalBeanListMetaDataResultSetHandler');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalRsHandler})}${glInternalBeanListMetaDataResultSetHandler}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.${glTemplateFileExtension}",$path,"", "")\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlCommand}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parse('InternalAbstractAutoStaticCommand');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlCommand})}${glInternalAbstractAutoStaticCommand}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlcommand/InternalAbstractAutoStaticCommand.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalAbstractBatchAutoStaticCommand');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlCommand})}${glInternalAbstractBatchAutoStaticCommand}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlcommand/InternalAbstractBatchAutoStaticCommand.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalAbstractDynamicCommand');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlCommand})}${glInternalAbstractDynamicCommand}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlcommand/InternalAbstractDynamicCommand.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalAbstractSqlCommand');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlCommand})}${glInternalAbstractSqlCommand}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlcommand/InternalAbstractSqlCommand.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalAbstractStaticCommand');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlCommand})}${glInternalAbstractStaticCommand}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlcommand/InternalAbstractStaticCommand.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalDeleteAutoStaticCommand');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlCommand})}${glInternalDeleteAutoStaticCommand}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlcommand/InternalDeleteAutoStaticCommand.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalDeleteBatchAutoStaticCommand');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlCommand})}${glInternalDeleteBatchAutoStaticCommand}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlcommand/InternalDeleteBatchAutoStaticCommand.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalDeleteQueryAutoDynamicCommand');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlCommand})}${glInternalDeleteQueryAutoDynamicCommand}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlcommand/InternalDeleteQueryAutoDynamicCommand.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalInsertAutoDynamicCommand');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlCommand})}${glInternalInsertAutoDynamicCommand}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlcommand/InternalInsertAutoDynamicCommand.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalInsertBatchAutoStaticCommand');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlCommand})}${glInternalInsertBatchAutoStaticCommand}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlcommand/InternalInsertBatchAutoStaticCommand.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalProcedureCommand');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlCommand})}${glInternalProcedureCommand}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlcommand/InternalProcedureCommand.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalUpdateAutoDynamicCommand');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlCommand})}${glInternalUpdateAutoDynamicCommand}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlcommand/InternalUpdateAutoDynamicCommand.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalUpdateBatchAutoStaticCommand');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlCommand})}${glInternalUpdateBatchAutoStaticCommand}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlcommand/InternalUpdateBatchAutoStaticCommand.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalUpdateDynamicCommand');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlCommand})}${glInternalUpdateDynamicCommand}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlcommand/InternalUpdateDynamicCommand.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalUpdateModifiedOnlyCommand');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlCommand})}${glInternalUpdateModifiedOnlyCommand}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlcommand/InternalUpdateModifiedOnlyCommand.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalUpdateQueryAutoDynamicCommand');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlCommand})}${glInternalUpdateQueryAutoDynamicCommand}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlcommand/InternalUpdateQueryAutoDynamicCommand.${glTemplateFileExtension}",$path,"", "")\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlHandler}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parse('InternalAbstractAutoHandler');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlHandler})}${glInternalAbstractAutoHandler}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlhandler/InternalAbstractAutoHandler.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalAbstractBatchAutoHandler');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlHandler})}${glInternalAbstractBatchAutoHandler}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlhandler/InternalAbstractBatchAutoHandler.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalBasicHandler');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlHandler})}${glInternalBasicHandler}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalBasicSelectHandler');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlHandler})}${glInternalBasicSelectHandler}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlhandler/InternalBasicSelectHandler.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalBasicUpdateHandler');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlHandler})}${glInternalBasicUpdateHandler}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlhandler/InternalBasicUpdateHandler.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalCommandContextHandler');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlHandler})}${glInternalCommandContextHandler}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlhandler/InternalCommandContextHandler.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalDeleteAutoHandler');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlHandler})}${glInternalDeleteAutoHandler}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlhandler/InternalDeleteAutoHandler.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalDeleteBatchAutoHandler');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlHandler})}${glInternalDeleteBatchAutoHandler}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlhandler/InternalDeleteBatchAutoHandler.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalInsertAutoHandler');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlHandler})}${glInternalInsertAutoHandler}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlhandler/InternalInsertAutoHandler.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalInsertBatchAutoHandler');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlHandler})}${glInternalInsertBatchAutoHandler}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlhandler/InternalInsertBatchAutoHandler.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalProcedureHandler');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlHandler})}${glInternalProcedureHandler}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlhandler/InternalProcedureHandler.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalUpdateAutoHandler');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlHandler})}${glInternalUpdateAutoHandler}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlhandler/InternalUpdateAutoHandler.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalUpdateBatchAutoHandler');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlHandler})}${glInternalUpdateBatchAutoHandler}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlhandler/InternalUpdateBatchAutoHandler.${glTemplateFileExtension}",$path,"", "")\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlLog}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parse('InternalSqlLog');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlLog})}${glInternalSqlLog}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqllog/InternalSqlLog.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalSqlLogRegistry');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlLog})}${glInternalSqlLogRegistry}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.${glTemplateFileExtension}",$path,"", "")\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlParser}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parse('InternalSqlParser');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlParser})}${glInternalSqlParser}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlparser/InternalSqlParser.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalSqlTokenizer');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlParser})}${glInternalSqlTokenizer}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlparser/InternalSqlTokenizer.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalCommandContextCreator');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlParser})}${glInternalCommandContextCreator}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlparser/InternalCommandContextCreator.${glTemplateFileExtension}",$path,"", "")\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalUtil}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parse('InternalBindVariableUtil');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalUtil})}${glInternalBindVariableUtil}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/util/InternalBindVariableUtil.${glTemplateFileExtension}",$path,"", "")\r
- \r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalVarious}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parse('InternalProcedureMetaData');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalVarious})}${glInternalProcedureMetaData}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/various/InternalProcedureMetaData.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalProcedureMetaDataFactory');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalVarious})}${glInternalProcedureMetaDataFactory}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/various/InternalProcedureMetaDataFactory.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalProcedureParameterType');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalVarious})}${glInternalProcedureParameterType}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/various/InternalProcedureParameterType.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalRowCreator');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalVarious})}${glInternalRowCreator}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/various/InternalRowCreator.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalRelationRowCreator');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalVarious})}${glInternalRelationRowCreator}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/various/InternalRelationRowCreator.${glTemplateFileExtension}",$path,"", "")\r
- #end\r
- #if ($database.isTargetLanguageCSharp())\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalRsHandler}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parse('InternalAbstractBeanMetaDataResultSetHandler');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalRsHandler})}${glInternalAbstractBeanMetaDataResultSetHandler}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/rshandler/InternalAbstractBeanMetaDataResultSetHandler.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalBeanArrayMetaDataResultSetHandler');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalRsHandler})}${glInternalBeanArrayMetaDataResultSetHandler}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/rshandler/InternalBeanArrayMetaDataResultSetHandler.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalBeanListMetaDataResultSetHandler');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalRsHandler})}${glInternalBeanListMetaDataResultSetHandler}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalBeanGenericListMetaDataResultSetHandler');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalRsHandler})}${glInternalBeanGenericListMetaDataResultSetHandler}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/rshandler/InternalBeanGenericListMetaDataResultSetHandler.${glTemplateFileExtension}",$path,"", "")\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlCommand}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parse('InternalAbstractAutoStaticCommand');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlCommand})}${glInternalAbstractAutoStaticCommand}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlcommand/InternalAbstractAutoStaticCommand.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalDeleteAutoStaticCommand');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlCommand})}${glInternalDeleteAutoStaticCommand}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlcommand/InternalDeleteAutoStaticCommand.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalDeleteQueryAutoDynamicCommand');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlCommand})}${glInternalDeleteQueryAutoDynamicCommand}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlcommand/InternalDeleteQueryAutoDynamicCommand.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalInsertAutoDynamicCommand');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlCommand})}${glInternalInsertAutoDynamicCommand}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlcommand/InternalInsertAutoDynamicCommand.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalProcedureCommand');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlCommand})}${glInternalProcedureCommand}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlcommand/InternalProcedureCommand.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalUpdateAutoDynamicCommand');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlCommand})}${glInternalUpdateAutoDynamicCommand}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlcommand/InternalUpdateAutoDynamicCommand.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalUpdateDynamicCommand');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlCommand})}${glInternalUpdateDynamicCommand}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlcommand/InternalUpdateDynamicCommand.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalUpdateModifiedOnlyCommand');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlCommand})}${glInternalUpdateModifiedOnlyCommand}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlcommand/InternalUpdateModifiedOnlyCommand.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalUpdateQueryAutoDynamicCommand');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlCommand})}${glInternalUpdateQueryAutoDynamicCommand}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlcommand/InternalUpdateQueryAutoDynamicCommand.${glTemplateFileExtension}",$path,"", "")\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlHandler}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parse('InternalAbstractAutoHandler');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlHandler})}${glInternalAbstractAutoHandler}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlhandler/InternalAbstractAutoHandler.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalBasicHandler');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlHandler})}${glInternalBasicHandler}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalBasicSelectHandler');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlHandler})}${glInternalBasicSelectHandler}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlhandler/InternalBasicSelectHandler.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalBasicUpdateHandler');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlHandler})}${glInternalBasicUpdateHandler}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlhandler/InternalBasicUpdateHandler.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalCommandContextHandler');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlHandler})}${glInternalCommandContextHandler}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlhandler/InternalCommandContextHandler.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalDeleteAutoHandler');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlHandler})}${glInternalDeleteAutoHandler}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlhandler/InternalDeleteAutoHandler.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalInsertAutoHandler');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlHandler})}${glInternalInsertAutoHandler}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlhandler/InternalInsertAutoHandler.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalProcedureHandler');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlHandler})}${glInternalProcedureHandler}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlhandler/InternalProcedureHandler.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalUpdateAutoHandler');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlHandler})}${glInternalUpdateAutoHandler}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlhandler/InternalUpdateAutoHandler.${glTemplateFileExtension}",$path,"", "")\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlParser}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parse('InternalSqlParser');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlParser})}${glInternalSqlParser}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlparser/InternalSqlParser.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalSqlTokenizer');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlParser})}${glInternalSqlTokenizer}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlparser/InternalSqlTokenizer.${glTemplateFileExtension}",$path,"", "")\r
-\r
- $database.info(" parse('InternalCommandContextCreator');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalSqlParser})}${glInternalCommandContextCreator}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/sqlparser/InternalCommandContextCreator.${glTemplateFileExtension}",$path,"", "")\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalUtil}))\r
- $database.makeDirectory($path)\r
-\r
- $database.info(" parse('InternalBindVariableUtil');")\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonS2DaoInternalUtil})}${glInternalBindVariableUtil}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/s2dao/internal/util/InternalBindVariableUtil.${glTemplateFileExtension}",$path,"", "")\r
- #end\r
- $database.info("}")\r
-\r
- ## -----------------------------------------------------------------------------------------------------\r
- ## Parse util\r
- ## ----------\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCommonUtil}))\r
- $database.makeDirectory($path)\r
-\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonUtil})}${glSimpleAssertUtil}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/util/SimpleAssertUtil.${glTemplateFileExtension}",$path,"", "")\r
-\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonUtil})}${glSimpleStringUtil}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/util/SimpleStringUtil.${glTemplateFileExtension}",$path,"", "")\r
-\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonUtil})}${glSimpleSystemUtil}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/util/SimpleSystemUtil.${glTemplateFileExtension}",$path,"", "")\r
-\r
- #if ($database.isTargetLanguageJava())\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonUtil})}${glValueLabelUtilName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/util/ValueLabelUtil.${glTemplateFileExtension}",$path,"", "")\r
- #end\r
-\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCommonUtil})}${glTraceViewUtilName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/allcommon/util/TraceViewUtil.${glTemplateFileExtension}",$path,"", "")\r
-\r
- ## -----------------------------------------------------------------------------------------------------\r
- ## Parse table object\r
- ## ------------------\r
- ## for Sql2Entity\r
- #set ($isSql2Entity = false)\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseBhv}))\r
- $database.makeDirectory($path)\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseDao}))\r
- $database.makeDirectory($path)\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseEntity}))\r
- $database.makeDirectory($path)\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseDBMeta}))\r
- $database.makeDirectory($path)\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCB}))\r
- $database.makeDirectory($path)\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageBaseCQ}))\r
- $database.makeDirectory($path)\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageCIQ}))\r
- $database.makeDirectory($path)\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageCQ}))\r
- $database.makeDirectory($path)\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageNss}))\r
- $database.makeDirectory($path)\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageCB}))\r
- $database.makeDirectory($path)\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageExtendedBhv}))\r
- $database.makeDirectory($path)\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageExtendedDao}))\r
- $database.makeDirectory($path)\r
-\r
- #set ($path = $database.getPackageAsPath(${glPackageExtendedEntity}))\r
- $database.makeDirectory($path)\r
-\r
- ##\r
- ## Delete old table classes.\r
- ##\r
- $database.deleteOldTableClass()\r
-\r
- ##\r
- ## Loop by tables.\r
- ##\r
- $database.info("/* * * * * * * * * * * * * * {Table Class}")\r
- #foreach ($table in $database.tables)\r
- #if (!$table.isForReferenceOnly())\r
-\r
- $database.info("parseTable('${table.Name}');")\r
- ##\r
- ## The name of objects\r
- ##\r
- #set ($myExtendedDaoClassName = "${table.extendedDaoClassName}")\r
- #set ($myExtendedDaoPackageName = "${glPackageExtendedDao}")\r
-\r
- #set ($myBaseDaoClassName = "${table.baseDaoClassName}")\r
- #set ($myBaseDaoPackageName = "${glPackageBaseDao}")\r
-\r
- #set ($myBaseBhvClassName = "${table.baseBehaviorClassName}")\r
- #set ($myBaseBhvPackageName = "${glPackageBaseBhv}")\r
- #set ($myExtendedBhvClassName = "${table.extendedBehaviorClassName}")\r
- #set ($myExtendedBhvPackageName = "${glPackageExtendedBhv}")\r
-\r
- #set ($myBaseObjectClassName = "${table.baseEntityClassName}")\r
- #set ($myBaseEntityPackageName = "${glPackageBaseEntity}")\r
-\r
- #set ($myExtendedObjectClassName = "${table.extendedEntityClassName}")\r
- #set ($myExtendedEntityPackageName = "${glPackageExtendedEntity}")\r
-\r
- #set ($myBaseConditionBeanClassName = "${table.baseConditionBeanClassName}")\r
- #set ($myConditionBeanClassName = "${table.extendedConditionBeanClassName}")\r
- #set ($myAbstractBaseConditionQueryClassName = "${table.abstractBaseConditionQueryClassName}")\r
- #set ($myBaseConditionQueryClassName = "${table.baseConditionQueryClassName}")\r
- #set ($myConditionQueryClassName = "${table.extendedConditionQueryClassName}")\r
- #set ($myConditionInlineQueryClassName = "${table.extendedConditionInlineQueryClassName}")\r
- #set ($myNestSelectSetupperClassName = "${table.nestSelectSetupperClassName}")\r
- #set ($myNestSelectSetupperTerminalClassName = "${table.nestSelectSetupperTerminalClassName}")\r
-\r
- #set ($myDBMetaClassName = "${table.DBMetaClassName}")\r
- #set ($myDBMetaPackageName = "${glPackageBaseDBMeta}")\r
-\r
- ##\r
- ## The variable name\r
- ##\r
- #set ($myAttachedCBArgsString = "${glPackageCB}.${myConditionBeanClassName} ${glAttachedCBArgsVariableName}")\r
-\r
- #set ($myEntityVariableName = "${table.uncapitalisedJavaName}")\r
- #set ($myEntityListVariableName = "${table.uncapitalisedJavaName}List")\r
- #set ($myCBVariableName = "${table.uncapitalisedJavaName}")\r
- #set ($myBehaviorVariableName = "${table.uncapitalisedJavaName}Bhv")\r
-\r
- ##\r
- ## Determination\r
- ##\r
- #set ($isExistBehavior = false)\r
- #set ($isExistBehavior = true)\r
- #set ($isExistDao = true)\r
- #set ($isExistConditionBean = true)\r
-\r
- #if ($database.isTargetLanguageCSharp())\r
- #set ($myBaseBhvInterfaceName = "${table.baseBehaviorClassName}")\r
- #set ($myExtendedBhvInterfaceName = "${table.extendedBehaviorClassName}")\r
- #set ($myBaseBhvClassName = "${table.baseBehaviorClassName}Impl")\r
- #set ($myExtendedBhvClassName = "${table.extendedBehaviorClassName}Impl")\r
-\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseBhv})}${myBaseBhvInterfaceName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/bsbhv/BaseBhv.${glTemplateFileExtension}", $path, "table", $table)\r
- #else\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseBhv})}${myBaseBhvClassName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/bsbhv/BaseBhv.${glTemplateFileExtension}", $path, "table", $table)\r
- #end\r
-\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseDao})}${myBaseDaoClassName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/bsdao/BaseDao.${glTemplateFileExtension}", $path, "table", $table)\r
-\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseEntity})}${myBaseObjectClassName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/bsentity/BaseEntity.${glTemplateFileExtension}", $path, "table", $table)\r
-\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseDBMeta})}${myDBMetaClassName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/bsentity/dbmeta/DBMetaImpl.${glTemplateFileExtension}",$path,"", "")\r
-\r
- #if (!$database.isStopGenerateExtendedBhv())\r
- #if ($database.isTargetLanguageCSharp())\r
- #set ($myBaseBhvInterfaceName = "${table.baseBehaviorClassName}")\r
- #set ($myExtendedBhvInterfaceName = "${glProjectPrefix}${table.JavaName}Bhv")\r
- #set ($myBaseBhvClassName = "${glProjectPrefix}${glBasePrefix}${table.JavaName}BhvImpl")\r
- #set ($myExtendedBhvClassName = "${glProjectPrefix}${table.JavaName}BhvImpl")\r
-\r
- #set ( $path = "${database.getPackageAsPath(${glPackageExtendedBhv})}${myExtendedBhvInterfaceName}.${glClassFileExtension}" )\r
- #if (!$files.file(${generator.OutputPath},$path).exists())\r
- $generator.parse("om/${glResourceDirectory}/exbhv/ExtendedBhv.${glTemplateFileExtension}", $path, "table", $table)\r
- #end\r
- #else\r
- #set ( $path = "${database.getPackageAsPath(${glPackageExtendedBhv})}${myExtendedBhvClassName}.${glClassFileExtension}" )\r
- #if (!$files.file(${generator.OutputPath},$path).exists())\r
- $generator.parse("om/${glResourceDirectory}/exbhv/ExtendedBhv.${glTemplateFileExtension}", $path, "table", $table)\r
- #end\r
- #end\r
- #end\r
-\r
- #if (!$database.isStopGenerateExtendedDao())\r
- #set ( $path = "${database.getPackageAsPath(${glPackageExtendedDao})}${myExtendedDaoClassName}.${glClassFileExtension}" )\r
- #if (!$files.file(${generator.OutputPath},$path).exists())\r
- $generator.parse("om/${glResourceDirectory}/exdao/ExtendedDao.${glTemplateFileExtension}", $path, "table", $table)\r
- #end\r
- #end\r
-\r
- #if (!$database.isStopGenerateExtendedEntity())\r
- #set ( $path = "${database.getPackageAsPath(${glPackageExtendedEntity})}${myExtendedObjectClassName}.${glClassFileExtension}" )\r
- #if (!$files.file(${generator.OutputPath},$path).exists())\r
- $generator.parse("om/${glResourceDirectory}/exentity/ExtendedEntity.${glTemplateFileExtension}", $path, "table", $table)\r
- #end\r
- #end\r
-\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCB})}${myBaseConditionBeanClassName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/cbean/BsConditionBean.${glTemplateFileExtension}", $path, "table", $table)\r
-\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCQ})}${myAbstractBaseConditionQueryClassName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/cbean/AbstractBsConditionQuery.${glTemplateFileExtension}", $path, "table", $table)\r
-\r
- #set ( $path = "${database.getPackageAsPath(${glPackageCIQ})}${myConditionInlineQueryClassName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/cbean/BsConditionInlineQuery.${glTemplateFileExtension}", $path, "table", $table)\r
-\r
- #set ( $path = "${database.getPackageAsPath(${glPackageBaseCQ})}${myBaseConditionQueryClassName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/cbean/BsConditionQuery.${glTemplateFileExtension}", $path, "table", $table)\r
-\r
- #set ( $path = "${database.getPackageAsPath(${glPackageNss})}${myNestSelectSetupperClassName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/cbean/NestSelectSetupper.${glTemplateFileExtension}", $path, "table", $table)\r
-\r
- #set ( $path = "${database.getPackageAsPath(${glPackageCB})}${myConditionBeanClassName}.${glClassFileExtension}" )\r
- #if (!$files.file(${generator.OutputPath},$path).exists())\r
- $generator.parse("om/${glResourceDirectory}/cbean/ExConditionBean.${glTemplateFileExtension}", $path, "table", $table)\r
- #end\r
-\r
- #set ( $path = "${database.getPackageAsPath(${glPackageCQ})}${myConditionQueryClassName}.${glClassFileExtension}" )\r
- #if (!$files.file(${generator.OutputPath},$path).exists())\r
- $generator.parse("om/${glResourceDirectory}/cbean/ExConditionQuery.${glTemplateFileExtension}", $path, "table", $table)\r
- #end\r
- #end\r
- #end\r
- $database.info("* * * * * * * * * */")\r
- $database.info(" ")\r
-\r
- ## ===================================================================================\r
- ## Simple Dto\r
- ## ==========\r
- #if ($database.hasSimpleDtoDefinition() && $database.isTargetLanguageJava())\r
- $database.info("parseSimpleDto() {// mapper=$database.isSimpleDtoUseDtoMapper()")\r
- #set ($myDomainEntityPackageName = "${glPackageExtendedEntity}")\r
- #set ($myBaseEntityPackageName = "${database.simpleDtoBaseDtoPackage}")\r
- #set ($myExtendedEntityPackageName = "${database.simpleDtoExtendedDtoPackage}")\r
- #set ($myDtoMapperPackageName = "${database.simpleDtoDtoMapperPackage}")\r
-\r
- #set ($path = $database.getPackageAsPath(${myBaseEntityPackageName}))\r
- $database.makeDirectory($path)\r
-\r
- #set ($path = $database.getPackageAsPath(${myExtendedEntityPackageName}))\r
- $database.makeDirectory($path)\r
-\r
- #if ($database.isSimpleDtoUseDtoMapper())\r
- #set ($path = $database.getPackageAsPath(${myDtoMapperPackageName}))\r
- $database.makeDirectory($path)\r
- #end\r
-\r
- #foreach ($table in $database.tables)\r
- #set ($myBaseObjectClassName = "${database.simpleDtoBaseDtoPrefix}${table.javaName}${database.simpleDtoBaseDtoSuffix}")\r
- #set ($myExtendedObjectClassName = "${database.simpleDtoExtendedDtoPrefix}${table.javaName}${database.simpleDtoExtendedDtoSuffix}")\r
- #set ($myDtoMapperClassName = "${myExtendedObjectClassName}Mapper")\r
-\r
- $database.info(" parse('${myExtendedObjectClassName}');")\r
-\r
- #set ( $path = "${database.getPackageAsPath(${myBaseEntityPackageName})}${myBaseObjectClassName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/other/simpledto/SimpleDtoBaseEntity.${glTemplateFileExtension}", $path, "table", $table)\r
-\r
- #if (!$database.isStopGenerateExtendedEntity())\r
- #set ( $path = "${database.getPackageAsPath(${myExtendedEntityPackageName})}${myExtendedObjectClassName}.${glClassFileExtension}" )\r
- #if (!$files.file(${generator.OutputPath},$path).exists())\r
- $generator.parse("om/${glResourceDirectory}/other/simpledto/SimpleDtoExtendedEntity.${glTemplateFileExtension}", $path, "table", $table)\r
- #end\r
- #end\r
-\r
- #if ($database.isSimpleDtoUseDtoMapper())\r
- #set ( $path = "${database.getPackageAsPath(${myDtoMapperPackageName})}${myDtoMapperClassName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/other/simpledto/mapper/SimpleDtoMapper.${glTemplateFileExtension}", $path, "table", $table)\r
- #end\r
- #end\r
- $database.info("}")\r
- #end\r
-\r
- ## ===================================================================================\r
- ## Flex Dto\r
- ## ========\r
- #if ($database.hasFlexDtoDefinition() && $database.isTargetLanguageJava())\r
- $database.enableFlexDtoOutputDirectory()\r
- $database.info("parseFlexDto() {")\r
- #set ($myBaseEntityPackageName = "${database.flexDtoBaseDtoPackage}")\r
- #set ($myExtendedEntityPackageName = "${database.flexDtoExtendedDtoPackage}")\r
-\r
- #set ($path = $database.getPackageAsPath(${myBaseEntityPackageName}))\r
- $database.makeDirectory($path)\r
-\r
- #set ($path = $database.getPackageAsPath(${myExtendedEntityPackageName}))\r
- $database.makeDirectory($path)\r
-\r
- #foreach ($table in $database.tables)\r
- #set ($myBaseObjectClassName = "${database.flexDtoBaseDtoPrefix}${table.javaName}${database.flexDtoBaseDtoSuffix}")\r
- #set ($myExtendedObjectClassName = "${database.flexDtoExtendedDtoPrefix}${table.javaName}${database.flexDtoExtendedDtoSuffix}")\r
- #set ($myRemoteSimpleDtoClassName = "${database.simpleDtoExtendedDtoPackage}.${myExtendedObjectClassName}")\r
-\r
- $database.info(" parse('${myExtendedObjectClassName}');")\r
-\r
- #set ( $path = "${database.getPackageAsPath(${myBaseEntityPackageName})}${myBaseObjectClassName}.as" )\r
- $generator.parse("om/${glResourceDirectory}/other/flexdto/FlexDtoBaseEntity.${glTemplateFileExtension}", $path, "table", $table)\r
-\r
- #if (!$database.isStopGenerateExtendedEntity())\r
- #set ( $path = "${database.getPackageAsPath(${myExtendedEntityPackageName})}${myExtendedObjectClassName}.as" )\r
- #if ($database.isFlexDtoOverrideExtended() || !$files.file(${generator.OutputPath},$path).exists())\r
- $generator.parse("om/${glResourceDirectory}/other/flexdto/FlexDtoExtendedEntity.${glTemplateFileExtension}", $path, "table", $table)\r
- #end\r
- #end\r
- #end\r
- $database.info("}")\r
- $database.enableGenerateOutputDirectory()\r
- #end\r
-\r
- #end\r
-#end\r
-\r
+++ /dev/null
-\r
-using System;\r
-using System.Threading;\r
-using System.Collections.Generic;\r
-\r
-namespace ${glPackageBaseCommon} {\r
-\r
- public class ${glAccessContextName} {\r
-\r
- private static LocalDataStoreSlot _accessContextSlot = Thread.AllocateDataSlot();\r
-\r
- public static ${glAccessContextName} GetAccessContextOnThread() {\r
- return (${glAccessContextName})Thread.GetData(_accessContextSlot);\r
- }\r
-\r
- public static void SetAccessContextOnThread(${glAccessContextName} context) {\r
- if (context == null) {\r
- String msg = "The argument[context] must not be null.";\r
- throw new ArgumentNullException(msg);\r
- }\r
- Thread.SetData(_accessContextSlot, context);\r
- }\r
-\r
- public static void ClearAccessContextOnThread() {\r
- Thread.SetData(_accessContextSlot, null);\r
- }\r
-\r
- public static bool IsExistAccessContextOnThread() {\r
- return (Thread.GetData(_accessContextSlot) != null);\r
- }\r
- \r
- public static String GetAccessUserOnThread() {\r
- if (IsExistAccessContextOnThread()) {\r
- ${glAccessContextName} userContextOnThread = GetAccessContextOnThread();\r
- String accessUser = userContextOnThread.AccessUser;\r
- if (accessUser != null) {\r
- return accessUser;\r
- }\r
- }\r
- return "Anonymous";// as Default\r
- }\r
- \r
- public static String GetAccessProcessOnThread() {\r
- if (IsExistAccessContextOnThread()) {\r
- ${glAccessContextName} userContextOnThread = GetAccessContextOnThread();\r
- String accessProcess = userContextOnThread.AccessProcess;\r
- if (accessProcess != null) {\r
- return accessProcess;\r
- }\r
- }\r
- return "Anonymous";// as Default\r
- }\r
- \r
- public static String GetAccessModuleOnThread() {\r
- if (IsExistAccessContextOnThread()) {\r
- ${glAccessContextName} userContextOnThread = GetAccessContextOnThread();\r
- String accessModule = userContextOnThread.AccessModule;\r
- if (accessModule != null) {\r
- return accessModule;\r
- }\r
- }\r
- return "Anonymous";// as Default\r
- }\r
- \r
- public static DateTime? GetAccessTimestampOnThread() {\r
- if (IsExistAccessContextOnThread()) {\r
- ${glAccessContextName} userContextOnThread = GetAccessContextOnThread();\r
- DateTime? accessTimestamp = userContextOnThread.AccessTimestamp;\r
- if (accessTimestamp != null) {\r
- return accessTimestamp;\r
- }\r
- }\r
- return DateTime.Now;// as Default\r
- }\r
-\r
- public static Object GetAccessValueOnThread(String key) {\r
- if (IsExistAccessContextOnThread()) {\r
- ${glAccessContextName} userContextOnThread = GetAccessContextOnThread();\r
- IDictionary<String, Object> accessValueMap = userContextOnThread.AccessValueMap;\r
- if (accessValueMap != null) {\r
- return accessValueMap[key];\r
- }\r
- }\r
- return null;// as Default\r
- }\r
- \r
- protected String _accessUser;\r
- \r
- protected String _accessProcess;\r
- \r
- protected String _accessModule;\r
- \r
- protected DateTime? _accessTimestamp;\r
-\r
- protected IDictionary<String, Object> _accessValueMap;\r
- \r
- public String AccessUser {\r
- get { return _accessUser; }\r
- set { _accessUser = value; }\r
- }\r
- \r
- public String AccessProcess {\r
- get { return _accessProcess; }\r
- set { _accessProcess = value; }\r
- }\r
- \r
- public String AccessModule {\r
- get { return _accessModule; }\r
- set { _accessModule = value; }\r
- }\r
- \r
- public DateTime? AccessTimestamp {\r
- get { return _accessTimestamp; }\r
- set { _accessTimestamp = value; }\r
- }\r
-\r
- public IDictionary<String, Object> AccessValueMap {\r
- get { return _accessValueMap; }\r
- }\r
- public void RegisterAccessValue(String key, Object value) {\r
- if (_accessValueMap == null) {\r
- _accessValueMap = new Dictionary<String, Object>();\r
- }\r
- _accessValueMap.Add(key, value);\r
- }\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-\r
-using Seasar.Quill.Attrs;\r
-using ${glPackageBaseCommonBhv};\r
-\r
-namespace ${glPackageBaseCommon} {\r
-\r
- [Implementation(typeof(${glCacheBehaviorSelectorName}))]\r
- public interface ${glBehaviorSelectorInterfaceName} {\r
- void InitializeConditionBeanMetaData();\r
- BEHAVIOR Select<BEHAVIOR>() where BEHAVIOR : ${glBehaviorReadableInterfaceName};\r
- ${glBehaviorReadableInterfaceName} ByName(String tableFlexibleName);\r
- }\r
-}\r
+++ /dev/null
-#set ($myClassName = "${glCDef}")\r
-\r
-namespace ${glPackageBaseCommon} {\r
-\r
- public class ${myClassName} {\r
-\r
-#foreach ($classificationName in $database.classificationNameList)\r
-#set ($classificationMapList = $database.classificationDefinitionMap.get($classificationName))\r
-#set ($existTop = false)\r
-#if ($database.classificationTopDefinitionMap.containsKey($classificationName))\r
- #set ($classificationTopMap = $database.classificationTopDefinitionMap.get($classificationName))\r
- #set ($existTop = true)\r
-#else\r
- #set ($existTop = false)\r
-#end\r
-#if ($database.isInitNumber($classificationName))\r
- // The classification name that its initial character is number is unsupported!\r
- // public enum ${classificationName} {\r
- // }\r
-\r
-#else\r
-#if ($existTop && $classificationTopMap.containsKey('topComment'))\r
- /**\r
- * $classificationTopMap.get('topComment')\r
- */\r
-#end\r
- public enum ${classificationName} {\r
-#set ($count = 0)\r
-#foreach ($classificationMap in $classificationMapList)\r
-#if ($count != 0)\r
- ,\r
-#end\r
-#if ($classificationMap.containsKey('comment'))\r
- /** ${classificationMap.get('comment')} */\r
-#end\r
-#if ($classificationMap.containsKey('alias'))\r
- ${classificationMap.get('name')}\r
-#else\r
- ${classificationMap.get('name')}\r
-#end\r
-#set ($count = $count + 1)\r
-#end\r
- }\r
-\r
-#end\r
-#end\r
- }\r
-\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System;\r
-using System.Reflection;\r
-\r
-using Seasar.Quill;\r
-\r
-using ${glPackageBaseCommon};\r
-using ${glPackageBaseCommonBhv};\r
-using ${glPackageBaseCommonDBMeta};\r
-using ${glPackageBaseCommonJavaLike};\r
-using ${glPackageBaseCommonUtil};\r
-\r
-namespace ${glPackageBaseCommon} {\r
-\r
- public class ${glCacheBehaviorSelectorName} : ${glBehaviorSelectorInterfaceName} {\r
-\r
- // ===============================================================================\r
- // Definition\r
- // ==========\r
- private static readonly log4net.ILog _log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected ${glDaoSelectorInterfaceName} _daoSelector;\r
-\r
- // ===============================================================================\r
- // Initialize\r
- // ==========\r
- public void InitializeConditionBeanMetaData() {\r
- Map<String, ${glDBMetaInterfaceName}> dbmetaMap = ${glDBMetaInstanceHandlerName}.GetDBMetaMap();\r
- Collection<${glDBMetaInterfaceName}> dbmetas = dbmetaMap.values();\r
- DateTime? before = null;\r
- if (_log.IsInfoEnabled) {\r
- before = DateTime.Now;\r
- _log.Info("/= = = = = = = = = = = = = = = = = InitializeConditionBeanMetaData()");\r
- }\r
- foreach (${glDBMetaInterfaceName} dbmeta in dbmetas) {\r
- ${glDaoReadableInterfaceName} dao = DaoSelector.ByName(dbmeta.TableDbName);\r
- MethodInfo method = dao.GetType().GetMethod("InitializeDaoMetaData");\r
- if (method == null) {\r
- continue;\r
- }\r
- method.Invoke(dao, new Object[] {"SelectList"});\r
- }\r
- if (_log.IsInfoEnabled) {\r
- DateTime after = DateTime.Now;\r
- _log.Info("Initialized Count: " + dbmetas.size());\r
- _log.Info("= = = = = = = = = =/ [" + ${glTraceViewUtilName}.ConvertToPerformanceView(before.Value, after) + "]");\r
- }\r
- }\r
- \r
- // ===============================================================================\r
- // Implementation\r
- // ==============\r
- public virtual BEHAVIOR Select<BEHAVIOR>() where BEHAVIOR : ${glBehaviorReadableInterfaceName} {\r
- Type behaviorType = typeof(BEHAVIOR);\r
- QuillComponent component = QuillInjector.GetInstance().Container.GetComponent(behaviorType);\r
- BEHAVIOR bhv = (BEHAVIOR)component.GetComponentObject(behaviorType);\r
- if (bhv.IsInitialized) {\r
- return bhv;\r
- }\r
- QuillInjector.GetInstance().Inject(bhv);\r
- return bhv;\r
- }\r
-\r
- public virtual ${glBehaviorReadableInterfaceName} ByName(String tableFlexibleName) {\r
- AssertStringNotNullAndNotTrimmedEmpty("tableFlexibleName", tableFlexibleName);\r
- ${glDBMetaInterfaceName} dbmeta = ${glDBMetaInstanceHandlerName}.FindDBMeta(tableFlexibleName);\r
- return InternalSelect<${glBehaviorReadableInterfaceName}>(GetBehaviorType(dbmeta));\r
- }\r
-\r
- protected virtual BEHAVIOR InternalSelect<BEHAVIOR>(Type behaviorType) where BEHAVIOR : ${glBehaviorReadableInterfaceName} {\r
- QuillComponent component = QuillInjector.GetInstance().Container.GetComponent(behaviorType);\r
- BEHAVIOR bhv = (BEHAVIOR)component.GetComponentObject(behaviorType);\r
- if (bhv.IsInitialized) {\r
- return bhv;\r
- }\r
- QuillInjector.GetInstance().Inject(bhv);\r
- return bhv;\r
- }\r
-\r
- // ===============================================================================\r
- // Assist Helper\r
- // =============\r
- protected static Type GetBehaviorType(${glDBMetaInterfaceName} dbmeta) {\r
- String behaviorTypeName = dbmeta.BehaviorTypeName;\r
- if (behaviorTypeName == null) {\r
- String msg = "The dbmeta.BehaviorTypeName should not return null: dbmeta=" + dbmeta;\r
- throw new SystemException(msg);\r
- }\r
- return ForName(behaviorTypeName, AppDomain.CurrentDomain.GetAssemblies());\r
- }\r
-\r
- protected static Type ForName(string className, System.Collections.IList assemblys) {\r
- Type type = Type.GetType(className);\r
- if(type != null) return type;\r
- foreach(String assemblyName in assemblys) {\r
- System.Reflection.Assembly assembly = System.Reflection.Assembly.Load(assemblyName);\r
- if (assembly == null) {\r
- String msg = "The assemblyName was not found: " + assemblyName + " assemblys=";\r
- msg = msg + Seasar.Framework.Util.ToStringUtil.ToString(assemblys);\r
- throw new SystemException(msg);\r
- }\r
- type = assembly.GetType(className);\r
- if(type != null) return type;\r
- }\r
- return type;\r
- }\r
-\r
- // ===============================================================================\r
- // Helper\r
- // ======\r
- // -------------------------------------------------\r
- // Assert Object\r
- // -------------\r
- protected static void AssertObjectNotNull(String variableName, Object value) {\r
- if (variableName == null) {\r
- String msg = "The value should not be null: variableName=" + variableName + " value=" + value;\r
- throw new SystemException(msg);\r
- }\r
- if (value == null) {\r
- String msg = "The value should not be null: variableName=" + variableName;\r
- throw new SystemException(msg);\r
- }\r
- }\r
-\r
- // -------------------------------------------------\r
- // Assert String\r
- // -------------\r
- protected static void AssertStringNotNullAndNotTrimmedEmpty(String variableName, String value) {\r
- AssertObjectNotNull("variableName", variableName);\r
- AssertObjectNotNull(variableName, value);\r
- if (value.Trim().Length ==0) {\r
- String msg = "The value should not be empty: variableName=" + variableName + " value=" + value;\r
- throw new SystemException(msg);\r
- }\r
- }\r
-\r
- // ===============================================================================\r
- // Accessor\r
- // ========\r
- public ${glDaoSelectorInterfaceName} DaoSelector {\r
- get { return _daoSelector; }\r
- set { _daoSelector = value; }\r
- }\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-\r
-using Seasar.Quill;\r
-\r
-using ${glPackageBaseCommonDBMeta};\r
-\r
-namespace ${glPackageBaseCommon} {\r
-\r
- public class ${glCacheDaoSelectorName} : ${glDaoSelectorInterfaceName} {\r
-\r
- // ===============================================================================\r
- // Implementation\r
- // ==============\r
- public virtual DAO Select<DAO>() where DAO : ${glDaoReadableInterfaceName} {\r
- Type daoType = typeof(DAO);\r
- QuillComponent component = QuillInjector.GetInstance().Container.GetComponent(daoType);\r
- DAO dao = (DAO)component.GetComponentObject(daoType);\r
- return dao;\r
- }\r
-\r
- public virtual ${glDaoReadableInterfaceName} ByName(String tableFlexibleName) {\r
- AssertStringNotNullAndNotTrimmedEmpty("tableFlexibleName", tableFlexibleName);\r
- ${glDBMetaInterfaceName} dbmeta = ${glDBMetaInstanceHandlerName}.FindDBMeta(tableFlexibleName);\r
- return InternalSelect<${glDaoReadableInterfaceName}>(GetDaoType(dbmeta));\r
- }\r
-\r
- protected virtual DAO InternalSelect<DAO>(Type daoType) where DAO : ${glDaoReadableInterfaceName} {\r
- QuillComponent component = QuillInjector.GetInstance().Container.GetComponent(daoType);\r
- DAO dao = (DAO)component.GetComponentObject(daoType);\r
- return dao;\r
- }\r
-\r
- // ===============================================================================\r
- // Assist Helper\r
- // =============\r
- protected static Type GetDaoType(${glDBMetaInterfaceName} dbmeta) {\r
- String daoTypeName = dbmeta.DaoTypeName;\r
- if (daoTypeName == null) {\r
- String msg = "The dbmeta.DaoTypeName should not return null: dbmeta=" + dbmeta;\r
- throw new SystemException(msg);\r
- }\r
- return ForName(daoTypeName, AppDomain.CurrentDomain.GetAssemblies());\r
- }\r
-\r
- protected static Type ForName(string className, System.Collections.IList assemblys) {\r
- Type type = Type.GetType(className);\r
- if(type != null) return type;\r
- foreach(String assemblyName in assemblys) {\r
- System.Reflection.Assembly assembly = System.Reflection.Assembly.Load(assemblyName);\r
- if (assembly == null) {\r
- String msg = "The assemblyName was not found: " + assemblyName + " assemblys=";\r
- msg = msg + Seasar.Framework.Util.ToStringUtil.ToString(assemblys);\r
- throw new SystemException(msg);\r
- }\r
- type = assembly.GetType(className);\r
- if(type != null) return type;\r
- }\r
- return type;\r
- }\r
-\r
- // ===============================================================================\r
- // Helper\r
- // ======\r
- // -------------------------------------------------\r
- // Assert Object\r
- // -------------\r
- protected static void AssertObjectNotNull(String variableName, Object value) {\r
- if (variableName == null) {\r
- String msg = "The value should not be null: variableName=" + variableName + " value=" + value;\r
- throw new SystemException(msg);\r
- }\r
- if (value == null) {\r
- String msg = "The value should not be null: variableName=" + variableName;\r
- throw new SystemException(msg);\r
- }\r
- }\r
-\r
- // -------------------------------------------------\r
- // Assert String\r
- // -------------\r
- protected static void AssertStringNotNullAndNotTrimmedEmpty(String variableName, String value) {\r
- AssertObjectNotNull("variableName", variableName);\r
- AssertObjectNotNull(variableName, value);\r
- if (value.Trim().Length ==0) {\r
- String msg = "The value should not be empty: variableName=" + variableName + " value=" + value;\r
- throw new SystemException(msg);\r
- }\r
- }\r
- }\r
-}\r
+++ /dev/null
-#set ($myClassName = "${glClassificationDefinition}")\r
-\r
-using System;\r
-using System.Collections.Generic;\r
-\r
-namespace ${glPackageBaseCommon} {\r
-\r
- /// <summary>\r
- /// The definition class that has classification.\r
- /// Author: ${database.ClassAuthor}\r
- /// </summary>\r
- public static class ${myClassName} {\r
-\r
- // ===============================================================================\r
- // Classification Code Definition\r
- // ==============================\r
-#foreach ($classificationName in $database.ClassificationNameList)\r
-#set ($classificationMapList = $database.ClassificationDefinitionMap.get($classificationName))\r
-#foreach ($classificationMap in $classificationMapList)\r
- /// <summary>\r
- /// The classification code of ${classificationMap.get('name')}.\r
- /// ${classificationMap.get('comment')}\r
- /// </summary>\r
- public const String CODE_${classificationName}_${classificationMap.get('name')} = "$classificationMap.get('code')";\r
-\r
-#end\r
-#end\r
- // ===============================================================================\r
- // Classification CodeNameMap Definition\r
- // =====================================\r
-#foreach ($classificationName in $database.ClassificationNameListValidNameOnly)\r
-#set ($classificationMapList = $database.ClassificationDefinitionMap.get($classificationName))\r
- /** The classification code-name map of ${classificationName}. */\r
- public static readonly IDictionary<String, String> CODE_NAME_MAP_${classificationName};\r
- public static String Find${classificationName}Name(String code) { return FindByCode(code, CODE_NAME_MAP_${classificationName}); }\r
-\r
-#end\r
-#foreach ($classificationName in $database.ClassificationNameListValidAliasOnly)\r
-#set ($classificationMapList = $database.ClassificationDefinitionMap.get($classificationName))\r
- /** The classification code-alias map of ${classificationName}. */\r
- public static readonly IDictionary<String, String> CODE_ALIAS_MAP_${classificationName};\r
- public static String Find${classificationName}Alias(String code) { return FindByCode(code, CODE_ALIAS_MAP_${classificationName}); }\r
-\r
-#end\r
- // ===============================================================================\r
- // Static Initializer\r
- // ==================\r
- static ${myClassName}() {\r
-#foreach ($classificationName in $database.ClassificationNameListValidNameOnly)\r
-#set ($classificationMapList = $database.ClassificationDefinitionMap.get($classificationName))\r
- {\r
- IDictionary<String, String> map = new Dictionary<String, String>();\r
-#foreach ($classificationMap in $classificationMapList)\r
- map.Add(CODE_${classificationName}_${classificationMap.get('name')}, "${classificationMap.get('name')}");\r
-#end\r
- CODE_NAME_MAP_${classificationName} = map; //java.util.Collections.unmodifiableMap(map);\r
- }\r
-#end\r
-#foreach ($classificationName in $database.ClassificationNameListValidAliasOnly)\r
-#set ($classificationMapList = $database.ClassificationDefinitionMap.get($classificationName))\r
- {\r
- IDictionary<String, String> map = new Dictionary<String, String>();\r
-#foreach ($classificationMap in $classificationMapList)\r
- map.Add(CODE_${classificationName}_${classificationMap.get('name')}, "${classificationMap.get('alias')}");\r
-#end\r
- CODE_ALIAS_MAP_${classificationName} = map; //java.util.Collections.unmodifiableMap(map);\r
- }\r
-#end\r
- }\r
-\r
- private static String FindByCode(String code, IDictionary<String, String> map) {\r
- foreach (String key in map.Keys) {\r
- if (code.ToLower().Equals(key.ToLower())) {\r
- return map[key];\r
- }\r
- }\r
- return null;\r
- }\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-\r
-using ${glPackageBaseCommonJdbc};\r
-\r
-namespace ${glPackageBaseCommon} {\r
-\r
-#set ($myClassName = "${glDBFluteConfig}")\r
-public class ${myClassName} {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- private static readonly log4net.ILog _log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);\r
-\r
- private static readonly ${myClassName} _instance = new ${myClassName}();\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected ${glStatementConfig} _defaultStatementConfig;\r
- protected bool _conditionBeanFormatSql = true;\r
- protected bool _queryLogLevelInfo;\r
- protected bool _executeStatusLogLevelInfo;\r
-#if ($database.isOutsideSqlPackageValid())\r
- protected String _outsideSqlPackage = "${database.outsideSqlPackage}";\r
-#else\r
- protected String _outsideSqlPackage;\r
-#end\r
-#if ($database.isOmitDirectoryPackageValid())\r
- protected String _omitDirectoryPackage = "${database.omitDirectoryPackage}";\r
-#else\r
- protected String _omitDirectoryPackage;\r
-#end\r
-#if ($database.isDefaultPackageValid())\r
- protected String _defaultPackage = "${database.defaultPackage}";\r
-#else\r
- protected String _defaultPackage;\r
-#end\r
-#if ($database.isOmitResourcePathPackageValid())\r
- protected String _omitResourcePathPackage = "${database.omitResourcePathPackage}";\r
-#else\r
- protected String _omitResourcePathPackage;\r
-#end\r
-#if ($database.isFlatDirectoryPackageValid())\r
- protected String _flatDirectoryPackage = "${database.flatDirectoryPackage}";\r
-#else\r
- protected String _flatDirectoryPackage;\r
-#end\r
-#if ($database.isOmitFileSystemPathPackageValid())\r
- protected String _omitFileSystemPathPackage = "${database.omitFileSystemPathPackage}";\r
-#else\r
- protected String _omitFileSystemPathPackage;\r
-#end\r
- protected bool _internalDebug;\r
- protected bool _locked = true;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- private ${myClassName}() {\r
- }\r
-\r
- // ===================================================================================\r
- // Singleton\r
- // =========\r
- /**\r
- * Get instance.\r
- * @return Singleton instance. (NotNull)\r
- */\r
- public static ${myClassName} GetInstance() {\r
- return _instance;\r
- }\r
-\r
- // ===================================================================================\r
- // Default Statement Config\r
- // ========================\r
- public ${glStatementConfig} DefaultStatementConfig {\r
- get {\r
- return _defaultStatementConfig;\r
- }\r
- set {\r
- AssertNotLocked();\r
- if (_log.IsInfoEnabled) {\r
- _log.Info("...Setting defaultStatementConfig: " + value);\r
- }\r
- _defaultStatementConfig = value;\r
- }\r
- }\r
- \r
- // ===================================================================================\r
- // ConditionBean Format Sql\r
- // ========================\r
- public bool IsConditionBeanFormatSql {\r
- get {\r
- return _conditionBeanFormatSql;\r
- }\r
- set {\r
- AssertNotLocked();\r
- if (_log.IsInfoEnabled) {\r
- _log.Info("...Setting conditionBeanFormatSql: " + value);\r
- }\r
- _conditionBeanFormatSql = value;\r
- }\r
- }\r
- \r
- // ===================================================================================\r
- // Query Log Level Info\r
- // ====================\r
- public bool IsQueryLogLevelInfo {\r
- get {\r
- return _queryLogLevelInfo;\r
- }\r
- set {\r
- AssertNotLocked();\r
- if (_log.IsInfoEnabled) {\r
- _log.Info("...Setting queryLogLevelInfo: " + value);\r
- }\r
- _queryLogLevelInfo = value;\r
- }\r
- }\r
- \r
- // ===================================================================================\r
- // Execute Log Level Info\r
- // ======================\r
- public bool IsExecuteStatusLogLevelInfo {\r
- get {\r
- return _executeStatusLogLevelInfo;\r
- }\r
- set {\r
- AssertNotLocked();\r
- if (_log.IsInfoEnabled) {\r
- _log.Info("...Setting executeStatusLogLevelInfo: " + value);\r
- }\r
- _executeStatusLogLevelInfo = value;\r
- }\r
- }\r
- \r
- // ===================================================================================\r
- // OutsideSql Package\r
- // ==================\r
- public String OutsideSqlPackage {\r
- get {\r
- return _outsideSqlPackage;\r
- }\r
- set {\r
- AssertNotLocked();\r
- if (_log.IsInfoEnabled) {\r
- _log.Info("...Setting outsideSqlPackage: " + value);\r
- }\r
- _outsideSqlPackage = value;\r
- }\r
- }\r
- \r
- // ===================================================================================\r
- // Omit Directory Package\r
- // ======================\r
- public String OmitDirectoryPackage { // CSharp only\r
- get {\r
- return _omitDirectoryPackage;\r
- }\r
- set {\r
- AssertNotLocked();\r
- if (_log.IsInfoEnabled) {\r
- _log.Info("...Setting omitDirectoryPackage: " + value);\r
- }\r
- _omitDirectoryPackage = value;\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Default Package\r
- // ===============\r
- public String DefaultPackage { // CSharp only\r
- get {\r
- return _defaultPackage;\r
- }\r
- set {\r
- AssertNotLocked();\r
- if (_log.IsInfoEnabled) {\r
- _log.Info("...Setting defaultPackage: " + value);\r
- }\r
- _defaultPackage = value;\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Omit Resource Path Package\r
- // ==========================\r
- public String OmitResourcePathPackage { // CSharp only\r
- get {\r
- return _omitResourcePathPackage;\r
- }\r
- set {\r
- AssertNotLocked();\r
- if (_log.IsInfoEnabled) {\r
- _log.Info("...Setting omitResourcePathPackage: " + value);\r
- }\r
- _omitResourcePathPackage = value;\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Flat Directory Package\r
- // ======================\r
- public String FlatDirectoryPackage { // CSharp only\r
- get {\r
- return _flatDirectoryPackage;\r
- }\r
- set {\r
- AssertNotLocked();\r
- if (_log.IsInfoEnabled) {\r
- _log.Info("...Setting flatDirectoryPackage: " + value);\r
- }\r
- _flatDirectoryPackage = value;\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Omit File System Path Package\r
- // =============================\r
- public String OmitFileSystemPathPackage { // CSharp only\r
- get {\r
- return _omitFileSystemPathPackage;\r
- }\r
- set {\r
- AssertNotLocked();\r
- if (_log.IsInfoEnabled) {\r
- _log.Info("...Setting omitFileSystemPathPackage: " + value);\r
- }\r
- _omitFileSystemPathPackage = value;\r
- }\r
- }\r
- \r
- // ===================================================================================\r
- // Internal Debug\r
- // ==============\r
- public bool IsInternalDebug {\r
- get {\r
- return _internalDebug;\r
- }\r
- set {\r
- AssertNotLocked();\r
- if (_log.IsInfoEnabled) {\r
- _log.Info("...Setting internalDebug: " + value);\r
- }\r
- _internalDebug = value;\r
- }\r
- }\r
- \r
- // ===================================================================================\r
- // Config Lock\r
- // ===========\r
- public bool IsLocked {\r
- get {\r
- return _locked;\r
- }\r
- }\r
- \r
- public void Lock() {\r
- if (_log.IsInfoEnabled) {\r
- _log.Info("...Locking the config of dbflute!");\r
- }\r
- _locked = true;\r
- }\r
- \r
- public void Unlock() {\r
- if (_log.IsInfoEnabled) {\r
- _log.Info("...Unlocking the config of dbflute!");\r
- }\r
- _locked = false;\r
- }\r
- \r
- protected void AssertNotLocked() {\r
- if (!IsLocked) {\r
- return;\r
- }\r
- String msg = "The config of dbflute is locked! Don't access at this timing!";\r
- throw new SystemException(msg);\r
- }\r
- \r
- // ===================================================================================\r
- // Config Clear\r
- // ============\r
- public void Clear() {\r
- _defaultStatementConfig = null;\r
- _internalDebug = false;\r
- }\r
-}\r
-\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System;\r
-\r
-namespace ${glPackageBaseCommon} {\r
-\r
- /// <summary>\r
- /// The interface of dao-readable.\r
- /// Author: ${database.ClassAuthor}\r
- /// </summary>\r
- public interface ${glDaoReadableInterfaceName} {\r
- // [Developer's comment] (2006/06/08)\r
- // It cannot be done for the convenience of s2dao though I want to define methods for condition-bean here.\r
- // DTO argument as Interface is not accepted.\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-\r
-using Seasar.Quill.Attrs;\r
-\r
-namespace ${glPackageBaseCommon} {\r
-\r
- [Implementation(typeof(${glCacheDaoSelectorName}))]\r
- public interface ${glDaoSelectorInterfaceName} {\r
- DAO Select<DAO>() where DAO : ${glDaoReadableInterfaceName};\r
- ${glDaoReadableInterfaceName} ByName(String tableFlexibleName);\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections;\r
-\r
-namespace ${glPackageBaseCommon} {\r
-\r
- /// <summary>\r
- /// The interface of dao-writable.\r
- /// Author: ${database.ClassAuthor}\r
- /// </summary>\r
- public interface ${glDaoWritableInterfaceName} : ${glDaoReadableInterfaceName} {\r
-\r
- /// <summary>\r
- /// Insert one entity that the type is entity-interface.\r
- /// </summary>\r
- /// <param name="entity">Entity that the type is entity-interface. (NotNull)</returns>\r
- /// <returns>Inserted count.</returns>\r
- int Create(${glEntityInterfaceName} entity);\r
-\r
- /// <summary>\r
- /// Update one entity that the type is entity-interface.\r
- /// </summary>\r
- /// <param name="entity">Entity that the type is entity-interface. (NotNull)</returns>\r
- /// <returns>Updated count.</returns>\r
- int Modify(${glEntityInterfaceName} entity);\r
-\r
- /// <summary>\r
- /// Delete one entity that the type is entity-interface.\r
- /// </summary>\r
- /// <param name="entity">Entity that the type is entity-interface. (NotNull)</returns>\r
- /// <returns>Deleted count.</returns>\r
- int Remove(${glEntityInterfaceName} entity);\r
-\r
- /// <summary>\r
- /// Insert several entities that the type is entity-interface.\r
- /// </summary>\r
- /// <param name="entityList">Entity-list that the type is entity-interface. (NotNull)</returns>\r
- /// <returns>Inserted count.</returns>\r
-/// TODO: This method has not been supported yet at S2Dao-dotNet. (2006/06/09)\r
-// int CreateList(System.Collections.IList entityList);\r
-\r
- /// <summary>\r
- /// Update several entities that the type is entity-interface.\r
- /// </summary>\r
- /// <param name="entityList">Entity-list that the type is entity-interface. (NotNull)</returns>\r
- /// <returns>Updated count.</returns>\r
-/// TODO: This method has not been supported yet at S2Dao-dotNet. (2006/06/09)\r
-// int ModifyList(System.Collections.IList entityList);\r
-\r
- /// <summary>\r
- /// Delete several entities that the type is entity-interface.\r
- /// </summary>\r
- /// <param name="entityList">Entity-list that the type is entity-interface. (NotNull)</returns>\r
- /// <returns>Deleted count.</returns>\r
-/// TODO: This method has not been supported yet at S2Dao-dotNet. (2006/06/09)\r
-// int RemoveList(System.Collections.IList entityList);\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections.Generic;\r
-\r
-using ${glPackageBaseCommonDBMeta};\r
-\r
-namespace ${glPackageBaseCommon} {\r
-\r
- /// <summary>\r
- /// The interface of entity.\r
- /// Author: ${database.ClassAuthor}\r
- /// </summary>\r
- public interface ${glEntityInterfaceName} {\r
-\r
- // ===============================================================================\r
- // Table Name\r
- // ==========\r
- /// <summary>\r
- /// The property of table db-name. (readonly)\r
- /// </summary>\r
- String TableDbName { get; }\r
-\r
- /// <summary>\r
- /// The property of table property-name. (readonly)\r
- /// </summary>\r
- String TablePropertyName { get; }\r
-\r
- // ===============================================================================\r
- // DBMeta\r
- // ======\r
- /// <summary>\r
- /// The property of DBMeta. (readonly)\r
- /// </summary>\r
- ${glDBMetaInterfaceName} DBMeta { get; }\r
-\r
- // ===============================================================================\r
- // Modified Properties\r
- // ===================\r
- IDictionary<String, Object> ModifiedPropertyNames { get; }\r
- void ClearModifiedPropertyNames();\r
-\r
- // ===============================================================================\r
- // Determination\r
- // =============\r
- /// <summary>\r
- /// Has primary-key value? (readonly)\r
- /// </summary>\r
- bool HasPrimaryKeyValue { get; }\r
- }\r
-\r
- /// <summary>\r
- /// The modified properties of entity.\r
- /// Author: ${database.ClassAuthor}\r
- /// </summary>\r
- [System.Serializable]\r
- public class EntityModifiedProperties {\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected IDictionary<String, Object> _propertiesSet = new Dictionary<String, Object>();\r
-\r
- // ===============================================================================\r
- // Add\r
- // ===\r
- public void AddPropertyName(String propertyName) {\r
- if (_propertiesSet.ContainsKey(propertyName)) {\r
- return;\r
- }\r
- _propertiesSet.Add(propertyName, null);\r
- }\r
-\r
- // ===============================================================================\r
- // Other\r
- // =====\r
- public void Clear() {\r
- _propertiesSet.Clear();\r
- }\r
-\r
- public void Remove(String propertyName) {\r
- _propertiesSet.Remove(propertyName);\r
- }\r
-\r
- // ===============================================================================\r
- // Accessor\r
- // ========\r
- public IDictionary<String, Object> PropertyNames {\r
- get { return _propertiesSet; }\r
- }\r
-\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections;\r
-\r
-namespace ${glPackageBaseCommon} {\r
-\r
- public interface ${glEntityDefinedCommonColumnInterfaceName} : ${glEntityInterfaceName} {\r
-#foreach ($columnName in ${database.CommonColumnNameList})\r
- #set ($commonColumnMap = ${database.CommonColumnMap})\r
- #set ($columnType = ${commonColumnMap.get(${columnName})})\r
- #set ($javaNative = ${database.convertJavaNativeByJdbcType(${columnType})})\r
- #set ($javaName = ${database.convertJavaNameByJdbcNameAsColumn(${columnName})})\r
- #set ($uncapitalisedJavaName = ${database.convertUncapitalisedJavaNameByJdbcNameAsColumn(${columnName})})\r
-\r
- ${javaNative} ${javaName} { get; set; }\r
- #if (${database.isAllClassificationColumn($columnName)})\r
- #set ($classificationName = $database.getAllClassificationName($columnName))\r
- #set ($classificationList = $database.getClassificationMapList($classificationName))\r
- #foreach ($classificationMap in $classificationList)\r
-\r
- void Classify${javaName}${classificationMap.get('name')}();\r
- bool Is${javaName}${classificationMap.get('name')}();\r
- #end\r
- #end\r
-#end\r
-\r
- void DisableCommonColumnAutoSetup();\r
- bool CanCommonColumnAutoSetup();\r
- }\r
-}\r
+++ /dev/null
-#set ($myClassName = "${glGenMetaDataClassName}")\r
-\r
-using System;\r
-using System.Collections;\r
-\r
-namespace ${glPackageBaseCommon} {\r
-\r
- /// <summary>\r
- /// The sigleton class that has generate-meta-data(GenMetaData).\r
- /// Author: ${database.ClassAuthor}\r
- /// </summary>\r
- public class ${myClassName} {\r
-\r
- // ===============================================================================\r
- // Sinpleton\r
- // =========\r
- /// <summary>Singleton instance.</summary>\r
- private static readonly ${myClassName} _instance = new ${myClassName}();\r
-\r
- /// <summary>\r
- /// Constructor.\r
- /// </summary>\r
- private ${myClassName}() {\r
- }\r
-\r
- /// <summary>\r
- /// Get instance.\r
- /// </summary>\r
- /// <returns>Singleton instance.</returns>\r
- public static ${myClassName} GetInstance() {\r
- return _instance;\r
- }\r
-\r
- // ===============================================================================\r
- // Basic\r
- // =====\r
- /// <sumarry>\r
- /// Get the property-value of targetLanguage.\r
- /// </sumarry>\r
- /// <returns>The property-value.</returns>\r
- public String GetTargetLanguage() {\r
- return "${database.TargetLanguage}";\r
- }\r
-\r
- /// <sumarry>\r
- /// Get the property-value of templateFileExtension.\r
- /// </sumarry>\r
- /// <returns>The property-value.</returns>\r
- public String GetTemplateFileExtension() {\r
- return "${database.TemplateFileExtension}";\r
- }\r
-\r
- /// <sumarry>\r
- /// Get the property-value of classFileExtension.\r
- /// </sumarry>\r
- /// <returns>The property-value.</returns>\r
- public String GetClassFileExtension() {\r
- return "${database.ClassFileExtension}";\r
- }\r
-\r
- /// <sumarry>\r
- /// Get the property-value of templateFileEncoding.\r
- /// </sumarry>\r
- /// <returns>The property-value.</returns>\r
- public String GetTemplateEncoding() {\r
- return "${database.TemplateFileEncoding}";\r
- }\r
-\r
- /// </sumarry>\r
- /// Get the property-value of classAuthor.\r
- /// </sumarry>\r
- /// <returns>The property-value.</returns>\r
- public String GetClassAuthor() {\r
- return "${database.ClassAuthor}";\r
- }\r
-\r
- // ===============================================================================\r
- // Naming\r
- // ======\r
- /// <sumarry>\r
- /// Is java name of table same as db name? Answer is ${database.isJavaNameOfTableSameAsDbName()}!\r
- /// </sumarry>\r
- /// <returns>The property-value.</returns>\r
- public bool IsJavaNameOfTableSameAsDbName() {\r
- return ${database.isJavaNameOfTableSameAsDbName()};\r
- }\r
-\r
- /// <sumarry>\r
- /// Is java name of column same as db name? Answer is ${database.isJavaNameOfColumnSameAsDbName()}!\r
- /// </sumarry>\r
- /// <returns>The property-value.</returns>\r
- public bool IsJavaNameOfColumnSameAsDbName() {\r
- return ${database.isJavaNameOfColumnSameAsDbName()};\r
- }\r
-\r
- // ===============================================================================\r
- // Prefix\r
- // ======\r
- /// <sumarry>\r
- /// Get the property-value of projectPrefix.\r
- /// </sumarry>\r
- /// <returns>The property-value.</returns>\r
- public String GetProjectPrefix() {\r
- return "${database.ProjectPrefix}";\r
- }\r
-\r
- /// <sumarry>\r
- /// Get the property-value of basePrefix.\r
- /// </sumarry>\r
- /// <returns>The property-value.</returns>\r
- public String GetBasePrefix() {\r
- return "${database.BasePrefix}";\r
- }\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections.Generic;\r
-using System.Threading;\r
-\r
-namespace ${glPackageBaseCommon} {\r
-\r
- public class ${glInternalMapContextName} {\r
-\r
- private static LocalDataStoreSlot _internalMapSlot = Thread.AllocateDataSlot();\r
-\r
- protected static void Initialize() {\r
- if (Thread.GetData(_internalMapSlot) != null) {\r
- return;\r
- }\r
- Thread.SetData(_internalMapSlot, new Dictionary<String, Object>());\r
- }\r
-\r
- public static Object GetObject(String key) {\r
- Initialize();\r
- IDictionary<String, Object> map = (IDictionary<String, Object>)Thread.GetData(_internalMapSlot);\r
- if (!map.ContainsKey(key)) {\r
- return null;\r
- }\r
- return map[key];\r
- }\r
-\r
- public static void SetObject(String key, Object value) {\r
- Initialize();\r
- IDictionary<String, Object> map = (IDictionary<String, Object>)Thread.GetData(_internalMapSlot);\r
- map.Add(key, value);\r
- }\r
-\r
- public static void ClearInternalMapOnThread() {\r
- Thread.SetData(_internalMapSlot, null);\r
- }\r
-\r
- public static bool IsExistInternalMapOnThread() {\r
- return (Thread.GetData(_internalMapSlot) != null);\r
- }\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-\r
-namespace ${glPackageBaseCommon} {\r
-\r
-public class ${glQLog} {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- private static readonly log4net.ILog _log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);\r
-\r
- // ===================================================================================\r
- // Logging\r
- // =======\r
- public static void Log(String sql) {// Very Internal\r
- if (IsQueryLogLevelInfo()) {\r
- _log.Info(sql);\r
- } else {\r
- _log.Debug(sql);\r
- }\r
- }\r
- \r
- public static bool IsLogEnabled() {\r
- if (IsQueryLogLevelInfo()) {\r
- return _log.IsInfoEnabled;\r
- } else {\r
- return _log.IsDebugEnabled;\r
- }\r
- }\r
- \r
- protected static bool IsQueryLogLevelInfo() {\r
- return ${glDBFluteConfig}.GetInstance().IsQueryLogLevelInfo;\r
- }\r
-}\r
-\r
-}\r
+++ /dev/null
-using System;\r
-\r
-namespace ${glPackageBaseCommon} {\r
-\r
-public class ${glXLog} {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- private static readonly log4net.ILog _log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);\r
-\r
- // ===================================================================================\r
- // Logging\r
- // =======\r
- public static void Log(String msg) {// Very Internal\r
- if (IsExecuteStatusLogLevelInfo()) {\r
- _log.Info(msg);\r
- } else {\r
- _log.Debug(msg);\r
- }\r
- }\r
- \r
- public static bool IsLogEnabled() {// Very Internal\r
- if (IsExecuteStatusLogLevelInfo()) {\r
- return _log.IsInfoEnabled;\r
- } else {\r
- return _log.IsDebugEnabled;\r
- }\r
- }\r
- \r
- protected static bool IsExecuteStatusLogLevelInfo() {\r
- return ${glDBFluteConfig}.GetInstance().IsExecuteStatusLogLevelInfo;\r
- }\r
-}\r
-\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System;\r
-\r
-namespace ${glPackageBaseCommonAnnotation} {\r
-\r
- [AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]\r
- public class ${glOutsideSqlAnnotation} : Attribute {\r
- public ${glOutsideSqlAnnotation}() {\r
- }\r
- }\r
-}\r
+++ /dev/null
-#set ($myClassName = "${glBehaviorReadableAbstractName}")\r
-\r
-using System;\r
-using System.Collections.Generic;\r
-\r
-using ${glPackageBaseCommon};\r
-using ${glPackageBaseCommonBhvLoad};\r
-using ${glPackageBaseCommonBhvSetup};\r
-using ${glPackageBaseCommonCBean};\r
-using ${glPackageBaseCommonCBeanOutsidesql};\r
-using ${glPackageBaseCommonCBeanOutsidesqlExecutor};\r
-using ${glPackageBaseCommonDBMeta};\r
-using ${glPackageBaseCommonUtil};\r
-\r
-namespace ${glPackageBaseCommonBhv} {\r
-\r
- public abstract class $myClassName : ${glBehaviorReadableInterfaceName} {\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected ${glDaoSelectorInterfaceName} _daoSelector;\r
- protected ${glBehaviorSelectorInterfaceName} _behaviorSelector;\r
-\r
- // ===============================================================================\r
- // Initialized Mark\r
- // ================\r
- public abstract bool IsInitialized { get; }\r
-\r
- // ===============================================================================\r
- // Table Name\r
- // ==========\r
- public abstract String TableDbName { get; }\r
-\r
- // ===============================================================================\r
- // DBMeta\r
- // ======\r
- public abstract ${glDBMetaInterfaceName} DBMeta { get; }\r
-\r
- // ===============================================================================\r
- // New Instance\r
- // ============\r
- public abstract ${glEntityInterfaceName} NewEntity();\r
- public abstract ${glConditionBeanInterfaceName} NewConditionBean();\r
-\r
- // ===============================================================================\r
- // Basic Get All\r
- // =============\r
- public int GetCountAll() {\r
- return this.ReadCount(NewConditionBean());\r
- }\r
-\r
- // ===============================================================================\r
- // Count Read\r
- // ==========\r
- public virtual int ReadCount(${glConditionBeanInterfaceName} cb) {\r
- AssertConditionBeanNotNull(cb);\r
- return this.CallReadCount(cb);\r
- }\r
-\r
- // ===============================================================================\r
- // Entity Read\r
- // ===========\r
- public virtual ${glEntityInterfaceName} ReadEntity(${glConditionBeanInterfaceName} cb) {\r
- AssertConditionBeanNotNull(cb);\r
- IList<${glEntityInterfaceName}> ls = this.CallReadList(cb);\r
- if (ls.Count == 0) {\r
- return null;\r
- }\r
- AssertEntitySelectedAsOne(ls, cb);\r
- return (${glEntityInterfaceName})ls[0];\r
- }\r
-\r
- public virtual ${glEntityInterfaceName} ReadEntityWithDeletedCheck(${glConditionBeanInterfaceName} cb) {\r
- AssertConditionBeanNotNull(cb);\r
- IList<${glEntityInterfaceName}> ls = this.CallReadList(cb);\r
- AssertEntityNotDeleted(ls, cb);\r
- AssertEntitySelectedAsOne(ls, cb);\r
- return (${glEntityInterfaceName})ls[0];\r
- }\r
-\r
- // ===============================================================================\r
- // List Read\r
- // =========\r
- public virtual ${glListResultBeanName}<${glEntityInterfaceName}> ReadList(${glConditionBeanInterfaceName} cb) {\r
- AssertConditionBeanNotNull(cb);\r
- return new ${glResultBeanBuilderName}<${glEntityInterfaceName}>(TableDbName).BuildListResultBean(cb, this.CallReadList(cb));\r
- }\r
-\r
- public virtual ${glPagingResultBeanName}<${glEntityInterfaceName}> ReadPage(${glConditionBeanInterfaceName} cb) {\r
- AssertConditionBeanNotNull(cb);\r
- ${glPagingInvokerName}<${glEntityInterfaceName}> invoker = new ${glPagingInvokerName}<${glEntityInterfaceName}>(TableDbName);\r
- return invoker.InvokePaging(new InternalReadPagingHandler(this, cb));\r
- }\r
-\r
- private class InternalReadPagingHandler : ${glPagingHandlerName}<${glEntityInterfaceName}> {\r
- protected ${glBehaviorReadableInterfaceName} _bhv;\r
- protected ${glConditionBeanInterfaceName} _cb;\r
- public InternalReadPagingHandler(${glBehaviorReadableInterfaceName} bhv, ${glConditionBeanInterfaceName} cb) {\r
- _bhv = bhv;\r
- _cb = cb;\r
- }\r
- public ${glPagingBeanInterfaceName} PagingBean { get { return _cb; } }\r
- public int Count() { return _bhv.ReadCount(_cb); }\r
- public IList<${glEntityInterfaceName}> Paging() { return _bhv.ReadList(_cb); }\r
- }\r
-\r
- // -------------------------------------------------\r
- // Assert Result\r
- // -------------\r
- protected void AssertEntityNotDeleted(${glEntityInterfaceName} entity, Object searchKey4Log) {\r
- if (entity == null) {\r
- ${glConditionBeanContextName}.ThrowEntityAlreadyDeletedException(searchKey4Log, TableDbName);\r
- }\r
- }\r
-\r
- protected void AssertEntityNotDeleted<ENTITY_TYPE>(IList<ENTITY_TYPE> ls, Object searchKey4Log) where ENTITY_TYPE : ${glEntityInterfaceName} {\r
- if (ls == null || ls.Count == 0) {\r
- ${glConditionBeanContextName}.ThrowEntityAlreadyDeletedException(searchKey4Log, TableDbName);\r
- }\r
- }\r
-\r
- protected void AssertEntitySelectedAsOne<ENTITY_TYPE>(IList<ENTITY_TYPE> ls, Object searchKey4Log) where ENTITY_TYPE : ${glEntityInterfaceName} {\r
- if (ls == null || ls.Count == 0) {\r
- ${glConditionBeanContextName}.ThrowEntityAlreadyDeletedException(searchKey4Log, TableDbName);\r
- }\r
- if (ls.Count != 1) {\r
- ${glConditionBeanContextName}.ThrowEntityDuplicatedException("" + ls.Count, searchKey4Log, null, TableDbName);\r
- }\r
- }\r
-\r
- // ===============================================================================\r
- // Various Select\r
- // ==============\r
- public virtual ${glOutsideSqlBasicExecutorName} OutsideSql() {\r
- AssertDaoSelectorNotNull("OutsideSql");\r
- ${glOutsideSqlDaoName} outsideSqlDao = _daoSelector.Select<${glOutsideSqlDaoName}>();\r
- return new ${glOutsideSqlBasicExecutorName}(outsideSqlDao, this.TableDbName);\r
- }\r
-\r
- private void AssertDaoSelectorNotNull(String methodName) {\r
- if (_daoSelector == null) {\r
- String msg = "Look! Read the message below." + GetLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + GetLineSeparator();\r
- msg = msg + "Not found the selector of dao as behavior's attributed!" + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Advice]" + GetLineSeparator();\r
- msg = msg + "Please confirm the definition of the selector at your 'dbflute.dicon'." + GetLineSeparator();\r
- msg = msg + "It is precondition that '" + methodName + "()' needs the selector instance." + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Your Behavior's Attributes]" + GetLineSeparator();\r
- msg = msg + " _behaviorSelector : " + _behaviorSelector + GetLineSeparator();\r
- msg = msg + " _daoSelector : " + _daoSelector + GetLineSeparator();\r
- msg = msg + "* * * * * * * * * */" + GetLineSeparator();\r
- throw new SystemException(msg);\r
- }\r
- }\r
-\r
- // ===============================================================================\r
- // Load Referrer Internal Helper\r
- // =============================\r
- /**\r
- * Help load referrer internally.\r
- * About internal policy, the value of primary key(and others too) is treated as CaseInsensitive.\r
- * @param <LOCAL_ENTITY> The type of base entity.\r
- * @param <PK> The type of primary key.\r
- * @param <REFERRER_CB> The type of referrer condition-bean.\r
- * @param <REFERRER_ENTITY> The type of referrer entity.\r
- * @param localEntityList The list of local entity. (NotNull)\r
- * @param loadReferrerOption The option of loadReferrer. (NotNull)\r
- * @param callback The internal call-back of loadReferrer. (NotNull) \r
- */\r
- protected virtual void HelpLoadReferrerInternally<LOCAL_ENTITY, PK, REFERRER_CB, REFERRER_ENTITY>(\r
- IList<LOCAL_ENTITY> localEntityList\r
- , ${glLoadReferrerOptionName}<REFERRER_CB, REFERRER_ENTITY> loadReferrerOption\r
- , InternalLoadReferrerCallback<LOCAL_ENTITY, PK, REFERRER_CB, REFERRER_ENTITY> callback) \r
- where LOCAL_ENTITY : ${glEntityInterfaceName}\r
- where REFERRER_CB : ${glConditionBeanInterfaceName}\r
- where REFERRER_ENTITY : ${glEntityInterfaceName} {\r
- DoHelpLoadReferrerInternally(localEntityList, loadReferrerOption, callback);\r
- }\r
-\r
- /**\r
- * Help load referrer internally.\r
- * About internal policy, the value of primary key(and others too) is treated as CaseInsensitive.\r
- * @param <LOCAL_ENTITY> The type of base entity.\r
- * @param <PK> The type of primary key.\r
- * @param <REFERRER_CB> The type of referrer condition-bean.\r
- * @param <REFERRER_ENTITY> The type of referrer entity.\r
- * @param localEntityList The list of local entity. (NotNull)\r
- * @param loadReferrerOption The option of loadReferrer. (NotNull)\r
- * @param callback The internal call-back of loadReferrer. (NotNull) \r
- */\r
- protected virtual void DoHelpLoadReferrerInternally<LOCAL_ENTITY, PK, REFERRER_CB, REFERRER_ENTITY>(\r
- IList<LOCAL_ENTITY> localEntityList\r
- , ${glLoadReferrerOptionName}<REFERRER_CB, REFERRER_ENTITY> loadReferrerOption\r
- , InternalLoadReferrerCallback<LOCAL_ENTITY, PK, REFERRER_CB, REFERRER_ENTITY> callback) \r
- where LOCAL_ENTITY : ${glEntityInterfaceName}\r
- where REFERRER_CB : ${glConditionBeanInterfaceName}\r
- where REFERRER_ENTITY : ${glEntityInterfaceName} {\r
-\r
- // - - - - - - - - - - -\r
- // Assert pre-condition\r
- // - - - - - - - - - - -\r
- AssertBehaviorSelectorNotNull("loadReferrer");\r
- AssertObjectNotNull("localEntityList", localEntityList);\r
- AssertObjectNotNull("loadReferrerOption", loadReferrerOption);\r
- if (localEntityList.Count == 0) {\r
- return;\r
- }\r
-\r
- // - - - - - - - - - - - - - -\r
- // Prepare temporary container\r
- // - - - - - - - - - - - - - -\r
- IDictionary<PK, LOCAL_ENTITY> pkLocalEntityMap = new Dictionary<PK, LOCAL_ENTITY>();\r
- IList<PK> pkList = new List<PK>();\r
- foreach (LOCAL_ENTITY localEntity in localEntityList) {\r
- PK primaryKeyValue = callback.callbackBase_getPrimaryKeyValue(localEntity);\r
- pkList.Add(callback.callbackBase_getPrimaryKeyValue(localEntity));\r
- if (!pkLocalEntityMap.ContainsKey(primaryKeyValue)) {\r
- pkLocalEntityMap.Add(ToLowerCasePrimaryKeyIfString(primaryKeyValue), localEntity);\r
- }\r
- }\r
-\r
- // - - - - - - - - - - - - - - - -\r
- // Prepare referrer condition bean\r
- // - - - - - - - - - - - - - - - -\r
- REFERRER_CB cb;\r
- if (loadReferrerOption.ReferrerConditionBean != null) {\r
- cb = loadReferrerOption.ReferrerConditionBean;\r
- } else {\r
- cb = callback.callbackReferrer_newMyConditionBean();\r
- }\r
-\r
- // - - - - - - - - - - - - - -\r
- // Select the list of referrer\r
- // - - - - - - - - - - - - - -\r
- callback.callbackReferrer_queryForeignKeyInScope(cb, pkList);\r
- loadReferrerOption.delegateKeyConditionExchangingFirstWhereClauseForLastOne(cb);\r
- if (!loadReferrerOption.isStopOrderByKey()) {\r
- callback.callbackReferrer_queryAddOrderByForeignKeyAsc(cb);\r
- cb.SqlComponentOfOrderByClause.exchangeFirstOrderByElementForLastOne();\r
- }\r
- loadReferrerOption.delegateConditionBeanSettingUp(cb);\r
- IList<REFERRER_ENTITY> referrerList = callback.callbackReferrer_selectList(cb);\r
- loadReferrerOption.delegateEntitySettingUp(referrerList);\r
-\r
- // - - - - - - - - - - - - - - - - - - - - - - - -\r
- // Create the map of {primary key / referrer list}\r
- // - - - - - - - - - - - - - - - - - - - - - - - -\r
- IDictionary<PK, List<REFERRER_ENTITY>> pkReferrerListMap = new Dictionary<PK, List<REFERRER_ENTITY>>();\r
- foreach (REFERRER_ENTITY referrerEntity in referrerList) {\r
- PK referrerListKey;\r
- {\r
- PK foreignKeyValue = callback.callbackReferrer_getForeignKeyValue(referrerEntity);\r
- referrerListKey = ToLowerCasePrimaryKeyIfString(foreignKeyValue);\r
- }\r
- if (!pkReferrerListMap.ContainsKey(referrerListKey)) {\r
- pkReferrerListMap.Add(referrerListKey, new List<REFERRER_ENTITY>());\r
- }\r
- pkReferrerListMap[referrerListKey].Add(referrerEntity);\r
-\r
- // for Reverse Reference.\r
- LOCAL_ENTITY localEntity = pkLocalEntityMap[referrerListKey];\r
- callback.callbackReferrer_setForeignEntity(referrerEntity, localEntity);\r
- }\r
-\r
- // - - - - - - - - - - - - - - - - - -\r
- // Relate referrer list to base entity\r
- // - - - - - - - - - - - - - - - - - -\r
- foreach (LOCAL_ENTITY localEntity in localEntityList) {\r
- PK referrerListKey;\r
- {\r
- PK primaryKey = callback.callbackBase_getPrimaryKeyValue(localEntity);\r
- referrerListKey = ToLowerCasePrimaryKeyIfString(primaryKey);\r
- }\r
- if (pkReferrerListMap.ContainsKey(referrerListKey)) {\r
- callback.callbackBase_setReferrerList(localEntity, pkReferrerListMap[referrerListKey]);\r
- } else {\r
- callback.callbackBase_setReferrerList(localEntity, new List<REFERRER_ENTITY>());\r
- }\r
- }\r
- }\r
-\r
- /**\r
- * To lower case for primary key if the value is string.\r
- * @param <PK> The type of primary key.\r
- * @param value The value of primary key. (Nullable)\r
- * @return The value of primary key. (Nullable)\r
- */\r
- protected PK ToLowerCasePrimaryKeyIfString<PK>(PK value) {\r
- return (PK)ToLowerCaseIfString(value);\r
- }\r
-\r
- /**\r
- * @param <LOCAL_ENTITY> The type of base entity.\r
- * @param <PK> The type of primary key.\r
- * @param <REFERRER_CB> The type of referrer condition-bean.\r
- * @param <REFERRER_ENTITY> The type of referrer entity.\r
- */\r
- protected interface InternalLoadReferrerCallback<LOCAL_ENTITY, PK, REFERRER_CB, REFERRER_ENTITY>\r
- where LOCAL_ENTITY : ${glEntityInterfaceName}\r
- where REFERRER_CB : ${glConditionBeanInterfaceName}\r
- where REFERRER_ENTITY : ${glEntityInterfaceName} {\r
- // For Base\r
- PK callbackBase_getPrimaryKeyValue(LOCAL_ENTITY entity);\r
- void callbackBase_setReferrerList(LOCAL_ENTITY entity, IList<REFERRER_ENTITY> referrerList);\r
-\r
- // For Referrer\r
- REFERRER_CB callbackReferrer_newMyConditionBean();\r
- void callbackReferrer_queryForeignKeyInScope(REFERRER_CB cb, IList<PK> pkList);\r
- void callbackReferrer_queryAddOrderByForeignKeyAsc(REFERRER_CB cb);\r
- IList<REFERRER_ENTITY> callbackReferrer_selectList(REFERRER_CB cb);\r
- PK callbackReferrer_getForeignKeyValue(REFERRER_ENTITY entity);\r
- void callbackReferrer_setForeignEntity(REFERRER_ENTITY referrerEntity, LOCAL_ENTITY localEntity);\r
- }\r
-\r
- protected ${glBehaviorSelectorInterfaceName} xgetBSFLR() { // GetBehaviorSelectorForLoadReferrer() as Internal\r
- AssertBehaviorSelectorNotNull("loadReferrer");\r
- return this.BehaviorSelector;\r
- }\r
-\r
- private void AssertBehaviorSelectorNotNull(String methodName) {\r
- if (_behaviorSelector == null) {\r
- String msg = "Look! Read the message below." + GetLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + GetLineSeparator();\r
- msg = msg + "Not found the selector of behavior as behavior's attributed!" + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Advice]" + GetLineSeparator();\r
- msg = msg + "Please confirm the definition of the selector at your 'dbflute.dicon'." + GetLineSeparator();\r
- msg = msg + "It is precondition that '" + methodName + "()' needs the selector instance." + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Your Behavior's Attributes]" + GetLineSeparator();\r
- msg = msg + " _behaviorSelector : " + _behaviorSelector + GetLineSeparator();\r
- msg = msg + " _daoSelector : " + _daoSelector + GetLineSeparator();\r
- msg = msg + "* * * * * * * * * */" + GetLineSeparator();\r
- throw new SystemException(msg);\r
- }\r
- }\r
-\r
- // ===============================================================================\r
- // Pullout Internal Helper\r
- // =======================\r
- protected IList<FOREIGN_ENTITY> HelpPulloutInternally<LOCAL_ENTITY, FOREIGN_ENTITY>(IList<LOCAL_ENTITY> localEntityList, InternalPulloutCallback<LOCAL_ENTITY, FOREIGN_ENTITY> callback)\r
- where LOCAL_ENTITY : ${glEntityInterfaceName} where FOREIGN_ENTITY : ${glEntityInterfaceName} {\r
- AssertObjectNotNull("localEntityList", localEntityList);\r
- IList<FOREIGN_ENTITY> foreignList = new List<FOREIGN_ENTITY>();\r
- foreach (LOCAL_ENTITY entity in localEntityList) {\r
- FOREIGN_ENTITY foreignEntity = callback.callbackGetForeignEntity(entity);\r
- if (foreignEntity == null || foreignList.Contains(foreignEntity)) {\r
- continue;\r
- }\r
- foreignList.Add(foreignEntity);\r
- }\r
- return foreignList;\r
- }\r
-\r
- protected interface InternalPulloutCallback<LOCAL_ENTITY, FOREIGN_ENTITY> where LOCAL_ENTITY : ${glEntityInterfaceName} where FOREIGN_ENTITY : ${glEntityInterfaceName} {\r
- FOREIGN_ENTITY callbackGetForeignEntity(LOCAL_ENTITY entity);\r
- }\r
-\r
- // ===============================================================================\r
- // Optimistic Lock Info\r
- // ====================\r
- protected abstract bool HasVersionNoValue(${glEntityInterfaceName} entity);\r
- protected abstract bool HasUpdateDateValue(${glEntityInterfaceName} entity);\r
-\r
- // ===============================================================================\r
- // Delegate Method\r
- // ===============\r
- protected int CallReadCount(${glConditionBeanInterfaceName} cb) { return DoCallReadCount(cb); }\r
- protected abstract int DoCallReadCount(${glConditionBeanInterfaceName} cb);\r
- protected IList<${glEntityInterfaceName}> CallReadList(${glConditionBeanInterfaceName} cb) { return DoCallReadList(cb); }\r
- protected abstract IList<${glEntityInterfaceName}> DoCallReadList(${glConditionBeanInterfaceName} cb);\r
-\r
- // ===============================================================================\r
- // General Helper\r
- // ==============\r
- #region General Helper\r
- protected virtual Object ToLowerCaseIfString(Object obj) {\r
- if (obj != null && obj is String) {\r
- return ((String)obj).ToLower();\r
- }\r
- return obj;\r
- }\r
-\r
- protected virtual String GetLineSeparator() {\r
- return Environment.NewLine;\r
- }\r
-\r
- // -------------------------------------------------\r
- // Assert Object\r
- // -------------\r
- protected virtual void AssertObjectNotNull(String variableName, Object arg) {\r
- if (variableName == null) {\r
- String msg = "Argument[variableName] should not be null.";\r
- throw new ArgumentNullException(msg);\r
- }\r
- if (arg == null) {\r
- String msg = "Argument[" + variableName + "] should not be null.";\r
- throw new ArgumentNullException(msg);\r
- }\r
- }\r
-\r
- protected virtual void AssertEntityNotNull(${glEntityInterfaceName} entity) {\r
- AssertObjectNotNull("entity", entity);\r
- }\r
-\r
- protected virtual void AssertConditionBeanNotNull(${glPackageBaseCommonCBean}.${glConditionBeanInterfaceName} cb) {\r
- AssertObjectNotNull("cb", cb);\r
- }\r
-\r
- protected virtual void AssertEntityNotNullAndHasPrimaryKeyValue(${glEntityInterfaceName} entity) {\r
- AssertEntityNotNull(entity);\r
- if (!entity.HasPrimaryKeyValue) {\r
- String msg = "The entity must should primary-key: entity=" + entity;\r
- throw new ArgumentOutOfRangeException(msg + entity);\r
- }\r
- }\r
-\r
- // -------------------------------------------------\r
- // Assert String\r
- // -------------\r
- protected virtual void AssertStringNotNullAndNotTrimmedEmpty(String variableName, String value) {\r
- if (variableName == null) {\r
- String msg = "Variable[variableName] should not be null.";\r
- throw new ArgumentNullException(msg);\r
- }\r
- if (value == null) {\r
- String msg = "Variable[" + variableName + "] should not be null.";\r
- throw new ArgumentNullException(msg);\r
- }\r
- if (value.Trim().Length == 0) {\r
- String msg = "Variable[" + variableName + "] should not be empty: [" + value + "]";\r
- throw new ArgumentOutOfRangeException(msg);\r
- }\r
- }\r
-\r
- // -------------------------------------------------\r
- // Assert List\r
- // -----------\r
- protected virtual void AssertListNotNullAndEmpty<ELEMENT_TYPE>(String variableName, IList<ELEMENT_TYPE> ls) {\r
- AssertObjectNotNull(variableName, ls);\r
- if (!(ls.Count == 0)) {\r
- String msg = "The list[" + variableName + "] should be empty: ls=" + ls.ToString();\r
- throw new ArgumentOutOfRangeException(msg);\r
- }\r
- }\r
-\r
- protected virtual void AssertListNotNullAndNotEmpty<ELEMENT_TYPE>(String variableName, IList<ELEMENT_TYPE> ls) {\r
- AssertObjectNotNull(variableName, ls);\r
- if (ls.Count == 0) {\r
- String msg = "The list[" + variableName + "] should not be empty: ls=" + ls.ToString();\r
- throw new ArgumentOutOfRangeException(msg);\r
- }\r
- }\r
-\r
- protected virtual void AssertListNotNullAndHasOnlyOne<ELEMENT_TYPE>(String variableName, IList<ELEMENT_TYPE> ls) {\r
- AssertObjectNotNull(variableName, ls);\r
- if (ls.Count != 1) {\r
- String msg = "The list[" + variableName + "] should contain only one object: ls=" + ls.ToString();\r
- throw new ArgumentOutOfRangeException(msg);\r
- }\r
- }\r
- #endregion\r
-\r
- // ===============================================================================\r
- // Accessor\r
- // ========\r
- #region Accessor\r
- /// <summary>\r
- /// The property of dao selector.\r
- /// </summary>\r
- public ${glDaoSelectorInterfaceName} DaoSelector {\r
- get { return _daoSelector; }\r
- set { _daoSelector = value; }\r
- }\r
-\r
- /// <summary>\r
- /// The property of behavior selector.\r
- /// </summary>\r
- public ${glBehaviorSelectorInterfaceName} BehaviorSelector {\r
- get { return _behaviorSelector; }\r
- set { _behaviorSelector = value; }\r
- }\r
- #endregion\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-#set ($myClassName = "${glBehaviorWritableAbstractName}")\r
-\r
-using System;\r
-using System.Collections;\r
-\r
-using ${glPackageBaseCommon};\r
-using ${glPackageBaseCommonCBean};\r
-using ${glPackageBaseCommonDBMeta};\r
-using ${glPackageBaseCommonException};\r
-\r
-namespace ${glPackageBaseCommonBhv} {\r
-\r
- public abstract class $myClassName : ${glBehaviorReadableAbstractName}, ${glBehaviorWritableInterfaceName} {\r
-\r
- // ===============================================================================\r
- // Definition\r
- // ==========\r
- private static readonly log4net.ILog _log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);\r
-\r
- // ===============================================================================\r
- // Entity Update\r
- // =============\r
- public virtual void Create(${glEntityInterfaceName} entity) {\r
- AssertEntityNotNull(entity);\r
- CallCreate(entity);\r
- }\r
-\r
- public virtual void Modify(${glEntityInterfaceName} entity) {\r
- AssertEntityNotNull(entity);\r
- int modifiedCount = CallModify(entity);\r
- AssertUpdatedEntity(entity, modifiedCount);\r
- }\r
-\r
- protected static void AssertUpdatedEntity(${glEntityInterfaceName} entity, int updatedCount) {\r
- if (updatedCount == 0) {\r
- String msg = "The entity was Not Found! it has already been deleted: entity=" + entity;\r
- throw new ${glEntityAlreadyDeletedException}(msg);\r
- }\r
- if (updatedCount > 1) {\r
- String msg = "The entity was Too Many! it has been duplicated. It should be the only one! But the updatedCount=" + updatedCount;\r
- msg = msg + ": entity=" + entity;\r
- throw new ${glEntityDuplicatedException}(msg);\r
- }\r
- }\r
-\r
- public virtual void Remove(${glEntityInterfaceName} entity) {\r
- AssertEntityNotNull(entity);\r
- int removedCount = CallRemove(entity);\r
- AssertDeletedEntity(entity, removedCount);\r
- }\r
-\r
- protected static void AssertDeletedEntity(${glEntityInterfaceName} entity, int deletedCount) {\r
- if (deletedCount == 0) {\r
- String msg = "The entity was Not Found! it has already been deleted: entity=" + entity;\r
- throw new ${glEntityAlreadyDeletedException}(msg);\r
- }\r
- if (deletedCount > 1) {\r
- String msg = "The entity was Too Many! it has been duplicated. It should be the only one! But the deletedCount=" + deletedCount;\r
- msg = msg + ": entity=" + entity;\r
- throw new ${glEntityDuplicatedException}(msg);\r
- }\r
- }\r
-\r
- // -------------------------------------------------\r
- // InsertOrUpdate\r
- // --------------\r
- protected void HelpInsertOrUpdateInternally<ENTITY_TYPE, CB_TYPE>(ENTITY_TYPE entity, InternalInsertOrUpdateCallback<ENTITY_TYPE, CB_TYPE> callback)\r
- where ENTITY_TYPE : ${glEntityInterfaceName} where CB_TYPE : ${glConditionBeanInterfaceName} {\r
- AssertEntityNotNull(entity);\r
- if (!entity.HasPrimaryKeyValue) {\r
- callback.CallbackInsert(entity);\r
- } else {\r
- Exception exception = null;\r
- try {\r
- callback.CallbackUpdate(entity);\r
- } catch (${glEntityAlreadyUpdatedException} e) {\r
- if (e.Rows == 0) {\r
- exception = e;\r
- }\r
- } catch (${glEntityAlreadyDeletedException} e) {\r
- exception = e;\r
- } catch (OptimisticLockColumnValueNullException e) {\r
- exception = e;\r
- }\r
- if (exception != null) {\r
- CB_TYPE cb = callback.CallbackNewMyConditionBean();\r
- callback.CallbackSetupPrimaryKeyCondition(cb, entity);\r
- if (callback.CallbackSelectCount(cb) == 0) {\r
- callback.CallbackInsert(entity);\r
- } else {\r
- throw exception;\r
- }\r
- }\r
- }\r
- }\r
-\r
- protected interface InternalInsertOrUpdateCallback<ENTITY_TYPE, CB_TYPE> where ENTITY_TYPE : ${glEntityInterfaceName} where CB_TYPE : ${glConditionBeanInterfaceName} {\r
- void CallbackInsert(ENTITY_TYPE entity);\r
- void CallbackUpdate(ENTITY_TYPE entity);\r
- CB_TYPE CallbackNewMyConditionBean();\r
- void CallbackSetupPrimaryKeyCondition(CB_TYPE cb, ENTITY_TYPE entity);\r
- int CallbackSelectCount(CB_TYPE cb);\r
- }\r
-\r
- protected void HelpInsertOrUpdateInternally<ENTITY_TYPE>(ENTITY_TYPE entity, InternalInsertOrUpdateNonstrictCallback<ENTITY_TYPE> callback)\r
- where ENTITY_TYPE : ${glEntityInterfaceName} {\r
- AssertEntityNotNull(entity);\r
- if (!entity.HasPrimaryKeyValue) {\r
- callback.CallbackInsert(entity);\r
- } else {\r
- try {\r
- callback.CallbackUpdateNonstrict(entity);\r
- } catch (${glEntityAlreadyUpdatedException}) {\r
- callback.CallbackInsert(entity);\r
- } catch (${glEntityAlreadyDeletedException}) {\r
- callback.CallbackInsert(entity);\r
- }\r
- }\r
- }\r
-\r
- protected interface InternalInsertOrUpdateNonstrictCallback<ENTITY_TYPE> where ENTITY_TYPE : ${glEntityInterfaceName} {\r
- void CallbackInsert(ENTITY_TYPE entity);\r
- void CallbackUpdateNonstrict(ENTITY_TYPE entity);\r
- }\r
-\r
- // -------------------------------------------------\r
- // Delete\r
- // ------\r
- protected void HelpDeleteInternally<ENTITY_TYPE>(ENTITY_TYPE entity, InternalDeleteCallback<ENTITY_TYPE> callback) where ENTITY_TYPE : ${glEntityInterfaceName} {\r
- AssertEntityNotNull(entity);\r
- AssertEntityHasVersionNoValue(entity);\r
- AssertEntityHasUpdateDateValue(entity);\r
- int deletedCount = callback.CallbackDelegateDelete(entity);\r
- AssertUpdatedEntity(entity, deletedCount);\r
- }\r
-\r
- protected interface InternalDeleteCallback<ENTITY_TYPE> where ENTITY_TYPE : ${glEntityInterfaceName} {\r
- int CallbackDelegateDelete(ENTITY_TYPE entity);\r
- }\r
-\r
- protected void HelpDeleteNonstrictInternally<ENTITY_TYPE>(ENTITY_TYPE entity, InternalDeleteNonstrictCallback<ENTITY_TYPE> callback) where ENTITY_TYPE : ${glEntityInterfaceName} {\r
- AssertEntityNotNull(entity);\r
- int deletedCount = callback.CallbackDelegateDeleteNonstrict(entity);\r
- if (deletedCount == 0) {\r
- String msg = "The entity was Not Found! The entity has already been deleted: entity=" + entity;\r
- throw new ${glEntityAlreadyDeletedException}(msg);\r
- } else if (deletedCount > 1) {\r
- String msg = "The deleted entity was duplicated. It should be the only one! But the deletedCount=" + deletedCount;\r
- msg = msg + ": entity=" + entity;\r
- throw new ${glEntityDuplicatedException}(msg);\r
- }\r
- }\r
-\r
- protected interface InternalDeleteNonstrictCallback<ENTITY_TYPE> where ENTITY_TYPE : ${glEntityInterfaceName} {\r
- int CallbackDelegateDeleteNonstrict(ENTITY_TYPE entity);\r
- }\r
-\r
- protected void HelpDeleteNonstrictIgnoreDeletedInternally<ENTITY_TYPE>(ENTITY_TYPE entity, InternalDeleteNonstrictIgnoreDeletedCallback<ENTITY_TYPE> callback) where ENTITY_TYPE : ${glEntityInterfaceName} {\r
- AssertEntityNotNull(entity);\r
- int deletedCount = callback.CallbackDelegateDeleteNonstrict(entity);\r
- if (deletedCount == 0) {\r
- return;\r
- } else if (deletedCount > 1) {\r
- String msg = "The deleted entity was duplicated. It should be the only one! But the deletedCount=" + deletedCount;\r
- msg = msg + ": entity=" + entity;\r
- throw new ${glEntityDuplicatedException}(msg);\r
- }\r
- }\r
-\r
- protected interface InternalDeleteNonstrictIgnoreDeletedCallback<ENTITY_TYPE> where ENTITY_TYPE : ${glEntityInterfaceName} {\r
- int CallbackDelegateDeleteNonstrict(ENTITY_TYPE entity);\r
- }\r
-\r
- // ===============================================================================\r
- // Delegate Method\r
- // ===============\r
- // -------------------------------------------------\r
- // Create\r
- // ------\r
- protected virtual bool ProcessBeforeInsert(${glEntityInterfaceName} entity) {\r
- AssertEntityNotNull(entity);// If this table use identity, the entity does not have primary-key.\r
- FrameworkFilterEntityOfInsert(entity);\r
- FilterEntityOfInsert(entity);\r
- AssertEntityOfInsert(entity);\r
- return true;\r
- }\r
-\r
- protected virtual int CallCreate(${glEntityInterfaceName} entity) {\r
- if (!ProcessBeforeInsert(entity)) { return 1; }\r
- return DoCallCreate(entity);\r
- }\r
-\r
- protected virtual void FrameworkFilterEntityOfInsert(${glEntityInterfaceName} targetEntity) {\r
- InjectSequenceToPrimaryKeyIfNeeds(targetEntity);\r
- SetupCommonColumnOfInsertIfNeeds(targetEntity);\r
- }\r
- \r
- protected void InjectSequenceToPrimaryKeyIfNeeds(${glEntityInterfaceName} entity) {\r
- ${glDBMetaInterfaceName} dbmeta = entity.DBMeta;\r
- if (!dbmeta.HasSequence || dbmeta.HasTwoOrMorePrimaryKeys || entity.HasPrimaryKeyValue) {\r
- return;\r
- }\r
- SetupNextValueToPrimaryKey(entity);\r
- }\r
- protected virtual void SetupNextValueToPrimaryKey(${glEntityInterfaceName} entity) {// Expect Override of Sub Class!\r
- }\r
-\r
- protected virtual void SetupCommonColumnOfInsertIfNeeds(${glEntityInterfaceName} targetEntity) {\r
-#if ($database.isExistCommonColumnSetupElement())\r
- if (!IsEntityDefinedCommonColumn(targetEntity)) {\r
- return;\r
- }\r
- ${glEntityDefinedCommonColumnInterfaceName} entity = (${glEntityDefinedCommonColumnInterfaceName})targetEntity;\r
- if (!entity.CanCommonColumnAutoSetup()) {\r
- return;\r
- }\r
- if (_log.IsDebugEnabled) {\r
- _log.Debug("...Filtering entity of INSERT about the column columns of " + this.TableDbName);\r
- }\r
-#foreach ($columnName in ${database.commonColumnNameList})\r
- #set ($entityCommonColumnMap = ${database.CommonColumnMap})\r
- #set ($columnType = ${entityCommonColumnMap.get(${columnName})})\r
- #set ($javaNative = ${database.convertJavaNativeByJdbcType(${columnType})})\r
- #set ($javaName = ${database.convertJavaNameByJdbcNameAsColumn(${columnName})})\r
- #set ($uncapitalisedJavaName = ${database.convertUncapitalisedJavaNameByJdbcNameAsColumn(${columnName})})\r
- #if (${database.containsValidColumnNameKeyCommonColumnSetupBeforeInsertInterceptorLogicMap(${columnName})})\r
- #set ($logic = ${database.getCommonColumnSetupBeforeInsertInterceptorLogicByColumnName(${columnName})})\r
- #if ($database.isCommonColumnSetupInvokingLogic($logic))\r
- #set ($filteredLogic = $database.removeCommonColumnSetupInvokingMark($logic))\r
-\r
- ${filteredLogic}\r
- #else\r
-\r
- ${javaNative} ${uncapitalisedJavaName} = ${logic};\r
- entity.${javaName} = ${uncapitalisedJavaName};\r
- #end\r
- #end\r
-#end\r
-#end\r
-\r
- }\r
-\r
- protected virtual void FilterEntityOfInsert(${glEntityInterfaceName} targetEntity) {\r
- }\r
-\r
- protected virtual void AssertEntityOfInsert(${glEntityInterfaceName} entity) {\r
- }\r
-\r
- protected abstract int DoCallCreate(${glEntityInterfaceName} entity);\r
-\r
- // -------------------------------------------------\r
- // Modify\r
- // ------\r
- protected virtual bool ProcessBeforeUpdate(${glEntityInterfaceName} entity) {\r
- AssertEntityNotNullAndHasPrimaryKeyValue(entity);\r
- FrameworkFilterEntityOfUpdate(entity);\r
- FilterEntityOfUpdate(entity);\r
- AssertEntityOfUpdate(entity);\r
- return true;\r
- }\r
-\r
- protected virtual int CallModify(${glEntityInterfaceName} entity) {\r
- if (!ProcessBeforeUpdate(entity)) { return 1; }\r
- return DoCallModify(entity);\r
- }\r
-\r
- protected virtual void FrameworkFilterEntityOfUpdate(${glEntityInterfaceName} targetEntity) {\r
- SetupCommonColumnOfUpdateIfNeeds(targetEntity);\r
- }\r
-\r
- protected virtual void SetupCommonColumnOfUpdateIfNeeds(${glEntityInterfaceName} targetEntity) {\r
-#if ($database.isExistCommonColumnSetupElement())\r
- if (!IsEntityDefinedCommonColumn(targetEntity)) {\r
- return;\r
- }\r
- ${glEntityDefinedCommonColumnInterfaceName} entity = (${glEntityDefinedCommonColumnInterfaceName})targetEntity;\r
- if (!entity.CanCommonColumnAutoSetup()) {\r
- return;\r
- }\r
- if (_log.IsDebugEnabled) {\r
- _log.Debug("...Filtering entity of UPDATE about the column columns of " + this.TableDbName);\r
- }\r
-#foreach ($columnName in ${database.commonColumnNameList})\r
- #set ($entityCommonColumnMap = ${database.CommonColumnMap})\r
- #set ($columnType = ${entityCommonColumnMap.get(${columnName})})\r
- #set ($javaNative = ${database.convertJavaNativeByJdbcType(${columnType})})\r
- #set ($javaName = ${database.convertJavaNameByJdbcNameAsColumn(${columnName})})\r
- #set ($uncapitalisedJavaName = ${database.convertUncapitalisedJavaNameByJdbcNameAsColumn(${columnName})})\r
- #if (${database.containsValidColumnNameKeyCommonColumnSetupBeforeUpdateInterceptorLogicMap(${columnName})})\r
- #set ($logic = ${database.getCommonColumnSetupBeforeUpdateInterceptorLogicByColumnName(${columnName})})\r
- #if ($database.isCommonColumnSetupInvokingLogic($logic))\r
- #set ($filteredLogic = $database.removeCommonColumnSetupInvokingMark($logic))\r
-\r
- ${filteredLogic}\r
- #else\r
-\r
- ${javaNative} ${uncapitalisedJavaName} = ${logic};\r
- entity.${javaName} = ${uncapitalisedJavaName};\r
- #end\r
- #end\r
-#end\r
-#end\r
- }\r
-\r
- protected virtual void FilterEntityOfUpdate(${glPackageBaseCommon}.${glEntityInterfaceName} targetEntity) {\r
- }\r
-\r
- protected virtual void AssertEntityOfUpdate(${glPackageBaseCommon}.${glEntityInterfaceName} entity) {\r
- }\r
-\r
- protected abstract int DoCallModify(${glEntityInterfaceName} entity);\r
-\r
- // -------------------------------------------------\r
- // Remove\r
- // ------\r
- protected virtual bool ProcessBeforeDelete(${glEntityInterfaceName} entity) {\r
- AssertEntityNotNullAndHasPrimaryKeyValue(entity);\r
- FrameworkFilterEntityOfDelete(entity);\r
- FilterEntityOfDelete(entity);\r
- AssertEntityOfDelete(entity);\r
- return true;\r
- }\r
-\r
- protected virtual int CallRemove(${glEntityInterfaceName} entity) {\r
- if (!ProcessBeforeDelete(entity)) { return 1; }\r
- return DoCallRemove(entity);\r
- }\r
-\r
- protected virtual void FrameworkFilterEntityOfDelete(${glEntityInterfaceName} targetEntity) {\r
- }\r
-\r
- protected virtual void FilterEntityOfDelete(${glEntityInterfaceName} targetEntity) {\r
- }\r
-\r
- protected virtual void AssertEntityOfDelete(${glEntityInterfaceName} entity) {\r
- }\r
-\r
- protected abstract int DoCallRemove(${glEntityInterfaceName} entity);\r
-\r
- // -------------------------------------------------\r
- // Helper\r
- // ------\r
- protected virtual bool IsEntityDefinedCommonColumn(Object obj) {\r
- if (obj == null) {\r
- return false;\r
- }\r
- if (obj is ${glEntityDefinedCommonColumnInterfaceName}) {\r
- return true;\r
- } else {\r
- return false;\r
- }\r
- }\r
-\r
- protected void AssertEntityHasVersionNoValue(${glEntityInterfaceName} entity) {\r
- if (!DBMeta.HasVersionNo) {\r
- return;\r
- }\r
- if (HasVersionNoValue(entity)) {\r
- return;\r
- }\r
- String msg = "Look! Read the message below." + GetLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + GetLineSeparator();\r
- msg = msg + "The value of 'version no' on the entity was Not Found!" + GetLineSeparator() + GetLineSeparator();\r
- msg = msg + "[Advice]" + GetLineSeparator();\r
- msg = msg + "Please confirm the existence of the value of 'version no' on the entity." + GetLineSeparator();\r
- msg = msg + "You called the method in which the check for optimistic lock is indispensable. " + GetLineSeparator();\r
- msg = msg + "So 'version no' is required on the entity. " + GetLineSeparator();\r
- msg = msg + "In addition, please confirm the necessity of optimistic lock. It might possibly be unnecessary." + GetLineSeparator() + GetLineSeparator();\r
- msg = msg + "[Entity]" + GetLineSeparator();\r
- msg = msg + "entity to string = " + entity + GetLineSeparator();\r
- msg = msg + "* * * * * * * * * */" + GetLineSeparator();\r
- throw new OptimisticLockColumnValueNullException(msg);\r
- }\r
-\r
- protected void AssertEntityHasUpdateDateValue(${glEntityInterfaceName} entity) {\r
- if (!DBMeta.HasUpdateDate) {\r
- return;\r
- }\r
- if (HasUpdateDateValue(entity)) {\r
- return;\r
- }\r
- String msg = "Look! Read the message below." + GetLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + GetLineSeparator();\r
- msg = msg + "The value of 'update date' on the entity was Not Found!" + GetLineSeparator() + GetLineSeparator();\r
- msg = msg + "[Advice]" + GetLineSeparator();\r
- msg = msg + "Please confirm the existence of the value of 'update date' on the entity." + GetLineSeparator();\r
- msg = msg + "You called the method in which the check for optimistic lock is indispensable. " + GetLineSeparator();\r
- msg = msg + "So 'update date' is required on the entity. " + GetLineSeparator();\r
- msg = msg + "In addition, please confirm the necessity of optimistic lock. It might possibly be unnecessary." + GetLineSeparator() + GetLineSeparator();\r
- msg = msg + "[Entity]" + GetLineSeparator();\r
- msg = msg + "entity to string = " + entity + GetLineSeparator();\r
- msg = msg + "* * * * * * * * * */" + GetLineSeparator();\r
- throw new OptimisticLockColumnValueNullException(msg);\r
- }\r
-\r
- public class OptimisticLockColumnValueNullException : SystemException {\r
- public OptimisticLockColumnValueNullException(String msg) : base(msg) {\r
- }\r
- }\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections.Generic;\r
-\r
-using ${glPackageBaseCommon};\r
-using ${glPackageBaseCommonCBean};\r
-using ${glPackageBaseCommonDBMeta};\r
-\r
-namespace ${glPackageBaseCommonBhv} {\r
-\r
- public interface ${glBehaviorReadableInterfaceName} {\r
-\r
- // ===============================================================================\r
- // Initialized Mark\r
- // ================\r
- bool IsInitialized { get; }\r
-\r
- // ===============================================================================\r
- // Table Name\r
- // ==========\r
- String TableDbName { get; }\r
-\r
- // ===============================================================================\r
- // DBMeta\r
- // ======\r
- ${glDBMetaInterfaceName} DBMeta { get; }\r
-\r
- // ===============================================================================\r
- // New Instance\r
- // ============\r
- ${glEntityInterfaceName} NewEntity();\r
- ${glConditionBeanInterfaceName} NewConditionBean();\r
-\r
- // ===============================================================================\r
- // Basic Get All\r
- // =============\r
- int GetCountAll();\r
-\r
- // ===============================================================================\r
- // Basic Select\r
- // ============\r
- /// <summary>\r
- /// Read count.\r
- /// </summary>\r
- /// <param name="cb">Condition-bean. (NotNull)</param>\r
- /// <returns>Read count.</returns>\r
- int ReadCount(${glConditionBeanInterfaceName} cb);\r
-\r
- /// <summary>\r
- /// Read entity.\r
- /// </summary>\r
- /// <param name="cb">Condition-bean. (NotNull)</param>\r
- /// <returns>Read entity. (Nullable)</returns>\r
- /// <exception cref="${glPackageBaseCommonException}.${glEntityDuplicatedException}">When the entity has been duplicated.</exception>\r
- ${glEntityInterfaceName} ReadEntity(${glConditionBeanInterfaceName} cb);\r
-\r
- /// <summary>\r
- /// Read entity with deleted check.\r
- /// </summary>\r
- /// <param name="cb">Condition-bean. (NotNull)</param>\r
- /// <returns>Read entity. (NotNull)</returns>\r
- /// <exception cref="${glPackageBaseCommonException}.${glEntityAlreadyDeletedException}">When the entity has been deleted by other thread.</exception>\r
- /// <exception cref="${glPackageBaseCommonException}.${glEntityDuplicatedException}">When the entity has been duplicated.</exception>\r
- ${glEntityInterfaceName} ReadEntityWithDeletedCheck(${glConditionBeanInterfaceName} cb);\r
-\r
- /// <summary>\r
- /// Read list.\r
- /// </summary>\r
- /// <param name="cb">Condition-bean. (NotNull)</param>\r
- /// <returns>Read list. (NotNull)</returns>\r
- ${glListResultBeanName}<${glEntityInterfaceName}> ReadList(${glConditionBeanInterfaceName} cb);\r
-\r
- /// <summary>\r
- /// Read page.\r
- /// </summary>\r
- /// <param name="cb">Condition-bean. (NotNull)</param>\r
- /// <returns>Read page. (NotNull)</returns>\r
- ${glPagingResultBeanName}<${glEntityInterfaceName}> ReadPage(${glConditionBeanInterfaceName} cb);\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections;\r
-\r
-using ${glPackageBaseCommon};\r
-\r
-namespace ${glPackageBaseCommonBhv} {\r
-\r
- public interface ${glBehaviorWritableInterfaceName} : ${glBehaviorReadableInterfaceName} {\r
-\r
- /// <summary>\r
- /// Create entity.\r
- /// </summary>\r
- /// <param name="entity">Entity. (NotNull)</param>\r
- void Create(${glEntityInterfaceName} entity);\r
-\r
- /// <summary>\r
- /// Modify entity.\r
- /// </summary>\r
- /// <param name="entity">Entity. (NotNull)</param>\r
- /// <exception cref="${glPackageBaseCommonException}.${glEntityAlreadyUpdatedException}">When the entity has already been updated by other thread.</exception>\r
- /// <exception cref="${glPackageBaseCommonException}.${glEntityAlreadyDeletedException}">When the entity has already been deleted by other thread.</exception>\r
- /// <exception cref="${glPackageBaseCommonException}.${glEntityDuplicatedException}">When the entity has been duplicated.</exception>\r
- void Modify(${glEntityInterfaceName} entity);\r
-\r
- /// <summary>\r
- /// Remove entity.\r
- /// </summary>\r
- /// <param name="entity">Entity. (NotNull)</param>\r
- /// <exception cref="${glPackageBaseCommonException}.${glEntityAlreadyUpdatedException}">When the entity has already been updated by other thread.</exception>\r
- /// <exception cref="${glPackageBaseCommonException}.${glEntityAlreadyDeletedException}">When the entity has already been deleted by other thread.</exception>\r
- /// <exception cref="${glPackageBaseCommonException}.${glEntityDuplicatedException}">When the entity has been duplicated.</exception>\r
- void Remove(${glEntityInterfaceName} entity);\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections.Generic;\r
-using ${glPackageBaseCommonCBean};\r
-\r
-namespace ${glPackageBaseCommonBhvSetup} {\r
-\r
- public delegate void ${glConditionBeanSetupperName}<CONDITION_BEAN>(CONDITION_BEAN cb) where CONDITION_BEAN : ${glConditionBeanInterfaceName};\r
-\r
-// public interface ${glConditionBeanSetupperName}<CONDITION_BEAN> where CONDITION_BEAN : ${glConditionBeanInterfaceName} {\r
-// void Setup(CONDITION_BEAN cb);\r
-// }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections.Generic;\r
-\r
-using ${glPackageBaseCommon};\r
-\r
-namespace ${glPackageBaseCommonBhvSetup} {\r
-\r
- public delegate void ${glEntityListSetupperName}<ENTITY>(IList<ENTITY> entityList) where ENTITY : ${glEntityInterfaceName};\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections.Generic;\r
-\r
-using ${glPackageBaseCommon};\r
-using ${glPackageBaseCommonCBean};\r
-using ${glPackageBaseCommonBhvSetup};\r
-\r
-namespace ${glPackageBaseCommonBhvLoad} {\r
-\r
- public class ${glLoadReferrerOptionName}<REFERRER_CONDITION_BEAN, REFERRER_ENTITY> where REFERRER_CONDITION_BEAN : ${glConditionBeanInterfaceName} where REFERRER_ENTITY : ${glEntityInterfaceName} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected ${glConditionBeanSetupperName}<REFERRER_CONDITION_BEAN> _conditionBeanSetupper;\r
-\r
- protected ${glEntityListSetupperName}<REFERRER_ENTITY> _entityListSetupper;\r
-\r
- protected REFERRER_CONDITION_BEAN _referrerConditionBean;\r
-\r
- protected bool _toLastKeyCondition;\r
-\r
- protected bool _stopOrderByKey;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glLoadReferrerOptionName}() {\r
- }\r
-\r
- public ${glLoadReferrerOptionName}(${glConditionBeanSetupperName}<REFERRER_CONDITION_BEAN> conditionBeanSetupper) {\r
- this._conditionBeanSetupper = conditionBeanSetupper;\r
- }\r
-\r
- public ${glLoadReferrerOptionName}(${glConditionBeanSetupperName}<REFERRER_CONDITION_BEAN> conditionBeanSetupper, ${glEntityListSetupperName}<REFERRER_ENTITY> entityListSetupper) {\r
- this._conditionBeanSetupper = conditionBeanSetupper;\r
- this._entityListSetupper = entityListSetupper;\r
- }\r
-\r
- public ${glLoadReferrerOptionName}(${glLoadReferrerOptionName}<REFERRER_CONDITION_BEAN, REFERRER_ENTITY> option) {\r
- this._conditionBeanSetupper = option._conditionBeanSetupper;\r
- this._entityListSetupper = option._entityListSetupper;\r
- this._referrerConditionBean = option._referrerConditionBean;\r
- this._toLastKeyCondition = option._toLastKeyCondition;\r
- this._stopOrderByKey = option._stopOrderByKey;\r
- }\r
-\r
- // ===================================================================================\r
- // Easy-to-Use\r
- // ===========\r
- /**\r
- * Specify that the key condition is added as last condition. <br />\r
- * This method is valid only after you use reffererConditionBean and add your original condition to it.\r
- * @return this. (NotNull)\r
- */\r
- public ${glLoadReferrerOptionName}<REFERRER_CONDITION_BEAN, REFERRER_ENTITY> ToLastKeyCondition() {\r
- _toLastKeyCondition = true;\r
- return this;\r
- }\r
-\r
- /**\r
- * Specify that it stops adding order-by of the key. <br />\r
- * This method is valid only after you use reffererConditionBean and add your original order-by to it.\r
- * @return this. (NotNull)\r
- */\r
- public ${glLoadReferrerOptionName}<REFERRER_CONDITION_BEAN, REFERRER_ENTITY> StopOrderByKey() {\r
- _stopOrderByKey = true;\r
- return this;\r
- }\r
-\r
- public void delegateKeyConditionExchangingFirstWhereClauseForLastOne(REFERRER_CONDITION_BEAN cb) {// Internal\r
- if (!_toLastKeyCondition) {\r
- cb.SqlClause.exchangeFirstWhereClauseForLastOne();\r
- }\r
- }\r
-\r
- public void delegateConditionBeanSettingUp(REFERRER_CONDITION_BEAN cb) {// Internal\r
- if (_conditionBeanSetupper != null) {\r
- _conditionBeanSetupper.Invoke(cb);\r
- }\r
- }\r
-\r
- public void delegateEntitySettingUp(IList<REFERRER_ENTITY> entityList) {// Internal\r
- if (_entityListSetupper != null) {\r
- _entityListSetupper.Invoke(entityList);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public ${glConditionBeanSetupperName}<REFERRER_CONDITION_BEAN> ConditionBeanSetupper { get {\r
- return _conditionBeanSetupper;\r
- } set {\r
- this._conditionBeanSetupper = value;\r
- }}\r
-\r
- public ${glEntityListSetupperName}<REFERRER_ENTITY> EntityListSetupper { get {\r
- return _entityListSetupper;\r
- } set {\r
- this._entityListSetupper = value;\r
- }}\r
-\r
- public REFERRER_CONDITION_BEAN ReferrerConditionBean { get {\r
- return _referrerConditionBean;\r
- } set {\r
- this._referrerConditionBean = value;\r
- }}\r
-\r
- public bool isToLastKeyCondition() {\r
- return _toLastKeyCondition;\r
- }\r
-\r
- public bool isStopOrderByKey() {\r
- return _stopOrderByKey;\r
- }\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-#set ($myClassName = "${glConditionBeanAbstractName}")\r
-\r
-using System;\r
-using System.Reflection;\r
-\r
-using ${glPackageBaseCommonDBMeta};\r
-using ${glPackageBaseCommonSqlClause};\r
-using ${glPackageBaseCommonJavaLike};\r
-using ${glPackageBaseCommonJdbc};\r
-using ${glPackageBaseCommonUtil};\r
-\r
-namespace ${glPackageBaseCommonCBean} {\r
-\r
- [System.Serializable]\r
- public abstract class $myClassName : ${glConditionBeanInterfaceName} {\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected readonly ${glSqlClauseName} _sqlClause;\r
- protected int _safetyMaxResultSize;\r
- protected ${glStatementConfig} _statementConfig;\r
-\r
- // [DBFlute-0.7.4] @jflute -- At the future, I'll implement some check logics by these purpose types.\r
- protected bool _forDeriveReferrer;\r
- protected bool _forUnion;\r
- protected bool _forExistsSubQuery;\r
- protected bool _forInScopeSubQuery;\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${myClassName}() {\r
- _sqlClause = new ${glSqlClauseName}${database.DaoGenDbName}(TableSqlName);\r
- _sqlClause.makeFormatClauseEffective();\r
- }\r
-\r
- // ===============================================================================\r
- // Table Name\r
- // ==========\r
- public abstract String TableDbName { get; }\r
- public abstract String TableSqlName { get; }\r
-\r
- // ===============================================================================\r
- // SqlClause\r
- // =========\r
- public ${glSqlClauseName} SqlClause { get { return _sqlClause; } }\r
- public String GetClause() { return this.SqlClause.getClause(); }\r
-\r
- // ===============================================================================\r
- // Query\r
- // =====\r
- public abstract ${glConditionQueryInterfaceName} ConditionQueryAsInterface { get; }\r
-\r
- // ===============================================================================\r
- // Union Query\r
- // ===========\r
- public abstract bool HasUnionQueryOrUnionAllQuery();\r
-\r
- // ===============================================================================\r
- // Implementation of PagingBean\r
- // ============================\r
- // -------------------------------------------------\r
- // Paging Determination\r
- // --------------------\r
- // * * * * * * * *\r
- // For SQL Comment\r
- // * * * * * * * *\r
- public virtual bool IsPaging { get { throw new UnsupportedOperationException("This method is unsupported on ConditionBean!"); } }\r
-\r
- // * * * * * * * *\r
- // For Framework\r
- // * * * * * * * *\r
- public virtual bool IsCountLater { get { throw new UnsupportedOperationException("This method is unsupported on ConditionBean!"); } }\r
-\r
- // -------------------------------------------------\r
- // Paging Setting\r
- // --------------\r
- public void XSetPaging(bool paging) {// Very Internal!\r
- throw new UnsupportedOperationException("This method is unsupported on ConditionBean!");\r
- }\r
- public void Paging(int pageSize, int pageNumber) {\r
- FetchFirst(pageSize);\r
- FetchPage(pageNumber);\r
- }\r
-\r
- // -------------------------------------------------\r
- // Fetch Setting\r
- // -------------\r
- public ${glPagingBeanInterfaceName} FetchFirst(int fetchSize) {\r
- this.SqlClause.fetchFirst(fetchSize);\r
- return this;\r
- }\r
-\r
- public ${glPagingBeanInterfaceName} FetchScope(int fetchStartIndex, int fetchSize) {\r
- this.SqlClause.fetchScope(fetchStartIndex, fetchSize);\r
- return this;\r
- }\r
-\r
- public ${glPagingBeanInterfaceName} FetchPage(int fetchPageNumber) {\r
- this.SqlClause.fetchPage(fetchPageNumber);\r
- return this;\r
- }\r
-\r
- // -------------------------------------------------\r
- // Fetch Property\r
- // --------------\r
- public int FetchStartIndex { get { return this.SqlClause.getFetchStartIndex(); } }\r
- public int FetchSize { get { return this.SqlClause.getFetchSize(); } }\r
- public int FetchPageNumber { get { return this.SqlClause.getFetchPageNumber(); } }\r
- public int PageStartIndex { get { return this.SqlClause.getPageStartIndex(); } }\r
- public int PageEndIndex { get { return this.SqlClause.getPageEndIndex(); } }\r
- public bool IsFetchScopeEffective { get { return this.SqlClause.isFetchScopeEffective(); } }\r
- public int SafetyMaxResultSize { get { return _safetyMaxResultSize; } }\r
-\r
- // -------------------------------------------------\r
- // Hint Property\r
- // -------------\r
- public String SelectHint { get { return this.SqlClause.getSelectHint(); } }\r
- public String FromBaseTableHint { get { return this.SqlClause.getFromBaseTableHint(); } }\r
- public String FromHint { get { return this.SqlClause.getFromHint(); } }\r
- public String WhereClause { get { return this.SqlClause.getWhereClause(); } }\r
- public String OrderByClause { get { return this.SqlClause.getOrderByClause(); } }\r
- public String SqlSuffix { get { return this.SqlClause.getSqlSuffix(); } }\r
-\r
- // ===============================================================================\r
- // Implementation of FetchNarrowingBean\r
- // ====================================\r
- public int FetchNarrowingSkipStartIndex { get { return this.SqlClause.getFetchNarrowingSkipStartIndex(); } }\r
- public int FetchNarrowingLoopCount { get { return this.SqlClause.getFetchNarrowingLoopCount(); } }\r
- public bool IsFetchNarrowingSkipStartIndexEffective { get { return !this.SqlClause.isFetchStartIndexSupported(); } }\r
- public bool IsFetchNarrowingLoopCountEffective { get { return !this.SqlClause.isFetchSizeSupported(); } }\r
- public bool IsFetchNarrowingEffective { get { return this.SqlClause.isFetchNarrowingEffective(); } }\r
- public void IgnoreFetchNarrowing() { throw new UnsupportedOperationException("This method is unsupported on ConditionBean!"); }\r
- public void RestoreIgnoredFetchNarrowing() {}\r
-\r
- // ===============================================================================\r
- // Implementation of OrderByBean\r
- // =============================\r
- public ${glOrderByClauseName} SqlComponentOfOrderByClause {\r
- get { return this.SqlClause.getSqlComponentOfOrderByClause(); }\r
- }\r
-\r
- public ${glOrderByBeanInterfaceName} ClearOrderBy() {\r
- this.SqlClause.clearOrderBy();\r
- return this;\r
- }\r
-\r
- public ${glOrderByBeanInterfaceName} IgnoreOrderBy() {\r
- this.SqlClause.ignoreOrderBy();\r
- return this;\r
- }\r
-\r
- public $glOrderByBeanInterfaceName MakeOrderByEffective() {\r
- this.SqlClause.makeOrderByEffective();\r
- return this;\r
- }\r
-\r
- public abstract ${glConditionBeanInterfaceName} AddOrderBy_PK_Asc();\r
- public abstract ${glConditionBeanInterfaceName} AddOrderBy_PK_Desc();\r
-\r
- // ===============================================================================\r
- // Implementation of SelectResource\r
- // ================================\r
- public void CheckSafetyResult(int safetyMaxResultSize) {\r
- this._safetyMaxResultSize = safetyMaxResultSize;\r
- }\r
-\r
- // ===============================================================================\r
- // Limit Select\r
- // ============\r
- protected bool _isLimitSelectPKOnly;\r
-\r
- public bool IsLimitSelect_PKOnly() {\r
- return _isLimitSelectPKOnly;\r
- }\r
-\r
- public ${glConditionBeanInterfaceName} LimitSelect_PKOnly() {\r
- _isLimitSelectPKOnly = true;\r
- return this;\r
- }\r
-\r
- public ${glConditionBeanInterfaceName} LimitSelect_Off() {\r
- _isLimitSelectPKOnly = false;\r
- return this;\r
- }\r
-\r
- // ===============================================================================\r
- // Lock Setting\r
- // ============\r
- public ${glConditionBeanInterfaceName} LockForUpdate() {\r
- this.SqlClause.lockForUpdate();\r
- return this;\r
- }\r
-\r
- // ===============================================================================\r
- // Select Count\r
- // ============\r
- public ${glConditionBeanInterfaceName} XSetupSelectCountIgnoreFetchScope() {\r
- _isSelectCountIgnoreFetchScope = true;\r
-\r
- // If the query uses union query, it needs included-select-column.\r
- if (!HasUnionQueryOrUnionAllQuery()) {\r
- this.SqlClause.ignoreIncludedSelectColumn();\r
- }\r
-\r
- this.SqlClause.ignoreIncludedSelectColumn();\r
- this.SqlClause.ignoreOrderBy();\r
- this.SqlClause.ignoreFetchScope();\r
- return this;\r
- }\r
-\r
- public ${glConditionBeanInterfaceName} XAfterCareSelectCountIgnoreFetchScope() {\r
- _isSelectCountIgnoreFetchScope = false;\r
-\r
- // If the query uses union query, it needs included-select-column.\r
- if (!HasUnionQueryOrUnionAllQuery()) {\r
- this.SqlClause.makeIncludedSelectColumnEffective();\r
- }\r
- \r
- this.SqlClause.makeIncludedSelectColumnEffective();\r
- this.SqlClause.makeOrderByEffective();\r
- this.SqlClause.makeFetchScopeEffective();\r
- return this;\r
- }\r
-\r
- protected bool _isSelectCountIgnoreFetchScope;\r
-\r
- public bool IsSelectCountIgnoreFetchScope() {\r
- return _isSelectCountIgnoreFetchScope;\r
- }\r
-\r
-\r
- // ===============================================================================\r
- // Statement Config\r
- // ================\r
- public void Configure(${glStatementConfig} statementConfig) {\r
- _statementConfig = statementConfig;\r
- }\r
- \r
- public ${glStatementConfig} StatementConfig { get {\r
- return _statementConfig;\r
- }}\r
-\r
- // ===============================================================================\r
- // Display SQL\r
- // ===========\r
- public virtual String ToDisplaySql() {\r
- return ${glConditionBeanContextName}.ConvertConditionBean2DisplaySql(this);\r
- }\r
- \r
- \r
- // [DBFlute-0.7.4]\r
- // ===============================================================================\r
- // Purpose Type\r
- // ============\r
- public void XSetupForDeriveReferrer() {\r
- _forDeriveReferrer = true;\r
- }\r
- \r
- public void XSetupForUnion() {\r
- _forUnion = true;\r
- }\r
- \r
- public void XSetupForExistsSubQuery() {\r
- _forExistsSubQuery = true;\r
- }\r
- \r
- public void XSetupForInScopeSubQuery() {\r
- _forInScopeSubQuery = true;\r
- }\r
- \r
- // ===============================================================================\r
- // Basic Override\r
- // ==============\r
- public override String ToString() {\r
- return ToDisplaySql();\r
- }\r
- }\r
- \r
- // [DBFlute-0.7.4]\r
- public abstract class AbstractSpecification<CQ> where CQ : ${glConditionQueryInterfaceName} {\r
- protected ${glConditionBeanInterfaceName} _baseCB;\r
- protected SpQyCall<CQ> _qyCall;\r
- protected CQ _query;\r
- protected bool _forDeriveReferrer;\r
- protected bool alreadySpecifyRequiredColumn;\r
- protected AbstractSpecification(${glConditionBeanInterfaceName} baseCB, SpQyCall<CQ> qyCall, bool forDeriveReferrer) {\r
- _baseCB = baseCB;\r
- _qyCall = qyCall;\r
- _forDeriveReferrer = forDeriveReferrer;\r
- }\r
- protected void doColumn(String columnName) {\r
- assertColumn(columnName);\r
- if (_query == null) { _query = _qyCall.qy(); }\r
- if (!_forDeriveReferrer && !alreadySpecifyRequiredColumn) {\r
- alreadySpecifyRequiredColumn = true;\r
- doSpecifyRequiredColumn();\r
- }\r
- String relationPath = _query.getRelationPath() != null ? _query.getRelationPath() : "";\r
- String tableAliasName;\r
- if (_query.isBaseQuery(_query)) {\r
- tableAliasName = _baseCB.SqlClause.getLocalTableAliasName();\r
- } else {\r
- tableAliasName = _baseCB.SqlClause.resolveJoinAliasName(relationPath, _query.getNestLevel());\r
- }\r
- _baseCB.SqlClause.specifySelectColumn(tableAliasName, columnName);\r
- }\r
- protected void assertColumn(String columnName) {\r
- if (_query == null && !_qyCall.has()) { throwSpecifyColumnNotSetupSelectColumnException(columnName); }\r
- }\r
- protected void assertForeign(String foreignPropertyName) {\r
- if (_forDeriveReferrer) { throwDeriveReferrerInvalidForeignSpecificationException(foreignPropertyName); }\r
- }\r
- protected abstract void doSpecifyRequiredColumn();\r
- protected abstract String getTableDbName();\r
- \r
- protected void throwSpecifyColumnNotSetupSelectColumnException(String columnName) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "You specified the column that had Not been Set up!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "You should call setupSelect_[ForeignTable]() before calling specify[ForeignTable]().column[TargetColumn]()." + getLineSeparator();\r
- msg = msg + " For example:" + getLineSeparator();\r
- msg = msg + " " + getLineSeparator();\r
- msg = msg + " [Wrong]" + getLineSeparator();\r
- msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + getLineSeparator();\r
- msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator();\r
- msg = msg + " cb.Specify().SpecifyMemberStatus().ColumnMemberStatusName(); // *No!" + getLineSeparator();\r
- msg = msg + " - - - - - - - - - -/" + getLineSeparator();\r
- msg = msg + " " + getLineSeparator();\r
- msg = msg + " [Good!]" + getLineSeparator();\r
- msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + getLineSeparator();\r
- msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator();\r
- msg = msg + " cb.SetupSelect_MemberStatus(); // *Point!" + getLineSeparator();\r
- msg = msg + " cb.Specify().SpecifyMemberStatus().ColumnMemberStatusName();" + getLineSeparator();\r
- msg = msg + " - - - - - - - - - -/" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[ConditionBean]" + getLineSeparator() + _baseCB.GetType().Name + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Specified Column]" + getLineSeparator() + getTableDbName() + "." + columnName + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new SpecifyColumnNotSetupSelectColumnException(msg);\r
- }\r
- protected void throwDeriveReferrerInvalidForeignSpecificationException(String foreignPropertyName) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "You specified a foreign table column in spite of derive-sub-query!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "You should specified a local table column at condition-bean for derive-sub-query." + getLineSeparator();\r
- msg = msg + " For example:" + getLineSeparator();\r
- msg = msg + " " + getLineSeparator();\r
- msg = msg + " [Wrong]" + getLineSeparator();\r
- msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + getLineSeparator();\r
- msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator();\r
- msg = msg + " cb.specify().derivePurchaseList().max(new SubQuery<PurchaseCB>() {" + getLineSeparator();\r
- msg = msg + " public void query(PurchaseCB subCB) {" + getLineSeparator();\r
- msg = msg + " subCB.specify().specifyProduct().columnProductName(); // *No!" + getLineSeparator();\r
- msg = msg + " }" + getLineSeparator();\r
- msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + getLineSeparator();\r
- msg = msg + " - - - - - - - - - -/" + getLineSeparator();\r
- msg = msg + " " + getLineSeparator();\r
- msg = msg + " [Good!]" + getLineSeparator();\r
- msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + getLineSeparator();\r
- msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator();\r
- msg = msg + " cb.specify().derivePurchaseList().max(new SubQuery<PurchaseCB>() {" + getLineSeparator();\r
- msg = msg + " public void query(PurchaseCB subCB) {" + getLineSeparator();\r
- msg = msg + " subCB.specify().columnPurchaseDatetime();// *Point!" + getLineSeparator();\r
- msg = msg + " }" + getLineSeparator();\r
- msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + getLineSeparator();\r
- msg = msg + " - - - - - - - - - -/" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Specified Foreign Property]" + getLineSeparator() + foreignPropertyName + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new DeriveReferrerInvalidForeignSpecificationException(msg);\r
- }\r
- protected String getLineSeparator() {\r
- return ${glSimpleSystemUtil}.GetLineSeparator();\r
- }\r
- }\r
- \r
- public interface SpQyCall<CQ> where CQ : ${glConditionQueryInterfaceName} {\r
- bool has(); \r
- CQ qy(); \r
- }\r
- \r
- public class SpecifyColumnNotSetupSelectColumnException : SystemException {\r
- public SpecifyColumnNotSetupSelectColumnException(String msg) : base(msg) {\r
- }\r
- }\r
- \r
- public class DeriveReferrerInvalidForeignSpecificationException : SystemException {\r
- public DeriveReferrerInvalidForeignSpecificationException(String msg) : base(msg) {\r
- }\r
- }\r
-\r
- public class RAFunction<REFERRER_CB, LOCAL_CQ> where REFERRER_CB : ${glConditionBeanInterfaceName} where LOCAL_CQ : ${glConditionQueryInterfaceName} {\r
- protected ${glConditionBeanInterfaceName} _baseCB;\r
- protected LOCAL_CQ _localCQ;\r
- protected RAQSetupper<REFERRER_CB, LOCAL_CQ> _querySetupper;\r
- public RAFunction(${glConditionBeanInterfaceName} baseCB, LOCAL_CQ localCQ, RAQSetupper<REFERRER_CB, LOCAL_CQ> querySetupper) {\r
- _baseCB = baseCB;\r
- _localCQ = localCQ;\r
- _querySetupper = querySetupper;\r
- }\r
- public void Max(${glSubQuery}<REFERRER_CB> subQuery, String aliasName) {\r
- assertAliasName(aliasName);\r
- _querySetupper.Invoke("max", subQuery, _localCQ, aliasName.Trim());\r
- }\r
- public void Min(${glSubQuery}<REFERRER_CB> subQuery, String aliasName) {\r
- assertAliasName(aliasName);\r
- _querySetupper.Invoke("min", subQuery, _localCQ, aliasName.Trim());\r
- }\r
- public void Sum(${glSubQuery}<REFERRER_CB> subQuery, String aliasName) {\r
- assertAliasName(aliasName);\r
- _querySetupper.Invoke("sum", subQuery, _localCQ, aliasName.Trim());\r
- }\r
- public void Avg(${glSubQuery}<REFERRER_CB> subQuery, String aliasName) {\r
- assertAliasName(aliasName);\r
- _querySetupper.Invoke("avg", subQuery, _localCQ, aliasName.Trim());\r
- }\r
- public void Count(${glSubQuery}<REFERRER_CB> subQuery, String aliasName) {\r
- assertAliasName(aliasName);\r
- _querySetupper.Invoke("count", subQuery, _localCQ, aliasName.Trim());\r
- }\r
-\r
- protected void assertAliasName(String aliasName) {\r
- if (aliasName == null || aliasName.Trim().Length == 0) {\r
- throwDeriveReferrerInvalidAliasNameException();\r
- }\r
- ${glDBMetaInterfaceName} dbmeta = ${glDBMetaInstanceHandlerName}.FindDBMeta(_baseCB.TableDbName);\r
- PropertyInfo[] properties = dbmeta.EntityType.GetProperties();\r
- String targetPropertyName = aliasName.Replace("_", "").ToLower();\r
- bool existsSetterMethod = false;\r
- foreach (PropertyInfo property in properties) {\r
- if (!property.CanWrite) {\r
- continue;\r
- }\r
- if (targetPropertyName.Equals(property.Name.ToLower())) {\r
- existsSetterMethod = true;\r
- break;\r
- }\r
- }\r
- if (!existsSetterMethod) {\r
- throwDeriveReferrerEntityPropertyNotFoundException(aliasName, dbmeta.EntityType);\r
- }\r
- }\r
- protected void throwDeriveReferrerInvalidAliasNameException() {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The alias name for derive-referrer was Invalid!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "You should set valid alias name. {NotNull, NotEmpty}" + getLineSeparator();\r
- msg = msg + " For example:" + getLineSeparator();\r
- msg = msg + " " + getLineSeparator();\r
- msg = msg + " [Wrong]" + getLineSeparator();\r
- msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + getLineSeparator();\r
- msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator();\r
- msg = msg + " cb.Specify().DerivePurchaseList().Max(delegate(PurchaseCB subCB) {" + getLineSeparator();\r
- msg = msg + " subCB.Specify().ColumnPurchaseDatetime();" + getLineSeparator();\r
- msg = msg + " }, null); // *No! {null, \"\", \" \"} are NG!" + getLineSeparator();\r
- msg = msg + " - - - - - - - - - -/" + getLineSeparator();\r
- msg = msg + " " + getLineSeparator();\r
- msg = msg + " [Good!]" + getLineSeparator();\r
- msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + getLineSeparator();\r
- msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator();\r
- msg = msg + " cb.Specify().DerivePurchaseList().Max(delegate(PurchaseCB subCB) {" + getLineSeparator();\r
- msg = msg + " subCB.Specify().ColumnPurchaseDatetime();" + getLineSeparator();\r
- msg = msg + " }, \"LATEST_PURCHASE_DATETIME\"); // *Point!" + getLineSeparator();\r
- msg = msg + " - - - - - - - - - -/" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Local Table]" + getLineSeparator() + _localCQ.getTableDbName() + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new DeriveReferrerInvalidAliasNameException(msg);\r
- }\r
- protected void throwDeriveReferrerEntityPropertyNotFoundException(String aliasName, Type entityType) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "A property for derive-referrer was Not Found in the entity!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "You should implement a property(setter and getter) in the entity." + getLineSeparator();\r
- msg = msg + "Or you should confirm whether the alias name has typo or not." + getLineSeparator();\r
- msg = msg + " For example:" + getLineSeparator();\r
- msg = msg + " " + getLineSeparator();\r
- msg = msg + " [ConditionBean Invoking]" + getLineSeparator();\r
- msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + getLineSeparator();\r
- msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator();\r
- msg = msg + " cb.specify().derivePurchaseList().max(new SubQuery<PurchaseCB>() {" + getLineSeparator();\r
- msg = msg + " public void query(PurchaseCB subCB) {" + getLineSeparator();\r
- msg = msg + " subCB.specify().columnPurchaseDatetime();" + getLineSeparator();\r
- msg = msg + " }" + getLineSeparator();\r
- msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + getLineSeparator();\r
- msg = msg + " - - - - - - - - - -/" + getLineSeparator();\r
- msg = msg + " " + getLineSeparator();\r
- msg = msg + " [Extended Entity]" + getLineSeparator();\r
- msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + getLineSeparator();\r
- msg = msg + " // At the entity of Purchase..." + getLineSeparator();\r
- msg = msg + " protected Date _latestPurchaseDatetime;" + getLineSeparator();\r
- msg = msg + " public Date getLatestPurchaseDatetime() {" + getLineSeparator();\r
- msg = msg + " return _latestPurchaseDatetime;" + getLineSeparator();\r
- msg = msg + " }" + getLineSeparator();\r
- msg = msg + " public void setLatestPurchaseDatetime(Date latestPurchaseDatetime) {" + getLineSeparator();\r
- msg = msg + " _latestPurchaseDatetime = latestPurchaseDatetime;" + getLineSeparator();\r
- msg = msg + " }" + getLineSeparator();\r
- msg = msg + " - - - - - - - - - -/" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Alias Name]" + getLineSeparator() + aliasName + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Target Entity]" + getLineSeparator() + entityType + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new DeriveReferrerEntityPropertyNotFoundException(msg);\r
- }\r
- protected String replaceString(String text, String fromText, String toText) {\r
- return ${glSimpleStringUtil}.Replace(text, fromText, toText);\r
- }\r
- protected String getLineSeparator() {\r
- return ${glSimpleSystemUtil}.GetLineSeparator();\r
- }\r
- }\r
-\r
- public delegate void RAQSetupper<REFERRER_CB, LOCAL_CQ>(String function, ${glSubQuery}<REFERRER_CB> subQuery, LOCAL_CQ cq, String aliasName)\r
- where REFERRER_CB : ${glConditionBeanInterfaceName} where LOCAL_CQ : ${glConditionQueryInterfaceName};\r
- \r
- public class DeriveReferrerInvalidAliasNameException : SystemException {\r
- public DeriveReferrerInvalidAliasNameException(String msg) : base(msg) {\r
- }\r
- }\r
- \r
- public class DeriveReferrerEntityPropertyNotFoundException : SystemException {\r
- public DeriveReferrerEntityPropertyNotFoundException(String msg) : base(msg) {\r
- }\r
- }\r
-}\r
+++ /dev/null
-#set ($myClassName = "${glConditionQueryAbstractName}")\r
-\r
-using System;\r
-using System.Reflection;\r
-\r
-using ${glPackageBaseCommonCKey};\r
-using ${glPackageBaseCommonCOption};\r
-using ${glPackageBaseCommonCValue};\r
-using ${glPackageBaseCommonDBMeta};\r
-using ${glPackageBaseCommonException};\r
-using ${glPackageBaseCommonSqlClause};\r
-using ${glPackageBaseCommonJavaLike};\r
-using ${glPackageBaseCommonUtil};\r
-\r
-namespace ${glPackageBaseCommonCBean} {\r
-\r
-// JavaLike\r
-[System.Serializable]\r
-public abstract class ${myClassName} : ${glConditionQueryInterfaceName} {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- protected static readonly ${glConditionKeyName} CK_EQ = ${glConditionKeyName}.CK_EQUAL;\r
- protected static readonly ${glConditionKeyName} CK_NE = ${glConditionKeyName}.CK_NOT_EQUAL;\r
- protected static readonly ${glConditionKeyName} CK_GE = ${glConditionKeyName}.CK_GREATER_EQUAL;\r
- protected static readonly ${glConditionKeyName} CK_GT = ${glConditionKeyName}.CK_GREATER_THAN;\r
- protected static readonly ${glConditionKeyName} CK_LE = ${glConditionKeyName}.CK_LESS_EQUAL;\r
- protected static readonly ${glConditionKeyName} CK_LT = ${glConditionKeyName}.CK_LESS_THAN;\r
- protected static readonly ${glConditionKeyName} CK_PS = ${glConditionKeyName}.CK_PREFIX_SEARCH;\r
- protected static readonly ${glConditionKeyName} CK_LS = ${glConditionKeyName}.CK_LIKE_SEARCH;\r
- protected static readonly ${glConditionKeyName} CK_INS = ${glConditionKeyName}.CK_IN_SCOPE;\r
- protected static readonly ${glConditionKeyName} CK_NINS = ${glConditionKeyName}.CK_NOT_IN_SCOPE;\r
- protected static readonly ${glConditionKeyName} CK_ISN = ${glConditionKeyName}.CK_IS_NULL;\r
- protected static readonly ${glConditionKeyName} CK_ISNN = ${glConditionKeyName}.CK_IS_NOT_NULL;\r
-\r
- protected static readonly ${glConditionValueName} DUMMY_CONDITION_VALUE = new ${glConditionValueName}();\r
- protected static readonly Object DUMMY_OBJECT = new Object();\r
- protected static readonly String CQ_PROPERTY = "ConditionQuery";\r
- \r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected readonly ${glSqlClauseName} _sqlClause;\r
- protected readonly String _aliasName;\r
- protected readonly int _nestLevel;\r
- protected int _subQueryLevel;\r
-\r
- // -----------------------------------------------------\r
- // Foreign Info\r
- // ------------\r
- protected String _foreignPropertyName;\r
- protected String _relationPath;\r
- protected readonly ${glConditionQueryInterfaceName} _childQuery;\r
-\r
- // -----------------------------------------------------\r
- // Inline\r
- // ------\r
- protected bool _onClauseInline;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${myClassName}(${glConditionQueryInterfaceName} childQuery, ${glSqlClauseName} sqlClause, String aliasName, int nestLevel) {\r
- _childQuery = childQuery;\r
- _sqlClause = sqlClause;\r
- _aliasName = aliasName;\r
- _nestLevel = nestLevel;\r
- }\r
-\r
- // ===================================================================================\r
- // Table Name\r
- // ==========\r
- public abstract String getTableDbName();\r
- public abstract String getTableSqlName();\r
-\r
- // ===================================================================================\r
- // Important Accessor\r
- // ==================\r
- public ${glConditionQueryInterfaceName} getChildQuery() {\r
- return _childQuery;\r
- }\r
-\r
- public ${glSqlClauseName} getSqlClause() {\r
- return _sqlClause;\r
- }\r
-\r
- public String getAliasName() {\r
- return _aliasName;\r
- }\r
-\r
- public int getNestLevel() {\r
- return _nestLevel;\r
- }\r
-\r
- public int getNextNestLevel() {\r
- return _nestLevel+1;\r
- }\r
-\r
- public bool isBaseQuery(${glConditionQueryInterfaceName} query) {\r
- return (query.getChildQuery() == null);\r
- }\r
-\r
- public int getSubQueryLevel() {\r
- return _subQueryLevel;\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Real Name\r
- // ---------\r
- public String getRealAliasName() {\r
- return getAliasName();\r
- }\r
-\r
- public String getRealColumnName(String columnName) {\r
- assertColumnName(columnName);\r
- return buildRealColumnName(getRealAliasName(), columnName);\r
- }\r
-\r
- protected String buildRealColumnName(String aliasName, String columnName) {\r
- return aliasName + "." + columnName;\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Foreign Info\r
- // ------------\r
- public String getForeignPropertyName() {\r
- return _foreignPropertyName;\r
- }\r
-\r
- public void xsetForeignPropertyName(String foreignPropertyName) {\r
- this._foreignPropertyName = foreignPropertyName;\r
- }\r
-\r
- public String getRelationPath() {\r
- return _relationPath;\r
- }\r
-\r
- public void xsetRelationPath(String relationPath) {\r
- this._relationPath = relationPath;\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Inline\r
- // ------\r
- public void xsetOnClauseInline(bool onClauseInline) {\r
- _onClauseInline = onClauseInline;\r
- }\r
-\r
- // ===================================================================================\r
- // Location\r
- // ========\r
- protected String getLocation(String columnPropertyName, ${glConditionKeyName} key) {\r
- return getLocationBase(columnPropertyName) + "." + key.getConditionKey();\r
- }\r
-\r
- protected String getLocationBase() {\r
- StringBuilder sb = new StringBuilder();\r
- ${glConditionQueryInterfaceName} query = this;\r
- while (true) {\r
- if (query.isBaseQuery(query)) {\r
- sb.insert(0, CQ_PROPERTY + ".");\r
- break;\r
- } else {\r
- String foreignPropertyName = query.getForeignPropertyName();\r
- if (foreignPropertyName == null) {\r
- String msg = "The foreignPropertyName of the query should not be null:";\r
- msg = msg + " query=" + query;\r
- throw new IllegalStateException(msg);\r
- }\r
- sb.insert(0, CQ_PROPERTY + initCap(foreignPropertyName) + ".");\r
- }\r
- query = query.getChildQuery();\r
- }\r
- return sb.toString();\r
- }\r
-\r
- protected String getLocationBase(String columnPropertyName) {\r
- return getLocationBase() + columnPropertyName;\r
- }\r
- \r
- // ===================================================================================\r
- // Union Query\r
- // ===========\r
- protected Map<String, ${glConditionQueryInterfaceName}> _unionQueryMap;\r
-\r
- public Map<String, ${glConditionQueryInterfaceName}> getUnionQueryMap() {// for Internal\r
- if (_unionQueryMap == null) {\r
- _unionQueryMap = new LinkedHashMap<String, ${glConditionQueryInterfaceName}>();\r
- }\r
- return _unionQueryMap;\r
- }\r
-\r
- public Map<String, ${glConditionQueryInterfaceName}> UnionQueryMap {// for SQL-Comment\r
- get { return getUnionQueryMap(); }\r
- }\r
-\r
- public void xsetUnionQuery(${glConditionQueryInterfaceName} unionQuery) {\r
- xsetupUnion(unionQuery, false, getUnionQueryMap());\r
- }\r
-\r
- protected Map<String, ${glConditionQueryInterfaceName}> _unionAllQueryMap;\r
-\r
- public Map<String, ${glConditionQueryInterfaceName}> getUnionAllQueryMap() {// for Internal\r
- if (_unionAllQueryMap == null) {\r
- _unionAllQueryMap = new LinkedHashMap<String, ${glConditionQueryInterfaceName}>();\r
- }\r
- return _unionAllQueryMap;\r
- }\r
-\r
- public Map<String, ${glConditionQueryInterfaceName}> UnionAllQueryMap {// for SQL-Comment\r
- get { return getUnionAllQueryMap(); }\r
- }\r
-\r
- public void xsetUnionAllQuery(${glConditionQueryInterfaceName} unionAllQuery) {\r
- xsetupUnion(unionAllQuery, true, getUnionAllQueryMap());\r
- }\r
-\r
- protected void xsetupUnion(${glConditionQueryInterfaceName} unionQuery, bool unionAll, Map<String, ${glConditionQueryInterfaceName}> unionQueryMap) {\r
- if (unionQuery == null) {\r
- String msg = "The argument[unionQuery] should not be null.";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- reflectRelationOnUnionQuery(this, unionQuery);// Reflect Relation!\r
- getSqlClause().copyIncludedSelectColumn(unionQuery.getSqlClause());// Reflect IncludedSelectColumn!\r
- if (getSqlClause().isFormatClauseEffective()) {\r
- unionQuery.getSqlClause().makeFormatClauseEffective();// Reflect FormatClause!\r
- }\r
- String key = (unionAll ? "unionAllQuery" : "unionQuery") + unionQueryMap.size();\r
- unionQueryMap.put(key, unionQuery);\r
- registerUnionQuery(unionQuery, unionAll, (unionAll ? "UnionAllQueryMap" : "UnionQueryMap") + "." + key);// If CSharp, The property of 'Union' should be 'InitCap'.\r
- }\r
- \r
- abstract public void reflectRelationOnUnionQuery(${glConditionQueryInterfaceName} baseQueryAsSuper, ${glConditionQueryInterfaceName} unionQueryAsSuper);\r
-\r
- public bool hasUnionQueryOrUnionAllQuery() {\r
- return (_unionQueryMap != null && !_unionQueryMap.isEmpty()) || (_unionAllQueryMap != null && !_unionAllQueryMap.isEmpty());\r
- }\r
-\r
- public List<${glConditionQueryInterfaceName}> getUnionQueryList() {\r
- if (_unionQueryMap == null) { return new ArrayList<${glConditionQueryInterfaceName}>(); }\r
- return new ArrayList<${glConditionQueryInterfaceName}>(_unionQueryMap.values());\r
- }\r
-\r
- public List<${glConditionQueryInterfaceName}> getUnionAllQueryList() {\r
- if (_unionAllQueryMap == null) { return new ArrayList<${glConditionQueryInterfaceName}>(); }\r
- return new ArrayList<${glConditionQueryInterfaceName}>(_unionAllQueryMap.values());\r
- }\r
-\r
- // ===================================================================================\r
- // Register\r
- // ========\r
- // -----------------------------------------------------\r
- // Include-As-Mine\r
- // ---------------\r
- protected virtual void registerIncludedSelectColumn(String aliasName, String realColumnName) {\r
- assertAliasName(aliasName);\r
- assertColumnName(realColumnName);\r
- getSqlClause().registerIncludedSelectColumn(aliasName, realColumnName);\r
- }\r
- \r
- // -----------------------------------------------------\r
- // Normal Query\r
- // ------------\r
- protected virtual void registerQuery(${glConditionKeyName} key, Object value, ${glConditionValueName} cvalue\r
- , String colName, String capPropName, String uncapPropName) {\r
- if (key.isValidRegistration(cvalue, value, key.getConditionKey() + " of " + getRealAliasName() + "." + colName)) {\r
- setupConditionValueAndRegisterWhereClause(key, value, cvalue, colName, capPropName, uncapPropName);\r
- }\r
- }\r
- \r
- protected virtual void registerQuery(${glConditionKeyName} key, Object value, ${glConditionValueName} cvalue\r
- , String colName, String capPropName, String uncapPropName, ${glConditionOptionInterfaceName} option) {\r
- if (key.isValidRegistration(cvalue, value, key.getConditionKey() + " of " + getRealAliasName() + "." + colName)) {\r
- setupConditionValueAndRegisterWhereClause(key, value, cvalue, colName, capPropName, uncapPropName, option);\r
- }\r
- }\r
-\r
- // -----------------------------------------------------\r
- // FromTo Query\r
- // ------------\r
- protected void registerFromToQuery(DateTime? fromDate, DateTime? toDate, ${glConditionValueName} cvalue\r
- , String colName, String capPropName, String uncapPropName, ${glConditionOptionFromToName} option) {\r
- {\r
- DateTime? filteredFromDate = option.filterFromDate(fromDate);\r
- ${glConditionKeyName} fromKey = option.getFromDateConditionKey();\r
- if (fromKey.isValidRegistration(cvalue, filteredFromDate, fromKey.getConditionKey() + " of " + getRealAliasName() + "." + uncapPropName)) {\r
- setupConditionValueAndRegisterWhereClause(fromKey, filteredFromDate, cvalue, colName, capPropName, uncapPropName);\r
- }\r
- }\r
- {\r
- DateTime? filteredToDate = option.filterToDate(toDate);\r
- ${glConditionKeyName} toKey = option.getToDateConditionKey();\r
- if (toKey.isValidRegistration(cvalue, filteredToDate, toKey.getConditionKey() + " of " + getRealAliasName() + "." + uncapPropName)) {\r
- setupConditionValueAndRegisterWhereClause(toKey, filteredToDate, cvalue, colName, capPropName, uncapPropName);\r
- }\r
- }\r
- }\r
- \r
- // -----------------------------------------------------\r
- // LikeSearch Query\r
- // ----------------\r
- protected void registerLikeSearchQuery(${glConditionKeyName} key\r
- , String value\r
- , ${glConditionValueName} cvalue\r
- , String colName\r
- , String capPropName\r
- , String uncapPropName\r
- , ${glConditionOptionLikeSearchName} option) {\r
- String validationMsg = key.getConditionKey() + " of " + getRealAliasName() + "." + colName;\r
- if (!key.isValidRegistration(cvalue, value, validationMsg)) {\r
- return;\r
- }\r
- if (option == null) {\r
- throwLikeSearchOptionNotFoundException(capPropName, value);\r
- return;// Unreachable!\r
- }\r
- if (value == null || !option.isSplit()) {\r
- // As Normal Condition.\r
- setupConditionValueAndRegisterWhereClause(key, value, cvalue, colName, capPropName, uncapPropName, option);\r
- return;\r
- }\r
- // - - - - - - - - -\r
- // Use splitByXxx().\r
- // - - - - - - - - -\r
- throw new UnsupportedOperationException("The method 'splitByXxx()' have been unsupported yet!");\r
- }\r
-\r
- protected void throwLikeSearchOptionNotFoundException(String capPropName, String value) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The likeSearchOption was Not Found! (Should not be null!)" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "Please confirm your method call:" + getLineSeparator();\r
- String beanName = GetType().Name;\r
- String methodName = "set" + capPropName + "_LikeSearch('" + value + "', likeSearchOption);";\r
- msg = msg + " " + beanName + "." + methodName + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */" + getLineSeparator();\r
- throw new ${glRequiredOptionNotFoundException}(msg);\r
- }\r
- \r
- // -----------------------------------------------------\r
- // InScope Query\r
- // -------------\r
-\r
- // -----------------------------------------------------\r
- // Inline Query\r
- // ------------\r
- protected virtual void registerInlineQuery(${glConditionKeyName} key, Object value, ${glConditionValueName} cvalue\r
- , String colName, String capPropName, String uncapPropName) {\r
- if (key.isValidRegistration(cvalue, value, key.getConditionKey() + " of " + getRealAliasName() + "." + colName)) {\r
- key.setupConditionValue(cvalue, value, getLocation(capPropName, key));// If CSharp, it is necessary to use capPropName!\r
- if (isBaseQuery(this)) {\r
- getSqlClause().registerBaseTableInlineWhereClause(colName, key, cvalue);\r
- } else {\r
- getSqlClause().registerOuterJoinInlineWhereClause(getRealAliasName(), colName, key, cvalue, _onClauseInline);\r
- }\r
- }\r
- }\r
-\r
- protected virtual void registerInlineQuery(${glConditionKeyName} key, Object value, ${glConditionValueName} cvalue\r
- , String colName, String capPropName, String uncapPropName, ${glConditionOptionInterfaceName} option) {\r
- if (key.isValidRegistration(cvalue, value, key.getConditionKey() + " of " + getRealAliasName() + "." + colName)) {\r
- key.setupConditionValue(cvalue, value, getLocation(capPropName, key), option);// If CSharp, it is necessary to use capPropName!\r
- if (isBaseQuery(this)) {\r
- getSqlClause().registerBaseTableInlineWhereClause(colName, key, cvalue, option);\r
- } else {\r
- getSqlClause().registerOuterJoinInlineWhereClause(getRealAliasName(), colName, key, cvalue, option, _onClauseInline);\r
- }\r
- }\r
- }\r
-\r
- // -----------------------------------------------------\r
- // InScopeSubQuery\r
- // ---------------\r
- protected virtual void registerInScopeSubQuery(${glConditionQueryInterfaceName} subQuery\r
- , String columnName, String relatedColumnName, String propertyName) {\r
- registerInScopeSubQuery(subQuery, columnName, relatedColumnName, propertyName, null);\r
- }\r
-\r
- protected virtual void registerNotInScopeSubQuery(${glConditionQueryInterfaceName} subQuery\r
- , String columnName, String relatedColumnName, String propertyName) {\r
- registerInScopeSubQuery(subQuery, columnName, relatedColumnName, propertyName, "not");\r
- }\r
-\r
- protected virtual void registerInScopeSubQuery(${glConditionQueryInterfaceName} subQuery\r
- , String columnName, String relatedColumnName, String propertyName\r
- , String inScopeOption) {\r
- assertObjectNotNull("InScopeSubQyery(" + columnName + ")", subQuery);\r
- inScopeOption = inScopeOption != null ? inScopeOption + " " : "";\r
- String realColumnName = getInScopeSubQueryRealColumnName(columnName);\r
- String subQueryClause = getInScopeSubQuerySql(subQuery, relatedColumnName, propertyName);\r
- String clause = null;\r
- if (getSqlClause().isFormatClauseEffective()) {\r
- String ln = getLineSeparator();\r
- int subQueryLevel = subQuery.getSubQueryLevel();\r
- String subQueryIdentity = propertyName + "[" + subQueryLevel + "]";\r
- String beginMark = getSqlClause().resolveSubQueryBeginMark(subQueryIdentity) + ln;\r
- String endMark = getSqlClause().resolveSubQueryEndMark(subQueryIdentity);\r
- String endIndent = " ";\r
- clause = realColumnName + " " + inScopeOption + "in (" + beginMark + subQueryClause + ln + endIndent + ")" + endMark;\r
- } else {\r
- clause = realColumnName + " " + inScopeOption + "in (" + subQueryClause + ")";\r
- }\r
- registerWhereClause(clause);\r
- }\r
-\r
- protected virtual String getInScopeSubQueryRealColumnName(String columnName) {\r
- return getRealColumnName(columnName);\r
- }\r
-\r
- protected virtual String getInScopeSubQuerySql(${glConditionQueryInterfaceName} subQuery\r
- , String relatedColumnName, String propertyName) {\r
- String selectClause = "select " + getSqlClause().getLocalTableAliasName() + "." + relatedColumnName;\r
- String fromWhereClause = subQuery.getSqlClause().getClauseFromWhereWithUnionTemplate();\r
- fromWhereClause = replaceString(fromWhereClause, "." + CQ_PROPERTY + ".", "." + getLocationBase(propertyName) + ".");// Very Important!\r
- \r
- // Replace template marks. These are very important!\r
- fromWhereClause = replaceString(fromWhereClause, getSqlClause().getUnionSelectClauseMark(), selectClause);\r
- fromWhereClause = replaceString(fromWhereClause, getSqlClause().getUnionWhereClauseMark(), "");\r
- fromWhereClause = replaceString(fromWhereClause, getSqlClause().getUnionWhereFirstConditionMark(), "");\r
- \r
- return selectClause + " " + fromWhereClause;\r
- }\r
-\r
- // -----------------------------------------------------\r
- // ExistsSubQuery\r
- // --------------\r
- protected virtual void registerExistsSubQuery(${glConditionQueryInterfaceName} subQuery\r
- , String columnName, String relatedColumnName, String propertyName) {\r
- registerExistsSubQuery(subQuery, columnName, relatedColumnName, propertyName, null);\r
- }\r
-\r
- protected virtual void registerNotExistsSubQuery(${glConditionQueryInterfaceName} subQuery\r
- , String columnName, String relatedColumnName, String propertyName) {\r
- registerExistsSubQuery(subQuery, columnName, relatedColumnName, propertyName, "not");\r
- }\r
-\r
- protected virtual void registerExistsSubQuery(${glConditionQueryInterfaceName} subQuery\r
- , String columnName, String relatedColumnName, String propertyName\r
- , String existsOption) {\r
- assertObjectNotNull("ExistsSubQyery(" + columnName + ")", subQuery);\r
- existsOption = existsOption != null ? existsOption + " " : "";\r
- String realColumnName = getExistsSubQueryRealColumnName(columnName);\r
- String subQueryClause = getExistsSubQuerySql(subQuery, realColumnName, relatedColumnName, propertyName);\r
- String clause = null;\r
- if (getSqlClause().isFormatClauseEffective()) {\r
- String ln = getLineSeparator();\r
- int subQueryLevel = subQuery.getSubQueryLevel();\r
- String subQueryIdentity = propertyName + "[" + subQueryLevel + "]";\r
- String beginMark = getSqlClause().resolveSubQueryBeginMark(subQueryIdentity) + ln;\r
- String endMark = getSqlClause().resolveSubQueryEndMark(subQueryIdentity);\r
- String endIndent = " ";\r
- clause = existsOption + "exists (" + beginMark + subQueryClause + ln + endIndent + ")" + endMark;\r
- } else {\r
- clause = existsOption + "exists (" + subQueryClause + ")";\r
- }\r
- registerWhereClause(clause);\r
- }\r
-\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \r
- // *Unsupport ExistsSubQuery as inline because it's so dangerous.\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \r
-\r
- protected virtual String getExistsSubQueryRealColumnName(String columnName) {\r
- return getRealColumnName(columnName);\r
- }\r
-\r
- protected virtual String getExistsSubQuerySql(${glConditionQueryInterfaceName} subQuery\r
- , String realColumnName, String relatedColumnName, String propertyName) {\r
- int subQueryLevel = subQuery.getSubQueryLevel();\r
- if (_subQueryLevel <= subQueryLevel) {\r
- _subQueryLevel = subQueryLevel + 1;\r
- }\r
- String tableAliasName = "dfsublocal_" + subQueryLevel;\r
- String selectClause = "select " + tableAliasName + "." + relatedColumnName;\r
- String fromWhereClause = subQuery.getSqlClause().getClauseFromWhereWithWhereUnionTemplate();\r
- fromWhereClause = replaceString(fromWhereClause, "dflocal", tableAliasName);// Very Important!\r
- fromWhereClause = replaceString(fromWhereClause, "." + CQ_PROPERTY + ".", "." + getLocationBase(propertyName) + ".");// Very Important!\r
- \r
- String joinCondition = tableAliasName + "." + relatedColumnName + " = " + realColumnName;\r
- String firstConditionAfter = " and ";\r
- if (getSqlClause().isFormatClauseEffective()) {\r
- firstConditionAfter = getLineSeparator() + " and ";\r
- }\r
- \r
- // Replace template marks. These are very important!\r
- fromWhereClause = replaceString(fromWhereClause, getSqlClause().getWhereClauseMark(), "where " + joinCondition);\r
- fromWhereClause = replaceString(fromWhereClause, getSqlClause().getWhereFirstConditionMark(), joinCondition + firstConditionAfter);\r
- fromWhereClause = replaceString(fromWhereClause, getSqlClause().getUnionSelectClauseMark(), selectClause);\r
- fromWhereClause = replaceString(fromWhereClause, getSqlClause().getUnionWhereClauseMark(), "where " + joinCondition);\r
- fromWhereClause = replaceString(fromWhereClause, getSqlClause().getUnionWhereFirstConditionMark(), joinCondition + firstConditionAfter);\r
- \r
- return selectClause + " " + fromWhereClause;\r
- }\r
-\r
- // [DBFlute-0.7.9]\r
- // -----------------------------------------------------\r
- // DeriveSubQuery\r
- // --------------\r
- protected void registerDeriveSubQuery(String function, ${glConditionQueryInterfaceName} subQuery\r
- , String columnName, String relatedColumnName\r
- , String propertyName, String aliasName) {\r
- assertObjectNotNull("DeriveSubQuery(" + columnName + ")", subQuery);\r
- String realColumnName = getDeriveSubQueryRealColumnName(columnName);\r
- String subQueryClause = getDeriveSubQuerySql(function, subQuery, realColumnName, relatedColumnName, propertyName, aliasName);\r
- String clause;\r
- if (getSqlClause().isFormatClauseEffective()) {\r
- String ln = getLineSeparator();\r
- int subQueryLevel = subQuery.getSubQueryLevel();\r
- String subQueryIdentity = propertyName + "[" + subQueryLevel + "]";\r
- String beginMark = getSqlClause().resolveSubQueryBeginMark(subQueryIdentity) + ln;\r
- String endMark = getSqlClause().resolveSubQueryEndMark(subQueryIdentity);\r
- String endIndent = " ";\r
- clause = "(" + beginMark + subQueryClause + ln + endIndent + ") as " + aliasName + endMark;\r
- } else {\r
- clause = "(" + subQueryClause + ") as " + aliasName;\r
- }\r
- getSqlClause().specifyDeriveSubQuery(aliasName, clause);\r
- }\r
-\r
- protected String getDeriveSubQueryRealColumnName(String columnName) {\r
- return getRealColumnName(columnName);\r
- }\r
-\r
- protected String getDeriveSubQuerySql(String function, ${glConditionQueryInterfaceName} subQuery\r
- , String realColumnName, String relatedColumnName\r
- , String propertyName, String aliasName) {\r
- int subQueryLevel = subQuery.getSubQueryLevel();\r
- if (_subQueryLevel <= subQueryLevel) {\r
- _subQueryLevel = subQueryLevel + 1;\r
- }\r
- String tableAliasName = "dfsublocal_" + subQueryLevel;\r
- String deriveColumnName = subQuery.getSqlClause().getSpecifiedColumnNameAsOne();\r
- if (deriveColumnName == null || deriveColumnName.Trim().Length == 0) {\r
- throwDeriveReferrerInvalidColumnSpecificationException(function, aliasName);\r
- }\r
- assertDeriveReferrerColumnType(function, subQuery, deriveColumnName);\r
- subQuery.getSqlClause().clearSpecifiedSelectColumn();\r
- String selectClause = "select " + function + "(" + tableAliasName + "." + deriveColumnName + ")";\r
- String fromWhereClause = subQuery.getSqlClause().getClauseFromWhereWithWhereUnionTemplate();\r
- fromWhereClause = replaceString(fromWhereClause, "dflocal", tableAliasName);// Very Important!\r
- fromWhereClause = replaceString(fromWhereClause, ".ConditionQuery.", "." + getLocationBase(propertyName) + ".");// Very Important! CSharp InitCap!\r
- \r
- String joinCondition = tableAliasName + "." + relatedColumnName + " = " + realColumnName;\r
- String firstConditionAfter = " and ";\r
- if (getSqlClause().isFormatClauseEffective()) {\r
- firstConditionAfter = getLineSeparator() + " and ";\r
- }\r
- \r
- // Replace template marks. These are very important!\r
- fromWhereClause = replaceString(fromWhereClause, getSqlClause().getWhereClauseMark(), "where " + joinCondition);\r
- fromWhereClause = replaceString(fromWhereClause, getSqlClause().getWhereFirstConditionMark(), joinCondition + firstConditionAfter);\r
- fromWhereClause = replaceString(fromWhereClause, getSqlClause().getUnionSelectClauseMark(), selectClause);\r
- fromWhereClause = replaceString(fromWhereClause, getSqlClause().getUnionWhereClauseMark(), "where " + joinCondition);\r
- fromWhereClause = replaceString(fromWhereClause, getSqlClause().getUnionWhereFirstConditionMark(), joinCondition + firstConditionAfter);\r
- \r
- return selectClause + " " + fromWhereClause;\r
- }\r
-\r
- protected void throwDeriveReferrerInvalidColumnSpecificationException(String function, String aliasName) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The specified the column for derive-referrer was Invalid!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + " You should call specify().column[TargetColumn]() only once." + getLineSeparator();\r
- msg = msg + " For example:" + getLineSeparator();\r
- msg = msg + " " + getLineSeparator();\r
- msg = msg + " [Wrong]" + getLineSeparator();\r
- msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + getLineSeparator();\r
- msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator();\r
- msg = msg + " cb.specify().derivePurchaseList()." + function + "(new SubQuery<PurchaseCB>() {" + getLineSeparator();\r
- msg = msg + " public void query(PurchaseCB subCB) {" + getLineSeparator();\r
- msg = msg + " // *No! It's empty!" + getLineSeparator();\r
- msg = msg + " }" + getLineSeparator();\r
- msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + getLineSeparator();\r
- msg = msg + " - - - - - - - - - -/" + getLineSeparator();\r
- msg = msg + " " + getLineSeparator();\r
- msg = msg + " [Wrong]" + getLineSeparator();\r
- msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + getLineSeparator();\r
- msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator();\r
- msg = msg + " cb.specify().derivePurchaseList()." + function + "(new SubQuery<PurchaseCB>() {" + getLineSeparator();\r
- msg = msg + " public void query(PurchaseCB subCB) {" + getLineSeparator();\r
- msg = msg + " subCB.specify().columnPurchaseDatetime();" + getLineSeparator();\r
- msg = msg + " subCB.specify().columnPurchaseCount(); // *No! It's duplicated!" + getLineSeparator();\r
- msg = msg + " }" + getLineSeparator();\r
- msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + getLineSeparator();\r
- msg = msg + " - - - - - - - - - -/" + getLineSeparator();\r
- msg = msg + " " + getLineSeparator();\r
- msg = msg + " [Good!]" + getLineSeparator();\r
- msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + getLineSeparator();\r
- msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator();\r
- msg = msg + " cb.specify().derivePurchaseList()." + function + "(new SubQuery<PurchaseCB>() {" + getLineSeparator();\r
- msg = msg + " public void query(PurchaseCB subCB) {" + getLineSeparator();\r
- msg = msg + " subCB.specify().columnPurchaseDatetime(); // *Point!" + getLineSeparator();\r
- msg = msg + " }" + getLineSeparator();\r
- msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + getLineSeparator();\r
- msg = msg + " - - - - - - - - - -/" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Alias Name]" + getLineSeparator() + aliasName + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new DeriveReferrerInvalidColumnSpecificationException(msg);\r
- }\r
-\r
- public class DeriveReferrerInvalidColumnSpecificationException : SystemException {\r
- public DeriveReferrerInvalidColumnSpecificationException(String msg) : base(msg) {\r
- }\r
- }\r
- \r
- protected void assertDeriveReferrerColumnType(String function, ${glConditionQueryInterfaceName} subQuery, String deriveColumnName) {\r
- ${glDBMetaInterfaceName} dbmeta = ${glDBMetaInstanceHandlerName}.FindDBMeta(subQuery.getTableDbName());\r
- Type deriveColumnType = dbmeta.FindColumnInfo(deriveColumnName).PropertyType;\r
- if ("sum".Equals(function.ToLower()) || "avg".Equals(function.ToLower())) {\r
- if (!typeof(int).IsAssignableFrom(deriveColumnType) && !typeof(int?).IsAssignableFrom(deriveColumnType)) {\r
- throwDeriveReferrerUnmatchedColumnTypeException(function, deriveColumnName, deriveColumnType);\r
- }\r
- }\r
- }\r
-\r
- protected void throwDeriveReferrerUnmatchedColumnTypeException(String function, String deriveColumnName, Type deriveColumnType) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The type of the specified the column unmatched with the function!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "You should confirm the list as follow:" + getLineSeparator();\r
- msg = msg + " max() : String, Number, Date" + getLineSeparator();\r
- msg = msg + " min() : String, Number, Date" + getLineSeparator();\r
- msg = msg + " sum() : Number" + getLineSeparator();\r
- msg = msg + " avg() : Number" + getLineSeparator();\r
- msg = msg + " count() : String, Number, Date" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Function]" + getLineSeparator() + function + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Derive Column]" + getLineSeparator() + deriveColumnName + "(" + deriveColumnType.Name + ")" + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new DeriveReferrerUnmatchedColumnTypeException(msg);\r
- }\r
-\r
- public class DeriveReferrerUnmatchedColumnTypeException : SystemException {\r
- public DeriveReferrerUnmatchedColumnTypeException(String msg) : base(msg) {\r
- }\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Where Clause\r
- // ------------\r
- protected virtual void setupConditionValueAndRegisterWhereClause(${glConditionKeyName} key, Object value, ${glConditionValueName} cvalue\r
- , String colName, String capPropName, String uncapPropName) {\r
- key.setupConditionValue(cvalue, value, getLocation(capPropName, key)); // If CSharp, it is necessary to use capPropName!\r
- getSqlClause().registerWhereClause(getRealColumnName(colName), key, cvalue);\r
- }\r
-\r
- protected virtual void setupConditionValueAndRegisterWhereClause(${glConditionKeyName} key, Object value, ${glConditionValueName} cvalue\r
- , String colName, String capPropName, String uncapPropName, ${glConditionOptionInterfaceName} option) {\r
- key.setupConditionValue(cvalue, value, getLocation(capPropName, key), option); // If CSharp, it is necessary to use capPropName!\r
- getSqlClause().registerWhereClause(getRealColumnName(colName), key, cvalue, option);\r
- }\r
- \r
- protected virtual void registerWhereClause(String whereClause) {\r
- getSqlClause().registerWhereClause(whereClause);\r
- }\r
-\r
- protected virtual void registerInlineWhereClause(String whereClause) {\r
- if (isBaseQuery(this)) {\r
- getSqlClause().registerBaseTableInlineWhereClause(whereClause);\r
- } else {\r
- getSqlClause().registerOuterJoinInlineWhereClause(getRealAliasName(), whereClause, _onClauseInline);\r
- }\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Union Query\r
- // -----------\r
- public void registerUnionQuery(${glConditionQueryInterfaceName} unionQuery, bool unionAll, String unionQueryPropertyName) {\r
- String unionQueryClause = getUnionQuerySql(unionQuery, unionQueryPropertyName);\r
- \r
- // At the future, building SQL will be moved to sqlClause.\r
- getSqlClause().registerUnionQuery(unionQueryClause, unionAll);\r
- }\r
-\r
- protected String getUnionQuerySql(${glConditionQueryInterfaceName} unionQuery, String unionQueryPropertyName) {\r
- String fromClause = unionQuery.getSqlClause().getFromClause();\r
- String whereClause = unionQuery.getSqlClause().getWhereClause();\r
- String unionQueryClause;\r
- if (whereClause.Trim().Length <= 0) {\r
- unionQueryClause = fromClause + " " + getSqlClause().getUnionWhereClauseMark();\r
- } else {\r
- int whereIndex = whereClause.IndexOf("where ");\r
- if (whereIndex < 0) {\r
- String msg = "The whereClause should have 'where' string: " + whereClause;\r
- throw new IllegalStateException(msg);\r
- }\r
- int clauseIndex = whereIndex + "where ".Length;\r
- String mark = getSqlClause().getUnionWhereFirstConditionMark();\r
- unionQueryClause = fromClause + " " + whereClause.Substring(0, clauseIndex) + mark + whereClause.Substring(clauseIndex);\r
- }\r
- String oldStr = "." + CQ_PROPERTY + ".";\r
- String newStr = "." + CQ_PROPERTY + "." + unionQueryPropertyName + ".";\r
- return replaceString(unionQueryClause, oldStr, newStr);// Very Important!\r
- }\r
-\r
- // -----------------------------------------------------\r
- // OrderBy\r
- // -------\r
- public void WithNullsFirst() {// is User Public!\r
- getSqlClause().addNullsFirstToPreviousOrderBy();\r
- }\r
- \r
- public void WithNullsLast() {// is User Public!\r
- getSqlClause().addNullsLastToPreviousOrderBy();\r
- }\r
-\r
- protected void registerSpecifiedDerivedOrderBy_Asc(String aliasName) {\r
- if (!getSqlClause().hasSpecifiedDeriveSubQuery(aliasName)) {\r
- throwSpecifiedDerivedOrderByAliasNameNotFoundException(aliasName);\r
- }\r
- getSqlClause().registerOrderBy(aliasName, null, true);\r
- }\r
-\r
- protected void registerSpecifiedDerivedOrderBy_Desc(String aliasName) {\r
- if (!getSqlClause().hasSpecifiedDeriveSubQuery(aliasName)) {\r
- throwSpecifiedDerivedOrderByAliasNameNotFoundException(aliasName);\r
- }\r
- getSqlClause().registerOrderBy(aliasName, null, false);\r
- }\r
-\r
- protected void throwSpecifiedDerivedOrderByAliasNameNotFoundException(String aliasName) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The aliasName was Not Found in specified alias names." + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "You should specified an alias name that is the same as one in specify-derived-referrer." + getLineSeparator();\r
- msg = msg + " For example:" + getLineSeparator();\r
- msg = msg + " " + getLineSeparator();\r
- msg = msg + " [Wrong]" + getLineSeparator();\r
- msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + getLineSeparator();\r
- msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator();\r
- msg = msg + " cb.specify().derivePurchaseList().max(new SubQuery<PurchaseCB>() {" + getLineSeparator();\r
- msg = msg + " public void query(PurchaseCB subCB) {" + getLineSeparator();\r
- msg = msg + " subCB.specify().specifyProduct().columnProductName(); // *No!" + getLineSeparator();\r
- msg = msg + " }" + getLineSeparator();\r
- msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + getLineSeparator();\r
- msg = msg + " cb.query().addSpecifiedDerivedOrderBy_Desc(\"WRONG_NAME_DATETIME\");" + getLineSeparator();\r
- msg = msg + " - - - - - - - - - -/" + getLineSeparator();\r
- msg = msg + " " + getLineSeparator();\r
- msg = msg + " [Good!]" + getLineSeparator();\r
- msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + getLineSeparator();\r
- msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator();\r
- msg = msg + " cb.specify().derivePurchaseList().max(new SubQuery<PurchaseCB>() {" + getLineSeparator();\r
- msg = msg + " public void query(PurchaseCB subCB) {" + getLineSeparator();\r
- msg = msg + " subCB.specify().columnPurchaseDatetime();// *Point!" + getLineSeparator();\r
- msg = msg + " }" + getLineSeparator();\r
- msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + getLineSeparator();\r
- msg = msg + " cb.query().addSpecifiedDerivedOrderBy_Desc(\"LATEST_PURCHASE_DATETIME\");" + getLineSeparator();\r
- msg = msg + " - - - - - - - - - -/" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Not Found Alias Name]" + getLineSeparator() + aliasName + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new SpecifiedDerivedOrderByAliasNameNotFoundException(msg);\r
- }\r
-\r
- public class SpecifiedDerivedOrderByAliasNameNotFoundException : SystemException {\r
- public SpecifiedDerivedOrderByAliasNameNotFoundException(String msg) : base(msg) {\r
- }\r
- }\r
-\r
- public void registerOrderBy(String columnName, bool ascOrDesc) {\r
- getSqlClause().registerOrderBy(getRealColumnName(columnName), null, ascOrDesc);\r
- }\r
-\r
- protected void regOBA(String columnName) {\r
- registerOrderBy(columnName, true);\r
- }\r
-\r
- protected void regOBD(String columnName) {\r
- registerOrderBy(columnName, false);\r
- }\r
-\r
- // ===================================================================================\r
- // Name Resolver\r
- // =============\r
- protected String resolveJoinAliasName(String relationPath, int nestLevel) {\r
- return getSqlClause().resolveJoinAliasName(relationPath, nestLevel);\r
- }\r
-\r
- protected String resolveNestLevelExpression(String name) {\r
- return getSqlClause().resolveNestLevelExpression(name, getNestLevel());\r
- }\r
-\r
- protected String resolveNextRelationPath(String tableName, String relationPropertyName) {\r
- int relationNo = getSqlClause().resolveRelationNo(tableName, relationPropertyName);\r
- String nextRelationPath = "_" + relationNo;\r
- if (_relationPath != null) {\r
- nextRelationPath = _relationPath + nextRelationPath;\r
- }\r
- return nextRelationPath;\r
- }\r
- \r
- // ===================================================================================\r
- // Fixed Condition\r
- // ===============\r
- protected String prepareFixedCondition(String fixedCondition, String localAliasName, String foreignAliasName) {\r
- fixedCondition = replaceString(fixedCondition, "$$alias$$", foreignAliasName);\r
- fixedCondition = replaceString(fixedCondition, "$$foreignAlias$$", foreignAliasName);\r
- fixedCondition = replaceString(fixedCondition, "$$localAlias$$", localAliasName);\r
- return fixedCondition;\r
- }\r
-\r
- // ===================================================================================\r
- // Reflection Invoking\r
- // ===================\r
- public ${glConditionValueName} invokeValue(String columnFlexibleName) {\r
- assertStringNotNullAndNotTrimmedEmpty("columnFlexibleName", columnFlexibleName);\r
- ${glDBMetaInterfaceName} dbmeta = ${glDBMetaInstanceHandlerName}.FindDBMeta(getTableDbName());\r
- String columnCapPropName = initCap(dbmeta.FindPropertyName(columnFlexibleName));\r
- String propertyName = columnCapPropName;\r
- PropertyInfo property = helpGettingCQProperty(this, propertyName);\r
- return (${glConditionValueName})helpInvokingCQProperty(this, property);\r
- }\r
-\r
- public void invokeQuery(String columnFlexibleName, String conditionKeyName, Object value) {\r
- assertStringNotNullAndNotTrimmedEmpty("columnFlexibleName", columnFlexibleName);\r
- assertStringNotNullAndNotTrimmedEmpty("conditionKeyName", conditionKeyName);\r
- if (value == null) {\r
- return;\r
- }\r
- PropertyNameCQContainer container = helpExtractingPropertyNameCQContainer(columnFlexibleName);\r
- String propertyName = container.getPropertyName();\r
- ${glConditionQueryInterfaceName} cq = container.getConditionQuery();\r
- ${glDBMetaInterfaceName} dbmeta = ${glDBMetaInstanceHandlerName}.FindDBMeta(cq.getTableDbName());\r
- String columnCapPropName = initCap(dbmeta.FindPropertyName(propertyName));\r
- String methodName = "Set" + columnCapPropName + "_" + initCap(conditionKeyName);\r
- MethodInfo method = helpGettingCQMethod(cq, methodName, new Type[]{value.GetType()}, propertyName);\r
- helpInvokingCQMethod(cq, method, new Object[]{value});\r
- }\r
-\r
- public void invokeOrderBy(String columnFlexibleName, bool isAsc) {\r
- assertStringNotNullAndNotTrimmedEmpty("columnFlexibleName", columnFlexibleName);\r
- PropertyNameCQContainer container = helpExtractingPropertyNameCQContainer(columnFlexibleName);\r
- String propertyName = container.getPropertyName();\r
- ${glConditionQueryInterfaceName} cq = container.getConditionQuery();\r
- String ascDesc = isAsc ? "Asc" : "Desc";\r
- ${glDBMetaInterfaceName} dbmeta = ${glDBMetaInstanceHandlerName}.FindDBMeta(cq.getTableDbName());\r
- String columnCapPropName = initCap(dbmeta.FindPropertyName(propertyName));\r
- String methodName = "AddOrderBy_" + columnCapPropName + "_" + ascDesc;\r
- MethodInfo method = helpGettingCQMethod(cq, methodName, new Type[]{}, propertyName);\r
- helpInvokingCQMethod(cq, method, new Object[]{});\r
- }\r
-\r
- public ${glConditionQueryInterfaceName} invokeForeignCQ(String foreignPropertyName) {\r
- assertStringNotNullAndNotTrimmedEmpty("foreignPropertyName", foreignPropertyName);\r
- String methodName = "Query" + initCap(foreignPropertyName);\r
- MethodInfo method = helpGettingCQMethod(this, methodName, new Type[]{}, foreignPropertyName);\r
- return (${glConditionQueryInterfaceName})helpInvokingCQMethod(this, method, new Object[]{});\r
- }\r
-\r
- private PropertyNameCQContainer helpExtractingPropertyNameCQContainer(String name) {\r
- String[] strings = name.Split('.');\r
- int length = strings.Length;\r
- String propertyName = null;\r
- ${glConditionQueryInterfaceName} cq = this;\r
- int index = 0;\r
- foreach (String element in strings) {\r
- if (length == (index+1)) {// at last loop!\r
- propertyName = element;\r
- break;\r
- }\r
- cq = cq.invokeForeignCQ(element);\r
- ++index;\r
- }\r
- return new PropertyNameCQContainer(propertyName, cq);\r
- }\r
-\r
- private class PropertyNameCQContainer {\r
- protected String _propertyName;\r
- protected ${glConditionQueryInterfaceName} _cq;\r
- public PropertyNameCQContainer(String propertyName, ${glConditionQueryInterfaceName} cq) {\r
- this._propertyName = propertyName;\r
- this._cq = cq;\r
- }\r
- public String getPropertyName() {\r
- return _propertyName;\r
- }\r
- public ${glConditionQueryInterfaceName} getConditionQuery() {\r
- return _cq;\r
- }\r
- }\r
-\r
- private PropertyInfo helpGettingCQProperty(${glConditionQueryInterfaceName} cq, String propertyName) {\r
- PropertyInfo property = cq.GetType().GetProperty(propertyName);\r
- if (property == null) {\r
- String msg = "The property is not existing:";\r
- msg = msg + " propertyName=" + propertyName;\r
- msg = msg + " tableName=" + cq.getTableDbName();\r
- throw new IllegalStateException(msg);\r
- }\r
- return property;\r
- }\r
-\r
- private Object helpInvokingCQProperty(${glConditionQueryInterfaceName} cq, PropertyInfo property) {\r
- return property.GetValue(cq, null);\r
- }\r
-\r
- private MethodInfo helpGettingCQMethod(${glConditionQueryInterfaceName} cq, String methodName, Type[] argTypes, String property) {\r
- MethodInfo method = cq.GetType().GetMethod(methodName, argTypes);\r
- if (method == null) {\r
- String msg = "The method is not existing:";\r
- msg = msg + " methodName=" + methodName;\r
- msg = msg + " argTypes=" + convertObjectArrayToStringView(argTypes);\r
- msg = msg + " tableName=" + cq.getTableDbName();\r
- msg = msg + " property=" + property;\r
- throw new IllegalStateException(msg);\r
- }\r
- return method;\r
- }\r
-\r
- private Object helpInvokingCQMethod(${glConditionQueryInterfaceName} cq, MethodInfo method, Object[] args) {\r
- return method.Invoke(cq, args);\r
- }\r
-\r
- // ===================================================================================\r
- // Assist Helper\r
- // =============\r
- protected String fRES(String value) {\r
- return filterRemoveEmptyString(value);\r
- }\r
-\r
- private String filterRemoveEmptyString(String value) {\r
- return ((value != null && !"".Equals(value)) ? value : null);\r
- }\r
-\r
- protected System.Collections.IList cTL<PROPERTY_TYPE>(System.Collections.Generic.ICollection<PROPERTY_TYPE> col) {\r
- return convertToList(col);\r
- }\r
-\r
- private System.Collections.IList convertToList<PROPERTY_TYPE>(System.Collections.Generic.ICollection<PROPERTY_TYPE> col) {\r
- if (col == null) {\r
- return null;\r
- }\r
- if (col is System.Collections.IList) {\r
- return (System.Collections.IList)col;\r
- }\r
- System.Collections.IList resultList = new System.Collections.ArrayList();\r
- foreach (PROPERTY_TYPE value in col) {\r
- resultList.Add(value);\r
- }\r
- return resultList;\r
- }\r
-\r
- private System.Collections.IList filterRemoveEmptyStringFromList(System.Collections.IList ls) {\r
- if (ls == null) {\r
- return null;\r
- }\r
- System.Collections.IList resultList = new System.Collections.ArrayList();\r
- foreach (Object value in ls) {\r
- String str = (String)value;\r
- if (str == null || "".Equals(str)) {\r
- continue;\r
- }\r
- resultList.Add(str);\r
- }\r
- return resultList;\r
- }\r
-\r
- protected System.Collections.IList fRESL(System.Collections.IList ls) {\r
- return filterRemoveEmptyStringFromList(ls);\r
- }\r
-\r
- // ===================================================================================\r
- // General Helper\r
- // ==============\r
- protected String getLineSeparator() {\r
- return ${glSimpleSystemUtil}.GetLineSeparator();\r
- }\r
-\r
- protected String replaceString(String text, String fromText, String toText) {\r
- return ${glSimpleStringUtil}.Replace(text, fromText, toText);\r
- }\r
-\r
- protected String initCap(String str) {\r
- return ${glSimpleStringUtil}.InitCap(str);\r
- }\r
-\r
- protected String convertObjectArrayToStringView(Object[] objArray) {\r
- return ${glTraceViewUtilName}.ConvertObjectArrayToStringView(objArray);\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Assert Object\r
- // -------------\r
- protected void assertObjectNotNull(String variableName, Object value) {\r
- ${glSimpleAssertUtil}.AssertObjectNotNull(variableName, value);\r
- }\r
-\r
- protected void assertColumnName(String columnName) {\r
- if (columnName == null) {\r
- String msg = "The columnName should not be null.";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (columnName.Trim().Length == 0) {\r
- String msg = "The columnName should not be empty-string.";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (columnName.IndexOf(",") >= 0) {\r
- String msg = "The columnName should not contain comma ',': " + columnName;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-\r
- protected void assertAliasName(String aliasName) {\r
- if (aliasName == null) {\r
- String msg = "The aliasName should not be null.";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (aliasName.Trim().Length == 0) {\r
- String msg = "The aliasName should not be empty-string.";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (aliasName.IndexOf(",") >= 0) {\r
- String msg = "The aliasName should not contain comma ',': " + aliasName;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Assert String\r
- // -------------\r
- protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, String value) {\r
- ${glSimpleAssertUtil}.AssertStringNotNullAndNotTrimmedEmpty(variableName, value);\r
- }\r
- \r
- // ===================================================================================\r
- // Basic Override\r
- // ==============\r
- public override String ToString() {\r
- return GetType().Name + ":{aliasName=" + _aliasName + ", nestLevel=" + _nestLevel\r
- + ", subQueryLevel=" + _subQueryLevel + ", foreignPropertyName=" + _foreignPropertyName\r
- + ", relationPath=" + _relationPath + ", onClauseInline=" + _onClauseInline + "}";\r
- }\r
-}\r
-\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System;\r
-using System.Collections;\r
-using ${glPackageBaseCommonSqlClause};\r
-using ${glPackageBaseCommonJdbc};\r
-\r
-namespace ${glPackageBaseCommonCBean} {\r
-\r
- public interface ${glConditionBeanInterfaceName} : ${glPagingBeanInterfaceName} {\r
-\r
- // ===============================================================================\r
- // Table Name\r
- // ==========\r
- String TableDbName { get; }\r
- String TableSqlName { get; }\r
-\r
- // ===============================================================================\r
- // SqlClause\r
- // =========\r
- ${glSqlClauseName} SqlClause { get; }\r
- String GetClause();\r
-\r
- // ===============================================================================\r
- // OrderBy Setting\r
- // ===============\r
- ${glConditionBeanInterfaceName} AddOrderBy_PK_Asc();\r
- ${glConditionBeanInterfaceName} AddOrderBy_PK_Desc();\r
- \r
- // ===============================================================================\r
- // Query\r
- // =====\r
- ${glConditionQueryInterfaceName} ConditionQueryAsInterface { get; }\r
-\r
- // ===============================================================================\r
- // Union Query\r
- // ===========\r
- bool HasUnionQueryOrUnionAllQuery();\r
-\r
- // ===============================================================================\r
- // Limit Select\r
- // ============\r
- bool IsLimitSelect_PKOnly();\r
- ${glConditionBeanInterfaceName} LimitSelect_PKOnly();\r
- ${glConditionBeanInterfaceName} LimitSelect_Off();\r
-\r
- // ===============================================================================\r
- // Lock Setting\r
- // ============\r
- $glConditionBeanInterfaceName LockForUpdate();\r
-\r
- // ===============================================================================\r
- // Select Count\r
- // ============\r
- ${glConditionBeanInterfaceName} XSetupSelectCountIgnoreFetchScope();\r
- ${glConditionBeanInterfaceName} XAfterCareSelectCountIgnoreFetchScope();\r
- bool IsSelectCountIgnoreFetchScope();\r
- \r
- // ===============================================================================\r
- // Statement Config\r
- // ================\r
- void Configure(${glStatementConfig} statementConfig);\r
- ${glStatementConfig} StatementConfig { get; }\r
-\r
- // ===============================================================================\r
- // Display SQL\r
- // ===========\r
- String ToDisplaySql();\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections;\r
-using System.Reflection;\r
-using System.Text;\r
-using System.Threading;\r
-\r
-using ${glPackageBaseCommonS2DaoInternalSqlParser};\r
-using ${glPackageBaseCommonUtil};\r
-\r
-namespace ${glPackageBaseCommonCBean} {\r
-\r
- public static class ${glConditionBeanContextName} {\r
-\r
- private static LocalDataStoreSlot _slot = Thread.AllocateDataSlot();\r
-\r
- public static ${glConditionBeanInterfaceName} GetConditionBeanOnThread() {\r
- return (${glConditionBeanInterfaceName})Thread.GetData(_slot);\r
- }\r
-\r
- public static void SetConditionBeanOnThread(${glConditionBeanInterfaceName} ${glAttachedCBArgsVariableName}) {\r
- if (${glAttachedCBArgsVariableName} == null) {\r
- String msg = "The argument[${glAttachedCBArgsVariableName}] must not be null.";\r
- throw new ArgumentNullException(msg);\r
- }\r
- Thread.SetData(_slot, ${glAttachedCBArgsVariableName});\r
- }\r
-\r
- public static void ClearConditionBeanOnThread() {\r
- Thread.SetData(_slot, null);\r
- }\r
-\r
- public static bool IsExistConditionBeanOnThread() {\r
- return (Thread.GetData(_slot) != null);\r
- }\r
-\r
- public static bool IsTheArgumentConditionBean(Object dtoInstance) {\r
- if (dtoInstance is ${glConditionBeanInterfaceName}) {\r
- return true;\r
- } else {\r
- return false;\r
- }\r
- }\r
-\r
- public static bool IsTheTypeConditionBean(Type dtoType) {\r
- if (typeof(${glConditionBeanInterfaceName}).IsAssignableFrom(dtoType)) {\r
- return true;\r
- } else {\r
- return false;\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Exception Handling\r
- // ==================\r
- public static void ThrowEntityAlreadyDeletedException(Object searchKey4Log) {\r
- ThrowEntityAlreadyDeletedException(searchKey4Log, null);\r
- }\r
-\r
- public static void ThrowEntityAlreadyDeletedException(Object searchKey4Log, String tableDbName) {\r
- String msg = "Look! Read the message below." + GetLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + GetLineSeparator();\r
- msg = msg + "The entity was Not Found! it has already been deleted!" + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Advice]" + GetLineSeparator();\r
- msg = msg + "Please confirm the existence of your target record on your database." + GetLineSeparator();\r
- msg = msg + "Does the target record really created before this operation?" + GetLineSeparator();\r
- msg = msg + "Has the target record been deleted by other thread?" + GetLineSeparator();\r
- msg = msg + "It is precondition that the record exists on your database." + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- if (searchKey4Log != null && searchKey4Log is ${glConditionBeanInterfaceName}) {\r
- ${glConditionBeanInterfaceName} cb = (${glConditionBeanInterfaceName})searchKey4Log;\r
- String dispalySql = FilterDisplaySql(cb.ToDisplaySql(), cb.TableDbName);\r
- msg = msg + "[Executed SQL for Display]" + GetLineSeparator() + dispalySql + GetLineSeparator();\r
- } else {\r
- msg = msg + "[Search Condition]" + GetLineSeparator() + searchKey4Log + GetLineSeparator();\r
- }\r
- msg = msg + "* * * * * * * * * */" + GetLineSeparator();\r
- throw new ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException}(msg);\r
- }\r
-\r
- public static void ThrowEntityDuplicatedException(String resultCountString, Object searchKey4Log, Exception cause) {\r
- ThrowEntityDuplicatedException(resultCountString, searchKey4Log, cause, null);\r
- }\r
-\r
- public static void ThrowEntityDuplicatedException(String resultCountString, Object searchKey4Log, Exception cause, String tableDbName) {\r
- String msg = "Look! Read the message below." + GetLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + GetLineSeparator();\r
- msg = msg + "The entity was Too Many! it has been duplicated. It should be the only one! But the resultCount=" + resultCountString + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Advice]" + GetLineSeparator();\r
- msg = msg + "Please confirm your search condition. Does it really select the only one?" + GetLineSeparator();\r
- msg = msg + "Please confirm your database. Does it really exist the only one?" + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- if (searchKey4Log != null && searchKey4Log is ${glConditionBeanInterfaceName}) {\r
- ${glConditionBeanInterfaceName} cb = (${glConditionBeanInterfaceName})searchKey4Log;\r
- String dispalySql = FilterDisplaySql(cb.ToDisplaySql(), cb.TableDbName);\r
- msg = msg + "[Executed SQL for Display]" + GetLineSeparator() + dispalySql + GetLineSeparator();\r
- } else {\r
- msg = msg + "[Search Condition]" + GetLineSeparator() + searchKey4Log + GetLineSeparator();\r
- }\r
- msg = msg + "* * * * * * * * * */" + GetLineSeparator();\r
- if (cause != null) {\r
- throw new ${glPackageBaseCommonException}.${glEntityDuplicatedException}(msg, cause);\r
- } else {\r
- throw new ${glPackageBaseCommonException}.${glEntityDuplicatedException}(msg);\r
- }\r
- }\r
-\r
- private static String FilterDisplaySql(String displaySql, String tableDbName) {\r
- if (displaySql == null || displaySql.Trim().Length == 0) {\r
- return null;\r
- }\r
- if (displaySql.IndexOf(GetLineSeparator()) >= 0) {\r
- return displaySql;\r
- }\r
- int basePointIndex = displaySql.IndexOf(" from " + tableDbName);\r
- if (basePointIndex < 0) {\r
- return displaySql;\r
- }\r
- return displaySql.Substring(0, basePointIndex) + GetLineSeparator() + " " + displaySql.Substring(basePointIndex);\r
- }\r
-\r
- // ===============================================================================\r
- // Display SQL\r
- // ===========\r
- public static String ConvertConditionBean2DisplaySql(${glConditionBeanInterfaceName} cb) {\r
- String twoWaySql;\r
- if (cb.IsLimitSelect_PKOnly()) {\r
- twoWaySql = cb.SqlClause.getClausePKOnly();\r
- } else {\r
- twoWaySql = cb.SqlClause.getClause();\r
- }\r
- return ${glInternalSqlParser}.ConvertTwoWaySql2DisplaySql(twoWaySql, cb);\r
- }\r
- \r
- // ===============================================================================\r
- // General Helper\r
- // ==============\r
- private static String GetLineSeparator() {\r
- return ${glSimpleSystemUtil}.GetLineSeparator();\r
- }\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using ${glPackageBaseCommonCValue};\r
-using ${glPackageBaseCommonSqlClause};\r
-\r
-namespace ${glPackageBaseCommonCBean} {\r
-\r
-// JavaLike\r
-public interface ${glConditionQueryInterfaceName} {\r
-\r
- // ===================================================================================\r
- // Table Name\r
- // ==========\r
- String getTableDbName();\r
- String getTableSqlName();\r
- \r
- // ===================================================================================\r
- // Important Accessor\r
- // ==================\r
- ${glConditionQueryInterfaceName} getChildQuery();\r
- ${glSqlClauseName} getSqlClause();\r
- String getAliasName();\r
- String getRealAliasName();\r
- String getRealColumnName(String columnName);\r
- int getNestLevel();\r
- int getNextNestLevel();\r
- bool isBaseQuery(${glConditionQueryInterfaceName} query);\r
- int getSubQueryLevel();\r
- String getForeignPropertyName();\r
- String getRelationPath();\r
- \r
- // ===================================================================================\r
- // Reflection Invoking\r
- // ===================\r
- ${glConditionValueName} invokeValue(String columnFlexibleName);\r
- void invokeQuery(String columnFlexibleName, String conditionKeyName, Object value);\r
- void invokeOrderBy(String columnFlexibleName, bool isAsc);\r
- ${glConditionQueryInterfaceName} invokeForeignCQ(String foreignPropertyName);\r
-}\r
-\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections;\r
-using ${glPackageBaseCommonSqlClause};\r
-\r
-namespace ${glPackageBaseCommonCBean} {\r
-\r
- /// <summary>\r
- /// The bean of fetch narrowing.\r
- /// Author: ${database.ClassAuthor}\r
- /// </summary>\r
- public interface ${glFetchNarrowingBeanInterfaceName} {\r
-\r
- int FetchNarrowingSkipStartIndex { get; }\r
- int FetchNarrowingLoopCount { get; }\r
- bool IsFetchNarrowingSkipStartIndexEffective { get; }\r
- bool IsFetchNarrowingLoopCountEffective { get; }\r
- bool IsFetchNarrowingEffective { get; }\r
-\r
- /// <summary>\r
- /// Ignore fetch narrowing. Only checking safety result size is valid. {INTERNAL METHOD}\r
- /// </summary>\r
- void IgnoreFetchNarrowing();\r
-\r
- /// <summary>\r
- /// Restore ignored fetch narrowing. {INTERNAL METHOD}\r
- /// </summary>\r
- void RestoreIgnoredFetchNarrowing();\r
-\r
- int SafetyMaxResultSize { get; }\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections;\r
-using System.Reflection;\r
-using System.Text;\r
-using System.Threading;\r
-\r
-namespace ${glPackageBaseCommonCBean} {\r
-\r
-/**\r
- * FetchNarrowing-Bean context. (referring to s2pager)\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
- public static class ${glFetchNarrowingBeanContextName} {\r
-\r
- /** The thread-local for this. */\r
- private static LocalDataStoreSlot _fetchNarrowingBeanSlot = Thread.AllocateDataSlot();\r
-\r
- /**\r
- * Get fetch-narrowing-bean context on thread.\r
- * \r
- * @return FetchNarrowing-bean. (Nullable)\r
- */\r
- public static ${glFetchNarrowingBeanInterfaceName} GetFetchNarrowingBeanOnThread() {\r
- return (${glFetchNarrowingBeanInterfaceName})Thread.GetData(_fetchNarrowingBeanSlot);\r
- }\r
-\r
- /**\r
- * Set fetch-narrowing-bean context on thread.\r
- * \r
- * @param ${glAttachedCBArgsVariableName} FetchNarrowing-bean. (NotNull)\r
- */\r
- public static void SetFetchNarrowingBeanOnThread(${glFetchNarrowingBeanInterfaceName} ${glAttachedCBArgsVariableName}) {\r
- if (${glAttachedCBArgsVariableName} == null) {\r
- String msg = "The argument[${glAttachedCBArgsVariableName}] must not be null.";\r
- throw new ArgumentNullException(msg);\r
- }\r
- Thread.SetData(_fetchNarrowingBeanSlot, ${glAttachedCBArgsVariableName});\r
- }\r
-\r
- /**\r
- * Clear fetch-narrowing-bean context on thread.\r
- */\r
- public static void ClearFetchNarrowingBeanOnThread() {\r
- Thread.SetData(_fetchNarrowingBeanSlot, null);\r
- }\r
-\r
- /**\r
- * Is existing fetch-narrowing-bean context on thread?\r
- * \r
- * @return Determination.\r
- */\r
- public static bool IsExistFetchNarrowingBeanOnThread() {\r
- return (Thread.GetData(_fetchNarrowingBeanSlot) != null);\r
- }\r
-\r
- /**\r
- * Is the argument fetch-narrowing-bean?\r
- * \r
- * @param dtoInstance Dto instance.\r
- * @return Determination.\r
- */\r
- public static bool IsTheArgumentFetchNarrowingBean(Object dtoInstance) {\r
- if (dtoInstance is ${glFetchNarrowingBeanInterfaceName}) {\r
- return true;\r
- } else {\r
- return false;\r
- }\r
- }\r
-\r
- /**\r
- * Is the type fetch-narrowing-bean?\r
- * \r
- * @param dtoClass DtoClass.\r
- * @return Determination.\r
- */\r
- public static bool IsTheTypeFetchNarrowingBean(Type dtoType) {\r
- if (typeof(${glFetchNarrowingBeanInterfaceName}).IsAssignableFrom(dtoType)) {\r
- return true;\r
- } else {\r
- return false;\r
- }\r
- }\r
- }\r
-}\r
+++ /dev/null
-#set ($myClassName = "${glListResultBeanName}")\r
-\r
-using System;\r
-using System.Text;\r
-\r
-using Seasar.Framework.Util;\r
-\r
-using ${glPackageBaseCommonSqlClause};\r
-using ${glPackageBaseCommonCBeanGrouping};\r
-using ${glPackageBaseCommonCBeanMapping};\r
-\r
-namespace ${glPackageBaseCommonCBean} {\r
-\r
- [System.Serializable]\r
- public class ${myClassName}<ENTITY> : System.Collections.Generic.IList<ENTITY>, System.Collections.IList {\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- #region Attribute\r
- protected String _tableDbName;\r
- protected int _allRecordCount;\r
- protected System.Collections.Generic.IList<ENTITY> _selectedList = new System.Collections.Generic.List<ENTITY>();\r
- protected ${glOrderByClauseName} _orderByClause = new ${glOrderByClauseName}();\r
- protected bool _isSetterInvokedSelectedList;\r
- #endregion\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- #region Constructor\r
- public ${myClassName}() {\r
- }\r
- #endregion\r
-\r
- // ===============================================================================\r
- // Grouping\r
- // ========\r
- #region Grouping\r
- /**\r
- * Group the list.\r
- * @param <ROW> The type of row.\r
- * @param groupingRowSetupper The setupper of grouping row. (NotNull)\r
- * @param groupingOption The option of grouping. (NotNull and it requires the breakCount or the determiner)\r
- * @return The grouped list. (NotNull)\r
- */\r
- public System.Collections.Generic.IList<ROW> GroupingList<ROW>(${glGroupingRowSetupperName}<ROW, ENTITY> groupingRowSetupper, ${glGroupingOptionName}<ENTITY> groupingOption) {\r
- System.Collections.Generic.IList<ROW> groupingList = new System.Collections.Generic.List<ROW>();\r
- ${glGroupingRowEndDeterminerName}<ENTITY> rowEndDeterminer = groupingOption.GroupingRowEndDeterminer;\r
- if (rowEndDeterminer == null) {\r
- rowEndDeterminer = delegate(${glGroupingRowResourceName}<ENTITY> currentRowResource, ENTITY nextEntity) {\r
- return currentRowResource.IsSizeUpBreakCount;\r
- }; // as Default\r
- }\r
- ${glGroupingRowResourceName}<ENTITY> rowResource = new ${glGroupingRowResourceName}<ENTITY>();\r
- int breakCount = groupingOption.ElementCount;\r
- int rowElementIndex = 0;\r
- int allElementIndex = 0;\r
- foreach (ENTITY entity in _selectedList) {\r
- // Set up row resource.\r
- rowResource.AddGroupingRowList(entity);\r
- rowResource.ElementCurrentIndex = rowElementIndex;\r
- rowResource.BreakCount = breakCount;\r
-\r
- if (_selectedList.Count == (allElementIndex + 1)) { // Last Loop!\r
- // Set up the object of grouping row!\r
- ROW groupingRowObject = groupingRowSetupper.Invoke(rowResource);\r
-\r
- // Register!\r
- groupingList.Add(groupingRowObject);\r
- break;\r
- }\r
-\r
- // Not last loop so the nextElement must exist.\r
- ENTITY nextElement = _selectedList[allElementIndex + 1];\r
-\r
- // Do at row end.\r
- if (rowEndDeterminer.Invoke(rowResource, nextElement)) { // Determine the row end!\r
- // Set up the object of grouping row!\r
- ROW groupingRowObject = groupingRowSetupper.Invoke(rowResource);\r
-\r
- // Register!\r
- groupingList.Add(groupingRowObject);\r
-\r
- // Initialize!\r
- rowResource = new ${glGroupingRowResourceName}<ENTITY>();\r
- rowElementIndex = 0;\r
- ++allElementIndex;\r
- continue;\r
- }\r
- ++rowElementIndex;\r
- ++allElementIndex;\r
- }\r
- return groupingList;\r
- }\r
- #endregion\r
-\r
- // ===============================================================================\r
- // Mapping\r
- // =======\r
- #region Mapping\r
- public ${myClassName}<DTO> MappingList<DTO>(${glEntityDtoMapperName}<ENTITY, DTO> entityDtoMapper) {\r
- ${myClassName}<DTO> mappingList = new ${myClassName}<DTO>();\r
- foreach (ENTITY entity in _selectedList) {\r
- mappingList.Add(entityDtoMapper.Invoke(entity));\r
- }\r
- mappingList.TableDbName = TableDbName;\r
- mappingList.AllRecordCount = AllRecordCount;\r
- mappingList.OrderByClause = OrderByClause;\r
- return mappingList;\r
- }\r
- #endregion\r
-\r
- // ===============================================================================\r
- // Determination\r
- // =============\r
- #region Determination\r
- public bool IsSelectedResult { get { return _tableDbName != null; } } // Whether table DB name is not null\r
- #endregion\r
-\r
- // ===============================================================================\r
- // Basic Override\r
- // ==============\r
- #region Basic Override\r
- public override String ToString() {\r
- StringBuilder sb = new StringBuilder();\r
- sb.Append("{").Append(_tableDbName);\r
- sb.Append(",").Append(_allRecordCount);\r
- sb.Append(",").Append(_orderByClause != null ? _orderByClause.getOrderByClause() : null);\r
- sb.Append(",").Append(_selectedList != null ? ToStringUtil.ToString(_selectedList) : null);\r
- sb.Append("}");\r
- return sb.ToString();\r
- }\r
- #endregion\r
-\r
- // ===============================================================================\r
- // List Elements\r
- // =============\r
- #region List Elements\r
- public virtual void Add(ENTITY value) {\r
- _selectedList.Add(value);\r
- }\r
-\r
- public virtual bool Contains(ENTITY value) {\r
- return _selectedList.Contains(value);\r
- }\r
-\r
- public virtual void Clear() {\r
- _selectedList.Clear();\r
- }\r
-\r
- public virtual int IndexOf(ENTITY value) {\r
- return _selectedList.IndexOf(value);\r
- }\r
-\r
- public virtual void Insert(int index, ENTITY value) {\r
- _selectedList.Insert(index, value);\r
- }\r
-\r
- public virtual bool Remove(ENTITY value) {\r
- return _selectedList.Remove(value);\r
- }\r
-\r
-\r
- public virtual void RemoveAt(int index) {\r
- _selectedList.RemoveAt(index);\r
- }\r
-\r
- public virtual bool IsReadOnly {\r
- get {\r
- return _selectedList.IsReadOnly;\r
- }\r
- }\r
-\r
- public virtual void CopyTo(ENTITY[] array, int index) {\r
- _selectedList.CopyTo(array, index);\r
- }\r
-\r
- public virtual int Count {\r
- get {\r
- return _selectedList.Count;\r
- }\r
- }\r
-\r
- public virtual System.Collections.Generic.IEnumerator<ENTITY> GetEnumerator() {\r
- return _selectedList.GetEnumerator();\r
- }\r
-\r
- System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() {\r
- return _selectedList.GetEnumerator();\r
- }\r
-\r
- public virtual ENTITY this[int index] {\r
- get {\r
- return _selectedList[index];\r
- }\r
- set {\r
- _selectedList[index] = value;\r
- }\r
- }\r
- #endregion\r
-\r
- // =====================================================================================\r
- // Non Generic List Elements\r
- // =========================\r
- #region Non Generic List Elements\r
- public int Add(object value) {\r
- _selectedList.Add((ENTITY)value);\r
- return 1;\r
- }\r
-\r
- public bool Contains(object value) {\r
- return _selectedList.Contains((ENTITY)value);\r
- }\r
-\r
- public int IndexOf(object value) {\r
- return _selectedList.IndexOf((ENTITY)value);\r
- }\r
-\r
- public void Insert(int index, object value) {\r
- _selectedList.Insert(index, (ENTITY)value);\r
- }\r
-\r
- public bool IsFixedSize {\r
- get { return _selectedList.IsReadOnly; }\r
- }\r
-\r
- public void Remove(object value) {\r
- _selectedList.Remove((ENTITY)value);\r
- }\r
-\r
- object System.Collections.IList.this[int index] {\r
- get {\r
- return _selectedList[index];\r
- }\r
- set {\r
- _selectedList[index] = (ENTITY)value;\r
- }\r
- }\r
-\r
- public void CopyTo(Array array, int index) {\r
- System.Collections.IList nonGenericList = new System.Collections.ArrayList();\r
- foreach (ENTITY entity in _selectedList) {\r
- nonGenericList.Add(entity);\r
- }\r
- nonGenericList.CopyTo(array, index);\r
- }\r
-\r
- public bool IsSynchronized {\r
- get { return false; }\r
- }\r
-\r
- public object SyncRoot {\r
- get { throw new NotImplementedException("SyncRoot is unsupported: " + ToString()); }\r
- }\r
- #endregion\r
-\r
- // ===============================================================================\r
- // Accessor\r
- // ========\r
- #region Accessor\r
- public String TableDbName {\r
- get { return _tableDbName; }\r
- set { _tableDbName = value; }\r
- }\r
-\r
- public int AllRecordCount {\r
- get { return _allRecordCount; }\r
- set { _allRecordCount = value; }\r
- }\r
-\r
- public System.Collections.Generic.IList<ENTITY> SelectedList {\r
- get { return _selectedList; }\r
- set { if (value == null) { return; } _selectedList = value; }\r
- }\r
-\r
- public ${glOrderByClauseName} OrderByClause {\r
- get { return _orderByClause; }\r
- set { if (value == null) { return; } _orderByClause = value; }\r
- }\r
- #endregion\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections.Generic;\r
-\r
-namespace ${glPackageBaseCommonCBean} {\r
-\r
- public interface ${glMapParameterBeanInterfaceName} {\r
- IDictionary<String, Object> ParameterMap { get; }\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections;\r
-using ${glPackageBaseCommonSqlClause};\r
-\r
-namespace ${glPackageBaseCommonCBean} {\r
-\r
- /// <summary>\r
- /// The condition-bean as interface.\r
- /// Author: ${database.ClassAuthor}\r
- /// </summary>\r
- public interface ${glOrderByBeanInterfaceName} : ${glSelectResourceInterfaceName} {\r
-\r
- /// <summary>\r
- /// The property of sql component of order-by clause.\r
- /// </summary>\r
- ${glOrderByClauseName} SqlComponentOfOrderByClause { get; }\r
-\r
- /**\r
- * Clear order-by.\r
- * \r
- * @return this. (NotNull)\r
- */\r
- ${glOrderByBeanInterfaceName} ClearOrderBy();\r
-\r
- /**\r
- * Ignore order-by.\r
- * \r
- * @return this. (NotNull)\r
- */\r
- ${glOrderByBeanInterfaceName} IgnoreOrderBy();\r
-\r
- /**\r
- * Make order-by effective.\r
- * \r
- * @return this. (NotNull)\r
- */\r
- ${glOrderByBeanInterfaceName} MakeOrderByEffective();\r
-\r
- /**\r
- * Get order-by clause.\r
- * \r
- * @return Order-by clause. (NotNull)\r
- */\r
- String OrderByClause { get; }\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using ${glPackageBaseCommonSqlClause};\r
-\r
-namespace ${glPackageBaseCommonCBean} {\r
-\r
- /// <summary>\r
- /// The bean of paging.\r
- /// Author: ${database.ClassAuthor}\r
- /// </summary>\r
- public interface ${glPagingBeanInterfaceName} : ${glFetchNarrowingBeanInterfaceName}, ${glOrderByBeanInterfaceName} {\r
-\r
- // ===============================================================================\r
- // Paging Determination\r
- // ====================\r
- // * * * * * * * *\r
- // For SQL Comment\r
- // * * * * * * * *\r
- bool IsPaging { get; }\r
-\r
- // * * * * * * * *\r
- // For Framework\r
- // * * * * * * * *\r
- bool IsCountLater { get; }\r
-\r
- // ===============================================================================\r
- // Paging Setting\r
- // ==============\r
- void XSetPaging(bool paging);// Very Internal!\r
- void Paging(int pageSize, int pageNumber);\r
-\r
- // ===============================================================================\r
- // Fetch Setting\r
- // =============\r
- /// <summary>\r
- /// Fetch first.\r
- /// </summary>\r
- /// <remarks>\r
- /// If you invoke this, your SQL returns [fetch-size] records from first.\r
- /// </remarks>\r
- /// <param name="fetchSize">The size of fetch. (NotMinus & NotZero)</param>\r
- /// <returns>this. (NotNull)</returns>\r
- $glPagingBeanInterfaceName FetchFirst(int fetchSize);\r
-\r
- /// <summary>\r
- /// Fetch scope.\r
- /// </summary>\r
- /// <remarks>\r
- /// If you invoke this, your SQL returns [fetch-size] records from [fetch-start-index].\r
- /// </remarks>\r
- /// <param name="fetchStartIndex">The start index of fetch. 0 origin. (NotMinus)</param>\r
- /// <param name="fetchSize">The size of fetch. (NotMinus & NotZero)</param>\r
- /// <returns>this. (NotNull)</returns>\r
- $glPagingBeanInterfaceName FetchScope(int fetchStartIndex, int fetchSize);\r
-\r
- /// <summary>\r
- /// Fetch page.\r
- /// </summary>\r
- /// <remarks>\r
- /// When you invoke this, it is normally necessary to invoke 'fetchFirst()' or 'fetchScope()' ahead of that.\r
- /// But you also can use default-fetch-size without invoking 'fetchFirst()' or 'fetchScope()'.\r
- /// If you invoke this, your SQL returns [fetch-size] records from [fetch-start-index] calculated by [fetch-page-number].\r
- /// </remarks>\r
- /// <param name="fetchPageNumber">The page number of fetch. 1 origin. (NotMinus & NotZero)</param>\r
- /// <returns>this. (NotNull)</returns>\r
- ${glPagingBeanInterfaceName} FetchPage(int fetchPageNumber);\r
-\r
- // ===============================================================================\r
- // Paging Property\r
- // ===============\r
- int FetchStartIndex { get; }\r
- int FetchSize { get; }\r
- int FetchPageNumber { get; }\r
- int PageStartIndex { get; }\r
- int PageEndIndex { get; }\r
- bool IsFetchScopeEffective { get; }\r
-\r
- // ===============================================================================\r
- // Hint Property\r
- // =============\r
- String SelectHint { get; }\r
- String FromHint { get; }\r
- String SqlSuffix { get; }\r
- new String OrderByClause { get; }\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections.Generic;\r
-\r
-namespace ${glPackageBaseCommonCBean} {\r
-\r
- public interface ${glPagingHandlerName}<ENTITY> {\r
-\r
- ${glPagingBeanInterfaceName} PagingBean { get; }\r
- int Count();\r
- IList<ENTITY> Paging();\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections.Generic;\r
-\r
-namespace ${glPackageBaseCommonCBean} {\r
-\r
- public class ${glPagingInvokerName}<ENTITY> {\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected String _tableDbName;\r
- protected bool _countLater;\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glPagingInvokerName}(String tableDbName) {\r
- this._tableDbName = tableDbName;\r
- }\r
-\r
- // ===============================================================================\r
- // Invoke\r
- // ======\r
- public ${glPagingResultBeanName}<ENTITY> InvokePaging(${glPagingHandlerName}<ENTITY> handler) {\r
- AssertObjectNotNull("handler", handler);\r
- ${glPagingBeanInterfaceName} pagingBean = handler.PagingBean;\r
- AssertObjectNotNull("handler.getPagingBean()", pagingBean);\r
- if (!pagingBean.IsFetchScopeEffective) {\r
- String msg = "The paging bean is not effective about fetch-scope!";\r
- msg = msg + " When you select page, you should set up fetch-scope of paging bean(Should invoke fetchFirst() and fetchPage()!).";\r
- msg = msg + " The paging bean is: " + pagingBean;\r
- throw new SystemException(msg);\r
- }\r
- int allRecordCount;\r
- IList<ENTITY> selectedList;\r
- if (_countLater) {\r
- selectedList = handler.Paging();\r
- allRecordCount = handler.Count();\r
- } else {\r
- allRecordCount = handler.Count();\r
- selectedList = handler.Paging();\r
- }\r
- ${glPagingResultBeanName}<ENTITY> rb = new ${glResultBeanBuilderName}<ENTITY>(_tableDbName).BuildPagingResultBean(pagingBean, allRecordCount, selectedList);\r
- if (IsNecessaryToReadPageAgain(rb)) {\r
- pagingBean.FetchPage(rb.AllPageCount);\r
- int reAllRecordCount = handler.Count();\r
- IList<ENTITY> reSelectedList = handler.Paging();\r
- return new ${glResultBeanBuilderName}<ENTITY>(_tableDbName).BuildPagingResultBean(pagingBean, reAllRecordCount, reSelectedList);\r
- } else {\r
- return rb;\r
- }\r
- }\r
-\r
- protected bool IsNecessaryToReadPageAgain(${glPagingResultBeanName}<ENTITY> rb) {\r
- return rb.AllRecordCount > 0 && rb.SelectedList.Count == 0;\r
- }\r
-\r
- // ===============================================================================\r
- // Option\r
- // ======\r
- public ${glPagingInvokerName}<ENTITY> CountLater() {\r
- _countLater = true; return this;\r
- }\r
-\r
- // ===============================================================================\r
- // Helper\r
- // ======\r
- protected void AssertObjectNotNull(String variableName, Object value) {\r
- if (variableName == null) {\r
- String msg = "The value should not be null: variableName=" + variableName + " value=" + value;\r
- throw new SystemException(msg);\r
- }\r
- if (value == null) {\r
- String msg = "The value should not be null: variableName=" + variableName;\r
- throw new SystemException(msg);\r
- }\r
- }\r
- }\r
-}\r
+++ /dev/null
-#set ($myClassName = "${glPagingResultBeanName}")\r
-\r
-using System;\r
-\r
-using Seasar.Framework.Util;\r
-\r
-using ${glPackageBaseCommonJavaLike};\r
-using ${glPackageBaseCommonCBeanPagenaviGroup};\r
-using ${glPackageBaseCommonCBeanPagenaviRange};\r
-\r
-namespace ${glPackageBaseCommonCBean} {\r
-\r
- /// <summary>\r
- /// The paging-result-bean of ${myClassName}.\r
- /// Author: ${database.ClassAuthor}\r
- /// </summary>\r
- [System.Serializable]\r
- public class ${myClassName}<ENTITY> : ${glListResultBeanName}<ENTITY> {\r
-\r
- // =====================================================================================\r
- // Attribute\r
- // =========\r
- #region Attribute\r
-\r
- protected int _pageSize;\r
- protected int _currentPageNumber;\r
- protected ${glPageGroupBeanName} _pageGroupBean;\r
- protected ${glPageGroupOptionName} _pageGroupOption;\r
- protected ${glPageRangeBeanName} _pageRangeBean;\r
- protected ${glPageRangeOptionName} _pageRangeOption;\r
-\r
- #endregion\r
-\r
- // =====================================================================================\r
- // Constructor\r
- // ===========\r
- #region Constructor\r
-\r
- public ${myClassName}() {\r
- }\r
-\r
- #endregion\r
-\r
- // =====================================================================================\r
- // Property\r
- // ========\r
- #region Property\r
-\r
- public int PageSize {\r
- get { return _pageSize; }\r
- set { _pageSize = value; }\r
- }\r
-\r
- public int CurrentPageNumber {\r
- get { return _currentPageNumber; }\r
- set { _currentPageNumber = value; }\r
- }\r
-\r
- public int AllPageCount {\r
- get { return CalculateAllPageCount(_allRecordCount, _pageSize); }\r
- }\r
-\r
- public int CurrentStartRecordNumber {\r
- get { return CalculateCurrentStartRecordNumber(_currentPageNumber, _pageSize); }\r
- }\r
-\r
- public int CurrentEndRecordNumber {\r
- get { return CalculateCurrentEndRecordNumber(_currentPageNumber, _pageSize); }\r
- }\r
-\r
- public ${glPageRangeOptionName} PageRangeOption {\r
- set { _pageRangeOption = value; }\r
- }\r
-\r
- public ${glPageGroupOptionName} PageGroupOption {\r
- set { _pageGroupOption = value; }\r
- }\r
-\r
- #endregion\r
-\r
- // ===============================================================================\r
- // Page Group/Range\r
- // ================\r
- // -------------------------------------------------\r
- // Page Group\r
- // ----------\r
- public ${glPageGroupBeanName} PageGroup() {\r
- AssertPageGroupValid();\r
- if (_pageGroupBean == null) {\r
- _pageGroupBean = new ${glPageGroupBeanName}();\r
- }\r
- _pageGroupBean.PageGroupOption = _pageGroupOption;\r
- _pageGroupBean.CurrentPageNumber = CurrentPageNumber;\r
- _pageGroupBean.AllPageCount = AllPageCount;\r
- return _pageGroupBean;\r
- }\r
- \r
- protected void AssertPageGroupValid() {\r
- if (_pageGroupOption == null) {\r
- String msg = "The pageGroupOption should not be null. Please invoke setPageGroupOption().";\r
- throw new IllegalStateException(msg);\r
- }\r
- if (_pageGroupOption.PageGroupSize == 0) {\r
- String msg = "The pageGroupSize should be greater than 1. But the value is zero.";\r
- msg = msg + " pageGroupSize=" + _pageGroupOption.PageGroupSize;\r
- throw new IllegalStateException(msg);\r
- }\r
- if (_pageGroupOption.PageGroupSize == 1) {\r
- String msg = "The pageGroupSize should be greater than 1. But the value is one.";\r
- msg = msg + " pageGroupSize=" + _pageGroupOption.PageGroupSize;\r
- throw new IllegalStateException(msg);\r
- }\r
- }\r
-\r
- // -------------------------------------------------\r
- // Page Range\r
- // ----------\r
- public ${glPageRangeBeanName} PageRange() {\r
- AssertPageRangeValid();\r
- if (_pageRangeBean == null) {\r
- _pageRangeBean = new ${glPageRangeBeanName}();\r
- }\r
- _pageRangeBean.PageRangeOption = _pageRangeOption;\r
- _pageRangeBean.CurrentPageNumber = CurrentPageNumber;\r
- _pageRangeBean.AllPageCount = AllPageCount;\r
- return _pageRangeBean;\r
- }\r
- \r
- protected void AssertPageRangeValid() {\r
- if (_pageRangeOption == null) {\r
- String msg = "The pageRangeOption should not be null. Please invoke setPageRangeOption().";\r
- throw new IllegalStateException(msg);\r
- }\r
- int pageRangeSize = _pageRangeOption.PageRangeSize;\r
- if (pageRangeSize == 0) {\r
- String msg = "The pageRangeSize should be greater than 1. But the value is zero.";\r
- throw new IllegalStateException(msg);\r
- }\r
- }\r
-\r
- // =====================================================================================\r
- // Calculate\r
- // =========\r
- // -------------------------------------------\r
- // Page\r
- // ----\r
- protected int CalculateAllPageCount(int allRecordCount, int pageSize) {\r
- if (allRecordCount == 0) {\r
- return 1;\r
- }\r
- int pageCountBase = (allRecordCount / pageSize);\r
- if (allRecordCount % pageSize > 0) {\r
- pageCountBase++;\r
- }\r
- return pageCountBase;\r
- }\r
-\r
- protected int CalculateCurrentStartRecordNumber(int currentPageNumber, int pageSize) {\r
- return ((currentPageNumber - 1) * pageSize) + 1;\r
- }\r
-\r
- protected int CalculateCurrentEndRecordNumber(int currentPageNumber, int pageSize) {\r
- return CalculateCurrentStartRecordNumber(currentPageNumber, pageSize) + _selectedList.Count - 1;\r
- }\r
-\r
- public bool IsExistPrePage() {\r
- return (_allRecordCount > 0 && _currentPageNumber > 1);\r
- }\r
-\r
- public bool IsExistNextPage() {\r
- return (_allRecordCount > 0 && _currentPageNumber < this.AllPageCount);\r
- }\r
-\r
- // =====================================================================================\r
- // Basic Override Method\r
- // =====================\r
- public override String ToString() {\r
- StringBuilder sb = new StringBuilder();\r
- sb.append("{").append(this.CurrentPageNumber).append("/").append(this.AllPageCount);\r
- sb.append(" of ").append(this.AllRecordCount);\r
- sb.append(" ").append(IsExistPrePage() ? "true" : "false").append("/").append(IsExistNextPage() ? "true" : "false");\r
- if (_pageGroupOption != null) {\r
- sb.append(" group:{").append(_pageGroupOption.PageGroupSize).append(",").append(ToStringUtil.ToString(PageGroup().CreatePageNumberList())).append("}");\r
- }\r
- if (_pageRangeOption != null) {\r
- sb.append(" range:{").append(_pageRangeOption.PageRangeSize).append(",").append(_pageRangeOption.IsFillLimit);\r
- sb.append(",").append(ToStringUtil.ToString(PageRange().CreatePageNumberList())).append("}");\r
- }\r
- sb.append(" list=").append((this.SelectedList != null ? ""+this.SelectedList.Count : null));\r
- sb.append(" page=").append(this.PageSize);\r
- sb.append("}");\r
- sb.append(":selectedList=").append(this.SelectedList != null ? ToStringUtil.ToString(this.SelectedList) : null);\r
- return sb.toString();\r
- }\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections.Generic;\r
-\r
-namespace ${glPackageBaseCommonCBean} {\r
-\r
- public class ${glResultBeanBuilderName}<ENTITY> {\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected String _tableDbName;\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glResultBeanBuilderName}(String tableDbName) {\r
- _tableDbName = tableDbName;\r
- }\r
-\r
- // ===============================================================================\r
- // Builder\r
- // =======\r
- public ${glListResultBeanName}<ENTITY> BuildListResultBean(IList<ENTITY> selectedList) {\r
- ${glListResultBeanName}<ENTITY> rb = new ${glListResultBeanName}<ENTITY>();\r
- rb.TableDbName = _tableDbName;\r
- rb.AllRecordCount = selectedList.Count;\r
- rb.SelectedList = selectedList;\r
- return rb;\r
- }\r
-\r
- public ${glListResultBeanName}<ENTITY> BuildListResultBean(${glConditionBeanInterfaceName} ob, IList<ENTITY> selectedList) {\r
- ${glListResultBeanName}<ENTITY> rb = new ${glListResultBeanName}<ENTITY>();\r
- rb.TableDbName = _tableDbName;\r
- rb.AllRecordCount = selectedList.Count;\r
- rb.SelectedList = selectedList;\r
- rb.OrderByClause = ob.SqlComponentOfOrderByClause;\r
- return rb;\r
- }\r
-\r
- public ${glPagingResultBeanName}<ENTITY> BuildPagingResultBean(${glPagingBeanInterfaceName} pb, int allRecordCount, IList<ENTITY> selectedList) {\r
- ${glPagingResultBeanName}<ENTITY> rb = new ${glPagingResultBeanName}<ENTITY>();\r
- rb.TableDbName = _tableDbName;\r
- rb.AllRecordCount = allRecordCount;\r
- rb.SelectedList = selectedList;\r
- rb.OrderByClause = pb.SqlComponentOfOrderByClause;\r
- rb.CurrentPageNumber = pb.FetchPageNumber;\r
- rb.PageSize = pb.FetchSize;\r
- return rb;\r
- }\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections;\r
-using ${glPackageBaseCommonSqlClause};\r
-\r
-namespace ${glPackageBaseCommonCBean} {\r
-\r
- /// <summary>\r
- /// The select-resource as marker-interface.\r
- /// Author: ${database.ClassAuthor}\r
- /// </summary>\r
- public interface ${glSelectResourceInterfaceName} {\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections.Generic;\r
-using ${glPackageBaseCommonSqlClause};\r
-\r
-namespace ${glPackageBaseCommonCBean} {\r
-\r
- public class ${glSimplePagingBeanName} : ${glPagingBeanInterfaceName}, ${glMapParameterBeanInterfaceName} {\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected readonly ${glSqlClauseName} _sqlClause;\r
- protected int _safetyMaxResultSize;\r
- protected bool _paging = true;\r
- protected bool _countLater;\r
- protected bool _fetchNarrowing = true;\r
- protected IDictionary<String, Object> _parameterMap;\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glSimplePagingBeanName}() {\r
- _sqlClause = new ${glSqlClauseName}${database.DaoGenDbName}("Dummy");\r
- }\r
-\r
- // ===============================================================================\r
- // Implementation of PagingBean\r
- // ============================\r
- // -------------------------------------------------\r
- // Paging Determination\r
- // --------------------\r
- // * * * * * * * *\r
- // For SQL Comment\r
- // * * * * * * * *\r
- public virtual bool IsPaging { get { return _paging; } }\r
-\r
- // * * * * * * * *\r
- // For Framework\r
- // * * * * * * * *\r
- public virtual bool IsCountLater { get { return _countLater; } }\r
-\r
- // -------------------------------------------------\r
- // Paging Setting\r
- // --------------\r
- public void XSetPaging(bool paging) {// Very Internal!\r
- if (paging) {\r
- this.SqlClause.makeFetchScopeEffective();\r
- } else {\r
- this.SqlClause.ignoreFetchScope();\r
- }\r
- this._paging = paging;\r
- }\r
-\r
- public void Paging(int pageSize, int pageNumber) {\r
- FetchFirst(pageSize);\r
- FetchPage(pageNumber);\r
- }\r
-\r
- // -------------------------------------------------\r
- // Fetch Setting\r
- // -------------\r
- public ${glPagingBeanInterfaceName} FetchFirst(int fetchSize) {\r
- this.SqlClause.fetchFirst(fetchSize);\r
- return this;\r
- }\r
-\r
- public ${glPagingBeanInterfaceName} FetchScope(int fetchStartIndex, int fetchSize) {\r
- this.SqlClause.fetchScope(fetchStartIndex, fetchSize);\r
- return this;\r
- }\r
-\r
- public ${glPagingBeanInterfaceName} FetchPage(int fetchPageNumber) {\r
- this.SqlClause.fetchPage(fetchPageNumber);\r
- return this;\r
- }\r
-\r
- // -------------------------------------------------\r
- // Fetch Property\r
- // --------------\r
- public int FetchStartIndex { get { return this.SqlClause.getFetchStartIndex(); } }\r
- public int FetchSize { get { return this.SqlClause.getFetchSize(); } }\r
- public int FetchPageNumber { get { return this.SqlClause.getFetchPageNumber(); } }\r
- public int PageStartIndex { get { return this.SqlClause.getPageStartIndex(); } }\r
- public int PageEndIndex { get { return this.SqlClause.getPageEndIndex(); } }\r
- public bool IsFetchScopeEffective { get { return this.SqlClause.isFetchScopeEffective(); } }\r
-\r
- // -------------------------------------------------\r
- // Hint Property\r
- // -------------\r
- public String SelectHint { get { return this.SqlClause.getSelectHint(); } }\r
- public String FromBaseTableHint { get { return this.SqlClause.getFromBaseTableHint(); } }\r
- public String FromHint { get { return this.SqlClause.getFromHint(); } }\r
- public String SqlSuffix { get { return this.SqlClause.getSqlSuffix(); } }\r
- public String OrderByClause { get { return this.SqlClause.getOrderByClause(); } }\r
-\r
- // ===============================================================================\r
- // Implementation of FetchNarrowingBean\r
- // ====================================\r
- public int FetchNarrowingSkipStartIndex { get { return this.SqlClause.getFetchNarrowingSkipStartIndex(); } }\r
- public int FetchNarrowingLoopCount { get { return this.SqlClause.getFetchNarrowingLoopCount(); } }\r
- public bool IsFetchNarrowingSkipStartIndexEffective { get { return !this.SqlClause.isFetchStartIndexSupported(); } }\r
- public bool IsFetchNarrowingLoopCountEffective { get { return !this.SqlClause.isFetchSizeSupported(); } }\r
- public bool IsFetchNarrowingEffective { get { return this.SqlClause.isFetchNarrowingEffective(); } }\r
- public void IgnoreFetchNarrowing() { _fetchNarrowing = false; }\r
- public void RestoreIgnoredFetchNarrowing() { _fetchNarrowing = true; }\r
- public int SafetyMaxResultSize { get { return _safetyMaxResultSize; } }\r
-\r
- // ===============================================================================\r
- // Implementation of OrderByBean\r
- // =============================\r
- public ${glOrderByClauseName} SqlComponentOfOrderByClause {\r
- get { return this.SqlClause.getSqlComponentOfOrderByClause(); }\r
- }\r
-\r
- public ${glOrderByBeanInterfaceName} ClearOrderBy() {\r
- this.SqlClause.clearOrderBy();\r
- return this;\r
- }\r
-\r
- public ${glOrderByBeanInterfaceName} IgnoreOrderBy() {\r
- this.SqlClause.ignoreOrderBy();\r
- return this;\r
- }\r
-\r
- public ${glOrderByBeanInterfaceName} MakeOrderByEffective() {\r
- this.SqlClause.makeOrderByEffective();\r
- return this;\r
- }\r
-\r
- // ===============================================================================\r
- // Implementation of SelectResource\r
- // ================================\r
- public void CheckSafetyResult(int safetyMaxResultSize) {\r
- this._safetyMaxResultSize = safetyMaxResultSize;\r
- }\r
-\r
- // ===============================================================================\r
- // Implementation of MapParameterBean\r
- // ==================================\r
- public IDictionary<String, Object> ParameterMap {\r
- get {\r
- if (_parameterMap == null) {\r
- _parameterMap = new Dictionary<String, Object>();\r
- }\r
- return _parameterMap;\r
- }\r
- }\r
-\r
- public void AddParameter(String key, Object value) {\r
- if (_parameterMap == null) {\r
- _parameterMap = new Dictionary<String, Object>();\r
- }\r
- _parameterMap.Add(key, value);\r
- }\r
-\r
- // ===============================================================================\r
- // Accessor\r
- // ========\r
- protected ${glSqlClauseName} SqlClause {\r
- get { return _sqlClause; }\r
- }\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections.Generic;\r
-\r
-namespace ${glPackageBaseCommonCBean} {\r
-\r
- public delegate void ${glSubQuery}<SUB_CB>(SUB_CB subCB) where SUB_CB : ${glConditionBeanInterfaceName};\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections.Generic;\r
-\r
-namespace ${glPackageBaseCommonCBean} {\r
-\r
- public delegate void ${glUnionQuery}<UNION_CB>(UNION_CB unionCB) where UNION_CB : ${glConditionBeanInterfaceName};\r
-}\r
+++ /dev/null
-#set ($myClassName = "${glConditionKeyName}")\r
-\r
-using System;\r
-\r
-using ${glPackageBaseCommonCOption};\r
-using ${glPackageBaseCommonCValue};\r
-using ${glPackageBaseCommonJavaLike};\r
-\r
-namespace ${glPackageBaseCommonCKey} {\r
-\r
-public abstract class ${myClassName} {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- /** Mark of replaced value. */\r
- public static readonly String MARK_OF_REPLACED_VALUE = "ReplacedValue";\r
-\r
- /** The condition key of equal. */\r
- public static readonly ${myClassName} CK_EQUAL = new ${myClassName}Equal();\r
-\r
- /** The condition key of notEqual. */\r
- public static readonly ${myClassName} CK_NOT_EQUAL = new ${myClassName}NotEqual();\r
-\r
- /** The condition key of greaterThan. */\r
- public static readonly ${myClassName} CK_GREATER_THAN = new ${myClassName}GreaterThan();\r
-\r
- /** The condition key of lessrThan. */\r
- public static readonly ${myClassName} CK_LESS_THAN = new ${myClassName}LessThan();\r
-\r
- /** The condition key of greaterEqual. */\r
- public static readonly ${myClassName} CK_GREATER_EQUAL = new ${myClassName}GreaterEqual();\r
-\r
- /** The condition key of lessEqual. */\r
- public static readonly ${myClassName} CK_LESS_EQUAL = new ${myClassName}LessEqual();\r
-\r
- /** The condition key of prefixSearch. */\r
- public static readonly ${myClassName} CK_PREFIX_SEARCH = new ${myClassName}PrefixSearch();\r
-\r
- /** The condition key of likeSearch. */\r
- public static readonly ${myClassName} CK_LIKE_SEARCH = new ${myClassName}LikeSearch();\r
-\r
- /** The condition key of inScope. */\r
- public static readonly ${myClassName} CK_IN_SCOPE = new ${myClassName}InScope();\r
-\r
- /** The condition key of notInScope. */\r
- public static readonly ${myClassName} CK_NOT_IN_SCOPE = new ${myClassName}NotInScope();\r
-\r
- /** The condition key of isNull. */\r
- public static readonly ${myClassName} CK_IS_NULL = new ${myClassName}IsNull();\r
-\r
- /** The condition key of isNotNull. */\r
- public static readonly ${myClassName} CK_IS_NOT_NULL = new ${myClassName}IsNotNull();\r
-\r
- /** Dummy-object for IsNull and IsNotNull and so on... */\r
- protected static readonly Object DUMMY_OBJECT = new Object();\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- /** Condition-key. */\r
- protected String _conditionKey;\r
-\r
- /** Operand. */\r
- protected String _operand;\r
-\r
- // ===================================================================================\r
- // Main Method\r
- // ===========\r
- public String getConditionKey() {\r
- // Because initial charactor of property name is capital in dotNet world.\r
- return (_conditionKey != null ? _conditionKey.Substring(0, 1).ToUpper() + _conditionKey.Substring(1) : null);\r
- }\r
-\r
- public String getOperand() {\r
- return _operand;\r
- }\r
-\r
- abstract public bool isValidRegistration(${glConditionValueName} conditionValue, Object value, String callerName);\r
-\r
- public ${myClassName} addWhereClause(List<String> conditionList, String columnName, ${glConditionValueName} value) {\r
- if (value == null) {\r
- String msg = "Argument[value] must not be null:";\r
- throw new IllegalArgumentException(msg + " value=" + value + " this.ToString()=" + ToString());\r
- }\r
- doAddWhereClause(conditionList, columnName, value);\r
- return this;\r
- }\r
-\r
- public ${myClassName} addWhereClause(List<String> conditionList, String columnName, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option) {\r
- if (value == null) {\r
- String msg = "Argument[value] must not be null:";\r
- throw new IllegalArgumentException(msg + " value=" + value + " this.ToString()=" + ToString());\r
- }\r
- doAddWhereClause(conditionList, columnName, value, option);\r
- return this;\r
- }\r
- \r
- abstract protected void doAddWhereClause(List<String> conditionList, String columnName, ${glConditionValueName} value);\r
- abstract protected void doAddWhereClause(List<String> conditionList, String columnName, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option);\r
-\r
- public ${glConditionValueName} setupConditionValue(${glConditionValueName} conditionValue, Object value, String location) {\r
- if (conditionValue == null) {\r
- String msg = "Argument[conditionValue] must not be null:";\r
- throw new IllegalArgumentException(msg + " value=" + value + " this.ToString()=" + ToString());\r
- }\r
- doSetupConditionValue(conditionValue, value, location);\r
- return conditionValue;\r
- }\r
-\r
- public ${glConditionValueName} setupConditionValue(${glConditionValueName} conditionValue, Object value, String location, ${glConditionOptionInterfaceName} option) {\r
- if (conditionValue == null) {\r
- String msg = "Argument[conditionValue] must not be null:";\r
- throw new IllegalArgumentException(msg + " value=" + value + " this.ToString()=" + ToString());\r
- }\r
- doSetupConditionValue(conditionValue, value, location, option);\r
- return conditionValue;\r
- }\r
- \r
- abstract protected void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location);\r
- abstract protected void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location, ${glConditionOptionInterfaceName} option);\r
-\r
- protected String buildBindClause(String columnName, String location) {\r
- return columnName + " " + getOperand() + " " + "/*dto." + location + "*/null";\r
- }\r
-\r
- protected String buildBindClauseWithRearOption(String columnName, String location, String rearOption) {\r
- return columnName + " " + getOperand() + " " + "/*dto." + location + "*/null" + rearOption;\r
- }\r
-\r
- protected String buildBindClause(String columnName, String location, String dummyValue) {\r
- return columnName + " " + getOperand() + " " + "/*dto." + location + "*/" + dummyValue;\r
- }\r
-\r
- protected String buildClauseWithoutValue(String columnName) {\r
- return columnName + " " + getOperand();\r
- }\r
-\r
- protected String getWildCard() {\r
- return "${database.WildCard}";\r
- }\r
-\r
- // ===================================================================================\r
- // Basic Override\r
- // ==============\r
- public override int GetHashCode() {\r
- return getConditionKey().GetHashCode();\r
- }\r
-\r
- public override bool Equals(Object other) {\r
- if (other is ${myClassName}) {\r
- if (this.getConditionKey().Equals(((${myClassName})other).getConditionKey())) {\r
- return true;\r
- }\r
- }\r
- return false;\r
- }\r
-\r
- public override String ToString() {\r
- return "${myClassName}: " + getConditionKey() + " " + getOperand() + " wild-card=[" + getWildCard() + "]";\r
- }\r
-}\r
-}\r
+++ /dev/null
-#set ($myClassName = "${glConditionKeyName}Equal")\r
-\r
-using System;\r
-\r
-using ${glPackageBaseCommonCValue};\r
-using ${glPackageBaseCommonCOption};\r
-using ${glPackageBaseCommonJavaLike};\r
-\r
-namespace ${glPackageBaseCommonCKey} {\r
-\r
-public class ${myClassName} : ${glConditionKeyName} {\r
-\r
- private static readonly log4net.ILog _log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);\r
-\r
- public ${myClassName}() {\r
- _conditionKey = "equal";\r
- _operand = "=";\r
- }\r
-\r
- public override bool isValidRegistration(${glConditionValueName} conditionValue, Object value, String callerName) {\r
- if (value == null) {\r
- return false;\r
- }\r
- if (conditionValue.HasEqual) {\r
- if (conditionValue.EqualEqual(value)) {\r
- _log.Debug("The value has already registered at " + callerName + ": value=" + value);\r
- return false;\r
- } else {\r
- conditionValue.OverrideEqual(value);\r
- return false;\r
- }\r
- }\r
- return true;\r
- }\r
-\r
- protected override void doAddWhereClause(List<String> conditionList, String columnName, ${glConditionValueName} value) {\r
- if (value.Equal == null) {\r
- return;\r
- }\r
- Object valueObject = value.Equal;\r
- conditionList.add(buildBindClause(columnName, value.getEqualLocation()));\r
- }\r
- \r
- protected override void doAddWhereClause(List<String> conditionList, String columnName, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doAddWhereClause with condition-option is unsupported!!!");\r
- }\r
-\r
- protected override void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location) {\r
- conditionValue.Equal = value;\r
- conditionValue.setEqualLocation(location);\r
- }\r
- \r
- protected override void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doSetupConditionValue with condition-option is unsupported!!!");\r
- }\r
-}\r
- \r
-}\r
+++ /dev/null
-#set ($myClassName = "${glConditionKeyName}GreaterEqual")\r
-\r
-using System;\r
-\r
-using ${glPackageBaseCommonCValue};\r
-using ${glPackageBaseCommonCOption};\r
-using ${glPackageBaseCommonJavaLike};\r
-\r
-namespace ${glPackageBaseCommonCKey} {\r
-\r
-public class ${myClassName} : ${glConditionKeyName} {\r
-\r
- private static readonly log4net.ILog _log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);\r
-\r
- public ${myClassName}() {\r
- _conditionKey = "greaterEqual";\r
- _operand = ">=";\r
- }\r
-\r
- public override bool isValidRegistration(${glConditionValueName} conditionValue, Object value, String callerName) {\r
- if (value == null) {\r
- return false;\r
- }\r
- if (conditionValue.HasGreaterEqual) {\r
- if (conditionValue.EqualGreaterEqual(value)) {\r
- _log.Debug("The value has already registered at " + callerName + ": value=" + value);\r
- return false;\r
- } else {\r
- conditionValue.OverrideGreaterEqual(value);\r
- return false;\r
- }\r
- }\r
- return true;\r
- }\r
-\r
- protected override void doAddWhereClause(List<String> conditionList, String columnName, ${glConditionValueName} value) {\r
- if (value.GreaterEqual == null) {\r
- return;\r
- }\r
- Object valueObject = value.GreaterEqual;\r
- conditionList.add(buildBindClause(columnName, value.getGreaterEqualLocation()));\r
- }\r
-\r
- protected override void doAddWhereClause(List<String> conditionList, String columnName, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doAddWhereClause that has ConditionOption is unsupported!!!");\r
- }\r
-\r
- protected override void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location) {\r
- conditionValue.GreaterEqual = value;\r
- conditionValue.setGreaterEqualLocation(location);\r
- }\r
-\r
- protected override void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doSetupConditionValue with condition-option is unsupported!!!");\r
- }\r
-}\r
- \r
-}\r
+++ /dev/null
-#set ($myClassName = "${glConditionKeyName}GreaterThan")\r
-\r
-using System;\r
-\r
-using ${glPackageBaseCommonCValue};\r
-using ${glPackageBaseCommonCOption};\r
-using ${glPackageBaseCommonJavaLike};\r
-\r
-namespace ${glPackageBaseCommonCKey} {\r
-\r
-public class ${myClassName} : ${glConditionKeyName} {\r
-\r
- private static readonly log4net.ILog _log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);\r
-\r
- public ${myClassName}() {\r
- _conditionKey = "greaterThan";\r
- _operand = ">";\r
- }\r
-\r
- public override bool isValidRegistration(${glConditionValueName} conditionValue, Object value, String callerName) {\r
- if (value == null) {\r
- return false;\r
- }\r
- if (conditionValue.HasGreaterThan) {\r
- if (conditionValue.EqualGreaterThan(value)) {\r
- _log.Debug("The value has already registered at " + callerName + ": value=" + value);\r
- return false;\r
- } else {\r
- conditionValue.OverrideGreaterThan(value);\r
- return false;\r
- }\r
- }\r
- return true;\r
- }\r
-\r
- protected override void doAddWhereClause(List<String> conditionList, String columnName, ${glConditionValueName} value) {\r
- if (value.GreaterThan == null) {\r
- return;\r
- }\r
- Object valueObject = value.GreaterThan;\r
- conditionList.add(buildBindClause(columnName, value.getGreaterThanLocation()));\r
- }\r
-\r
- protected override void doAddWhereClause(List<String> conditionList, String columnName, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doAddWhereClause that has ConditionOption is unsupported!!!");\r
- }\r
-\r
- protected override void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location) {\r
- conditionValue.GreaterThan = value;\r
- conditionValue.setGreaterThanLocation(location);\r
- }\r
-\r
- protected override void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doSetupConditionValue with condition-option is unsupported!!!");\r
- }\r
-}\r
-\r
-}\r
+++ /dev/null
-#set ($myClassName = "${glConditionKeyName}InScope")\r
-\r
-using System;\r
-\r
-using ${glPackageBaseCommonCValue};\r
-using ${glPackageBaseCommonCOption};\r
-using ${glPackageBaseCommonJavaLike};\r
-\r
-namespace ${glPackageBaseCommonCKey} {\r
-\r
-public class ${myClassName} : ${glConditionKeyName} {\r
-\r
- private static readonly log4net.ILog _log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);\r
-\r
- public ${myClassName}() {\r
- _conditionKey = "inScope";\r
- _operand = "in";\r
- }\r
-\r
- public override bool isValidRegistration(${glConditionValueName} conditionValue, Object value, String callerName) {\r
- if (value == null) {\r
- return false;\r
- }\r
- if (value is System.Collections.IList && ((System.Collections.IList)value).Count == 0) {\r
- return false;\r
- }\r
- if (value is System.Collections.IList) {\r
- if (conditionValue.HasInScope) {\r
- if (conditionValue.EqualInScope(((System.Collections.IList)value))) {\r
- _log.Debug("The value has already registered at " + callerName + ": value=" + value);\r
- return false;\r
- } else {\r
- conditionValue.OverrideInScope(((System.Collections.IList)value));\r
- return false;\r
- }\r
- }\r
- }\r
- return true;\r
- }\r
-\r
- protected override void doAddWhereClause(List<String> conditionList, String columnName, ${glConditionValueName} value) {\r
- if (value.InScope == null) {\r
- return;\r
- }\r
- System.Collections.IList valueList = value.InScope;\r
- System.Collections.IList checkedValueList = new System.Collections.Generic.List<Object>();\r
- foreach (Object checkTargetValue in valueList) {\r
- if (checkTargetValue == null) {\r
- continue;\r
- }\r
- checkedValueList.Add(checkTargetValue);\r
- }\r
- if (checkedValueList.Count == 0) {\r
- return;\r
- }\r
- conditionList.add(buildBindClause(columnName, value.getInScopeLocation(), "('a1', 'a2')"));\r
- }\r
-\r
- protected override void doAddWhereClause(List<String> conditionList, String columnName, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doAddWhereClause with condition-option is unsupported!!!");\r
- }\r
-\r
- protected override void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location) {\r
- conditionValue.InScope = (System.Collections.IList)value;\r
- conditionValue.setInScopeLocation(location);\r
- }\r
-\r
- protected override void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doSetupConditionValue with condition-option is unsupported!!!");\r
- }\r
-}\r
-\r
-}\r
+++ /dev/null
-#set ($myClassName = "${glConditionKeyName}IsNotNull")\r
-\r
-using System;\r
-\r
-using ${glPackageBaseCommonCValue};\r
-using ${glPackageBaseCommonCOption};\r
-using ${glPackageBaseCommonJavaLike};\r
-\r
-namespace ${glPackageBaseCommonCKey} {\r
-\r
-public class ${myClassName} : ${glConditionKeyName} {\r
-\r
- private static readonly log4net.ILog _log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);\r
-\r
- public ${myClassName}() {\r
- _conditionKey = "isNotNull";\r
- _operand = "is not null";\r
- }\r
-\r
- public override bool isValidRegistration(${glConditionValueName} conditionValue, Object value, String callerName) {\r
- if (conditionValue.HasIsNotNull) {\r
- _log.Debug("The value has already registered at " + _conditionKey + ": " + value);\r
- return false;\r
- }\r
- return true;\r
- }\r
-\r
- protected override void doAddWhereClause(List<String> conditionList, String columnName, ${glConditionValueName} value) {\r
- if (value.IsNotNull == null) {\r
- return;\r
- }\r
- conditionList.add(buildClauseWithoutValue(columnName));\r
- }\r
-\r
- protected override void doAddWhereClause(List<String> conditionList, String columnName, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doAddWhereClause that has ConditionOption is unsupported!!!");\r
- }\r
-\r
- protected override void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location) {\r
- conditionValue.IsNotNull = DUMMY_OBJECT;\r
- conditionValue.setIsNotNullLocation(location);\r
- }\r
-\r
- protected override void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doSetupConditionValue with condition-option is unsupported!!!");\r
- }\r
-}\r
-\r
-}\r
+++ /dev/null
-#set ($myClassName = "${glConditionKeyName}IsNull")\r
-\r
-using System;\r
-\r
-using ${glPackageBaseCommonCValue};\r
-using ${glPackageBaseCommonCOption};\r
-using ${glPackageBaseCommonJavaLike};\r
-\r
-namespace ${glPackageBaseCommonCKey} {\r
-\r
-public class ${myClassName} : ${glConditionKeyName} {\r
-\r
- private static readonly log4net.ILog _log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);\r
- \r
- public ${myClassName}() {\r
- _conditionKey = "isNull";\r
- _operand = "is null";\r
- }\r
-\r
- public override bool isValidRegistration(${glConditionValueName} conditionValue, Object value, String callerName) {\r
- if (conditionValue.HasIsNull) {\r
- _log.Debug("The value has already registered at " + _conditionKey + ": " + value);\r
- return false;\r
- }\r
- return true;\r
- }\r
-\r
- protected override void doAddWhereClause(List<String> conditionList, String columnName, ${glConditionValueName} value) {\r
- if (value.IsNull == null) {\r
- return;\r
- }\r
- conditionList.add(buildClauseWithoutValue(columnName));\r
- }\r
-\r
- protected override void doAddWhereClause(List<String> conditionList, String columnName, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doAddWhereClause that has ConditionOption is unsupported!!!");\r
- }\r
-\r
- protected override void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location) {\r
- conditionValue.IsNull = DUMMY_OBJECT;\r
- conditionValue.setIsNullLocation(location);\r
- }\r
-\r
- protected override void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doSetupConditionValue with condition-option is unsupported!!!");\r
- }\r
-}\r
- \r
-}\r
+++ /dev/null
-#set ($myClassName = "${glConditionKeyName}LessEqual")\r
-\r
-using System;\r
-\r
-using ${glPackageBaseCommonCValue};\r
-using ${glPackageBaseCommonCOption};\r
-using ${glPackageBaseCommonJavaLike};\r
-\r
-namespace ${glPackageBaseCommonCKey} {\r
-\r
-public class ${myClassName} : ${glConditionKeyName} {\r
-\r
- private static readonly log4net.ILog _log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);\r
-\r
- public ${myClassName}() {\r
- _conditionKey = "lessEqual";\r
- _operand = "<=";\r
- }\r
-\r
- public override bool isValidRegistration(${glConditionValueName} conditionValue, Object value, String callerName) {\r
- if (value == null) {\r
- return false;\r
- }\r
- if (conditionValue.HasLessEqual) {\r
- if (conditionValue.EqualLessEqual(value)) {\r
- _log.Debug("The value has already registered at " + callerName + ": value=" + value);\r
- return false;\r
- } else {\r
- conditionValue.OverrideLessEqual(value);\r
- return false;\r
- }\r
- }\r
- return true;\r
- }\r
-\r
- protected override void doAddWhereClause(List<String> conditionList, String columnName, ${glConditionValueName} value) {\r
- if (value.LessEqual == null) {\r
- return;\r
- }\r
- Object valueObject = value.LessEqual;\r
- conditionList.add(buildBindClause(columnName, value.getLessEqualLocation()));\r
- }\r
-\r
- protected override void doAddWhereClause(List<String> conditionList, String columnName, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doAddWhereClause with condition-option is unsupported!!!");\r
- }\r
-\r
- protected override void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location) {\r
- conditionValue.LessEqual = value;\r
- conditionValue.setLessEqualLocation(location);\r
- }\r
- \r
- protected override void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doSetupConditionValue with condition-option is unsupported!!!");\r
- }\r
-}\r
- \r
-}\r
+++ /dev/null
-#set ($myClassName = "${glConditionKeyName}LessThan")\r
-\r
-using System;\r
-\r
-using ${glPackageBaseCommonCValue};\r
-using ${glPackageBaseCommonCOption};\r
-using ${glPackageBaseCommonJavaLike};\r
-\r
-namespace ${glPackageBaseCommonCKey} {\r
-\r
-public class ${myClassName} : ${glConditionKeyName} {\r
-\r
- private static readonly log4net.ILog _log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);\r
-\r
- public ${myClassName}() {\r
- _conditionKey = "lessThan";\r
- _operand = "<";\r
- }\r
-\r
- public override bool isValidRegistration(${glConditionValueName} conditionValue, Object value, String callerName) {\r
- if (value == null) {\r
- return false;\r
- }\r
- if (conditionValue.HasLessThan) {\r
- if (conditionValue.EqualLessThan(value)) {\r
- _log.Debug("The value has already registered at " + callerName + ": value=" + value);\r
- return false;\r
- } else {\r
- conditionValue.OverrideLessThan(value);\r
- return false;\r
- }\r
- }\r
- return true;\r
- }\r
-\r
- protected override void doAddWhereClause(List<String> conditionList, String columnName, ${glConditionValueName} value) {\r
- if (value.LessThan == null) {\r
- return;\r
- }\r
- Object valueObject = value.LessThan;\r
- conditionList.add(buildBindClause(columnName, value.getLessThanLocation()));\r
- }\r
-\r
- protected override void doAddWhereClause(List<String> conditionList, String columnName, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doAddWhereClause with condition-option is unsupported!!!");\r
- }\r
-\r
- protected override void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location) {\r
- conditionValue.LessThan = value;\r
- conditionValue.setLessThanLocation(location);\r
- }\r
-\r
- protected override void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doSetupConditionValue with condition-option is unsupported!!!");\r
- }\r
-}\r
- \r
-}\r
+++ /dev/null
-#set ($myClassName = "${glConditionKeyName}LikeSearch")\r
-\r
-using System;\r
-\r
-using ${glPackageBaseCommonCValue};\r
-using ${glPackageBaseCommonCOption};\r
-using ${glPackageBaseCommonJavaLike};\r
-\r
-namespace ${glPackageBaseCommonCKey} {\r
-\r
-public class ${myClassName} : ${glConditionKeyName} {\r
-\r
- public ${myClassName}() {\r
- _conditionKey = "likeSearch";\r
- _operand = "like";\r
- }\r
-\r
- public override bool isValidRegistration(${glConditionValueName} conditionValue, Object value, String callerName) {\r
- if (value == null) {\r
- return false;\r
- }\r
- return true;\r
- }\r
-\r
- protected override void doAddWhereClause(List<String> conditionList, String columnName, ${glConditionValueName} value) {\r
- throw new UnsupportedOperationException("doAddWhereClause without condition-option is unsupported!!!");\r
- }\r
-\r
- protected override void doAddWhereClause(List<String> conditionList, String columnName, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option) {\r
- if (option == null) {\r
- String msg = "The argument[option] should not be null: columnName=" + columnName + " value=" + value;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (!(option is ${glConditionOptionLikeSearchName})) {\r
- String msg = "The argument[option] should be ${glConditionOptionLikeSearchName}: columnName=" + columnName + " value=" + value;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- ${glConditionOptionLikeSearchName} myOption = (${glConditionOptionLikeSearchName})option;\r
- conditionList.add(buildBindClauseWithRearOption(columnName, value.getLikeSearchLocation(), myOption.getRearOption()));\r
- }\r
-\r
- protected override void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location) {\r
- throw new UnsupportedOperationException("doSetupConditionValue without condition-option is unsupported!!!");\r
- }\r
-\r
- protected override void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location, ${glConditionOptionInterfaceName} option) {\r
- conditionValue.setLikeSearch((String)value, (${glConditionOptionLikeSearchName})option).setLikeSearchLocation(location);\r
- }\r
-}\r
- \r
-}\r
+++ /dev/null
-#set ($myClassName = "${glConditionKeyName}NotEqual")\r
-\r
-using System;\r
-\r
-using ${glPackageBaseCommonCValue};\r
-using ${glPackageBaseCommonCOption};\r
-using ${glPackageBaseCommonJavaLike};\r
-\r
-namespace ${glPackageBaseCommonCKey} {\r
-\r
-public class ${myClassName} : ${glConditionKeyName} {\r
-\r
- private static readonly log4net.ILog _log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);\r
-\r
- public ${myClassName}() {\r
- _conditionKey = "notEqual";\r
- _operand = "!=";\r
- }\r
-\r
- public override bool isValidRegistration(${glConditionValueName} conditionValue, Object value, String callerName) {\r
- if (value == null) {\r
- return false;\r
- }\r
- if (conditionValue.HasNotEqual) {\r
- if (conditionValue.EqualNotEqual(value)) {\r
- _log.Debug("The value has already registered at " + callerName + ": value=" + value);\r
- return false;\r
- } else {\r
- conditionValue.OverrideNotEqual(value);\r
- return false;\r
- }\r
- }\r
- return true;\r
- }\r
-\r
- protected override void doAddWhereClause(List<String> conditionList, String columnName, ${glConditionValueName} value) {\r
- if (value.NotEqual == null) {\r
- return;\r
- }\r
- Object valueObject = value.NotEqual;\r
- conditionList.add(buildBindClause(columnName, value.getNotEqualLocation()));\r
- }\r
-\r
- protected override void doAddWhereClause(List<String> conditionList, String columnName, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doAddWhereClause with condition-option is unsupported!!!");\r
- }\r
-\r
- protected override void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location) {\r
- conditionValue.NotEqual = value;\r
- conditionValue.setNotEqualLocation(location);\r
- }\r
-\r
- protected override void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doSetupConditionValue with condition-option is unsupported!!!");\r
- }\r
-}\r
- \r
-}\r
+++ /dev/null
-#set ($myClassName = "${glConditionKeyName}NotInScope")\r
-\r
-using System;\r
-\r
-using ${glPackageBaseCommonCValue};\r
-using ${glPackageBaseCommonCOption};\r
-using ${glPackageBaseCommonJavaLike};\r
-\r
-namespace ${glPackageBaseCommonCKey} {\r
-\r
-public class ${myClassName} : ${glConditionKeyName} {\r
-\r
- private static readonly log4net.ILog _log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);\r
-\r
- public ${myClassName}() {\r
- _conditionKey = "notInScope";\r
- _operand = "not in";\r
- }\r
-\r
- public override bool isValidRegistration(${glConditionValueName} conditionValue, Object value, String callerName) {\r
- if (value == null) {\r
- return false;\r
- }\r
- if (value is System.Collections.IList && ((System.Collections.IList)value).Count == 0) {\r
- return false;\r
- }\r
- if (value is System.Collections.IList) {\r
- if (conditionValue.HasNotInScope) {\r
- if (conditionValue.EqualNotInScope(((System.Collections.IList)value))) {\r
- _log.Debug("The value has already registered at " + callerName + ": value=" + value);\r
- return false;\r
- } else {\r
- conditionValue.OverrideNotInScope(((System.Collections.IList)value));\r
- return false;\r
- }\r
- }\r
- }\r
- return true;\r
- }\r
-\r
- protected override void doAddWhereClause(List<String> conditionList, String columnName, ${glConditionValueName} value) {\r
- if (value.NotInScope == null) {\r
- return;\r
- }\r
- System.Collections.IList valueList = value.NotInScope;\r
- System.Collections.IList checkedValueList = new System.Collections.Generic.List<Object>();\r
- foreach (Object checkTargetValue in valueList) {\r
- if (checkTargetValue == null) {\r
- continue;\r
- }\r
- checkedValueList.Add(checkTargetValue);\r
- }\r
- if (checkedValueList.Count == 0) {\r
- return;\r
- }\r
- conditionList.add(buildBindClause(columnName, value.getNotInScopeLocation(), "('a1', 'a2')"));\r
- }\r
-\r
- protected override void doAddWhereClause(List<String> conditionList, String columnName, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doAddWhereClause with condition-option is unsupported!!!");\r
- }\r
-\r
- protected override void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location) {\r
- conditionValue.NotInScope = ((System.Collections.IList)value);\r
- conditionValue.setNotInScopeLocation(location);\r
- }\r
- \r
- protected override void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doSetupConditionValue with condition-option is unsupported!!!");\r
- }\r
-}\r
- \r
-}\r
+++ /dev/null
-#set ($myClassName = "${glConditionKeyName}PrefixSearch")\r
-\r
-using System;\r
-\r
-using ${glPackageBaseCommonCValue};\r
-using ${glPackageBaseCommonCOption};\r
-using ${glPackageBaseCommonJavaLike};\r
-\r
-namespace ${glPackageBaseCommonCKey} {\r
-\r
-public class ${myClassName} : ${glConditionKeyName} {\r
-\r
- private static readonly log4net.ILog _log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);\r
-\r
- public ${myClassName}() {\r
- _conditionKey = "prefixSearch";\r
- _operand = "like";\r
- }\r
-\r
- public override bool isValidRegistration(${glConditionValueName} conditionValue, Object value, String callerName) {\r
- if (value == null) {\r
- return false;\r
- }\r
- if (conditionValue.HasPrefixSearch) {\r
- if (conditionValue.EqualPrefixSearch(value + getWildCard())) {\r
- _log.Debug("The value has already registered at " + callerName + ": value=" + value);\r
- return false;\r
- } else {\r
- conditionValue.OverridePrefixSearch(value);\r
- return false;\r
- }\r
- }\r
- return true;\r
- }\r
-\r
- protected override void doAddWhereClause(List<String> conditionList, String columnName, ${glConditionValueName} value) {\r
- if (value.PrefixSearch == null) {\r
- return;\r
- }\r
- Object valueObject = value.PrefixSearch;\r
- conditionList.add(buildBindClause(columnName, value.getPrefixSearchLocation()));\r
- }\r
-\r
- protected override void doAddWhereClause(List<String> conditionList, String columnName, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doAddWhereClause with condition-option is unsupported!!!");\r
- }\r
-\r
- protected override void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location) {\r
- conditionValue.PrefixSearch = (value != null ? value + getWildCard() : null);\r
- conditionValue.setPrefixSearchLocation(location);\r
- }\r
- \r
- protected override void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doSetupConditionValue with condition-option is unsupported!!!");\r
- }\r
-}\r
- \r
-}\r
+++ /dev/null
-\r
-#set ($myClassName = "${glConditionOptionInterfaceName}")\r
-using System;\r
-\r
-namespace ${glPackageBaseCommonCOption} {\r
-\r
-public interface ${myClassName} {\r
- String getRearOption();\r
-}\r
-\r
-}
\ No newline at end of file
+++ /dev/null
-#set ($myClassName = "${glConditionOptionDateFromToName}")\r
-\r
-using System;\r
-\r
-namespace ${glPackageBaseCommonCOption} {\r
-\r
-public class ${myClassName} : ${glConditionOptionFromToName} {\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${myClassName}() {\r
- CompareAsDate();\r
- }\r
-}\r
-\r
-}\r
+++ /dev/null
-#set ($myClassName = "${glConditionOptionFromToName}")\r
-\r
-using System;\r
-\r
-using ${glPackageBaseCommonJavaLike};\r
-\r
-namespace ${glPackageBaseCommonCOption} {\r
-\r
-public class ${myClassName} : ${glConditionOptionSimpleStringName} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected bool _fromDateGreaterThan;\r
- protected bool _toDateLessThan;\r
- protected bool _compareAsDate;\r
-\r
- // ===================================================================================\r
- // Rear Option\r
- // ===========\r
- public override String getRearOption() {\r
- String msg = "Thie option does not use getRearOption()!";\r
- throw new UnsupportedOperationException(msg);\r
- }\r
-\r
- // ===================================================================================\r
- // Main\r
- // ====\r
- public ${myClassName} GreaterThan() {\r
- _fromDateGreaterThan = true; return this;\r
- }\r
-\r
- public ${myClassName} LessThan() {\r
- _toDateLessThan = true; return this;\r
- }\r
-\r
- public ${myClassName} CompareAsDate() {\r
- _compareAsDate = true; return this;\r
- }\r
-\r
- // ===================================================================================\r
- // Internal Main\r
- // =============\r
- public DateTime? filterFromDate(DateTime? fromDate) {\r
- if (fromDate == null) {\r
- return null;\r
- }\r
- if (_compareAsDate) {\r
- DateTime cloneDate = new DateTime(fromDate.Value.Year, fromDate.Value.Month, fromDate.Value.Day);\r
- return cloneDate;\r
- }\r
- return fromDate;\r
- }\r
-\r
- public DateTime? filterToDate(DateTime? toDate) {\r
- if (toDate == null) {\r
- return null;\r
- }\r
- if (_compareAsDate) {\r
- DateTime cloneDate = new DateTime(toDate.Value.Year, toDate.Value.Month, toDate.Value.Day);\r
- return cloneDate.AddDays(1);\r
- }\r
- return toDate;\r
- }\r
-\r
- public ${glPackageBaseCommonCKey}.${glConditionKeyName} getFromDateConditionKey() {\r
- if (_compareAsDate) {\r
- return ${glPackageBaseCommonCKey}.${glConditionKeyName}.CK_GREATER_EQUAL;\r
- }\r
- if (_fromDateGreaterThan) {\r
- return ${glPackageBaseCommonCKey}.${glConditionKeyName}.CK_GREATER_THAN;// Default!\r
- } else {\r
- return ${glPackageBaseCommonCKey}.${glConditionKeyName}.CK_GREATER_EQUAL;// Default!\r
- }\r
- }\r
-\r
- public ${glPackageBaseCommonCKey}.${glConditionKeyName} getToDateConditionKey() {\r
- if (_compareAsDate) {\r
- return ${glPackageBaseCommonCKey}.${glConditionKeyName}.CK_LESS_THAN;\r
- }\r
- if (_toDateLessThan) {\r
- return ${glPackageBaseCommonCKey}.${glConditionKeyName}.CK_LESS_THAN;// Default!\r
- } else {\r
- return ${glPackageBaseCommonCKey}.${glConditionKeyName}.CK_LESS_EQUAL;// Default!\r
- }\r
- }\r
-}\r
-\r
-}\r
+++ /dev/null
-#set ($myClassName = "${glConditionOptionLikeSearchName}")\r
-\r
-using System;\r
-\r
-using ${glPackageBaseCommonJavaLike};\r
-// using ${glPackageBaseCommonCOptionPartsLocal};\r
-\r
-namespace ${glPackageBaseCommonCOption} {\r
-\r
-public class ${myClassName} : ${glConditionOptionSimpleStringName} {\r
-\r
- public static readonly String LIKE_PREFIX = "prefix";\r
- public static readonly String LIKE_SUFFIX = "suffix";\r
- public static readonly String LIKE_CONTAIN = "contain";\r
-\r
- protected String _like;\r
- protected String _escape;\r
-\r
- // ===================================================================================\r
- // Rear Option\r
- // ===========\r
- public override String getRearOption() {\r
- if (_escape == null || _escape.Trim().Length == 0) {\r
- return "";\r
- }\r
- return " escape '" + _escape + "'";\r
- }\r
-\r
- // ===================================================================================\r
- // Like\r
- // ====\r
- public ${myClassName} LikePrefix() {\r
- _like = LIKE_PREFIX;\r
- return this;\r
- }\r
- public ${myClassName} LikeSuffix() {\r
- _like = LIKE_SUFFIX;\r
- return this;\r
- }\r
- public ${myClassName} LikeContain() {\r
- _like = LIKE_CONTAIN;\r
- return this;\r
- }\r
-\r
- // ===================================================================================\r
- // Escape\r
- // ======\r
- public ${myClassName} EscapeByPipeLine() {\r
- _escape = "|";\r
- return this;\r
- }\r
-\r
- public ${myClassName} EscapeByAtMark() {\r
- _escape = "@";\r
- return this;\r
- }\r
-\r
- public ${myClassName} EscapeBySlash() {\r
- _escape = "/";\r
- return this;\r
- }\r
-\r
- public ${myClassName} EscapeByBackSlash() {\r
- _escape = "\\";\r
- return this;\r
- }\r
-\r
- // ===================================================================================\r
- // Split\r
- // =====\r
-\r
- // ===================================================================================\r
- // To Upper/Lower Case\r
- // ===================\r
-\r
- // ===================================================================================\r
- // To Single Byte\r
- // ==============\r
-\r
- // ===================================================================================\r
- // To Double Byte\r
- // ==============\r
-\r
- // ===================================================================================\r
- // Japanese\r
- // ========\r
-\r
- // ===================================================================================\r
- // Real Value\r
- // ==========\r
- public override String generateRealValue(String value) {\r
- value = base.generateRealValue(value);\r
-\r
- // Escape\r
- if (_escape != null && _escape.Trim().Length != 0) {\r
- String tmp = replaceString(value, _escape, _escape + _escape);\r
- tmp = replaceString(tmp, "%", _escape + "%");\r
- tmp = replaceString(tmp, "_", _escape + "_");\r
-#if ($database.isDatabaseOracle())\r
- tmp = replaceString(tmp, "\uff05", _escape + "\uff05");\r
- tmp = replaceString(tmp, "\uff3f", _escape + "\uff3f");\r
-#end\r
- value = tmp;\r
- }\r
- String wildCard = "${database.wildCard}";\r
- if (_like == null || _like.Trim().Length == 0) {\r
- return value;\r
- } else if (_like.Equals(LIKE_PREFIX)) {\r
- return value + wildCard;\r
- } else if (_like.Equals(LIKE_SUFFIX)) {\r
- return wildCard + value;\r
- } else if (_like.Equals(LIKE_CONTAIN)) {\r
- return wildCard + value + wildCard;\r
- } else {\r
- String msg = "The like was wrong string: " + _like;\r
- throw new IllegalStateException(msg);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // DeepCopy\r
- // ========\r
-\r
-}\r
-\r
-}\r
+++ /dev/null
-#set ($myClassName = "${glConditionOptionSimpleStringName}")\r
-\r
-using System;\r
-\r
-// using ${glPackageBaseCommonCOptionParts};\r
-// using ${glPackageBaseCommonCOptionPartsLocal};\r
-using ${glPackageBaseCommonUtil};\r
-\r
-namespace ${glPackageBaseCommonCOption} {\r
-\r
-public class ${myClassName} : ${glConditionOptionInterfaceName} {\r
-\r
- // protected ${glConditionOptionPartsSplitName} _splitOptionParts;\r
- // protected ${glConditionOptionPartsToUpperLowerCaseName} _toUpperLowerCaseOptionParts;\r
- // protected ${glConditionOptionPartsToSingleByteName} _toSingleByteCaseOptionParts;\r
- // protected ${glConditionOptionPartsAgentJapaneseName} _japaneseOptionPartsAgent;\r
-\r
- // =====================================================================================\r
- // Rear Option\r
- // ===========\r
- public virtual String getRearOption() {\r
- return "";\r
- }\r
-\r
- // =====================================================================================\r
- // Split\r
- // =====\r
- public bool isSplit() {\r
- return false;\r
- }\r
-\r
- // =====================================================================================\r
- // To Upper/Lower Case\r
- // ===================\r
-\r
- // =====================================================================================\r
- // To Single Byte\r
- // ==============\r
-\r
- // =====================================================================================\r
- // To Double Byte\r
- // ==============\r
-\r
- // =====================================================================================\r
- // Japanese\r
- // ========\r
-\r
- // =====================================================================================\r
- // Real Value\r
- // ==========\r
- public virtual String generateRealValue(String value) {\r
- // value = getToUpperLowerCaseOptionParts().generateRealValue(value);\r
- // value = getToSingleByteOptionParts().generateRealValue(value);\r
- // value = getJapaneseOptionPartsAgent().generateRealValue(value);\r
- return value;\r
- }\r
- \r
- // =====================================================================================\r
- // General Helper\r
- // ==============\r
- protected String replaceString(String text, String fromText, String toText) {\r
- return ${glSimpleStringUtil}.Replace(text, fromText, toText);\r
- }\r
-}\r
-\r
-}\r
+++ /dev/null
-#set ($myClassName = "${glConditionValueName}")\r
-\r
-using System;\r
-using System.Text;\r
-\r
-using ${glPackageBaseCommonCOption};\r
-using ${glPackageBaseCommonJavaLike};\r
-\r
-namespace ${glPackageBaseCommonCValue} {\r
-\r
-[System.Serializable]\r
-public class ${myClassName} {\r
-\r
- // ==================================================================================\r
- // Equal\r
- // =====\r
- protected Object _equalValue;\r
-\r
- public Object Equal {\r
- get { return _equalValue; }\r
- set { _equalValue = value; }\r
- }\r
-\r
- public bool HasEqual { get {\r
- return _equalValue != null;\r
- }}\r
-\r
- public bool EqualEqual(Object value) {\r
- return HasEqual ? _equalValue.Equals(value) : value == null;\r
- }\r
-\r
- public ${myClassName} OverrideEqual(Object value) {\r
- _equalValue = value; return this;\r
- }\r
-\r
- protected String _equalLocation;\r
-\r
- public String getEqualLocation() {\r
- return _equalLocation;\r
- }\r
-\r
- public ${myClassName} setEqualLocation(String location) {\r
- _equalLocation = location;\r
- return this;\r
- }\r
-\r
- // ==================================================================================\r
- // Not Equal\r
- // =========\r
- protected Object _notEqualValue;\r
-\r
- public Object NotEqual {\r
- get { return _notEqualValue; }\r
- set { _notEqualValue = value; }\r
- }\r
-\r
- public bool HasNotEqual { get {\r
- return _notEqualValue != null;\r
- }}\r
-\r
- public bool EqualNotEqual(Object value) {\r
- return HasNotEqual ? _notEqualValue.Equals(value) : value == null;\r
- }\r
-\r
- public ${myClassName} OverrideNotEqual(Object value) {\r
- _notEqualValue = value; return this;\r
- }\r
-\r
- protected String _notEqualLocation;\r
-\r
- public String getNotEqualLocation() {\r
- return _notEqualLocation;\r
- }\r
-\r
- public ${myClassName} setNotEqualLocation(String location) {\r
- _notEqualLocation = location;\r
- return this;\r
- }\r
-\r
- // ==================================================================================\r
- // GreaterThan\r
- // ===========\r
- protected Object _greaterThanValue;\r
-\r
- public Object GreaterThan {\r
- get { return _greaterThanValue; }\r
- set { _greaterThanValue = value; }\r
- }\r
-\r
- public bool HasGreaterThan { get {\r
- return _greaterThanValue != null;\r
- }}\r
-\r
- public bool EqualGreaterThan(Object value) {\r
- return HasGreaterThan ? _greaterThanValue.Equals(value) : value == null;\r
- }\r
-\r
- public ${myClassName} OverrideGreaterThan(Object value) {\r
- _greaterThanValue = value; return this;\r
- }\r
-\r
- protected String _greaterThanLocation;\r
-\r
- public String getGreaterThanLocation() {\r
- return _greaterThanLocation;\r
- }\r
-\r
- public ${myClassName} setGreaterThanLocation(String location) {\r
- _greaterThanLocation = location;\r
- return this;\r
- }\r
-\r
- // ==================================================================================\r
- // Less Than\r
- // =========\r
- protected Object _lessThanValue;\r
-\r
- public Object LessThan {\r
- get { return _lessThanValue; }\r
- set { _lessThanValue = value; }\r
- }\r
-\r
- public bool HasLessThan { get {\r
- return _lessThanValue != null;\r
- }}\r
-\r
- public bool EqualLessThan(Object value) {\r
- return HasLessThan ? _lessThanValue.Equals(value) : value == null;\r
- }\r
-\r
- public ${myClassName} OverrideLessThan(Object value) {\r
- _lessThanValue = value; return this;\r
- }\r
-\r
- protected String _lessThanLocation;\r
-\r
- public String getLessThanLocation() {\r
- return _lessThanLocation;\r
- }\r
-\r
- public ${myClassName} setLessThanLocation(String location) {\r
- _lessThanLocation = location;\r
- return this;\r
- }\r
-\r
- // ==================================================================================\r
- // Greater Equal\r
- // =============\r
- protected Object _greaterEqualValue;\r
-\r
- public Object GreaterEqual {\r
- get { return _greaterEqualValue; }\r
- set { _greaterEqualValue = value; }\r
- }\r
-\r
- public bool HasGreaterEqual { get {\r
- return _greaterEqualValue != null;\r
- }}\r
-\r
- public bool EqualGreaterEqual(Object value) {\r
- return HasGreaterEqual ? _greaterEqualValue.Equals(value) : value == null;\r
- }\r
-\r
- public ${myClassName} OverrideGreaterEqual(Object value) {\r
- _greaterEqualValue = value; return this;\r
- }\r
-\r
- protected String _greaterEqualLocation;\r
-\r
- public String getGreaterEqualLocation() {\r
- return _greaterEqualLocation;\r
- }\r
-\r
- public ${myClassName} setGreaterEqualLocation(String location) {\r
- _greaterEqualLocation = location;\r
- return this;\r
- }\r
-\r
- // ==================================================================================\r
- // Less Equal\r
- // ==========\r
- protected Object _lessEqualValue;\r
-\r
- public Object LessEqual {\r
- get { return _lessEqualValue; }\r
- set { _lessEqualValue = value; }\r
- }\r
-\r
- public bool HasLessEqual { get {\r
- return _lessEqualValue != null;\r
- }}\r
-\r
- public bool EqualLessEqual(Object value) {\r
- return HasLessEqual ? _lessEqualValue.Equals(value) : value == null;\r
- }\r
-\r
- public ${myClassName} OverrideLessEqual(Object value) {\r
- _lessEqualValue = value; return this;\r
- }\r
-\r
- protected String _lessEqualLocation;\r
-\r
- public String getLessEqualLocation() {\r
- return _lessEqualLocation;\r
- }\r
-\r
- public ${myClassName} setLessEqualLocation(String location) {\r
- _lessEqualLocation = location;\r
- return this;\r
- }\r
-\r
- // ==================================================================================\r
- // Prefix Search\r
- // =============\r
- protected Object _prefixSearch;\r
-\r
- public Object PrefixSearch {\r
- get { return _prefixSearch; }\r
- set { _prefixSearch = value; }\r
- }\r
-\r
- public bool HasPrefixSearch { get {\r
- return _prefixSearch != null;\r
- }}\r
-\r
- public bool EqualPrefixSearch(Object value) {\r
- return HasPrefixSearch ? _prefixSearch.Equals(value) : value == null;\r
- }\r
-\r
- public ${myClassName} OverridePrefixSearch(Object value) {\r
- _prefixSearch = value; return this;\r
- }\r
-\r
- protected String _prefixSearchLocation;\r
-\r
- public String getPrefixSearchLocation() {\r
- return _prefixSearchLocation;\r
- }\r
-\r
- public ${myClassName} setPrefixSearchLocation(String location) {\r
- _prefixSearchLocation = location;\r
- return this;\r
- }\r
-\r
- // ===================================================================================\r
- // Like Search\r
- // ===========\r
- protected List<LikeSearchValue> _likeSearch;\r
- protected List<LikeSearchValue> _likeSearch4Spare;\r
-\r
- public String LikeSearch { get {\r
- if (_likeSearch == null) {\r
- return null;\r
- }\r
- if (_likeSearch.isEmpty() && !_likeSearch4Spare.isEmpty()) {\r
- for (int index=0; index < _likeSearch4Spare.size(); index++) {\r
- _likeSearch.add(_likeSearch4Spare.get(index));\r
- }\r
- }\r
- LikeSearchValue likeSearchValue = (LikeSearchValue)_likeSearch.remove(0);\r
- return likeSearchValue.generateRealValue();\r
- }}\r
-\r
- public ${myClassName} setLikeSearch(String value, ${glConditionOptionLikeSearchName} option) {\r
- if (_likeSearch == null) {\r
- _likeSearch = new ArrayList<LikeSearchValue>();\r
- _likeSearch4Spare= new ArrayList<LikeSearchValue>();\r
- }\r
- if (_likeSearch.isEmpty() && !_likeSearch4Spare.isEmpty()) {\r
- for (int index=0; index < _likeSearch4Spare.size(); index++) {\r
- _likeSearch.add(_likeSearch4Spare.get(index));\r
- }\r
- }\r
- LikeSearchValue likeSearchValue = new LikeSearchValue(value, option);\r
- _likeSearch.add(likeSearchValue);\r
- _likeSearch4Spare.add(likeSearchValue);\r
- return this;\r
- }\r
-\r
- protected String _likeSearchLocation;\r
-\r
- public String getLikeSearchLocation() {\r
- return _likeSearchLocation;\r
- }\r
-\r
- public ${myClassName} setLikeSearchLocation(String location) {\r
- _likeSearchLocation = location;\r
- return this;\r
- }\r
-\r
- protected class LikeSearchValue {\r
- protected String _value;\r
- protected ${glConditionOptionLikeSearchName} _option;\r
- public LikeSearchValue(String value, ${glConditionOptionLikeSearchName} option) {\r
- _value = value;\r
- _option = option;\r
- }\r
- public String getValue() {\r
- return _value;\r
- }\r
- public ${glConditionOptionLikeSearchName} getOption() {\r
- return _option;\r
- }\r
- public String generateRealValue() {\r
- if (_option == null) {\r
- return _value;\r
- }\r
- return _option.generateRealValue(_value);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // In Scope\r
- // ========\r
- protected System.Collections.IList _inScope;\r
-\r
- public System.Collections.IList InScope {\r
- get { return _inScope; }\r
- set { _inScope = value; }\r
- }\r
-\r
- public bool HasInScope { get {\r
- return _inScope != null;\r
- }}\r
-\r
- public bool EqualInScope(System.Collections.IList value) {\r
- return HasInScope ? _inScope.Equals(value) : value == null;\r
- }\r
-\r
- public ${myClassName} OverrideInScope(System.Collections.IList value) {\r
- _inScope = value; return this;\r
- }\r
-\r
- protected String _inScopeLocation;\r
-\r
- public String getInScopeLocation() {\r
- return _inScopeLocation;\r
- }\r
-\r
- public ${myClassName} setInScopeLocation(String location) {\r
- _inScopeLocation = location;\r
- return this;\r
- }\r
-\r
- // ===================================================================================\r
- // Not In Scope\r
- // ============\r
- protected System.Collections.IList _notInScope;\r
-\r
- public System.Collections.IList NotInScope {\r
- get { return _notInScope; }\r
- set { _notInScope = value; }\r
- }\r
-\r
- public bool HasNotInScope { get {\r
- return _notInScope != null;\r
- }}\r
-\r
- public bool EqualNotInScope(System.Collections.IList value) {\r
- return HasNotInScope ? _notInScope.Equals(value) : value == null;\r
- }\r
-\r
- public ${myClassName} OverrideNotInScope(System.Collections.IList value) {\r
- _notInScope = value; return this;\r
- }\r
-\r
- protected String _notInScopeLocation;\r
-\r
- public String getNotInScopeLocation() {\r
- return _notInScopeLocation;\r
- }\r
-\r
- public ${myClassName} setNotInScopeLocation(String location) {\r
- _notInScopeLocation = location;\r
- return this;\r
- }\r
-\r
- // ===================================================================================\r
- // Is Null\r
- // =======\r
- protected Object _isNullValue;\r
-\r
- public Object IsNull {\r
- get { return _isNullValue; }\r
- set { _isNullValue = value; }\r
- }\r
-\r
- public bool HasIsNull { get {\r
- return _isNullValue != null;\r
- }}\r
-\r
- protected String _isNullLocation;\r
-\r
- public String getIsNullLocation() {\r
- return _isNullLocation;\r
- }\r
-\r
- public ${myClassName} setIsNullLocation(String location) {\r
- _isNullLocation = location;\r
- return this;\r
- }\r
-\r
- // ===================================================================================\r
- // Is Not Null\r
- // ===========\r
- protected Object _isNotNullValue;\r
-\r
- public Object IsNotNull {\r
- get { return _isNotNullValue; }\r
- set { _isNotNullValue = value; }\r
- }\r
-\r
- public bool HasIsNotNull { get {\r
- return _isNotNullValue != null;\r
- }}\r
-\r
- protected String _isNotNullLocation;\r
-\r
- public String getIsNotNullLocation() {\r
- return _isNotNullLocation;\r
- }\r
-\r
- public ${myClassName} setIsNotNullLocation(String location) {\r
- _isNotNullLocation = location;\r
- return this;\r
- }\r
-}\r
- \r
-}\r
+++ /dev/null
-\r
-using System;\r
-\r
-namespace ${glPackageBaseCommonCBeanGrouping} {\r
-\r
-public class ${glGroupingOptionName}<ENTITY> {\r
-\r
- // =====================================================================================\r
- // Attribute\r
- // =========\r
- protected int _elementCount;\r
-\r
- protected ${glGroupingRowEndDeterminerName}<ENTITY> _groupingRowEndDeterminer;\r
-\r
- // =====================================================================================\r
- // Constructor\r
- // ===========\r
- /**\r
- * Constructor. You should set the determiner of grouping row end after you create the instance.\r
- */\r
- public ${glGroupingOptionName}() {\r
- }\r
-\r
- /**\r
- * Constructor.\r
- * @param elementCount The count of row element in a group.\r
- */\r
- public ${glGroupingOptionName}(int elementCount) {\r
- _elementCount = elementCount;\r
- }\r
-\r
- // =====================================================================================\r
- // Accessor\r
- // ========\r
- public int ElementCount { get {\r
- return this._elementCount;\r
- }}\r
-\r
- public ${glGroupingRowEndDeterminerName}<ENTITY> GroupingRowEndDeterminer { get {\r
- return this._groupingRowEndDeterminer;\r
- } set {\r
- this._groupingRowEndDeterminer = value;\r
- }}\r
-}\r
-\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System;\r
-\r
-namespace ${glPackageBaseCommonCBeanGrouping} {\r
-\r
- /**\r
- * Determine whether the grouping row is end.\r
- * @param rowResource The resource of grouping row. (NotNull and the property 'groupingRowList' is not empty and the property 'currentEntity' is not null)\r
- * @param nextEntity The entity of next element. (NotNull and the rowResource does not contain yet)\r
- * @return Whether the grouping row is end. (If the value is true, break grouping row and the nextEntity is registered to next row)\r
- */\r
- public delegate bool ${glGroupingRowEndDeterminerName}<ENTITY>(${glGroupingRowResourceName}<ENTITY> rowResource, ENTITY nextEntity);\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections.Generic;\r
-\r
-namespace ${glPackageBaseCommonCBeanGrouping} {\r
-\r
-public class ${glGroupingRowResourceName}<ENTITY> {\r
-\r
- // =====================================================================================\r
- // Attribute\r
- // =========\r
- protected IList<ENTITY> _groupingRowList = new List<ENTITY>();\r
- protected int _elementCurrentIndex;\r
- protected int _breakCount;\r
-\r
- // =====================================================================================\r
- // Easy-to-Use\r
- // ===========\r
- /**\r
- * @return Does the list of grouping row size up the break count?\r
- */\r
- public bool IsSizeUpBreakCount { get {\r
- return _elementCurrentIndex == (_breakCount-1);\r
- }}\r
-\r
- // =====================================================================================\r
- // Accessor\r
- // ========\r
- /**\r
- * @return The list of grouping row. (NotNull and NotEmpty)\r
- */\r
- public IList<ENTITY> GroupingRowList { get {\r
- return this._groupingRowList;\r
- }}\r
-\r
- /**\r
- * Add the element entity to the list of grouping row. {INTERNAL METHOD}\r
- * @param groupingRow The element entity to the list of grouping row.\r
- */\r
- public void AddGroupingRowList(ENTITY groupingRow) {\r
- this._groupingRowList.Add(groupingRow);\r
- }\r
-\r
- /**\r
- * @return The entity of element current index. (NotNull)\r
- */\r
- public ENTITY CurrentEntity { get {\r
- return _groupingRowList[_elementCurrentIndex];\r
- }}\r
-\r
- public int ElementCurrentIndex { get {\r
- return this._elementCurrentIndex;\r
- } set {\r
- this._elementCurrentIndex = value;\r
- }}\r
-\r
- public int BreakCount { get {\r
- return this._breakCount;\r
- } set {\r
- this._breakCount = value;\r
- }}\r
-}\r
-\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System;\r
-\r
-namespace ${glPackageBaseCommonCBeanGrouping} {\r
-\r
- public delegate ROW ${glGroupingRowSetupperName}<ROW, ENTITY>(${glGroupingRowResourceName}<ENTITY> groupingRowResource);\r
-}\r
+++ /dev/null
-\r
-using System;\r
-\r
-namespace ${glPackageBaseCommonCBeanMapping} {\r
-\r
- public delegate DTO ${glEntityDtoMapperName}<ENTITY, DTO>(ENTITY entity);\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections.Generic;\r
-using System.IO;\r
-using System.Reflection;\r
-using System.Text;\r
-using System.Threading;\r
-\r
-using Seasar.Framework.Util;\r
-\r
-using ${glPackageBaseCommon};\r
-using ${glPackageBaseCommonDBMeta};\r
-using ${glPackageBaseCommonJdbc};\r
-using ${glPackageBaseCommonUtil};\r
-\r
-namespace ${glPackageBaseCommonCBeanOutsidesql} {\r
-\r
- public class ${glOutsideSqlContextName} {\r
-\r
- // ===============================================================================\r
- // Definition\r
- // ==========\r
- /** Log instance. */\r
- private static readonly log4net.ILog _log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);\r
- \r
- // ===============================================================================\r
- // Thread Local\r
- // ============\r
- private static readonly LocalDataStoreSlot _slot = Thread.AllocateDataSlot();\r
-\r
- public static ${glOutsideSqlContextName} GetOutsideSqlContextOnThread() {\r
- return (${glOutsideSqlContextName})Thread.GetData(_slot);\r
- }\r
-\r
- public static void SetOutsideSqlContextOnThread(${glOutsideSqlContextName} outsideSqlContext) {\r
- if (outsideSqlContext == null) {\r
- String msg = "The argument[outsideSqlContext] must not be null.";\r
- throw new SystemException(msg);\r
- }\r
- Thread.SetData(_slot, outsideSqlContext);\r
- }\r
-\r
- public static bool IsExistOutsideSqlContextOnThread() {\r
- return (Thread.GetData(_slot) != null);\r
- }\r
-\r
- public static void ClearOutsideSqlContextOnThread() {\r
- Thread.SetData(_slot, null);\r
- }\r
-\r
- // ===============================================================================\r
- // Unique Key\r
- // ==========\r
- public static String GenerateSpecifiedOutsideSqlUniqueKey(String methodName, String path, Object pmb, ${glOutsideSqlOptionName} option, Object resultTypeSpecification) {\r
- String pmbKey = (pmb != null ? pmb.GetType().Name : "null");\r
- String resultKey = (resultTypeSpecification != null ? ":" + resultTypeSpecification : "null");\r
- String tableDbName = option.TableDbName;\r
- String generatedUniqueKey = option.GenerateUniqueKey();\r
- return methodName + "():" + tableDbName + ":" + path + ":" + pmbKey + ":" + generatedUniqueKey + resultKey;\r
- }\r
-\r
- // ===============================================================================\r
- // Exception Handling\r
- // ==================\r
- public static void ThrowOutsideSqlNotFoundException(String path) {\r
- String msg = "Look! Read the message below." + GetLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + GetLineSeparator();\r
- msg = msg + "The outsideSql was Not Found!" + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Advice]" + GetLineSeparator();\r
- msg = msg + "Please confirm the existence of your target file of outsideSql on your classpath." + GetLineSeparator();\r
- msg = msg + "And please confirm the file name and the file path STRICTLY!" + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Specified OutsideSql Path]" + GetLineSeparator() + path + GetLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new ${glPackageBaseCommonException}.${glOutsideSqlNotFoundException}(msg);\r
- }\r
-\r
- protected static String GetLineSeparator() {\r
- return ${glSimpleSystemUtil}.GetLineSeparator();\r
- }\r
-\r
- protected static String ReplaceString(String text, String fromText, String toText) {\r
- return ${glSimpleStringUtil}.Replace(text, fromText, toText);\r
- }\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- // -------------------------------------------------\r
- // Common of OutsideSql\r
- // --------------------\r
- protected bool _dynamicBinding;\r
-\r
- protected bool _offsetByCursorForcedly;\r
-\r
- protected bool _limitByCursorForcedly;\r
-\r
- // -------------------------------------------------\r
- // Specified OutsideSql\r
- // --------------------\r
- /// <summary>The path of outside-sql. (The mark of Specified-OutsideSql)</summary>\r
- protected String _outsideSqlPath;\r
-\r
- protected Object _parameterBean;\r
-\r
- protected Object _resultTypeSpecification;\r
-\r
- protected String _methodName;\r
- \r
- protected ${glStatementConfig} _statementConfig;\r
-\r
- protected String _tableDbName;\r
-\r
- // ===============================================================================\r
- // Read SQL\r
- // ========\r
- public String ReadFilteredOutsideSql(String sqlFileEncoding, String dbmsSuffix) {\r
- String sql = ReadOutsideSql(sqlFileEncoding, dbmsSuffix);\r
- sql = ReplaceOutsideSqlBindCharacterOnLineComment(sql);\r
- return ReplaceOldStypePagingDeterminationForCompatible(sql);\r
- }\r
- \r
- protected String ReplaceOldStypePagingDeterminationForCompatible(String sql) {\r
- return sql.Replace("/*IF pmb.Paging*/", "/*IF pmb.IsPaging*/");\r
- }\r
- \r
- protected String ReplaceOutsideSqlBindCharacterOnLineComment(String sql) {\r
- String bindCharacter = "?";\r
- if (sql.IndexOf(bindCharacter) < 0) {\r
- return sql;\r
- }\r
- String lineSeparator = "\n";\r
- if (sql.IndexOf(lineSeparator) < 0) {\r
- return sql;\r
- }\r
- String lineCommentMark = "--";\r
- if (sql.IndexOf(lineCommentMark) < 0) {\r
- return sql;\r
- }\r
- StringBuilder sb = new StringBuilder();\r
- String[] lines = sql.Split(lineSeparator.ToCharArray());\r
- foreach (String line in lines) {\r
- int lineCommentIndex = line.IndexOf("--");\r
- if (lineCommentIndex < 0) {\r
- sb.Append(line).Append(lineSeparator);\r
- continue;\r
- }\r
- String lineComment = line.Substring(lineCommentIndex);\r
- if (lineComment.Contains("ELSE") || !lineComment.Contains(bindCharacter)) {\r
- sb.Append(line).Append(lineSeparator);\r
- continue;\r
- }\r
- \r
- if (_log.IsDebugEnabled) {\r
- _log.Debug("...Replacing bind character on line comment: " + lineComment);\r
- }\r
- String filteredLineComment = ReplaceString(lineComment, bindCharacter, "Q");\r
- sb.Append(line.Substring(0, lineCommentIndex)).Append(filteredLineComment).Append(lineSeparator);\r
- }\r
- return sb.ToString();\r
- }\r
- \r
- public String ReadOutsideSql(String sqlFileEncoding, String dbmsSuffix) {\r
- String standardPath = _outsideSqlPath.Replace("/", ".");// Replacing is required for csharp!\r
- String dbmsPath = BuildDbmsPath(standardPath, dbmsSuffix);\r
- Assembly asm = GetType().Assembly;// In same assembly!\r
- if (IsExistResource(dbmsPath, asm)) {\r
- return ReadText(dbmsPath, sqlFileEncoding, asm);\r
- } else if (IsExistResource(standardPath, asm)) {\r
- return ReadText(standardPath, sqlFileEncoding, asm);\r
- } else {\r
- String text = ReadTextFromFileSystem(standardPath, sqlFileEncoding);\r
- if (text != null) {\r
- return text;\r
- }\r
- ThrowOutsideSqlNotFoundException(standardPath);\r
- return null;// Non Reachable.\r
- }\r
- }\r
-\r
- protected String BuildDbmsPath(String standardPath, String dbmsSuffix) {\r
- String dbmsPath;\r
- int lastIndexOfDot = standardPath.LastIndexOf(".");\r
- if (lastIndexOfDot >= 0 && !standardPath.Substring(lastIndexOfDot).Contains("/")) {\r
- String basePath = standardPath.Substring(0, lastIndexOfDot);\r
- dbmsPath = basePath + dbmsSuffix + standardPath.Substring(lastIndexOfDot);\r
- } else {\r
- dbmsPath = standardPath + dbmsSuffix;\r
- }\r
- return dbmsPath;\r
- }\r
-\r
- // ===============================================================================\r
- // Set up Path\r
- // ===========\r
- public void SetupBehaviorQueryPathIfNeeds() {\r
- if (!IsBehaviorQueryPathEnabled) {\r
- return;\r
- }\r
- if (_outsideSqlPath.Contains(":")) {\r
- String subDirectoryValue = _outsideSqlPath.Substring(0, _outsideSqlPath.LastIndexOf(":"));\r
- String subDirectoryPath = subDirectoryValue.Replace(":", "/");\r
- String behaviorQueryPath = _outsideSqlPath.Substring(_outsideSqlPath.LastIndexOf(":") + ":".Length);\r
- String behaviorClassPath = BuildBehaviorSqlPackageName().Replace(".", "/");\r
- String behaviorPackagePath = behaviorClassPath.Substring(0, behaviorClassPath.LastIndexOf("/"));\r
- String behaviorClassName = behaviorClassPath.Substring(behaviorClassPath.LastIndexOf("/") + "/".Length);\r
- _outsideSqlPath = behaviorPackagePath + "/" + subDirectoryPath + "/" + behaviorClassName + "_" + behaviorQueryPath + ".sql";\r
- _outsideSqlPath = _outsideSqlPath.Replace("/", ".");// Replacing is required for csharp!\r
- } else {\r
- _outsideSqlPath = BuildBehaviorSqlPackageName() + "_" + _outsideSqlPath + ".sql";\r
- }\r
- }\r
-\r
- protected String BuildBehaviorSqlPackageName() {\r
- ${glDBMetaInterfaceName} dbmeta = ${glDBMetaInstanceHandlerName}.FindDBMeta(_tableDbName);\r
- String behaviorTypeName = dbmeta.BehaviorTypeName;\r
- String outsideSqlPackage = ${glDBFluteConfig}.GetInstance().OutsideSqlPackage;\r
- if (outsideSqlPackage != null && outsideSqlPackage.Trim().Length > 0) {\r
- String behaviorClassName = behaviorTypeName.Substring(behaviorTypeName.LastIndexOf(".") + ".".Length);\r
- String tmp = behaviorTypeName.Substring(0, behaviorTypeName.LastIndexOf("."));\r
- String exbhvName = tmp.Contains(".") ? tmp.Substring(tmp.LastIndexOf(".") + ".".Length) : tmp;\r
- return FilterBehaviorSqlPackageName(outsideSqlPackage + "." + exbhvName + "." + behaviorClassName);\r
- } else {\r
- return FilterBehaviorSqlPackageName(behaviorTypeName);\r
- }\r
- }\r
-\r
- protected String FilterBehaviorSqlPackageName(String name) { // CSharp only\r
- return FilterAboutDefaultPackage(FilterAboutOmitResourcePathPackage(FilterAboutOmitDirectoryPackage(name)));\r
- }\r
-\r
- // It is unnecessary of filtering about flat directory package.\r
- public String FilterAboutOmitDirectoryPackage(String pckge) { // CSharp only\r
- String omitDirectoryPackage = ${glDBFluteConfig}.GetInstance().OmitDirectoryPackage;\r
- if (omitDirectoryPackage != null && omitDirectoryPackage.Trim().Length > 0) {\r
- pckge = RemoveOmitPackage(pckge, omitDirectoryPackage);\r
- }\r
- return pckge;\r
- }\r
-\r
- public String FilterAboutOmitResourcePathPackage(String pckge) { // CSharp only\r
- String omitResourcePathPackage = ${glDBFluteConfig}.GetInstance().OmitResourcePathPackage;\r
- if (omitResourcePathPackage != null && omitResourcePathPackage.Trim().Length > 0) {\r
- pckge = RemoveOmitPackage(pckge, omitResourcePathPackage);\r
- }\r
- return pckge;\r
- }\r
-\r
- protected String RemoveOmitPackage(String pckge, String omitName) { // CSharp only\r
- if (pckge.StartsWith(omitName)) {\r
- return pckge.Replace(omitName + ".", "");\r
- } else if (pckge.EndsWith(omitName)) {\r
- return pckge.Replace("." + omitName, "");\r
- } else {\r
- return pckge.Replace("." + omitName + ".", ".");\r
- }\r
- }\r
-\r
- protected String FilterAboutDefaultPackage(String pckge) { // CSharp only\r
- String defaultPackage = ${glDBFluteConfig}.GetInstance().DefaultPackage;\r
- if (defaultPackage != null && defaultPackage.Trim().Length > 0) {\r
- return defaultPackage + "." + pckge;\r
- } else {\r
- return pckge;\r
- }\r
- }\r
- \r
- protected bool IsBehaviorQueryPathEnabled {\r
- get {\r
- if (IsProcedure) {// [DBFlute-0.8.0]\r
- return false;\r
- }\r
- return _outsideSqlPath != null && !_outsideSqlPath.Contains("/") && !_outsideSqlPath.Contains(".") && _tableDbName != null;\r
- }\r
- }\r
-\r
- // ===============================================================================\r
- // File System\r
- // ===========\r
- protected virtual String ReadTextFromFileSystem(String path, String sqlFileEncoding) {\r
- path = BuildFileSystemPath(path);\r
- if (!File.Exists(path)) {\r
- if (_log.IsDebugEnabled) {\r
- String msg = "Look! Read the DEBUG message below." + GetLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + GetLineSeparator();\r
- msg = msg + "The outsideSql was Not Found in File System!" + GetLineSeparator();\r
- msg = msg + " path = " + path + GetLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- _log.Debug(msg);\r
- }\r
- return null;\r
- }\r
- using (Stream stream = new FileStream(path, FileMode.Open)) {\r
- using (TextReader reader = new StreamReader(stream, Encoding.GetEncoding(sqlFileEncoding))) {\r
- return reader.ReadToEnd();\r
- }\r
- }\r
- }\r
-\r
- protected String BuildFileSystemPath(String path) {\r
- String omitPathPackage = ${glDBFluteConfig}.GetInstance().OmitFileSystemPathPackage;\r
- if (omitPathPackage != null && omitPathPackage.Trim().Length > 0 && path.StartsWith(omitPathPackage)) {\r
- path = path.Substring(omitPathPackage.Length + ".".Length); // Remove omit package.\r
- } else {\r
- path = path.Substring(path.IndexOf(".") + ".".Length); // Remove project package.\r
- }\r
- String fileSeparator = "/";\r
- String flatDirectory = ${glDBFluteConfig}.GetInstance().FlatDirectoryPackage;\r
- if (flatDirectory != null && flatDirectory.Trim().Length > 0 && path.Contains(flatDirectory)) {\r
- String front = path.Substring(0, path.IndexOf(flatDirectory));\r
- String rear = path.Substring(path.IndexOf(flatDirectory) + flatDirectory.Length);\r
- front = front.Replace(".", fileSeparator);\r
- rear = rear.Replace(".", fileSeparator);\r
- path = front + flatDirectory + rear;\r
- } else {\r
- path = path.Replace(".", fileSeparator);\r
- }\r
- if (path.EndsWith(fileSeparator + "sql")) {\r
- path = path.Replace(fileSeparator + "sql", ".sql");\r
- }\r
- return path;\r
- }\r
-\r
- // ===============================================================================\r
- // Determination\r
- // =============\r
- public bool IsSpecifiedOutsideSql {\r
- get { return _outsideSqlPath != null; }\r
- }\r
-\r
- // [DBFlute-0.8.0]\r
- public bool IsProcedure {\r
- get { return _methodName != null && _methodName.StartsWith("Call"); }\r
- }\r
-\r
- // ===============================================================================\r
- // General Helper\r
- // ==============\r
- protected virtual bool IsExistResource(String path, Assembly asm) {\r
- return ResourceUtil.IsExist(path, asm);\r
- }\r
-\r
- protected virtual String ReadText(String path, String sqlFileEncoding, Assembly asm) {\r
- using (Stream stream = ResourceUtil.GetResourceAsStream(path, asm)) {\r
- using (TextReader reader = new StreamReader(stream, Encoding.GetEncoding(sqlFileEncoding))) {\r
- return reader.ReadToEnd();\r
- }\r
- }\r
- }\r
-\r
- // ===============================================================================\r
- // Accessor\r
- // ========\r
- // -------------------------------------------------\r
- // Common of OutsideSql\r
- // --------------------\r
- public bool IsDynamicBinding {\r
- get { return _dynamicBinding; }\r
- set { this._dynamicBinding = value; }\r
- }\r
-\r
- public bool IsOffsetByCursorForcedly {\r
- get { return _offsetByCursorForcedly; }\r
- set { this._offsetByCursorForcedly = value; }\r
- }\r
- \r
- public bool IsLimitByCursorForcedly {\r
- get { return _limitByCursorForcedly; }\r
- set { this._limitByCursorForcedly = value; }\r
- }\r
-\r
- // -------------------------------------------------\r
- // Specified OutsideSql\r
- // --------------------\r
- public String OutsideSqlPath {\r
- get { return _outsideSqlPath; }\r
- set { this._outsideSqlPath = value; }\r
- }\r
-\r
- public Object ParameterBean {\r
- get { return _parameterBean; }\r
- set { this._parameterBean = value; }\r
- }\r
-\r
- public Object ResultTypeSpecification {\r
- get { return _resultTypeSpecification; }\r
- set { this._resultTypeSpecification = value; }\r
- }\r
-\r
- public String MethodName {\r
- get { return _methodName; }\r
- set { this._methodName = value; }\r
- }\r
-\r
- public ${glStatementConfig} StatementConfig {\r
- get { return _statementConfig; }\r
- set { this._statementConfig = value; }\r
- }\r
-\r
- public String TableDbName {\r
- get { return _tableDbName; }\r
- set { this._tableDbName = value; }\r
- }\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections.Generic;\r
-\r
-using Seasar.Quill.Attrs;\r
-using Seasar.Dao.Attrs;\r
-\r
-using ${glPackageBaseCommon};\r
-using ${glPackageBaseCommonJdbc};\r
-using ${glPackageBaseCommonS2Dao};\r
-\r
-namespace ${glPackageBaseCommonCBeanOutsidesql} {\r
-\r
- [Implementation]\r
- [S2Dao(typeof(${glS2DaoSetting}))]\r
- [Bean(typeof(OutsideSqlDaoDummyEntity))]\r
- public interface ${glOutsideSqlDaoName} : ${glDaoReadableInterfaceName} {\r
-\r
- // ===================================================================================\r
- // Select\r
- // ======\r
- System.Collections.IList SelectList(String path, Object pmb, ${glOutsideSqlOptionName} option, Type entityType);\r
-\r
- Object SelectCursor(String path, Object pmb, ${glOutsideSqlOptionName} option, ${glCursorHandlerName} handler);\r
-\r
- int Execute(String path, Object pmb, ${glOutsideSqlOptionName} option);\r
-\r
- // Not implemented yet!\r
- // int[] batchExecute(String path, List<Object> pmb, ${glOutsideSqlOptionName} option);\r
-\r
- // [DBFlute-0.8.0]\r
- // ===================================================================================\r
- // Call\r
- // ====\r
- void Call(String path, Object pmb, ${glOutsideSqlOptionName} option);\r
- }\r
-\r
- public class OutsideSqlDaoDummyEntity {\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections.Generic;\r
-\r
-using ${glPackageBaseCommonJdbc};\r
-\r
-namespace ${glPackageBaseCommonCBeanOutsidesql} {\r
-\r
- public class ${glOutsideSqlOptionName} {\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected String _pagingRequestType = "non";\r
-\r
- protected bool _dynamicBinding;\r
- \r
- protected String _tableDbName;// The DB name of table. It is not related with the options of outside-SQL.\r
-\r
- protected ${glStatementConfig} _statementConfig;\r
-\r
- // ===============================================================================\r
- // Easy-to-Use\r
- // ===========\r
- public void AutoPaging() {\r
- _pagingRequestType = "auto";\r
- }\r
-\r
- public void ManualPaging() {\r
- _pagingRequestType = "manual";\r
- }\r
-\r
- public void DynamicBinding() {\r
- _dynamicBinding = true;\r
- }\r
-\r
- // ===============================================================================\r
- // Unique Key\r
- // ==========\r
- public String GenerateUniqueKey() {\r
- return "{" + _pagingRequestType + "/" + _dynamicBinding + "}";\r
- }\r
-\r
- // ===============================================================================\r
- // Copy\r
- // ====\r
- public ${glOutsideSqlOptionName} CopyOptionWithoutPaging() {\r
- ${glOutsideSqlOptionName} copyOption = new ${glOutsideSqlOptionName}();\r
- if (IsDynamicBinding) {\r
- copyOption.DynamicBinding();\r
- }\r
- copyOption.TableDbName = _tableDbName;\r
- return copyOption;\r
- }\r
-\r
-\r
- // ===============================================================================\r
- // Basic Override\r
- // ==============\r
- public override String ToString() {\r
- return "{paging=" + _pagingRequestType + ", dynamic=" + _dynamicBinding + "}";\r
- }\r
-\r
- // ===============================================================================\r
- // Accessor\r
- // ========\r
- public bool IsAutoPaging {\r
- get { return "auto".Equals(_pagingRequestType); }\r
- }\r
-\r
- public bool IsManualPaging {\r
- get { return "manual".Equals(_pagingRequestType); }\r
- }\r
-\r
- public bool IsDynamicBinding {\r
- get { return _dynamicBinding; }\r
- }\r
-\r
- public String TableDbName {\r
- get { return _tableDbName; }\r
- set { _tableDbName = value; }\r
- }\r
-\r
- public ${glStatementConfig} StatementConfig {\r
- get { return _statementConfig; }\r
- set { _statementConfig = value; }\r
- }\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-\r
-namespace ${glPackageBaseCommonCBeanOutsidesql} {\r
- public interface ${glProcedurePmbName} {\r
- String ProcedureName { get; }\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections.Generic;\r
-\r
-using ${glPackageBaseCommonCBean};\r
-using ${glPackageBaseCommonCBeanOutsidesql};\r
-using ${glPackageBaseCommonJdbc};\r
-\r
-namespace ${glPackageBaseCommonCBeanOutsidesqlExecutor} {\r
-\r
- public class ${glOutsideSqlBasicExecutorName} {\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected ${glOutsideSqlDaoName} _outsideSqlDao;\r
- protected String _tableDbName;\r
- protected bool _dynamicBinding;\r
- protected ${glStatementConfig} _statementConfig;\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glOutsideSqlBasicExecutorName}(${glOutsideSqlDaoName} outsideSqlDao, String tableDbName) {\r
- _outsideSqlDao = outsideSqlDao;\r
- _tableDbName = tableDbName;\r
- }\r
-\r
- // ===============================================================================\r
- // Select\r
- // ======\r
-#if (!$database.isCompatibleOutsideSqlResultOldStyle())\r
- public ${glListResultBeanName}<ENTITY> SelectList<ENTITY>(String path, Object pmb) {\r
- IList<ENTITY> resultList = (IList<ENTITY>)_outsideSqlDao.SelectList(path, pmb, CreateOutsideSqlOption(), typeof(ENTITY));\r
- return new ${glResultBeanBuilderName}<ENTITY>(_tableDbName).BuildListResultBean(resultList);\r
- \r
- }\r
-#else\r
- public IList<ENTITY> SelectList<ENTITY>(String path, Object pmb) {\r
- return (IList<ENTITY>)_outsideSqlDao.SelectList(path, pmb, CreateOutsideSqlOption(), typeof(ENTITY));\r
- }\r
-#end\r
- // ===============================================================================\r
- // Execute\r
- // =======\r
- public int Execute(String path, Object pmb) {\r
- return _outsideSqlDao.Execute(path, pmb, CreateOutsideSqlOption());\r
- }\r
-\r
- // Implements at the future!\r
- // public int BatchExecute(String path, Object pmb) {\r
- // throw new UnsupportedOperationException("Sorry! The method of batchExecute() has not been implemented yet.");\r
- // // return _outsideSqlDao.batchExecute(path, pmb, CreateOutsideSqlOption());\r
- // }\r
-\r
- // [DBFlute-0.8.0]\r
- // ===============================================================================\r
- // Procedure Call\r
- // ==============\r
- public void Call(${glProcedurePmbName} pmb) {\r
- if (pmb == null) { throw new ArgumentNullException("The argument of call() 'pmb' should not be null!"); }\r
- _outsideSqlDao.Call(pmb.ProcedureName, pmb, CreateOutsideSqlOption());\r
- }\r
-\r
- // ===============================================================================\r
- // Option\r
- // ======\r
- public ${glOutsideSqlCursorExecutorName}<Object> CursorHandling() {\r
- return new ${glOutsideSqlCursorExecutorName}<Object>(_outsideSqlDao, CreateOutsideSqlOption());\r
- }\r
-\r
- public ${glOutsideSqlEntityExecutorName}<Object> EntityHandling() {\r
- return new ${glOutsideSqlEntityExecutorName}<Object>(_outsideSqlDao, CreateOutsideSqlOption());\r
- }\r
-\r
- public ${glOutsideSqlPagingExecutorName} AutoPaging() {\r
- ${glOutsideSqlOptionName} option = CreateOutsideSqlOption();\r
- option.AutoPaging();\r
- return new ${glOutsideSqlPagingExecutorName}(_outsideSqlDao, option, _tableDbName);\r
- }\r
-\r
- public ${glOutsideSqlPagingExecutorName} ManualPaging() {\r
- ${glOutsideSqlOptionName} option = CreateOutsideSqlOption();\r
- option.ManualPaging();\r
- return new ${glOutsideSqlPagingExecutorName}(_outsideSqlDao, option, _tableDbName);\r
- }\r
-\r
- public ${glOutsideSqlBasicExecutorName} DynamicBinding() {\r
- _dynamicBinding = true;\r
- return this;\r
- }\r
-\r
- public ${glOutsideSqlBasicExecutorName} Configure(${glStatementConfig} statementConfig) {\r
- _statementConfig = statementConfig;\r
- return this;\r
- }\r
-\r
- // -------------------------------------------------\r
- // Helper\r
- // ------\r
- protected ${glOutsideSqlOptionName} CreateOutsideSqlOption() {\r
- ${glOutsideSqlOptionName} option = new ${glOutsideSqlOptionName}();\r
- option.StatementConfig = _statementConfig;\r
- if (_dynamicBinding) {\r
- option.DynamicBinding();\r
- }\r
- option.TableDbName = _tableDbName;\r
- return option;\r
- }\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-\r
-using ${glPackageBaseCommonCBeanOutsidesql};\r
-using ${glPackageBaseCommonJdbc};\r
-\r
-namespace ${glPackageBaseCommonCBeanOutsidesqlExecutor} {\r
-\r
- public class ${glOutsideSqlCursorExecutorName}<PARAMETER_BEAN> {\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected ${glOutsideSqlDaoName} _outsideSqlDao;\r
-\r
- protected ${glOutsideSqlOptionName} _outsideSqlOption;\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glOutsideSqlCursorExecutorName}(${glOutsideSqlDaoName} outsideSqlDao, ${glOutsideSqlOptionName} outsideSqlOption) {\r
- this._outsideSqlDao = outsideSqlDao;\r
- this._outsideSqlOption = outsideSqlOption;\r
- }\r
-\r
- // ===============================================================================\r
- // Select\r
- // ======\r
- public Object SelectCursor(String path, PARAMETER_BEAN pmb, ${glCursorHandlerName} handler) {\r
- return _outsideSqlDao.SelectCursor(path, pmb, _outsideSqlOption, handler);\r
- }\r
-\r
- // ===============================================================================\r
- // Option\r
- // ======\r
- public ${glOutsideSqlCursorExecutorName}<PARAMETER_BEAN> Configure(${glStatementConfig} statementConfig) {\r
- _outsideSqlOption.StatementConfig = statementConfig;\r
- return this;\r
- }\r
-\r
- public ${glOutsideSqlCursorExecutorName}<PARAMETER_BEAN> DynamicBinding() {\r
- _outsideSqlOption.DynamicBinding();\r
- return this;\r
- }\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections.Generic;\r
-\r
-using ${glPackageBaseCommonCBean};\r
-using ${glPackageBaseCommonCBeanOutsidesql};\r
-using ${glPackageBaseCommonJdbc};\r
-using ${glPackageBaseCommonUtil};\r
-\r
-namespace ${glPackageBaseCommonCBeanOutsidesqlExecutor} {\r
-\r
- public class ${glOutsideSqlEntityExecutorName}<PARAMETER_BEAN> {\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected ${glOutsideSqlDaoName} _outsideSqlDao;\r
-\r
- protected ${glOutsideSqlOptionName} _outsideSqlOption;\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glOutsideSqlEntityExecutorName}(${glOutsideSqlDaoName} outsideSqlDao, ${glOutsideSqlOptionName} outsideSqlOption) {\r
- this._outsideSqlDao = outsideSqlDao;\r
- this._outsideSqlOption = outsideSqlOption;\r
- }\r
-\r
- // ===============================================================================\r
- // Select\r
- // ======\r
- public ENTITY SelectEntity<ENTITY>(String path, PARAMETER_BEAN pmb) {\r
- IList<ENTITY> ls = (IList<ENTITY>)_outsideSqlDao.SelectList(path, pmb, _outsideSqlOption, typeof(ENTITY));\r
- if (ls.Count == 0) {\r
- return default(ENTITY);\r
- }\r
- if (ls.Count > 1) {\r
- ThrowEntityDuplicatedException(ls.Count + "", BuildSearch4LogString<ENTITY>(path, pmb), null);\r
- }\r
- return ls[0];\r
- }\r
-\r
- public ENTITY SelectEntityWithDeletedCheck<ENTITY>(String path, PARAMETER_BEAN pmb) {\r
- IList<ENTITY> ls = (IList<ENTITY>)_outsideSqlDao.SelectList(path, pmb, _outsideSqlOption, typeof(ENTITY));\r
- if (ls == null || ls.Count == 0) {\r
- ThrowEntityAlreadyDeletedException(BuildSearch4LogString<ENTITY>(path, pmb));\r
- }\r
- if (ls.Count > 1) {\r
- ThrowEntityDuplicatedException(ls.Count + "", BuildSearch4LogString<ENTITY>(path, pmb), null);\r
- }\r
- return ls[0];\r
- }\r
-\r
- protected String BuildSearch4LogString<ENTITY>(String path, PARAMETER_BEAN pmb) {\r
- Type entityType = typeof(ENTITY);\r
- String tmp = "Table = " + _outsideSqlOption.TableDbName + GetLineSeparator();\r
- tmp = tmp + "Path = " + path + GetLineSeparator();\r
- tmp = tmp + "Pmb = " + (pmb != null ? pmb.GetType().ToString() : "null") + ":" + pmb + GetLineSeparator();\r
- tmp = tmp + "Entity = " + (entityType != null ? entityType.ToString() : "null") + GetLineSeparator();\r
- tmp = tmp + "Option = " + _outsideSqlOption;\r
- return tmp;\r
- }\r
-\r
- // -------------------------------------------------\r
- // Helper\r
- // ------\r
- protected void ThrowEntityAlreadyDeletedException(Object searchKey4Log) {\r
- ${glConditionBeanContextName}.ThrowEntityAlreadyDeletedException(searchKey4Log);\r
- }\r
-\r
- protected void ThrowEntityDuplicatedException(String resultCountString, Object searchKey4Log, Exception cause) {\r
- ${glConditionBeanContextName}.ThrowEntityDuplicatedException(resultCountString, searchKey4Log, cause);\r
- }\r
-\r
- // ===============================================================================\r
- // Option\r
- // ======\r
- public ${glOutsideSqlEntityExecutorName}<PARAMETER_BEAN> Configure(${glStatementConfig} statementConfig) {\r
- _outsideSqlOption.StatementConfig = statementConfig;\r
- return this;\r
- }\r
-\r
- public ${glOutsideSqlEntityExecutorName}<PARAMETER_BEAN> DynamicBinding() {\r
- _outsideSqlOption.DynamicBinding();\r
- return this;\r
- }\r
- \r
- // ===============================================================================\r
- // General Helper\r
- // ==============\r
- protected static String GetLineSeparator() {\r
- return ${glSimpleSystemUtil}.GetLineSeparator();\r
- }\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections.Generic;\r
-\r
-using ${glPackageBaseCommonCBean};\r
-using ${glPackageBaseCommonCBeanOutsidesql};\r
-using ${glPackageBaseCommonJdbc};\r
-\r
-namespace ${glPackageBaseCommonCBeanOutsidesqlExecutor} {\r
-\r
- public class ${glOutsideSqlPagingExecutorName} {\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected ${glOutsideSqlDaoName} _outsideSqlDao;\r
- protected ${glOutsideSqlOptionName} _outsideSqlOption;\r
- protected String _tableDbName;\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glOutsideSqlPagingExecutorName}(${glOutsideSqlDaoName} outsideSqlDao, ${glOutsideSqlOptionName} outsideSqlOption, String tableDbName) {\r
- this._outsideSqlDao = outsideSqlDao;\r
- this._outsideSqlOption = outsideSqlOption;\r
- this._tableDbName = tableDbName;\r
- }\r
-\r
- // ===============================================================================\r
- // Select\r
- // ======\r
-#if (!$database.isCompatibleOutsideSqlResultOldStyle())\r
- public ${glListResultBeanName}<ENTITY> SelectList<ENTITY>(String path, ${glPagingBeanInterfaceName} pmb) {\r
- IList<ENTITY> resultList = (IList<ENTITY>)_outsideSqlDao.SelectList(path, pmb, _outsideSqlOption, typeof(ENTITY));\r
- return new ${glResultBeanBuilderName}<ENTITY>(_tableDbName).BuildListResultBean(resultList);\r
- }\r
-#else\r
- public IList<ENTITY> SelectList<ENTITY>(String path, ${glPagingBeanInterfaceName} pmb) {\r
- return (IList<ENTITY>)_outsideSqlDao.SelectList(path, pmb, _outsideSqlOption, typeof(ENTITY));\r
- }\r
-#end\r
-\r
- public ${glPagingResultBeanName}<ENTITY> SelectPage<ENTITY>(String path, ${glPagingBeanInterfaceName} pmb) {\r
- ${glOutsideSqlOptionName} countOption = _outsideSqlOption.CopyOptionWithoutPaging();\r
- ${glOutsideSqlEntityExecutorName}<${glPagingBeanInterfaceName}> countExecutor = new ${glOutsideSqlEntityExecutorName}<${glPagingBeanInterfaceName}>(_outsideSqlDao, countOption);\r
- DefaultPagingHandler<ENTITY> handler = new DefaultPagingHandler<ENTITY>(path, pmb, typeof(ENTITY), countExecutor, this);\r
- ${glPagingInvokerName}<ENTITY> invoker = new ${glPagingInvokerName}<ENTITY>(_tableDbName);\r
- if (pmb.IsCountLater) {\r
- invoker.CountLater();\r
- }\r
- return invoker.InvokePaging(handler);\r
- }\r
-\r
- protected class DefaultPagingHandler<ENTITY> : ${glPagingHandlerName}<ENTITY> {\r
- protected String _path;\r
- protected ${glPagingBeanInterfaceName} _pmb;\r
- protected Type _entityType;\r
- protected ${glOutsideSqlEntityExecutorName}<${glPagingBeanInterfaceName}> _countExecutor;\r
- protected ${glOutsideSqlPagingExecutorName} _pagingExecutor;\r
- public DefaultPagingHandler(String path, ${glPagingBeanInterfaceName} pmb, Type entityType, ${glOutsideSqlEntityExecutorName}<${glPagingBeanInterfaceName}> countExecutor, ${glOutsideSqlPagingExecutorName} pagingExecutor) {\r
- this._path = path;\r
- this._pmb = pmb;\r
- this._entityType = entityType;\r
- this._countExecutor = countExecutor;\r
- this._pagingExecutor = pagingExecutor;\r
- }\r
- public ${glPagingBeanInterfaceName} PagingBean {\r
- get { return _pmb; }\r
- }\r
- public int Count() {\r
- _pmb.XSetPaging(false);\r
- return _countExecutor.SelectEntityWithDeletedCheck<int>(_path, _pmb);\r
- }\r
- public IList<ENTITY> Paging() {\r
- _pmb.XSetPaging(true);\r
- return _pagingExecutor.SelectList<ENTITY>(_path, _pmb);\r
- }\r
- }\r
-\r
- // ===============================================================================\r
- // Option\r
- // ======\r
- public ${glOutsideSqlPagingExecutorName} Configure(${glStatementConfig} statementConfig) {\r
- _outsideSqlOption.StatementConfig = statementConfig;\r
- return this;\r
- }\r
-\r
- public ${glOutsideSqlPagingExecutorName} DynamicBinding() {\r
- _outsideSqlOption.DynamicBinding();\r
- return this;\r
- }\r
- }\r
-}\r
+++ /dev/null
-#set ($myClassName = "${glPageNumberLinkName}")\r
-\r
-using System;\r
-using ${glPackageBaseCommonJavaLike};\r
-\r
-namespace ${glPackageBaseCommonCBeanPagenavi} {\r
-\r
-[System.Serializable]\r
-public class ${myClassName} {\r
-\r
- // ===================================================================================\r
- // Initializer\r
- // ===========\r
- public ${myClassName} Initialize(int pageNumberElement, bool current, String pageNumberLinkHref) {\r
- PageNumberElement = pageNumberElement;\r
- IsCurrent = current;\r
- PageNumberLinkHref = pageNumberLinkHref;\r
- return this;\r
- }\r
-\r
- // ===================================================================================\r
- // Basic Override\r
- // ==============\r
- public override String ToString() {\r
- StringBuilder sb = new StringBuilder();\r
-\r
- sb.append(" pageNumberElement=").append(PageNumberElement);\r
- sb.append(" pageNumberLinkHref=").append(PageNumberLinkHref);\r
- sb.append(" current=").append(IsCurrent);\r
-\r
- return sb.toString();\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public int _pageNumberElement;\r
- public int PageNumberElement { get { return _pageNumberElement; } set { _pageNumberElement = value; } }\r
- public bool _isCurrent;\r
- public bool IsCurrent { get { return _isCurrent; } set { _isCurrent = value; } }\r
- public String _pageNumberLinkHref;\r
- public String PageNumberLinkHref { get { return _pageNumberLinkHref; } set { _pageNumberLinkHref = value; } }\r
-}\r
-\r
-}
\ No newline at end of file
+++ /dev/null
-#set ($myClassName = "${glPageNumberLinkSetupperName}")\r
-\r
-using System;\r
-\r
-namespace ${glPackageBaseCommonCBeanPagenavi} {\r
-\r
- public delegate LINK ${myClassName}<LINK>(int pageNumberElement, bool current) where LINK : ${glPageNumberLinkName};\r
-}\r
-\r
+++ /dev/null
-#set ($myClassName = "${glPageGroupBeanName}")\r
-\r
-using System;\r
-\r
-using ${glPackageBaseCommonJavaLike};\r
-using ${glPackageBaseCommonCBeanPagenavi};\r
-\r
-namespace ${glPackageBaseCommonCBeanPagenaviGroup} {\r
-\r
-[System.Serializable]\r
-public class ${myClassName} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected int _currentPageNumner;\r
- public int CurrentPageNumber { get { return _currentPageNumner; } set { _currentPageNumner = value; } }\r
- protected int _allPageCount;\r
- public int AllPageCount { get { return _allPageCount; } set { _allPageCount = value; } }\r
- protected ${glPageGroupOptionName} _pageGroupOption;\r
- public ${glPageGroupOptionName} PageGroupOption { get { return _pageGroupOption; } set { _pageGroupOption = value; } }\r
-\r
- // ===================================================================================\r
- // Main\r
- // ====\r
- public System.Collections.Generic.IList<LINK> BuildPageNumberLinkList<LINK>(${glPageNumberLinkSetupperName}<LINK> pageNumberLinkSetupper) where LINK : ${glPageNumberLinkName} {\r
- System.Collections.Generic.IList<int> pageNumberList = CreatePageNumberList();\r
- System.Collections.Generic.IList<LINK> pageNumberLinkList = new System.Collections.Generic.List<LINK>();\r
- foreach (int pageNumber in pageNumberList) {\r
- pageNumberLinkList.Add(pageNumberLinkSetupper.Invoke(pageNumber, pageNumber == CurrentPageNumber));\r
- }\r
- return pageNumberLinkList;\r
- }\r
-\r
- public int CalculateStartPageNumber() {\r
- AssertPageGroupValid();\r
- int pageGroupSize = PageGroupOption.PageGroupSize;\r
- int currentPageNumber = CurrentPageNumber;\r
-\r
- int currentPageGroupNumber = (currentPageNumber / pageGroupSize);\r
- if ((currentPageNumber % pageGroupSize) == 0)\r
- {\r
- currentPageGroupNumber--;\r
- }\r
- int currentPageGroupStartPageNumber = (pageGroupSize * currentPageGroupNumber) + 1;\r
- if (!(currentPageNumber >= currentPageGroupStartPageNumber)) {\r
- String msg = "currentPageNumber should be greater equal currentPageGroupStartPageNumber. But:";\r
- msg = msg + " currentPageNumber=" + currentPageNumber;\r
- msg = msg + " currentPageGroupStartPageNumber=" + currentPageGroupStartPageNumber;\r
- throw new IllegalStateException(msg);\r
- }\r
- return currentPageGroupStartPageNumber;\r
- }\r
-\r
- public System.Collections.Generic.IList<int> CreatePageNumberList() {\r
- AssertPageGroupValid();\r
- int pageGroupSize = PageGroupOption.PageGroupSize;\r
- int allPageCount = AllPageCount;\r
- int currentPageGroupStartPageNumber = CalculateStartPageNumber();\r
- if (!(currentPageGroupStartPageNumber > 0)) {\r
- String msg = "currentPageGroupStartPageNumber should be greater than 0. {> 0} But:";\r
- msg = msg + " currentPageGroupStartPageNumber=" + currentPageGroupStartPageNumber;\r
- throw new IllegalStateException(msg);\r
- }\r
- int nextPageGroupStartPageNumber = currentPageGroupStartPageNumber + pageGroupSize;\r
-\r
- System.Collections.Generic.IList<int> resultList = new System.Collections.Generic.List<int>();\r
- for (int i=currentPageGroupStartPageNumber; i < nextPageGroupStartPageNumber && i <= allPageCount; i++) {\r
- resultList.Add(i);\r
- }\r
- return resultList;\r
- }\r
-\r
- public int[] CreatePageNumberArray() {\r
- AssertPageGroupValid();\r
- return ConvertListToIntArray(CreatePageNumberList());\r
- }\r
-\r
- public bool IsExistPrePageGroup() {\r
- AssertPageGroupValid();\r
- return (CurrentPageNumber > PageGroupOption.PageGroupSize);\r
- }\r
-\r
- public bool IsExistNextPageGroup() {\r
- AssertPageGroupValid();\r
- int currentPageGroupStartPageNumber = CalculateStartPageNumber();\r
- if (!(currentPageGroupStartPageNumber > 0)) {\r
- String msg = "currentPageGroupStartPageNumber should be greater than 0. {> 0} But:";\r
- msg = msg + " currentPageGroupStartPageNumber=" + currentPageGroupStartPageNumber;\r
- throw new IllegalStateException(msg);\r
- }\r
- int nextPageGroupStartPageNumber = currentPageGroupStartPageNumber + PageGroupOption.PageGroupSize;\r
- return (nextPageGroupStartPageNumber <= AllPageCount);\r
- }\r
-\r
- // ===================================================================================\r
- // Assist Helper\r
- // =============\r
- protected int[] ConvertListToIntArray(System.Collections.Generic.IList<int> ls) {\r
- int[] resultArray = new int[ls.Count];\r
- int arrayIndex = 0;\r
- foreach (int pageNumber in ls) {\r
- resultArray[arrayIndex] = pageNumber;\r
- arrayIndex++;\r
- }\r
- return resultArray;\r
- }\r
-\r
- protected void AssertPageGroupValid() {\r
- if (PageGroupOption == null) {\r
- String msg = "The pageGroupOption should not be null. Please invoke setPageGroupOption().";\r
- throw new IllegalStateException(msg);\r
- }\r
- if (PageGroupOption.PageGroupSize == 0) {\r
- String msg = "The pageGroupSize should be greater than 1. But the value is zero.";\r
- msg = msg + " pageGroupSize=" + PageGroupOption.PageGroupSize;\r
- throw new IllegalStateException(msg);\r
- }\r
- if (PageGroupOption.PageGroupSize == 1) {\r
- String msg = "The pageGroupSize should be greater than 1. But the value is one.";\r
- msg = msg + " pageGroupSize=" + PageGroupOption.PageGroupSize;\r
- throw new IllegalStateException(msg);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Basic Override\r
- // ==============\r
- public override String ToString() {\r
- StringBuilder sb = new StringBuilder();\r
-\r
- sb.append(" currentPageNumber=").append(CurrentPageNumber);\r
- sb.append(" allPageCount=").append(AllPageCount);\r
- sb.append(" pageGroupOption=").append(PageGroupOption);\r
-\r
- return sb.toString();\r
- }\r
-}\r
-\r
-}
\ No newline at end of file
+++ /dev/null
-#set ($myClassName = "${glPageGroupOptionName}")\r
-\r
-using System;\r
-using ${glPackageBaseCommonJavaLike};\r
-\r
-namespace ${glPackageBaseCommonCBeanPagenaviGroup} {\r
-\r
-[System.Serializable]\r
-public class ${myClassName} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- public int _pageGroupSize;\r
- public int PageGroupSize { get { return _pageGroupSize; } set { _pageGroupSize = value; } }\r
-\r
- // ===================================================================================\r
- // Basic Override\r
- // ==============\r
- public override String ToString() {\r
- StringBuilder sb = new StringBuilder();\r
-\r
- sb.append(" pageGroupSize=").append(PageGroupSize);\r
-\r
- return sb.toString();\r
- }\r
-}\r
-\r
-}
\ No newline at end of file
+++ /dev/null
-#set ($myClassName = "${glPageRangeBeanName}")\r
-\r
-using System;\r
-\r
-using ${glPackageBaseCommonJavaLike};\r
-using ${glPackageBaseCommonCBeanPagenavi};\r
-\r
-namespace ${glPackageBaseCommonCBeanPagenaviRange} {\r
-\r
-[System.Serializable]\r
-public class ${myClassName} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected int _currentPageNumner;\r
- public int CurrentPageNumber { get { return _currentPageNumner; } set { _currentPageNumner = value; } }\r
- protected int _allPageCount;\r
- public int AllPageCount { get { return _allPageCount; } set { _allPageCount = value; } }\r
- protected ${glPageRangeOptionName} _pageRangeOption;\r
- public ${glPageRangeOptionName} PageRangeOption { get { return _pageRangeOption; } set { _pageRangeOption = value; } }\r
-\r
- // ===================================================================================\r
- // Main\r
- // ====\r
- public System.Collections.Generic.IList<LINK> BuildPageNumberLinkList<LINK>(${glPageNumberLinkSetupperName}<LINK> pageNumberLinkSetupper) where LINK : ${glPageNumberLinkName} {\r
- System.Collections.Generic.IList<int> pageNumberList = CreatePageNumberList();\r
- System.Collections.Generic.IList<LINK> pageNumberLinkList = new System.Collections.Generic.List<LINK>();\r
- foreach (int pageNumber in pageNumberList) {\r
- pageNumberLinkList.Add(pageNumberLinkSetupper.Invoke(pageNumber, pageNumber == CurrentPageNumber));\r
- }\r
- return pageNumberLinkList;\r
- }\r
-\r
- public System.Collections.Generic.IList<int> CreatePageNumberList() {\r
- AssertPageRangeValid();\r
- int pageRangeSize = PageRangeOption.PageRangeSize;\r
- int allPageCount = AllPageCount;\r
- int currentPageNumber = CurrentPageNumber;\r
-\r
- System.Collections.Generic.IList<int> resultList = new System.Collections.Generic.List<int>();\r
- for (int i = currentPageNumber - pageRangeSize; i < currentPageNumber; i++) {\r
- if (i < 1) {\r
- continue;\r
- }\r
- resultList.Add(i);\r
- }\r
-\r
- resultList.Add(currentPageNumber);\r
-\r
- int endPageNumber = (currentPageNumber + pageRangeSize);\r
- for (int i = currentPageNumber + 1 ; i <= endPageNumber && i <= allPageCount; i++) {\r
- resultList.Add(i);\r
- }\r
-\r
- bool fillLimit = PageRangeOption.IsFillLimit;\r
- int limitSize = (pageRangeSize * 2) + 1;\r
- if (fillLimit && resultList.Count != 0 && resultList.Count < limitSize) {\r
- int firstElements = resultList[0];\r
- int lastElements = resultList[resultList.Count - 1];\r
- if (firstElements > 1) {\r
- for (int i = firstElements - 1 ; resultList.Count < limitSize && i > 0; i--) {\r
- resultList.Insert(0, i);\r
- }\r
- }\r
- for (int i = lastElements + 1 ; resultList.Count < limitSize && i <= allPageCount; i++) {\r
- resultList.Add(i);\r
- }\r
- }\r
- return resultList;\r
- }\r
-\r
- public int[] CreatePageNumberArray() {\r
- AssertPageRangeValid();\r
- return ConvertListToIntArray(CreatePageNumberList());\r
- }\r
-\r
- public bool IsExistPrePageRange() {\r
- AssertPageRangeValid();\r
- int[] array = CreatePageNumberArray();\r
- if (array.Length == 0) {\r
- return false;\r
- }\r
- return array[0] > 1;\r
- }\r
-\r
- public bool IsExistNextPageRange() {\r
- AssertPageRangeValid();\r
- int[] array = CreatePageNumberArray();\r
- if (array.Length == 0) {\r
- return false;\r
- }\r
- return array[array.Length-1] < AllPageCount;\r
- }\r
-\r
- // ===================================================================================\r
- // Assist Helper\r
- // =============\r
- protected int[] ConvertListToIntArray(System.Collections.Generic.IList<int> ls) {\r
- int[] resultArray = new int[ls.Count];\r
- int arrayIndex = 0;\r
- foreach (int pageNumber in ls) {\r
- resultArray[arrayIndex] = pageNumber;\r
- arrayIndex++;\r
- }\r
- return resultArray;\r
- }\r
-\r
- protected void AssertPageRangeValid() {\r
- if (PageRangeOption == null) {\r
- String msg = "The pageRangeOption should not be null. Please invoke setPageRangeOption().";\r
- throw new IllegalStateException(msg);\r
- }\r
- int pageRangeSize = PageRangeOption.PageRangeSize;\r
- if (pageRangeSize == 0) {\r
- String msg = "The pageRangeSize should be greater than 1. But the value is zero.";\r
- throw new IllegalStateException(msg);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Basic Override\r
- // ==============\r
- public override String ToString() {\r
- StringBuilder sb = new StringBuilder();\r
-\r
- sb.append(" currentPageNumber=").append(CurrentPageNumber);\r
- sb.append(" allPageCount=").append(AllPageCount);\r
- sb.append(" pageRangeOption=").append(PageRangeOption);\r
-\r
- return sb.toString();\r
- }\r
-}\r
-\r
-}
\ No newline at end of file
+++ /dev/null
-#set ($myClassName = "${glPageRangeOptionName}")\r
-\r
-using System;\r
-using ${glPackageBaseCommonJavaLike};\r
-\r
-namespace ${glPackageBaseCommonCBeanPagenaviRange} {\r
-\r
-[System.Serializable]\r
-public class ${myClassName} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- public int _pageRangeSize;\r
- public int PageRangeSize { get { return _pageRangeSize; } set { _pageRangeSize = value; } }\r
- public bool _isFillLimit;\r
- public bool IsFillLimit { get { return _isFillLimit; } set { _isFillLimit = value; } }\r
-\r
- // ===================================================================================\r
- // Basic Override\r
- // ==============\r
- public override String ToString() {\r
- StringBuilder sb = new StringBuilder();\r
-\r
- sb.append(" pageRangeSize=").append(PageRangeSize);\r
- sb.append(" fillLimit=").append(IsFillLimit);\r
-\r
- return sb.toString();\r
- }\r
-}\r
-\r
-}
\ No newline at end of file
+++ /dev/null
-#set ($myClassName = "${glSqlClauseAbstractName}")\r
-\r
-using System;\r
-using ${glPackageBaseCommon};\r
-using ${glPackageBaseCommonCKey};\r
-using ${glPackageBaseCommonCOption};\r
-using ${glPackageBaseCommonCValue};\r
-using ${glPackageBaseCommonDBMeta};\r
-using ${glPackageBaseCommonDBMetaInfo};\r
-using ${glPackageBaseCommonJavaLike};\r
-using ${glPackageBaseCommonUtil};\r
-\r
-namespace ${glPackageBaseCommonSqlClause} {\r
-\r
-// JavaLike\r
-[System.Serializable]\r
-public abstract class ${myClassName} : ${glSqlClauseInterfaceName} {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- protected static readonly String SELECT_HINT = "/*$dto.SelectHint*/ ";\r
- \r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- // -----------------------------------------------------\r
- // Basic\r
- // -----\r
- /** Target table name. */\r
- protected readonly String _tableName;\r
-\r
- // -----------------------------------------------------\r
- // Clause Resource\r
- // ---------------\r
- /** Selected select column map. map:{tableAliasName : map:{columnName : selectColumnInfo}}*/\r
- protected Map<String, Map<String, SelectedSelectColumnInfo>> _selectedSelectColumnMap = new LinkedHashMap<String, Map<String, SelectedSelectColumnInfo>>();\r
-\r
- /** Specified select column map. map:{ tableAliasName = map:{ columnName : null } } */\r
- protected Map<String, Map<String, String>> _specifiedSelectColumnMap;\r
- \r
- /** Specified derive sub-query map. */\r
- protected Map<String, String> _specifiedDeriveSubQueryMap;\r
-\r
- /** Included select column map. */\r
- protected Map<String, String> _includedSelectColumnMap = new LinkedHashMap<String, String>();\r
-\r
- /** The map of real column and alias of select clause. map:{realColumnName : aliasName} */\r
- protected Map<String, String> _selectClauseRealColumnAliasMap = new HashMap<String, String>();// Without linked!\r
- \r
- /** Outer join map. */\r
- protected Map<String, LeftOuterJoinInfo> _outerJoinMap = new LinkedHashMap<String, LeftOuterJoinInfo>();\r
-\r
- /** Where list. */\r
- protected List<String> _whereList = new ArrayList<String>();\r
-\r
- /** Inline where list for BaseTable. */\r
- protected List<String> _baseTableInlineWhereList = new ArrayList<String>();\r
-\r
- /** Order-by clause. */\r
- protected ${glOrderByClauseName} _orderByClause = new ${glOrderByClauseName}();\r
-\r
- /** Union clause list. */\r
- protected List<UnionQueryInfo> _unionQueryInfoList = new ArrayList<UnionQueryInfo>();\r
-\r
- /** Is included-select-column effective? Default value is false. */\r
- protected bool _isIncludedSelectColumnEffective = false;\r
-\r
- /** Is order-by effective? Default value is false. */\r
- protected bool _isOrderByEffective = false;\r
-\r
- // -----------------------------------------------------\r
- // Fetch Property\r
- // --------------\r
- /** Fetch start index. (for fetchXxx()) */\r
- protected int _fetchStartIndex = 0;\r
-\r
- /** Fetch size. (for fetchXxx()) */\r
- protected int _fetchSize = 0;\r
-\r
- /** Fetch page number. (for fetchXxx()) This value should be plus. */\r
- protected int _fetchPageNumber = 1;\r
-\r
- /** Is fetch-narrowing effective? Default value is false. */\r
- protected bool _isFetchScopeEffective = false;\r
-\r
- // -----------------------------------------------------\r
- // AdditionalConditionAsOr\r
- // -----------------------\r
- /** Is additional condition as or effective?*/\r
- protected bool _isAdditionalConditionAsOrEffective = false;\r
-\r
- // -----------------------------------------------------\r
- // WhereClauseSimpleFilter\r
- // -----------------------\r
- // /** The filter for where clause. */\r
- // protected List<${glWhereClauseSimpleFilterInterfaceName}> _whereClauseSimpleFilterList;\r
-\r
- // -----------------------------------------------------\r
- // Selected Foreign Info\r
- // ---------------------\r
- /** The information of selected foreign table. */\r
- protected Map<String, String> _selectedForeignInfo;\r
- \r
- // -----------------------------------------------------\r
- // Optional Info\r
- // -------------\r
- protected bool _formatClause;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${myClassName}(String tableName) {\r
- if (tableName == null) {\r
- String msg = "Argument[tableName] must not be null.";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- _tableName = tableName;\r
- }\r
-\r
- // ===================================================================================\r
- // Clause\r
- // ======\r
- // -----------------------------------------------------\r
- // Complete Clause\r
- // ---------------\r
- public String getClause() {\r
- StringBuilder sb = new StringBuilder(512);\r
- sb.append(getSelectClause());\r
- sb.append(" ");\r
- sb.append(buildClauseWithoutMainSelect(false));\r
- String sql = sb.toString();\r
- return filterSubQueryIndent(sql);\r
- }\r
- \r
- public String getClausePKOnly() {\r
- StringBuilder sb = new StringBuilder(512);\r
- sb.append(getSelectClausePKOnly());\r
- sb.append(" ");\r
- sb.append(buildClauseWithoutMainSelect(true));\r
- String sql = sb.toString();\r
- return filterSubQueryIndent(sql);\r
- }\r
- \r
- protected String buildClauseWithoutMainSelect(bool pkonly) {\r
- StringBuilder sb = new StringBuilder(512);\r
- sb.append(getFromClause());\r
- sb.append(getFromHint());\r
- sb.append(" ");\r
- sb.append(getWhereClause());\r
- String unionClause = buildUnionClause(pkonly ? getSelectClausePKOnly() : getSelectClause());\r
- \r
- // Delete template mark! (At the future this will be unnecessary.)\r
- unionClause = replaceString(unionClause, getUnionWhereClauseMark(), "");// Required!\r
- unionClause = replaceString(unionClause, getUnionWhereFirstConditionMark(), "");// Required!\r
- \r
- sb.append(unionClause);\r
- if (_isOrderByEffective && !_orderByClause.isEmpty()) {\r
- sb.append(" ");\r
- sb.append(getOrderByClause());\r
- }\r
- sb.append(" ");\r
- sb.append(getSqlSuffix());\r
- return sb.toString();\r
- }\r
- \r
- // -----------------------------------------------------\r
- // Fragment Clause\r
- // ---------------\r
- public String getClauseFromWhereWithUnionTemplate() {\r
- return buildClauseFromWhereAsTemplate(false);\r
- }\r
- \r
- public String getClauseFromWhereWithWhereUnionTemplate() {\r
- return buildClauseFromWhereAsTemplate(true);\r
- }\r
- \r
- protected virtual String buildClauseFromWhereAsTemplate(bool template) {\r
- StringBuilder sb = new StringBuilder(512);\r
- sb.append(getFromClause());\r
- sb.append(getFromHint());\r
- sb.append(" ");\r
- sb.append(buildWhereClause(template));\r
- sb.append(buildUnionClause(getUnionSelectClauseMark()));\r
- return sb.toString();\r
- }\r
- \r
- protected virtual String buildUnionClause(String selectClause) {\r
- StringBuilder sb = new StringBuilder();\r
- for (Iterator<UnionQueryInfo> ite = _unionQueryInfoList.iterator(); ite.hasNext(); ) {\r
- UnionQueryInfo unionQueryInfo = (UnionQueryInfo)ite.next();\r
- String unionQueryClause = unionQueryInfo.getUnionQueryClause();\r
- bool unionAll = unionQueryInfo.isUnionAll();\r
- if (isFormatClauseEffective()) {\r
- sb.append(getLineSeparator());\r
- }\r
- sb.append(unionAll ? " union all " : " union ");\r
- if (isFormatClauseEffective()) {\r
- sb.append(getLineSeparator());\r
- }\r
- sb.append(selectClause).append(" ").append(unionQueryClause);\r
- }\r
- return sb.toString();\r
- }\r
-\r
- // ===================================================================================\r
- // Clause Parts\r
- // ============\r
- public String getSelectClause() {\r
- StringBuilder sb = new StringBuilder();\r
- ${glDBMetaInterfaceName} dbmeta = ${glDBMetaInstanceHandlerName}.FindDBMeta(_tableName);\r
- List<${glColumnInfoName}> columnInfoList = dbmeta.ColumnInfoList;\r
-\r
- // [DBFlute-0.7.4]\r
- Map<String, String> localSpecifiedMap = _specifiedSelectColumnMap != null ? _specifiedSelectColumnMap.get(getLocalTableAliasName()) : null;\r
- bool existsSpecifiedLocal = localSpecifiedMap != null && !localSpecifiedMap.isEmpty();\r
- \r
- foreach (${glColumnInfoName} columnInfo in columnInfoList) {\r
- String columnName = columnInfo.ColumnDbName;\r
- \r
- // [DBFlute-0.7.4]\r
- if (existsSpecifiedLocal && !localSpecifiedMap.containsKey(columnName)) {\r
- continue;\r
- }\r
-\r
- if (sb.length() > 0) {\r
- sb.append(", ");\r
- } else {\r
- sb.append("select").append(SELECT_HINT).append(" ");\r
- }\r
- String realColumnName = getLocalTableAliasName() + "." + columnName;\r
- sb.append(realColumnName).append(" as ").append(columnName);\r
- _selectClauseRealColumnAliasMap.put(realColumnName, columnName);\r
- }\r
- Set<String> tableAliasNameSet = _selectedSelectColumnMap.keySet();\r
- foreach (String tableAliasName in tableAliasNameSet) {\r
- Map<String, SelectedSelectColumnInfo> map = _selectedSelectColumnMap.get(tableAliasName);\r
- Collection<SelectedSelectColumnInfo> selectColumnInfoList = map.values();\r
-\r
- // [DBFlute-0.7.4]\r
- Map<String, String> foreginSpecifiedMap = _specifiedSelectColumnMap != null ? _specifiedSelectColumnMap.get(tableAliasName) : null;\r
- bool existsSpecifiedForeign = foreginSpecifiedMap != null && !foreginSpecifiedMap.isEmpty();\r
-\r
- foreach (SelectedSelectColumnInfo selectColumnInfo in selectColumnInfoList) {\r
- String realColumnName = selectColumnInfo.buildRealColumnName();\r
-\r
- // [DBFlute-0.7.4]\r
- if (existsSpecifiedForeign && !foreginSpecifiedMap.containsKey(selectColumnInfo.getColumnName())) {\r
- continue;\r
- }\r
-\r
- sb.append(", ").append(realColumnName).append(" as ").append(selectColumnInfo.getColumnAliasName());\r
- _selectClauseRealColumnAliasMap.put(realColumnName, selectColumnInfo.getColumnAliasName());\r
- }\r
- }\r
- if (_isIncludedSelectColumnEffective && !_includedSelectColumnMap.isEmpty()) {\r
- sb.append(getIncludedSelectColumnClause());\r
- }\r
-\r
- // [DBFlute-0.7.4]\r
- if (_specifiedDeriveSubQueryMap != null && !_specifiedDeriveSubQueryMap.isEmpty()) {\r
- Collection<String> deriveSubQuerySet = _specifiedDeriveSubQueryMap.values();\r
- foreach (String deriveSubQuery in deriveSubQuerySet) {\r
- if (isFormatClauseEffective()) {\r
- sb.append(getLineSeparator()).append(" ");\r
- }\r
- sb.append(", ").append(deriveSubQuery);\r
- }\r
- }\r
-\r
- return sb.toString();\r
- }\r
- \r
- public String getSelectClausePKOnly() {\r
- StringBuilder sb = new StringBuilder();\r
- ${glDBMetaInterfaceName} dbmeta = ${glDBMetaInstanceHandlerName}.FindDBMeta(_tableName);\r
- ${glUniqueInfoName} uniqueInfo = dbmeta.PrimaryUniqueInfo;\r
- List<${glColumnInfoName}> columnInfoList = uniqueInfo.UniqueColumnList;\r
- foreach (${glColumnInfoName} columnInfo in columnInfoList) {\r
- String columnName = columnInfo.ColumnDbName;\r
- if (sb.length() > 0) {\r
- sb.append(", ");\r
- } else {\r
- sb.append("select").append(SELECT_HINT).append(" ");\r
- }\r
- String realColumnName = getLocalTableAliasName() + "." + columnName;\r
- sb.append(realColumnName).append(" as ").append(columnName);\r
- _selectClauseRealColumnAliasMap.put(realColumnName, columnName);\r
- }\r
- if (_isIncludedSelectColumnEffective && !_includedSelectColumnMap.isEmpty()) {\r
- sb.append(getIncludedSelectColumnClause());\r
- }\r
-\r
- // [DBFlute-0.7.4]\r
- if (_specifiedDeriveSubQueryMap != null && !_specifiedDeriveSubQueryMap.isEmpty()) {\r
- Collection<String> deriveSubQuerySet = _specifiedDeriveSubQueryMap.values();\r
- foreach (String deriveSubQuery in deriveSubQuerySet) {\r
- if (isFormatClauseEffective()) {\r
- sb.append(getLineSeparator()).append(" ");\r
- }\r
- sb.append(", ").append(deriveSubQuery);\r
- }\r
- }\r
-\r
- return sb.toString();\r
- }\r
- \r
- public String getSelectHint() {\r
- return createSelectHint();\r
- }\r
-\r
- public String getIncludedSelectColumnClause() {\r
- StringBuilder sb = new StringBuilder();\r
- int count = 0;\r
- for (Iterator<String> ite = _includedSelectColumnMap.keySet().iterator(); ite.hasNext(); count++) {\r
- String aliasName = ite.next();\r
- String realColumnName = (String)_includedSelectColumnMap.get(aliasName);\r
- sb.append(", ").append(realColumnName).append(" as ").append(aliasName);\r
- _selectClauseRealColumnAliasMap.put(realColumnName, aliasName);\r
- }\r
- return sb.toString();\r
- }\r
-\r
- public String getFromClause() {\r
- StringBuilder sb = new StringBuilder();\r
- if (isFormatClauseEffective()) {\r
- sb.append(getLineSeparator()).append(" ");\r
- }\r
- sb.append("from ");\r
- if (_baseTableInlineWhereList.isEmpty()) {\r
- sb.append(_tableName).append(" dflocal");\r
- } else {\r
- sb.append(getInlineViewClause(_tableName, _baseTableInlineWhereList)).append(" dflocal");\r
- }\r
- sb.append(getFromBaseTableHint());\r
- sb.append(getLeftOuterJoinClause());\r
- return sb.toString();\r
- }\r
-\r
- protected String getLeftOuterJoinClause() {\r
- StringBuilder sb = new StringBuilder();\r
- for (Iterator<String> ite = _outerJoinMap.keySet().iterator(); ite.hasNext(); ) {\r
- String aliasName = ite.next();\r
- LeftOuterJoinInfo joinInfo = (LeftOuterJoinInfo)_outerJoinMap.get(aliasName);\r
- String joinTableName = joinInfo.getJoinTableName();\r
- List<String> inlineWhereClauseList = joinInfo.getInlineWhereClauseList();\r
- List<String> additionalOnClauseList = joinInfo.getAdditionalOnClauseList();\r
- Map<String, String> joinOnMap = joinInfo.getJoinOnMap();\r
- assertJoinOnMapNotEmpty(joinOnMap, aliasName);\r
-\r
- if (isFormatClauseEffective()) {\r
- sb.append(getLineSeparator()).append(" ");\r
- }\r
- sb.append(" left outer join ");\r
- if (inlineWhereClauseList.isEmpty()) {\r
- sb.append(joinTableName);\r
- } else {\r
- sb.append(getInlineViewClause(joinTableName, inlineWhereClauseList));\r
- }\r
- sb.append(" ").append(aliasName).append(" on ");\r
- int count = 0;\r
- Set<String> localColumnNameSet = joinOnMap.keySet();\r
- foreach (String localColumnName in localColumnNameSet) {\r
- String foreignColumnName = (String)joinOnMap.get(localColumnName);\r
- if (count > 0) {\r
- sb.append(" and ");\r
- }\r
- if (localColumnName.Equals("$$fixedCondition$$")) {\r
- sb.append(foreignColumnName);\r
- } else {\r
- sb.append(localColumnName).append(" = ").append(foreignColumnName);\r
- }\r
- ++count;\r
- }\r
- foreach (String additionalOnClause in additionalOnClauseList) {\r
- sb.append(" and ").append(additionalOnClause);\r
- }\r
- }\r
- return sb.toString();\r
- }\r
-\r
- protected String getInlineViewClause(String joinTableName, List<String> inlineWhereClauseList) {\r
- StringBuilder sb = new StringBuilder();\r
- sb.append("(select * from ").append(joinTableName).append(" where ");\r
- int count = 0;\r
- for (Iterator<String> ite = inlineWhereClauseList.iterator(); ite.hasNext(); ) {\r
- String clauseElement = ite.next();\r
- // clauseElement = filterWhereClauseSimply(clauseElement); *Non Support on C#\r
- if (count > 0) {\r
- sb.append(" and ");\r
- }\r
- sb.append(clauseElement);\r
- ++count;\r
- }\r
- sb.append(")");\r
- return sb.toString();\r
- }\r
-\r
- public String getFromBaseTableHint() {\r
- return createFromBaseTableHint();\r
- }\r
-\r
- public String getFromHint() {\r
- return createFromHint();\r
- }\r
-\r
- public String getWhereClause() {\r
- return buildWhereClause(false);\r
- }\r
- \r
- protected String buildWhereClause(bool template) {\r
- StringBuilder sb = new StringBuilder();\r
- int count = 0;\r
- for (Iterator<String> ite = _whereList.iterator(); ite.hasNext(); count++) {\r
- String clauseElement = (String)ite.next();\r
- // clauseElement = filterWhereClauseSimply(clauseElement); *Non Support on C#\r
- if (count == 0) {\r
- if (isFormatClauseEffective()) {\r
- sb.append(getLineSeparator()).append(" ");\r
- }\r
- sb.append("where ").append(template ? getWhereFirstConditionMark() : "").append(clauseElement);\r
- } else {\r
- if (isFormatClauseEffective()) {\r
- sb.append(getLineSeparator()).append(" ");\r
- }\r
- sb.append(" and ").append(clauseElement);\r
- }\r
- }\r
- if (template && sb.length() == 0) {\r
- sb.append(getWhereClauseMark());\r
- }\r
- return sb.toString();\r
- }\r
- \r
- public String getOrderByClause() {\r
- String orderByClause = null;\r
- if (!_unionQueryInfoList.isEmpty()) {\r
- if (_selectClauseRealColumnAliasMap == null || _selectClauseRealColumnAliasMap.isEmpty()) {\r
- String msg = "The selectClauseColumnAliasMap should not be null or empty when union query exists: " + toString();\r
- throw new IllegalStateException(msg);\r
- }\r
- orderByClause = _orderByClause.getOrderByClause(_selectClauseRealColumnAliasMap);\r
- } else {\r
- orderByClause = _orderByClause.getOrderByClause();\r
- }\r
- if (isFormatClauseEffective() && orderByClause != null && orderByClause.Trim().Length > 0) {\r
- return getLineSeparator() + " " + orderByClause;\r
- } else {\r
- return orderByClause;\r
- }\r
- }\r
-\r
- public String getSqlSuffix() {\r
- String sqlSuffix = createSqlSuffix();\r
- if (isFormatClauseEffective() && sqlSuffix != null && sqlSuffix.Trim().Length > 0) {\r
- return getLineSeparator() + sqlSuffix;\r
- } else {\r
- return sqlSuffix;\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Copy Parts\r
- // ==========\r
- public void copyIncludedSelectColumn(${glSqlClauseInterfaceName} sqlClause) {\r
- Set<String> keySet = _includedSelectColumnMap.keySet();\r
- for (Iterator<String> ite = keySet.iterator(); ite.hasNext(); ) {\r
- String aliasName = ite.next();\r
- String realColumnName = (String)_includedSelectColumnMap.get(aliasName);\r
- sqlClause.registerIncludedSelectColumn(aliasName, realColumnName);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // SelectedSelectColumn\r
- // ====================\r
- /**\r
- * Register selected select column.\r
- * \r
- * @param foreignTableAliasName The alias name of foreign table. (NotNull)\r
- * @param localTableName The table name of local. (NotNull)\r
- * @param foreignPropertyName The property name of foreign table. (NotNull)\r
- * @param localRelationPath The path of local relation. (Nullable)\r
- */\r
- public void registerSelectedSelectColumn(String foreignTableAliasName\r
- , String localTableName\r
- , String foreignPropertyName\r
- , String localRelationPath) {\r
- _selectedSelectColumnMap.put(foreignTableAliasName, createSelectedSelectColumnInfo(foreignTableAliasName, localTableName, foreignPropertyName, localRelationPath));\r
- }\r
- \r
- protected Map<String, SelectedSelectColumnInfo> createSelectedSelectColumnInfo(String foreignTableAliasName\r
- , String localTableName\r
- , String foreignPropertyName\r
- , String localRelationPath) {\r
- ${glDBMetaInterfaceName} dbmeta = ${glDBMetaInstanceHandlerName}.FindDBMeta(localTableName);\r
- ${glForeignInfoName} foreignInfo = dbmeta.FindForeignInfo(foreignPropertyName);\r
- int relationNo = foreignInfo.RelationNo;\r
- String nextRelationPath = "_" + relationNo;\r
- if (localRelationPath != null) {\r
- nextRelationPath = localRelationPath + nextRelationPath;\r
- }\r
- Map<String, SelectedSelectColumnInfo> resultMap = new LinkedHashMap<String, SelectedSelectColumnInfo>();\r
- ${glDBMetaInterfaceName} foreignDBMeta = foreignInfo.ForeignDBMeta;\r
- foreach (${glColumnInfoName} columnInfo in foreignDBMeta.ColumnInfoList) {\r
- String columnDbName = columnInfo.ColumnDbName;\r
- SelectedSelectColumnInfo selectColumnInfo = new SelectedSelectColumnInfo();\r
- selectColumnInfo.setTableAliasName(foreignTableAliasName);\r
- selectColumnInfo.setColumnName(columnDbName);\r
- selectColumnInfo.setColumnAliasName(columnDbName + nextRelationPath);\r
- resultMap.put(columnDbName, selectColumnInfo);\r
- }\r
- return resultMap;\r
- }\r
-\r
- public class SelectedSelectColumnInfo {\r
- protected String tableAliasName;\r
- protected String columnName;\r
- protected String columnAliasName;\r
- public String buildRealColumnName() {\r
- if (tableAliasName != null) {\r
- return tableAliasName + "." + columnName;\r
- } else {\r
- return columnName;\r
- }\r
- }\r
- public String getTableAliasName() {\r
- return tableAliasName;\r
- }\r
- public void setTableAliasName(String tableAliasName) {\r
- this.tableAliasName = tableAliasName;\r
- }\r
- public String getColumnName() {\r
- return columnName;\r
- }\r
- public void setColumnName(String columnName) {\r
- this.columnName = columnName;\r
- }\r
- public String getColumnAliasName() {\r
- return columnAliasName;\r
- }\r
- public void setColumnAliasName(String columnAliasName) {\r
- this.columnAliasName = columnAliasName;\r
- }\r
- }\r
- \r
- // ===================================================================================\r
- // IncludedSelectColumn\r
- // ====================\r
- public void ignoreIncludedSelectColumn() {\r
- _isIncludedSelectColumnEffective = false;\r
- }\r
-\r
- public void makeIncludedSelectColumnEffective() {\r
- if (!_includedSelectColumnMap.isEmpty()) {\r
- _isIncludedSelectColumnEffective = true;\r
- }\r
- }\r
-\r
- public void registerIncludedSelectColumn(String aliasName, String realColumnName) {\r
- _isIncludedSelectColumnEffective = true;\r
- _includedSelectColumnMap.put(aliasName, realColumnName);\r
- }\r
-\r
- // ===================================================================================\r
- // OuterJoin\r
- // =========\r
- public void registerOuterJoin(String joinTableName, String aliasName, Map<String, String> joinOnMap) {\r
- assertAlreadyOuterJoin(aliasName);\r
- assertJoinOnMapNotEmpty(joinOnMap, aliasName);\r
- LeftOuterJoinInfo joinInfo = new LeftOuterJoinInfo();\r
- joinInfo.setAliasName(aliasName);\r
- joinInfo.setJoinTableName(joinTableName);\r
- joinInfo.setJoinOnMap(joinOnMap);\r
- _outerJoinMap.put(aliasName, joinInfo);\r
- }\r
-\r
- protected class LeftOuterJoinInfo {\r
- protected String _aliasName;\r
- protected String _joinTableName;\r
- protected List<String> _inlineWhereClauseList = new ArrayList<String>();\r
- protected List<String> _additionalOnClauseList = new ArrayList<String>();\r
- protected Map<String, String> _joinOnMap;\r
- protected bool _onClauseInline;\r
- public String getAliasName() {\r
- return _aliasName;\r
- }\r
- public void setAliasName(String value) {\r
- _aliasName = value;\r
- }\r
- public String getJoinTableName() {\r
- return _joinTableName;\r
- }\r
- public void setJoinTableName(String value) {\r
- _joinTableName = value;\r
- }\r
- public List<String> getInlineWhereClauseList() {\r
- return _inlineWhereClauseList;\r
- }\r
- public void addInlineWhereClause(String value) {\r
- _inlineWhereClauseList.add(value);\r
- }\r
- public List<String> getAdditionalOnClauseList() {\r
- return _additionalOnClauseList;\r
- }\r
- public void addAdditionalOnClause(String value) {\r
- _additionalOnClauseList.add(value);\r
- }\r
- public Map<String, String> getJoinOnMap() {\r
- return _joinOnMap;\r
- }\r
- public void setJoinOnMap(Map<String, String> value) {\r
- _joinOnMap = value;\r
- }\r
- public bool isOnClauseInline() {\r
- return _onClauseInline;\r
- }\r
- public void setOnClauseInline(bool value) {\r
- _onClauseInline = value;\r
- }\r
- }\r
-\r
- protected void assertAlreadyOuterJoin(String aliasName) {\r
- if (_outerJoinMap.containsKey(aliasName)) {\r
- String msg = "The alias name have already registered in outer join: " + aliasName;\r
- throw new IllegalStateException(msg);\r
- }\r
- }\r
-\r
- protected void assertJoinOnMapNotEmpty(Map<String, String> joinOnMap, String aliasName) {\r
- if (joinOnMap.isEmpty()) {\r
- String msg = "The joinOnMap should not be empty: aliasName=" + aliasName;\r
- throw new IllegalStateException(msg);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Where\r
- // =====\r
- public void registerWhereClause(String columnFullName, ${glConditionKeyName} key, ${glConditionValueName} value) {\r
- assertStringNotNullAndNotTrimmedEmpty("columnFullName", columnFullName);\r
- key.addWhereClause(_whereList, columnFullName, value);\r
- arrangeWhereListAdditionalConditionAsOr(_whereList);\r
- }\r
-\r
- public void registerWhereClause(String columnFullName, ${glConditionKeyName} key, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option) {\r
- assertStringNotNullAndNotTrimmedEmpty("columnFullName", columnFullName);\r
- assertObjectNotNull("option of " + columnFullName, option);\r
- key.addWhereClause(_whereList, columnFullName, value, option);\r
- arrangeWhereListAdditionalConditionAsOr(_whereList);\r
- }\r
-\r
- public void registerWhereClause(String clause) {\r
- assertStringNotNullAndNotTrimmedEmpty("clause", clause);\r
- _whereList.add(clause);\r
- arrangeWhereListAdditionalConditionAsOr(_whereList);\r
- }\r
-\r
- public void exchangeFirstWhereClauseForLastOne() {\r
- if (_whereList.size() > 1) {\r
- String first = (String)_whereList.get(0);\r
- String last = (String)_whereList.get(_whereList.size() - 1);\r
- _whereList.set(0, last);\r
- _whereList.set(_whereList.size() - 1, first);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // InlineWhere\r
- // ===========\r
- public void registerBaseTableInlineWhereClause(String columnName, ${glConditionKeyName} key, ${glConditionValueName} value) {\r
- assertStringNotNullAndNotTrimmedEmpty("columnName", columnName);\r
- key.addWhereClause(_baseTableInlineWhereList, columnName, value);\r
- arrangeWhereListAdditionalConditionAsOr(_baseTableInlineWhereList);\r
- }\r
-\r
- public void registerBaseTableInlineWhereClause(String columnName, ${glConditionKeyName} key, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option) {\r
- assertStringNotNullAndNotTrimmedEmpty("columnName", columnName);\r
- assertObjectNotNull("option of " + columnName, option);\r
- key.addWhereClause(_baseTableInlineWhereList, columnName, value, option);\r
- arrangeWhereListAdditionalConditionAsOr(_baseTableInlineWhereList);\r
- }\r
-\r
- public void registerBaseTableInlineWhereClause(String value) {\r
- _baseTableInlineWhereList.add(value);\r
- }\r
-\r
- public void registerOuterJoinInlineWhereClause(String aliasName, String columnName, ${glConditionKeyName} key, ${glConditionValueName} value, bool onClauseInline) {\r
- assertNotYetOuterJoin(aliasName);\r
- assertStringNotNullAndNotTrimmedEmpty("columnName", columnName);\r
- LeftOuterJoinInfo joinInfo = (LeftOuterJoinInfo)_outerJoinMap.get(aliasName);\r
- if (onClauseInline) {\r
- key.addWhereClause(joinInfo.getAdditionalOnClauseList(), aliasName + "." + columnName, value);\r
- } else {\r
- key.addWhereClause(joinInfo.getInlineWhereClauseList(), columnName, value);\r
- }\r
- arrangeWhereListAdditionalConditionAsOr(joinInfo.getInlineWhereClauseList());\r
- }\r
-\r
- public void registerOuterJoinInlineWhereClause(String aliasName, String columnName, ${glConditionKeyName} key, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option, bool onClauseInline) {\r
- assertNotYetOuterJoin(aliasName);\r
- assertStringNotNullAndNotTrimmedEmpty("columnName", columnName);\r
- LeftOuterJoinInfo joinInfo = (LeftOuterJoinInfo)_outerJoinMap.get(aliasName);\r
- if (onClauseInline) {\r
- key.addWhereClause(joinInfo.getAdditionalOnClauseList(), aliasName + "." + columnName, value, option);\r
- arrangeWhereListAdditionalConditionAsOr(joinInfo.getAdditionalOnClauseList());\r
- } else {\r
- key.addWhereClause(joinInfo.getInlineWhereClauseList(), columnName, value, option);\r
- arrangeWhereListAdditionalConditionAsOr(joinInfo.getInlineWhereClauseList());\r
- }\r
- }\r
-\r
- public void registerOuterJoinInlineWhereClause(String aliasName, String value, bool onClauseInline) {\r
- assertNotYetOuterJoin(aliasName);\r
- LeftOuterJoinInfo joinInfo = (LeftOuterJoinInfo)_outerJoinMap.get(aliasName);\r
- if (onClauseInline) {\r
- joinInfo.addAdditionalOnClause(value);\r
- arrangeWhereListAdditionalConditionAsOr(joinInfo.getAdditionalOnClauseList());\r
- } else {\r
- joinInfo.addInlineWhereClause(value);\r
- arrangeWhereListAdditionalConditionAsOr(joinInfo.getInlineWhereClauseList());\r
- }\r
- }\r
-\r
- protected void assertNotYetOuterJoin(String aliasName) {\r
- if (!_outerJoinMap.containsKey(aliasName)) {\r
- String msg = "The alias name have not registered in outer join yet: " + aliasName;\r
- throw new IllegalStateException(msg);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // AdditionalConditionAsOr\r
- // =======================\r
- public void makeAdditionalConditionAsOrEffective() {\r
- _isAdditionalConditionAsOrEffective = true;\r
- }\r
-\r
- public void ignoreAdditionalConditionAsOr() {\r
- _isAdditionalConditionAsOrEffective = false;\r
- }\r
-\r
- protected void arrangeWhereListAdditionalConditionAsOr(List<String> whereList) {\r
- if (_isAdditionalConditionAsOrEffective) {\r
- if (whereList.size() < 2) {\r
- String msg = "The whereList should have two more elements when the isAdditionalConditionAsOrEffective is true: " + toString();\r
- throw new IllegalStateException(msg);\r
- }\r
- String lastWhereClause = (String)whereList.remove(whereList.size() - 1);\r
- String preWhereClause = (String)whereList.remove(whereList.size() - 1);\r
- if (preWhereClause.StartsWith("(") && preWhereClause.EndsWith(")")) {\r
- String plainClause = preWhereClause.Substring("(".Length, preWhereClause.Length - ")".Length);\r
- whereList.add("(" + plainClause + " or " + lastWhereClause + ")");\r
- } else {\r
- whereList.add("(" + preWhereClause + " or " + lastWhereClause + ")");\r
- }\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // OrderBy\r
- // =======\r
- public ${glOrderByClauseName} getSqlComponentOfOrderByClause() {\r
- return _orderByClause;\r
- }\r
-\r
- public ${glSqlClauseInterfaceName} clearOrderBy() {\r
- _isOrderByEffective = false;\r
- _orderByClause.clear();\r
- return this;\r
- }\r
-\r
- public ${glSqlClauseInterfaceName} ignoreOrderBy() {\r
- _isOrderByEffective = false;\r
- return this;\r
- }\r
-\r
- public ${glSqlClauseInterfaceName} makeOrderByEffective() {\r
- if (!_orderByClause.isEmpty()) {\r
- _isOrderByEffective = true;\r
- }\r
- return this;\r
- }\r
-\r
- public void reverseOrderBy_Or_OverrideOrderBy(String orderByProperty, String registeredOrderByProperty, bool ascOrDesc) {\r
- _isOrderByEffective = true;\r
- if (!_orderByClause.isSameOrderByColumn(orderByProperty)) {\r
- clearOrderBy();\r
- registerOrderBy(orderByProperty, registeredOrderByProperty, ascOrDesc);\r
- } else {\r
- _orderByClause.reverseAll();\r
- }\r
- }\r
-\r
- public void registerOrderBy(String orderByProperty, String registeredOrderByProperty, bool ascOrDesc) {\r
- try {\r
- _isOrderByEffective = true;\r
- List<String> orderByList = new ArrayList<String>();\r
- {\r
- String[] splitArray = orderByProperty.Split('/');\r
- foreach (String element in splitArray) {\r
- orderByList.add(element);\r
- }\r
- }\r
-\r
- if (registeredOrderByProperty == null || registeredOrderByProperty.Trim().Length ==0) {\r
- registeredOrderByProperty = orderByProperty;\r
- }\r
-\r
- List<String> registeredOrderByList = new ArrayList<String>();\r
- {\r
- String[] splitArray = registeredOrderByProperty.Split('/');\r
- foreach (String element in splitArray) {\r
- registeredOrderByList.add(element);\r
- }\r
- }\r
-\r
- int count = 0;\r
- for (Iterator<String> ite = orderByList.iterator(); ite.hasNext(); ) {\r
- String orderBy = ite.next();\r
- String registeredOrderBy = (String)registeredOrderByList.get(count);\r
-\r
- _isOrderByEffective = true;\r
- String aliasName = null;\r
- String columnName = null;\r
- String registeredAliasName = null;\r
- String registeredColumnName = null;\r
-\r
- if (orderBy.IndexOf(".") < 0) {\r
- columnName = orderBy;\r
- } else {\r
- aliasName = orderBy.Substring(0, orderBy.LastIndexOf("."));\r
- columnName = orderBy.Substring(orderBy.LastIndexOf(".") + 1);\r
- }\r
-\r
- if (registeredOrderBy.IndexOf(".") < 0) {\r
- registeredColumnName = registeredOrderBy;\r
- } else {\r
- registeredAliasName = registeredOrderBy.Substring(0, registeredOrderBy.LastIndexOf("."));\r
- registeredColumnName = registeredOrderBy.Substring(registeredOrderBy.LastIndexOf(".") + 1);\r
- }\r
-\r
- ${glOrderByElementName} element = new ${glOrderByElementName}();\r
- element.setAliasName(aliasName);\r
- element.setColumnName(columnName);\r
- element.setRegisteredAliasName(registeredAliasName);\r
- element.setRegisteredColumnName(registeredColumnName);\r
- if (ascOrDesc) {\r
- element.setupAsc();\r
- } else {\r
- element.setupDesc();\r
- }\r
- _orderByClause.addOrderByElement(element);\r
-\r
- count++;\r
- }\r
- } catch (RuntimeException e) {\r
- String msg = "registerOrderBy() threw the exception: orderByProperty=" + orderByProperty;\r
- msg = msg + " registeredColumnFullName=" + registeredOrderByProperty;\r
- msg = msg + " ascOrDesc=" + ascOrDesc;\r
- msg = msg + " sqlClause=" + this.ToString();\r
- throw new RuntimeException(msg, e);\r
- }\r
- }\r
- \r
- public virtual void addNullsFirstToPreviousOrderBy() {\r
- _orderByClause.addNullsFirstToPreviousOrderByElement(createOrderByNullsSetupper());\r
- }\r
- \r
- public virtual void addNullsLastToPreviousOrderBy() {\r
- _orderByClause.addNullsLastToPreviousOrderByElement(createOrderByNullsSetupper());\r
- }\r
- \r
- protected virtual OrderByNullsSetupper createOrderByNullsSetupper() {// As Default\r
- return new OrderByNullsSetupperBySupported();\r
- }\r
- \r
- protected class OrderByNullsSetupperBySupported : OrderByNullsSetupper {\r
- public String setup(String columnName, String orderByElementClause, bool nullsFirst) {\r
- return orderByElementClause + " nulls " + (nullsFirst ? "first" : "last");\r
- }\r
- }\r
- \r
- protected virtual OrderByNullsSetupper createOrderByNullsSetupperByCaseWhen() {// Helper For Nulls Unsupported Database\r
- return new OrderByNullsSetupperByCaseWhen();\r
- }\r
-\r
- protected class OrderByNullsSetupperByCaseWhen : OrderByNullsSetupper {\r
- public String setup(String columnName, String orderByElementClause, bool nullsFirst) {\r
- String thenNumber = nullsFirst ? "1" : "0";\r
- String elseNumber = nullsFirst ? "0" : "1";\r
- String caseWhen = "case when " + columnName + " is not null then " + thenNumber + " else " + elseNumber + " end asc";\r
- return caseWhen + ", " + orderByElementClause;\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // UnionQuery\r
- // ==========\r
- public void registerUnionQuery(String unionQueryClause, bool unionAll) {\r
- assertStringNotNullAndNotTrimmedEmpty("unionQueryClause", unionQueryClause);\r
- UnionQueryInfo unionQueryInfo = new UnionQueryInfo();\r
- unionQueryInfo.setUnionQueryClause(unionQueryClause);\r
- unionQueryInfo.setUnionAll(unionAll);\r
- _unionQueryInfoList.add(unionQueryInfo);\r
- }\r
-\r
- protected class UnionQueryInfo {\r
- protected String _unionQueryClause;\r
- protected bool _unionAll;\r
- public String getUnionQueryClause() {\r
- return _unionQueryClause;\r
- }\r
- public void setUnionQueryClause(String unionQueryClause) {\r
- _unionQueryClause = unionQueryClause;\r
- }\r
- public bool isUnionAll() {\r
- return _unionAll;\r
- }\r
- public void setUnionAll(bool unionAll) {\r
- _unionAll = unionAll;\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Advance\r
- // =======\r
- /**\r
- * @param fetchSize Fetch-size. (NotMinus & NotZero)\r
- * @return this. (NotNull)\r
- */\r
- public ${glSqlClauseInterfaceName} fetchFirst(int fetchSize) {\r
- _isFetchScopeEffective = true;\r
- if (fetchSize <= 0) {\r
- String msg = "Argument[fetchSize] must be plus: " + fetchSize;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- _fetchStartIndex = 0;\r
- _fetchSize = fetchSize;\r
- _fetchPageNumber = 1;\r
- doClearFetchPageClause();\r
- doFetchFirst();\r
- return this;\r
- }\r
-\r
- /**\r
- * @param fetchStartIndex Fetch-start-index. 0 origin. (NotMinus)\r
- * @param fetchSize Fetch size. (NotMinus)\r
- * @return this. (NotNull)\r
- */\r
- public ${glSqlClauseInterfaceName} fetchScope(int fetchStartIndex, int fetchSize) {\r
- _isFetchScopeEffective = true;\r
- if (fetchStartIndex < 0) {\r
- String msg = "Argument[fetchStartIndex] must be plus or zero: " + fetchStartIndex;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (fetchSize <= 0) {\r
- String msg = "Argument[fetchSize] must be plus: " + fetchSize;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- _fetchStartIndex = fetchStartIndex;\r
- _fetchSize = fetchSize;\r
- return fetchPage(1);\r
- }\r
-\r
- /**\r
- * @param fetchPageNumber Page-number. 1 origin. (NotMinus & NotZero: If minus or zero, set one.)\r
- * @return this. (NotNull)\r
- */\r
- public ${glSqlClauseInterfaceName} fetchPage(int fetchPageNumber) {\r
- _isFetchScopeEffective = true;\r
- if (fetchPageNumber <= 0) {\r
- fetchPageNumber = 1;\r
- }\r
- if (_fetchSize <= 0) {\r
- String msg = "Fetch size should not be minus or zero!" + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "Look! Read the message below." + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "When you invoke this method, it is necessary to invoke 'FetchFirst()' or 'FetchScope()' ahead of that. " + getLineSeparator();\r
- msg = msg + "Please confirm your program. Does it really invoke 'FetchPage()' with 'FetchFirst()' or 'FetchScope()'?" + getLineSeparator();\r
- msg = msg + " For example:" + getLineSeparator();\r
- msg = msg + " before (x):" + getLineSeparator();\r
- msg = msg + " XxxCB cb = new XxxCB();" + getLineSeparator();\r
- msg = msg + " cb.FetchPage(3);" + getLineSeparator();\r
- msg = msg + " after (o):" + getLineSeparator();\r
- msg = msg + " XxxCB cb = new XxxCB();" + getLineSeparator();\r
- msg = msg + " cb.FetchFirst(20); // The size of page" + getLineSeparator();\r
- msg = msg + " cb.FetchPage(3); // The number of target page" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Actual Parameter Value]" + getLineSeparator();\r
- msg = msg + "fetchSize=" + _fetchSize + getLineSeparator();\r
- msg = msg + "fetchPageNumber=" + fetchPageNumber + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */" + getLineSeparator();\r
- throw new IllegalStateException(msg);\r
- }\r
- _fetchPageNumber = fetchPageNumber;\r
- if (_fetchPageNumber == 1 && _fetchStartIndex == 0) {\r
- return fetchFirst(_fetchSize);\r
- }\r
- doClearFetchPageClause();\r
- doFetchPage();\r
- return this;\r
- }\r
-\r
- abstract protected void doFetchFirst();\r
- abstract protected void doFetchPage();\r
- abstract protected void doClearFetchPageClause();\r
-\r
- public virtual int getFetchStartIndex() {\r
- return _fetchStartIndex;\r
- }\r
-\r
- public virtual int getFetchSize() {\r
- return _fetchSize;\r
- }\r
-\r
- public virtual int getFetchPageNumber() {\r
- return _fetchPageNumber;\r
- }\r
-\r
- /**\r
- * @return Page start index. 0 origin. (NotMinus)\r
- */\r
- public virtual int getPageStartIndex() {\r
- if (_fetchPageNumber <= 0) {\r
- String msg = "_fetchPageNumber must be plus: " + _fetchPageNumber;\r
- throw new IllegalStateException(msg);\r
- }\r
- return _fetchStartIndex + (_fetchSize * (_fetchPageNumber - 1));\r
- }\r
-\r
- /**\r
- * @return Page end index. 0 origin. (NotMinus)\r
- */\r
- public virtual int getPageEndIndex() {\r
- if (_fetchPageNumber <= 0) {\r
- String msg = "_fetchPageNumber must be plus: " + _fetchPageNumber;\r
- throw new IllegalStateException(msg);\r
- }\r
- return _fetchStartIndex + (_fetchSize * _fetchPageNumber);\r
- }\r
-\r
- public virtual bool isFetchScopeEffective() {\r
- return _isFetchScopeEffective;\r
- }\r
-\r
- public virtual ${glSqlClauseInterfaceName} ignoreFetchScope() {\r
- _isFetchScopeEffective = false;\r
- doClearFetchPageClause();\r
- return this;\r
- }\r
-\r
- public virtual ${glSqlClauseInterfaceName} makeFetchScopeEffective() {\r
- if (getFetchSize() > 0 && getFetchPageNumber() > 0) {\r
- fetchPage(getFetchPageNumber());\r
- }\r
- return this;\r
- }\r
- \r
- public virtual bool isFetchStartIndexSupported() {\r
- return true; // Default\r
- }\r
-\r
- public virtual bool isFetchSizeSupported() {\r
- return true; // Default\r
- }\r
-\r
- abstract protected String createSelectHint();\r
- abstract protected String createFromBaseTableHint();\r
- abstract protected String createFromHint();\r
- abstract protected String createSqlSuffix();\r
-\r
- // ===================================================================================\r
- // Fetch Narrowing\r
- // ===============\r
- public virtual int getFetchNarrowingSkipStartIndex() {\r
- return getPageStartIndex();\r
- }\r
-\r
- public virtual int getFetchNarrowingLoopCount() {\r
- return getFetchSize();\r
- }\r
-\r
- public virtual bool isFetchNarrowingEffective() {\r
- return _isFetchScopeEffective;\r
- }\r
-\r
- // ===================================================================================\r
- // Lock\r
- // ====\r
- public abstract ${glSqlClauseInterfaceName} lockForUpdate();\r
- \r
- // ===================================================================================\r
- // Resolver\r
- // ========\r
- public String resolveJoinAliasName(String relationPath, int cqNestNo) {\r
- return resolveNestLevelExpression("dfrelation" + relationPath, cqNestNo);\r
- }\r
-\r
- public String resolveNestLevelExpression(String name, int cqNestNo) {\r
- // if (cqNestNo > 1) {\r
- // return name + "_n" + cqNestNo;\r
- // } else {\r
- // return name;\r
- // }\r
- return name;\r
- }\r
-\r
- public int resolveRelationNo(String localTableName, String foreignPropertyName) {\r
- ${glDBMetaInterfaceName} dbmeta = ${glDBMetaInstanceHandlerName}.FindDBMeta(localTableName);\r
- ${glForeignInfoName} foreignInfo = dbmeta.FindForeignInfo(foreignPropertyName);\r
- return foreignInfo.RelationNo;\r
- }\r
-\r
- // ===================================================================================\r
- // Table Alias Info\r
- // ================\r
- public String getLocalTableAliasName() {\r
- return "dflocal";\r
- }\r
- \r
- public String getForeignTableAliasPrefix() {\r
- return "dfrelation";\r
- }\r
-\r
- // ===================================================================================\r
- // Template Mark\r
- // =============\r
- public String getWhereClauseMark() {\r
- return "#df:whereClause#";\r
- }\r
- \r
- public String getWhereFirstConditionMark() {\r
- return "#df:whereFirstCondition#";\r
- }\r
- \r
- public String getUnionSelectClauseMark() {\r
- return "#df:unionSelectClause#";\r
- }\r
- \r
- public String getUnionWhereClauseMark() {\r
- return "#df:unionWhereClause#";\r
- }\r
- \r
- public String getUnionWhereFirstConditionMark() {\r
- return "#df:unionWhereFirstCondition#";\r
- }\r
- \r
-// // =====================================================================================\r
-// // Where Clause Simple Filter\r
-// // ==========================\r
-// public void addWhereClauseSimpleFilter(${glWhereClauseSimpleFilterInterfaceName} whereClauseSimpleFilter) {\r
-// if (_whereClauseSimpleFilterList == null) {\r
-// _whereClauseSimpleFilterList = new ArrayList<${glWhereClauseSimpleFilterInterfaceName}>();\r
-// }\r
-// _whereClauseSimpleFilterList.add(whereClauseSimpleFilter);\r
-// }\r
-//\r
-// protected String filterWhereClauseSimply(String clauseElement) {\r
-// if (_whereClauseSimpleFilterList == null || _whereClauseSimpleFilterList.isEmpty()) {\r
-// return clauseElement;\r
-// }\r
-// for (Iterator<${glWhereClauseSimpleFilterInterfaceName}> ite = _whereClauseSimpleFilterList.iterator(); ite.hasNext(); ) {\r
-// ${glWhereClauseSimpleFilterInterfaceName} filter = ite.next();\r
-// if (filter == null) {\r
-// String msg = "The list of filter should not have null: _whereClauseSimpleFilterList=" + _whereClauseSimpleFilterList;\r
-// throw new IllegalStateException(msg);\r
-// }\r
-// clauseElement = filter.filterClauseElement(clauseElement);\r
-// }\r
-// return clauseElement;\r
-// }\r
- \r
- // =====================================================================================\r
- // Selected Foreign Info\r
- // =====================\r
- public bool isSelectedForeignInfoEmpty() {\r
- if (_selectedForeignInfo == null) {\r
- return true;\r
- }\r
- return _selectedForeignInfo.isEmpty();\r
- }\r
-\r
- public bool hasSelectedForeignInfo(String relationPath) {\r
- if (_selectedForeignInfo == null) {\r
- return false;\r
- }\r
- return _selectedForeignInfo.containsKey(relationPath);\r
- }\r
-\r
- public void registerSelectedForeignInfo(String relationPath, String foreignPropertyName) {\r
- if (_selectedForeignInfo == null) {\r
- _selectedForeignInfo = new HashMap<String, String>();\r
- }\r
- _selectedForeignInfo.put(relationPath, foreignPropertyName);\r
- }\r
- \r
- // ===================================================================================\r
- // Format Clause\r
- // =============\r
- public bool isFormatClauseEffective() {\r
- return _formatClause;\r
- }\r
-\r
- public void makeFormatClauseEffective() {\r
- _formatClause = true;\r
- }\r
-\r
- // ===================================================================================\r
- // Sub Query Indent\r
- // ================\r
- public String resolveSubQueryBeginMark(String subQueryIdentity) {\r
- return getSubQueryBeginMarkPrefix() + subQueryIdentity + getSubQueryIdentityTerminal();\r
- }\r
-\r
- public String resolveSubQueryEndMark(String subQueryIdentity) {\r
- return getSubQueryEndMarkPrefix() + subQueryIdentity + getSubQueryIdentityTerminal();\r
- }\r
-\r
- protected String getSubQueryBeginMarkPrefix() {\r
- return "--df:SubQueryBegin#";\r
- }\r
-\r
- protected String getSubQueryEndMarkPrefix() {\r
- return "--df:SubQueryEnd#";\r
- }\r
- \r
- protected String getSubQueryIdentityTerminal() {\r
- return "#IdentityTerminal#";\r
- }\r
-\r
- public String filterSubQueryIndent(String sql) {\r
- return isFormatClauseEffective() ? filterSubQueryIndent(sql, "") : sql;\r
- }\r
-\r
- protected String filterSubQueryIndent(String sql, String preIndent) {\r
- if (!isFormatClauseEffective()) {\r
- return sql;\r
- }\r
- String lineSeparator = getLineSeparator();\r
- if (!sql.Contains(getSubQueryBeginMarkPrefix())) {\r
- return sql;\r
- }\r
- String[] lines = sql.Split(lineSeparator.ToCharArray());// *Attension about difference between Language!\r
- String beginMarkPrefix = getSubQueryBeginMarkPrefix();\r
- String endMarkPrefix = getSubQueryEndMarkPrefix();\r
- String identityTerminal = getSubQueryIdentityTerminal();\r
- int terminalLength = identityTerminal.Length;\r
- StringBuilder mainSb = new StringBuilder();\r
- StringBuilder subSb = null;\r
- bool throughBegin = false;\r
- bool throughBeginFirst = false;\r
- String subQueryIdentity = null;\r
- String indent = null;\r
- foreach (String line in lines) {\r
- if (!throughBegin) {\r
- if (line.Contains(beginMarkPrefix)) {\r
- throughBegin = true;\r
- subSb = new StringBuilder();\r
- int markIndex = line.IndexOf(beginMarkPrefix);\r
- int terminalIndex = line.IndexOf(identityTerminal);\r
- if (terminalIndex < 0) {\r
- String msg = "Identity terminal was Not Found at the begin line: [" + line + "]";\r
- throw new SubQueryIndentFailureException(msg);\r
- }\r
- String clause = line.Substring(0, markIndex) + line.Substring(terminalIndex + terminalLength);\r
- subQueryIdentity = line.Substring(markIndex + beginMarkPrefix.Length, terminalIndex - (markIndex + beginMarkPrefix.Length));// *Attension about difference between Language!\r
- subSb.append(clause);\r
- indent = buildSpaceBar(markIndex - preIndent.Length);\r
- } else {\r
- mainSb.append(line).append(getLineSeparator());\r
- }\r
- } else {\r
- // - - - - - - - -\r
- // In begin to end\r
- // - - - - - - - -\r
- if (line.Contains(endMarkPrefix + subQueryIdentity)) {// The end\r
- int markIndex = line.IndexOf(endMarkPrefix);\r
- int terminalIndex = line.IndexOf(identityTerminal);\r
- if (terminalIndex < 0) {\r
- String msg = "Identity terminal was Not Found at the begin line: [" + line + "]";\r
- throw new SubQueryIndentFailureException(msg);\r
- }\r
- String clause = line.Substring(0, markIndex) + line.Substring(terminalIndex + terminalLength);\r
- subSb.append(clause).append(getLineSeparator());\r
- String currentSql = filterSubQueryIndent(subSb.toString(), preIndent + indent);\r
- mainSb.append(currentSql);\r
- throughBegin = false;\r
- throughBeginFirst = false;\r
- } else {\r
- if (!throughBeginFirst) {\r
- subSb.append(line.Trim()).append(getLineSeparator());\r
- throughBeginFirst = true;\r
- } else {\r
- subSb.append(indent).append(line).append(getLineSeparator());\r
- }\r
- }\r
- }\r
- }\r
- String filteredSql = mainSb.toString();\r
- \r
- if (throughBegin) {\r
- String msg = "End Mark Not Found!";\r
- msg = msg + getLineSeparator() + "[Current SubQueryIdentity]" + getLineSeparator();\r
- msg = msg + subQueryIdentity + getLineSeparator();\r
- msg = msg + getLineSeparator() + "[Before Filter]" + getLineSeparator();\r
- msg = msg + sql + getLineSeparator();\r
- msg = msg + getLineSeparator() + "[After Filter]" + getLineSeparator() + filteredSql;\r
- throw new SubQueryIndentFailureException(msg);\r
- }\r
- if (filteredSql.Contains(beginMarkPrefix)) {\r
- String msg = "Any begin marks are not filtered!";\r
- msg = msg + getLineSeparator() + "[Current SubQueryIdentity]" + getLineSeparator();\r
- msg = msg + subQueryIdentity + getLineSeparator();\r
- msg = msg + getLineSeparator() + "[Before Filter]" + getLineSeparator();\r
- msg = msg + sql + getLineSeparator();\r
- msg = msg + getLineSeparator() + "[After Filter]" + getLineSeparator() + filteredSql;\r
- throw new SubQueryIndentFailureException(msg);\r
- }\r
- return filteredSql;\r
- }\r
- \r
- protected String buildSpaceBar(int size) {\r
- StringBuilder sb = new StringBuilder();\r
- for (int i = 0; i < size; i++) {\r
- sb.append(" ");\r
- }\r
- return sb.toString();\r
- }\r
- \r
- public class SubQueryIndentFailureException : RuntimeException {\r
- public SubQueryIndentFailureException(String msg) : base(msg) {\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Specification\r
- // =============\r
- public void specifySelectColumn(String tableAliasName, String columnName) {\r
- if (_specifiedSelectColumnMap == null) {\r
- _specifiedSelectColumnMap = new HashMap<String, Map<String, String>>();\r
- }\r
- if (!_specifiedSelectColumnMap.containsKey(tableAliasName)) {\r
- _specifiedSelectColumnMap.put(tableAliasName, new HashMap<String, String>());\r
- }\r
- Map<String, String> elementMap = _specifiedSelectColumnMap.get(tableAliasName);\r
- elementMap.put(columnName, null); // The value is dummy for extension at the future.\r
- _specifiedSelectColumnMap.put(tableAliasName, elementMap);\r
- }\r
-\r
- public void specifyDeriveSubQuery(String aliasName, String deriveSubQuery) {\r
- if (_specifiedDeriveSubQueryMap == null) {\r
- _specifiedDeriveSubQueryMap = new LinkedHashMap<String, String>();\r
- }\r
- _specifiedDeriveSubQueryMap.put(aliasName, deriveSubQuery);\r
- }\r
-\r
- public bool hasSpecifiedDeriveSubQuery(String aliasName) {\r
- if (_specifiedDeriveSubQueryMap == null) { return false; }\r
- return _specifiedDeriveSubQueryMap.containsKey(aliasName);\r
- }\r
-\r
- public String getSpecifiedColumnNameAsOne() {\r
- if (_specifiedSelectColumnMap != null && _specifiedSelectColumnMap.size() == 1) {\r
- Map<String, String> elementMap = _specifiedSelectColumnMap.get(_specifiedSelectColumnMap.keySet().iterator().next());\r
- if (elementMap != null && elementMap.size() == 1) {\r
- return elementMap.keySet().iterator().next();\r
- }\r
- }\r
- return null;\r
- }\r
-\r
- public void clearSpecifiedSelectColumn() {\r
- if (_specifiedSelectColumnMap != null) { _specifiedSelectColumnMap.clear(); _specifiedSelectColumnMap = null; }\r
- }\r
-\r
- // [DBFlute-0.7.9]\r
- // ===================================================================================\r
- // Query Update\r
- // ============\r
- public String getClauseQueryUpdate(Map<String, String> columnParameterMap) {\r
- if (columnParameterMap.isEmpty()) {\r
- return null;\r
- }\r
- String aliasName = getLocalTableAliasName();\r
- ${glDBMetaInterfaceName} dbmeta = findDBMeta();\r
- if (dbmeta.HasTwoOrMorePrimaryKeys) {\r
- String msg = "The target table of queryUpdate() should have only one primary key:";\r
- msg = msg + " primaryKeys=" + toStringView(dbmeta.PrimaryUniqueInfo.UniqueColumnList);\r
- throw new IllegalStateException(msg);\r
- }\r
- String primaryKeyName = dbmeta.PrimaryUniqueInfo.FirstColumn.ColumnDbName;\r
- String selectClause = "select " + aliasName + "." + primaryKeyName;\r
- String fromWhereClause = getClauseFromWhereWithUnionTemplate();\r
-\r
- // Replace template marks. These are very important!\r
- fromWhereClause = replaceString(fromWhereClause, getUnionSelectClauseMark(), selectClause);\r
- fromWhereClause = replaceString(fromWhereClause, getUnionWhereClauseMark(), "");\r
- fromWhereClause = replaceString(fromWhereClause, getUnionWhereFirstConditionMark(), "");\r
-\r
- StringBuilder sb = new StringBuilder();\r
- String ln = "";\r
- if (isFormatClauseEffective()) {\r
- ln = getLineSeparator();\r
- }\r
- sb.append("update ").append(_tableName).append(ln);\r
- int index = 0;\r
- // It is guaranteed that the map has one or more elements.\r
- foreach (String columnName in columnParameterMap.keySet()) {\r
- String parameter = columnParameterMap.get(columnName); \r
- if (index == 0) {\r
- sb.append(" set ").append(columnName).append(" = ").append(parameter).append(ln);\r
- } else {\r
- sb.append(" , ").append(columnName).append(" = ").append(parameter).append(ln);\r
- }\r
- ++index;\r
- }\r
- if (isUpdateSubQueryUseLocalTableSupported()) {\r
- String subQuery = filterSubQueryIndent(selectClause + " " + fromWhereClause);\r
- sb.append(" where ").append(primaryKeyName);\r
- sb.append(" in (").append(ln).append(subQuery).append(ln).append(")");\r
- return sb.toString();\r
- } else {\r
- String subQuery = filterSubQueryIndent(fromWhereClause);\r
- subQuery = replaceString(subQuery, aliasName + ".", "");\r
- subQuery = replaceString(subQuery, " " + aliasName + " ", " ");\r
- subQuery = subQuery.Substring(subQuery.IndexOf("where "));\r
- sb.append(" ").append(subQuery);\r
- return sb.toString();\r
- }\r
- }\r
-\r
- public String getClauseQueryDelete() {\r
- String aliasName = getLocalTableAliasName();\r
- ${glDBMetaInterfaceName} dbmeta = findDBMeta();\r
- if (dbmeta.HasTwoOrMorePrimaryKeys) {\r
- String msg = "The target table of queryDelete() should have only one primary key:";\r
- msg = msg + " primaryKeys=" + toStringView(dbmeta.PrimaryUniqueInfo.UniqueColumnList);\r
- throw new IllegalStateException(msg);\r
- }\r
- String primaryKeyName = dbmeta.PrimaryUniqueInfo.FirstColumn.ColumnDbName;\r
- String selectClause = "select " + aliasName + "." + primaryKeyName;\r
- String fromWhereClause = getClauseFromWhereWithUnionTemplate();\r
- \r
- // Replace template marks. These are very important!\r
- fromWhereClause = replaceString(fromWhereClause, getUnionSelectClauseMark(), selectClause);\r
- fromWhereClause = replaceString(fromWhereClause, getUnionWhereClauseMark(), "");\r
- fromWhereClause = replaceString(fromWhereClause, getUnionWhereFirstConditionMark(), "");\r
- \r
- if (isUpdateSubQueryUseLocalTableSupported()) {\r
- String subQuery = filterSubQueryIndent(selectClause + " " + fromWhereClause);\r
- StringBuilder sb = new StringBuilder();\r
- String ln = "";\r
- if (isFormatClauseEffective()) {\r
- ln = getLineSeparator();\r
- }\r
- sb.append("delete from ").append(_tableName).append(ln);\r
- sb.append(" where ").append(primaryKeyName);\r
- sb.append(" in (").append(ln).append(subQuery).append(ln).append(")");\r
- return sb.toString();\r
- } else {\r
- String subQuery = filterSubQueryIndent(fromWhereClause);\r
- subQuery = replaceString(subQuery, aliasName + ".", "");\r
- subQuery = replaceString(subQuery, " " + aliasName + " ", " ");\r
- subQuery = subQuery.Substring(subQuery.IndexOf("from "));\r
- return "delete " + subQuery;\r
- }\r
- }\r
-\r
- protected virtual bool isUpdateSubQueryUseLocalTableSupported() {\r
- return true;\r
- }\r
- \r
- // [DBFlute-0.7.9]\r
- // ===================================================================================\r
- // Assist Helper\r
- // =============\r
- protected ${glDBMetaInterfaceName} findDBMeta() {\r
- return ${glDBMetaInstanceHandlerName}.FindDBMeta(_tableName); \r
- }\r
-\r
- // ===================================================================================\r
- // General Helper\r
- // ==============\r
- protected String replaceString(String text, String fromText, String toText) {\r
- return ${glSimpleStringUtil}.Replace(text, fromText, toText);\r
- }\r
- \r
- protected String getLineSeparator() {\r
- return ${glSimpleSystemUtil}.GetLineSeparator();\r
- }\r
-\r
- protected String toStringView(Object obj) {\r
- return ${glTraceViewUtilName}.ToStringView(obj);\r
- }\r
- \r
- // -----------------------------------------------------\r
- // Assert Object\r
- // -------------\r
- protected void assertObjectNotNull(String variableName, Object value) {\r
- ${glSimpleAssertUtil}.AssertObjectNotNull(variableName, value);\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Assert String\r
- // -------------\r
- protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, String value) {\r
- ${glSimpleAssertUtil}.AssertStringNotNullAndNotTrimmedEmpty(variableName, value);\r
- }\r
- \r
- // ===================================================================================\r
- // Basic Override\r
- // ==============\r
- public String toString() {\r
- return ToString();\r
- }\r
-}\r
-\r
-}\r
+++ /dev/null
-\r
-#set ($myClassName = "${glOrderByClauseName}")\r
-\r
-using System;\r
-\r
-using ${glPackageBaseCommonJavaLike};\r
-\r
-namespace ${glPackageBaseCommonSqlClause} {\r
-\r
-[System.Serializable]\r
-public class ${myClassName} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected List<${glOrderByElementName}> _orderByList = new ArrayList<${glOrderByElementName}>();\r
-\r
- // ===================================================================================\r
- // Main Method\r
- // ===========\r
- public void addOrderByElement(${glOrderByElementName} value) {\r
- _orderByList.add(value);\r
- }\r
-\r
- public void reverseAll() {\r
- foreach (${glOrderByElementName} element in _orderByList) {\r
- element.reverse();\r
- }\r
- }\r
-\r
- public void exchangeFirstOrderByElementForLastOne() {\r
- if (_orderByList.size() > 1) {\r
- ${glOrderByElementName} first = _orderByList.get(0);\r
- ${glOrderByElementName} last = _orderByList.get(_orderByList.size() - 1);\r
- _orderByList.set(0, last);\r
- _orderByList.set(_orderByList.size() - 1, first);\r
- }\r
- }\r
-\r
- public void addNullsFirstToPreviousOrderByElement(OrderByNullsSetupper filter) {\r
- if (_orderByList.isEmpty()) {\r
- return;\r
- }\r
- ${glOrderByElementName} last = _orderByList.get(_orderByList.size() - 1);\r
- last.setOrderByNullsSetupper(filter, true);\r
- }\r
- \r
- public void addNullsLastToPreviousOrderByElement(OrderByNullsSetupper filter) {\r
- if (_orderByList.isEmpty()) {\r
- return;\r
- }\r
- ${glOrderByElementName} last = _orderByList.get(_orderByList.size() - 1);\r
- last.setOrderByNullsSetupper(filter, false);\r
- }\r
-\r
- public List<${glOrderByElementName}> getOrderByList() {\r
- return _orderByList;\r
- }\r
-\r
- public String getOrderByClause() {\r
- return getOrderByClause(null);\r
- }\r
- \r
- public String getOrderByClause(Map<String, String> selectClauseRealColumnAliasMap) {\r
- if (_orderByList.isEmpty()) {\r
- return "";\r
- }\r
- StringBuilder sb = new StringBuilder();\r
- String delimiter = ", ";\r
- for (Iterator<${glOrderByElementName}> ite = _orderByList.iterator(); ite.hasNext(); ) {\r
- ${glOrderByElementName} element = ite.next();\r
- sb.append(delimiter);\r
- if (selectClauseRealColumnAliasMap != null) {\r
- sb.append(element.getElementClause(selectClauseRealColumnAliasMap));\r
- } else {\r
- sb.append(element.getElementClause());\r
- }\r
- }\r
- sb.delete(0, delimiter.Length).insert(0, "order by ");\r
- return sb.toString();\r
- }\r
-\r
- public String GetFirstElementColumnFullName() {\r
- if (isEmpty()) {\r
- String msg = "This order-by clause is empty: " + ToString();\r
- throw new IllegalStateException(msg);\r
- }\r
- ${glOrderByElementName} element = (${glOrderByElementName})_orderByList.get(0);\r
- return element.getColumnFullName();\r
- }\r
-\r
- public String getFirstElementRegisteredColumnFullName() {\r
- if (isEmpty()) {\r
- String msg = "This order-by clause is empty: " + ToString();\r
- throw new IllegalStateException(msg);\r
- }\r
- ${glOrderByElementName} element = (${glOrderByElementName})_orderByList.get(0);\r
- return element.getRegisteredColumnFullName();\r
- }\r
-\r
- public bool isSameOrderByColumn(String columnFullName) {\r
- String[] columnFullNameArray = columnFullName.Split('/');\r
- if (_orderByList.size() != columnFullNameArray.Length) {\r
- return false;\r
- }\r
- int count = 0;\r
- foreach (String columnFullNameElement in columnFullNameArray) {\r
- ${glOrderByElementName} element = (${glOrderByElementName})_orderByList.get(count);\r
- if (!element.getColumnFullName().ToLower().Equals(columnFullNameElement.ToLower())) {\r
- return false;\r
- }\r
- count++;\r
- }\r
- return true;\r
- }\r
-\r
- public bool isFirstElementAsc() {\r
- if (isEmpty()) {\r
- String msg = "This order-by clause is empty: " + ToString();\r
- throw new IllegalStateException(msg);\r
- }\r
- ${glOrderByElementName} element = (${glOrderByElementName})_orderByList.get(0);\r
- return element.isAsc();\r
- }\r
-\r
- public bool isFirstElementDesc() {\r
- return !isFirstElementAsc();\r
- }\r
-\r
- public bool isSameAsFirstElementAliasName(String expectedAliasName) {\r
- if (isEmpty()) {\r
- String msg = "This order-by clause is empty: " + ToString();\r
- throw new IllegalStateException(msg);\r
- }\r
- ${glOrderByElementName} element = (${glOrderByElementName})_orderByList.get(0);\r
- String actualAliasName = element.getAliasName();\r
- if (actualAliasName != null && expectedAliasName != null) {\r
- return actualAliasName.Equals(expectedAliasName);\r
- } else {\r
- return false;\r
- }\r
- }\r
-\r
- public bool isSameAsFirstElementColumnName(String expectedColumnName) {\r
- if (isEmpty()) {\r
- String msg = "This order-by clause is empty: " + ToString();\r
- throw new IllegalStateException(msg);\r
- }\r
- ${glOrderByElementName} element = (${glOrderByElementName})_orderByList.get(0);\r
- String actualColumnName = element.getColumnName();\r
- if (actualColumnName != null && expectedColumnName != null) {\r
- return actualColumnName.Equals(expectedColumnName);\r
- } else {\r
- return false;\r
- }\r
- }\r
-\r
- public bool isSameAsFirstElementRegisteredAliasName(String expectedRegisteredAliasName) {\r
- if (isEmpty()) {\r
- String msg = "This order-by clause is empty: " + ToString();\r
- throw new IllegalStateException(msg);\r
- }\r
- ${glOrderByElementName} element = (${glOrderByElementName})_orderByList.get(0);\r
- String actualRegisteredAliasName = element.getRegisteredAliasName();\r
- if (actualRegisteredAliasName != null && expectedRegisteredAliasName != null) {\r
- return actualRegisteredAliasName.Equals(expectedRegisteredAliasName);\r
- } else {\r
- return false;\r
- }\r
- }\r
-\r
- public bool isSameAsFirstElementRegisteredColumnName(String expectedRegisteredColumnName) {\r
- if (isEmpty()) {\r
- String msg = "This order-by clause is empty: " + ToString();\r
- throw new IllegalStateException(msg);\r
- }\r
- ${glOrderByElementName} element = (${glOrderByElementName})_orderByList.get(0);\r
- String actualRegisteredColumnName = element.getRegisteredColumnName();\r
- if (actualRegisteredColumnName != null && expectedRegisteredColumnName != null) {\r
- return actualRegisteredColumnName.Equals(expectedRegisteredColumnName);\r
- } else {\r
- return false;\r
- }\r
- }\r
-\r
- public bool isEmpty() {\r
- return _orderByList.isEmpty();\r
- }\r
-\r
- public void clear() {\r
- _orderByList.clear();\r
- }\r
-\r
- // ===================================================================================\r
- // Basic Override\r
- // ==============\r
- public override String ToString() {\r
- return _orderByList.toString();\r
- }\r
-}\r
-\r
-public interface OrderByNullsSetupper {\r
- String setup(String columnName, String orderByElementClause, bool nullsFirst);\r
-}\r
-\r
-}\r
+++ /dev/null
-\r
-#set ($myClassName = "${glOrderByElementName}")\r
-using System;\r
-\r
-using ${glPackageBaseCommonJavaLike};\r
-\r
-namespace ${glPackageBaseCommonSqlClause} {\r
-\r
-[System.Serializable]\r
-public class ${myClassName} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- /** The value of alias name. */\r
- protected String _aliasName;\r
-\r
- /** The value of column name. */\r
- protected String _columnName;\r
-\r
- /** The value of registered alias name. */\r
- protected String _registeredAliasName;\r
-\r
- /** The value of registered column name. */\r
- protected String _registeredColumnName;\r
-\r
- /** The value of ascDesc. */\r
- protected String _ascDesc = "asc";\r
-\r
- /** The setupper of order-by nulls. */\r
- protected OrderByNullsSetupper _orderByNullsSetupper;\r
- \r
- /** Is nulls ordered first? */\r
- protected bool _nullsFirst;\r
-\r
- // ===================================================================================\r
- // Main Method\r
- // ===========\r
- public void setupAsc() {\r
- _ascDesc = "asc";\r
- }\r
-\r
- public void setupDesc() {\r
- _ascDesc = "desc";\r
- }\r
-\r
- public void reverse() {\r
- if (_ascDesc == null) {\r
- String msg = "The attribute[ascDesc] should not be null.";\r
- throw new IllegalStateException(msg);\r
- }\r
- if (_ascDesc.Equals("asc")) {\r
- _ascDesc = "desc";\r
- } else if (_ascDesc.Equals("desc")) {\r
- _ascDesc = "asc";\r
- } else {\r
- String msg = "The attribute[ascDesc] should be asc or desc: but ascDesc=" + _ascDesc;\r
- throw new IllegalStateException(msg);\r
- }\r
- }\r
-\r
- public bool isAsc() {\r
- if (_ascDesc == null) {\r
- String msg = "The attribute[ascDesc] should not be null.";\r
- throw new IllegalStateException(msg);\r
- }\r
- if (_ascDesc.Equals("asc")) {\r
- return true;\r
- } else if (_ascDesc.Equals("desc")) {\r
- return false;\r
- } else {\r
- String msg = "The attribute[ascDesc] should be asc or desc: but ascDesc=" + _ascDesc;\r
- throw new IllegalStateException(msg);\r
- }\r
- }\r
-\r
- public String getColumnFullName() {\r
- StringBuilder sb = new StringBuilder();\r
- if (_aliasName != null) {\r
- sb.append(_aliasName).append(".");\r
- }\r
- if (_columnName == null) {\r
- String msg = "The attribute[columnName] should not be null.";\r
- throw new IllegalStateException(msg);\r
- }\r
- sb.append(_columnName);\r
- return sb.toString();\r
- }\r
-\r
- public String getRegisteredColumnFullName() {\r
- StringBuilder sb = new StringBuilder();\r
- if (_registeredAliasName != null) {\r
- sb.append(_registeredAliasName).append(".");\r
- }\r
- if (_registeredColumnName == null) {\r
- String msg = "The attribute[registeredColumnName] should not be null.";\r
- throw new IllegalStateException(msg);\r
- }\r
- sb.append(_registeredColumnName);\r
- return sb.toString();\r
- }\r
-\r
- public String getElementClause() {\r
- if (_ascDesc == null) {\r
- String msg = "The attribute[ascDesc] should not be null.";\r
- throw new IllegalStateException(msg);\r
- }\r
- StringBuilder sb = new StringBuilder();\r
- sb.append(getColumnFullName()).append(" ").append(_ascDesc);\r
- if (_orderByNullsSetupper != null) {\r
- return _orderByNullsSetupper.setup(getColumnFullName(), sb.toString(), _nullsFirst);\r
- } else {\r
- return sb.toString();\r
- }\r
- }\r
- \r
- public String getElementClause(Map<String, String> selectClauseRealColumnAliasMap) {\r
- if (selectClauseRealColumnAliasMap == null) {\r
- String msg = "The argument[selectClauseRealColumnAliasMap] should not be null.";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (_ascDesc == null) {\r
- String msg = "The attribute[ascDesc] should not be null.";\r
- throw new IllegalStateException(msg);\r
- }\r
- StringBuilder sb = new StringBuilder();\r
- String columnAlias = selectClauseRealColumnAliasMap.get(getColumnFullName());\r
- if (columnAlias == null || columnAlias.Trim().Length == 0) {\r
- String msg = "The selectClauseRealColumnAliasMap should have the value of the key: " + getColumnFullName();\r
- throw new IllegalStateException(msg + " But the map is " + selectClauseRealColumnAliasMap);\r
- }\r
- sb.append(columnAlias).append(" ").append(_ascDesc);\r
- if (_orderByNullsSetupper != null) {\r
- return _orderByNullsSetupper.setup(columnAlias, sb.toString(), _nullsFirst);\r
- } else {\r
- return sb.toString();\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Basic Override\r
- // ==============\r
- public override String ToString() {\r
- StringBuilder sb = new StringBuilder();\r
- sb.append("aliasName=").append(_aliasName);\r
- sb.append(" columnName=").append(_columnName);\r
- sb.append(" registeredAliasName=").append(_registeredAliasName);\r
- sb.append(" registeredColumnName=").append(_registeredColumnName);\r
- sb.append(" ascDesc=").append(_ascDesc);\r
- return sb.toString();\r
- }\r
- \r
- // ===================================================================================\r
- // Accessor\r
- // ======== \r
- public String getAliasName() {\r
- return _aliasName;\r
- }\r
- public void setAliasName(String aliasName) {\r
- _aliasName = aliasName;\r
- }\r
- public String getColumnName() {\r
- return _columnName;\r
- }\r
- public void setColumnName(String columnName) {\r
- _columnName = columnName;\r
- }\r
- public String getRegisteredAliasName() {\r
- return _registeredAliasName;\r
- }\r
- public void setRegisteredAliasName(String registeredAliasName) {\r
- _registeredAliasName = registeredAliasName;\r
- }\r
- public String getRegisteredColumnName() {\r
- return _registeredColumnName;\r
- }\r
- public void setRegisteredColumnName(String registeredColumnName) {\r
- _registeredColumnName = registeredColumnName;\r
- }\r
- public String getAscDesc() {\r
- return _ascDesc;\r
- }\r
- public void setAscDesc(String ascDesc) {\r
- _ascDesc = ascDesc;\r
- }\r
- public void setOrderByNullsSetupper(OrderByNullsSetupper value, bool nullsFirst) {\r
- _orderByNullsSetupper = value;\r
- _nullsFirst = nullsFirst;\r
- }\r
-}\r
-\r
-}\r
+++ /dev/null
-#set ($myClassName = "${glSqlClauseInterfaceName}")\r
-\r
-using System;\r
-using System.Collections;\r
-using ${glPackageBaseCommonCKey};\r
-using ${glPackageBaseCommonCValue};\r
-using ${glPackageBaseCommonCOption};\r
-using ${glPackageBaseCommonJavaLike};\r
-\r
-namespace ${glPackageBaseCommonSqlClause} {\r
-\r
-// JavaLike\r
-public interface ${glSqlClauseInterfaceName} {\r
-\r
- // =====================================================================================\r
- // Clause\r
- // ======\r
- String getClause();\r
- String getClausePKOnly();\r
- String getClauseFromWhereWithUnionTemplate();\r
- String getClauseFromWhereWithWhereUnionTemplate();\r
-\r
- // =====================================================================================\r
- // Clause Parts\r
- // ============\r
- String getSelectClause();\r
- String getSelectClausePKOnly();\r
- String getSelectHint();\r
- String getIncludedSelectColumnClause();\r
- String getFromClause();\r
- String getFromBaseTableHint();\r
- String getFromHint();\r
- String getWhereClause();\r
- String getOrderByClause();\r
- String getSqlSuffix();\r
-\r
- // ===================================================================================\r
- // Copy Parts\r
- // ==========\r
- void copyIncludedSelectColumn(${glSqlClauseInterfaceName} sqlClause);\r
-\r
- // ===================================================================================\r
- // SelectedSelectColumn\r
- // ====================\r
- void registerSelectedSelectColumn(String foreignTableAliasName\r
- , String localTableName\r
- , String foreignPropertyName\r
- , String localRelationPath);\r
- \r
- // ===================================================================================\r
- // IncludedSelectColumn\r
- // ====================\r
- void ignoreIncludedSelectColumn();\r
- void makeIncludedSelectColumnEffective();\r
- void registerIncludedSelectColumn(String aliasName, String realColumnName);\r
-\r
- // ===================================================================================\r
- // OuterJoin\r
- // =========\r
- void registerOuterJoin(String joinTableName, String aliasName, Map<String, String> joinOnMap);\r
-\r
- // ===================================================================================\r
- // Where\r
- // =====\r
- void registerWhereClause(String columnFullName, ${glConditionKeyName} key, ${glConditionValueName} value);\r
- void registerWhereClause(String columnFullName, ${glConditionKeyName} key, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option);\r
- void registerWhereClause(String clause);\r
- void exchangeFirstWhereClauseForLastOne();\r
-\r
- // ===================================================================================\r
- // InlineWhere\r
- // ===========\r
- void registerBaseTableInlineWhereClause(String columnName, ${glConditionKeyName} key, ${glConditionValueName} value);\r
- void registerBaseTableInlineWhereClause(String columnName, ${glConditionKeyName} key, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option);\r
- void registerBaseTableInlineWhereClause(String value);\r
- void registerOuterJoinInlineWhereClause(String aliasName, String columnName, ${glConditionKeyName} key, ${glConditionValueName} value, bool onClauseInline);\r
- void registerOuterJoinInlineWhereClause(String aliasName, String columnName, ${glConditionKeyName} key, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option, bool onClauseInline);\r
- void registerOuterJoinInlineWhereClause(String aliasName, String value, bool onClauseInline);\r
-\r
- // ===================================================================================\r
- // AdditionalConditionAsOr\r
- // =======================\r
- void makeAdditionalConditionAsOrEffective();\r
- void ignoreAdditionalConditionAsOr();\r
-\r
- // ===================================================================================\r
- // OrderBy\r
- // =======\r
- ${glOrderByClauseName} getSqlComponentOfOrderByClause();\r
- ${myClassName} clearOrderBy();\r
- ${myClassName} ignoreOrderBy();\r
- ${myClassName} makeOrderByEffective();\r
- \r
- /**\r
- * @param orderByProperty Order-by-property. 'aliasName.columnName/aliasName.columnName/...' (NotNull)\r
- * @param registeredOrderByProperty Registered-order-by-property. ([table-name].[column-name]) (Nullable)\r
- * @param ascOrDesc Is it ascend or descend?\r
- */\r
- void registerOrderBy(String orderByProperty, String registeredOrderByProperty, bool ascOrDesc);\r
- \r
- /**\r
- * @param orderByProperty Order-by-property. 'aliasName.columnName/aliasName.columnName/...' (NotNull)\r
- * @param registeredOrderByProperty Registered-order-by-property. ([table-name].[column-name]) (Nullable)\r
- * @param ascOrDesc Is it ascend or descend?\r
- */\r
- void reverseOrderBy_Or_OverrideOrderBy(String orderByProperty, String registeredOrderByProperty, bool ascOrDesc);\r
-\r
- void addNullsFirstToPreviousOrderBy();\r
- void addNullsLastToPreviousOrderBy();\r
- \r
- // ===================================================================================\r
- // Union\r
- // =====\r
- void registerUnionQuery(String unionClause, bool unionAll);\r
-\r
- // ===================================================================================\r
- // FetchScope\r
- // ==========\r
- ${myClassName} fetchFirst(int fetchSize);\r
- ${myClassName} fetchScope(int fetchStartIndex, int fetchSize);\r
- ${myClassName} fetchPage(int fetchPageNumber);\r
- int getFetchStartIndex();\r
- int getFetchSize();\r
- int getFetchPageNumber();\r
- int getPageStartIndex();\r
- int getPageEndIndex();\r
- bool isFetchScopeEffective();\r
- ${myClassName} ignoreFetchScope();\r
- ${myClassName} makeFetchScopeEffective();\r
- bool isFetchStartIndexSupported();\r
- bool isFetchSizeSupported();\r
-\r
- // ===================================================================================\r
- // Fetch Narrowing\r
- // ===============\r
- bool isFetchNarrowingEffective();\r
- int getFetchNarrowingSkipStartIndex();\r
- int getFetchNarrowingLoopCount();\r
-\r
- // ===================================================================================\r
- // Lock\r
- // ====\r
- ${myClassName} lockForUpdate();\r
-\r
- // ===================================================================================\r
- // Resolver\r
- // ========\r
- String resolveJoinAliasName(String relationPath, int cqNestNo);\r
- String resolveNestLevelExpression(String name, int cqNestNo);\r
- int resolveRelationNo(String baseTableName, String foreignPropertyName);\r
-\r
- // ===================================================================================\r
- // Table Alias Info\r
- // ================\r
- String getLocalTableAliasName();\r
- String getForeignTableAliasPrefix();\r
-\r
- // ===================================================================================\r
- // Template Mark\r
- // =============\r
- String getWhereClauseMark();\r
- String getWhereFirstConditionMark();\r
- String getUnionSelectClauseMark();\r
- String getUnionWhereClauseMark();\r
- String getUnionWhereFirstConditionMark();\r
- \r
- // =====================================================================================\r
- // Where Clause Simple Filter\r
- // ==========================\r
- // void addWhereClauseSimpleFilter(${glWhereClauseSimpleFilterInterfaceName} whereClauseSimpleFilter);\r
- \r
- // =====================================================================================\r
- // Selected Foreign Info\r
- // =====================\r
- bool isSelectedForeignInfoEmpty();\r
- bool hasSelectedForeignInfo(String relationPath);\r
- void registerSelectedForeignInfo(String relationPath, String foreignPropertyName);\r
- \r
- // ===================================================================================\r
- // Format Clause\r
- // =============\r
- bool isFormatClauseEffective();\r
- void makeFormatClauseEffective();\r
- \r
- // ===================================================================================\r
- // Sub Query Indent\r
- // ================\r
- String resolveSubQueryBeginMark(String subQueryIdentity);\r
- String resolveSubQueryEndMark(String subQueryIdentity);\r
- String filterSubQueryIndent(String sql);\r
-\r
- // [DBFlute-0.7.4]\r
- // ===================================================================================\r
- // Specification\r
- // =============\r
- void specifySelectColumn(String tableAliasName, String columnName);\r
- void specifyDeriveSubQuery(String aliasName, String deriveSubQuery);\r
- bool hasSpecifiedDeriveSubQuery(String aliasName);\r
- String getSpecifiedColumnNameAsOne();\r
- void clearSpecifiedSelectColumn();\r
- \r
- // [DBFlute-0.7.9]\r
- // ===================================================================================\r
- // Query Update\r
- // ============\r
- String getClauseQueryUpdate(Map<String, String> columnParameterMap);\r
- String getClauseQueryDelete();\r
-}\r
-\r
-}
\ No newline at end of file
+++ /dev/null
-#set ($myClassName = "${glSqlClauseInterfaceName}${database.DaoGenDbName}")\r
-\r
-using System;\r
-\r
-namespace ${glPackageBaseCommonSqlClause} {\r
-\r
-[System.Serializable]\r
-public class ${myClassName} : ${glSqlClauseAbstractName} {\r
-\r
- protected String _fetchFirstSqlSuffix = "";\r
- protected String _lockSqlSuffix = "";\r
-\r
- public ${myClassName}(String tableName)\r
- : base(tableName) {}\r
-\r
- protected override OrderByNullsSetupper createOrderByNullsSetupper() {\r
- return new OrderByNullsSetupperByCaseWhen();\r
- }\r
- \r
- protected override void doFetchFirst() {\r
- if (isFetchSizeSupported()) {\r
- _fetchFirstSqlSuffix = " fetch first " + getFetchSize() + " rows only";\r
- }\r
- }\r
-\r
- protected override void doFetchPage() {\r
- if (isFetchSizeSupported()) {\r
- if (isFetchStartIndexSupported()) {\r
- _fetchFirstSqlSuffix = " fetch first " + this.getFetchSize() + " rows only";\r
- } else {\r
- _fetchFirstSqlSuffix = " fetch first " + this.getPageEndIndex() + " rows only";\r
- }\r
- }\r
- }\r
-\r
- protected override void doClearFetchPageClause() {\r
- _fetchFirstSqlSuffix = "";\r
- }\r
-\r
- public override bool isFetchStartIndexSupported() {\r
- return false; // Default\r
- }\r
-\r
- public override ${glSqlClauseInterfaceName} lockForUpdate() {\r
- _lockSqlSuffix = " for update with RS";\r
- return this;\r
- }\r
-\r
- protected override String createSelectHint() {\r
- return "";\r
- }\r
-\r
- protected override String createFromBaseTableHint() {\r
- return "";\r
- }\r
-\r
- protected override String createFromHint() {\r
- return "";\r
- }\r
-\r
- protected override String createSqlSuffix() {\r
- return _fetchFirstSqlSuffix + _lockSqlSuffix;;\r
- }\r
-}\r
-\r
-}\r
+++ /dev/null
-#set ($myClassName = "${glSqlClauseInterfaceName}${database.DaoGenDbName}")\r
-\r
-using System;\r
-\r
-using ${glPackageBaseCommonJavaLike};\r
-\r
-namespace ${glPackageBaseCommonSqlClause} {\r
-\r
-[System.Serializable]\r
-public class ${myClassName} : ${glSqlClauseAbstractName} {\r
-\r
- public ${myClassName}(String tableName)\r
- : base(tableName) {}\r
-\r
- protected override OrderByNullsSetupper createOrderByNullsSetupper() {\r
- return new OrderByNullsSetupperByCaseWhen();\r
- }\r
- \r
- protected override void doFetchFirst() {\r
- }\r
-\r
- protected override void doFetchPage() {\r
- }\r
-\r
- protected override void doClearFetchPageClause() {\r
- }\r
-\r
- public override bool isFetchStartIndexSupported() {\r
- return false; // Default\r
- }\r
-\r
- public override bool isFetchSizeSupported() {\r
- return false; // Default\r
- }\r
-\r
- public override ${glSqlClauseInterfaceName} lockForUpdate() {\r
- String msg = "LockForUpdate-SQL is unsupported in the database. Sorry...: " + ToString();\r
- throw new UnsupportedOperationException(msg);\r
- }\r
-\r
- protected override String createSelectHint() {\r
- return "";\r
- }\r
-\r
- protected override String createFromBaseTableHint() {\r
- return "";\r
- }\r
-\r
- protected override String createFromHint() {\r
- return "";\r
- }\r
-\r
- protected override String createSqlSuffix() {\r
- return "";\r
- }\r
-}\r
-\r
-}\r
+++ /dev/null
-#set ($myClassName = "${glSqlClauseInterfaceName}${database.DaoGenDbName}")\r
-\r
-using System;\r
-\r
-namespace ${glPackageBaseCommonSqlClause} {\r
-\r
-[System.Serializable]\r
-public class ${myClassName} : ${glSqlClauseAbstractName} {\r
-\r
- protected String _lockSqlSuffix = "";\r
-\r
- public ${myClassName}(String tableName)\r
- : base(tableName) {}\r
-\r
- protected override OrderByNullsSetupper createOrderByNullsSetupper() {\r
- return new OrderByNullsSetupperByCaseWhen();\r
- }\r
- \r
- protected override void doFetchFirst() {\r
- }\r
-\r
- protected override void doFetchPage() {\r
- }\r
-\r
- protected override void doClearFetchPageClause() {\r
- }\r
-\r
- public override bool isFetchStartIndexSupported() {\r
- return false; // Default\r
- }\r
-\r
- public override bool isFetchSizeSupported() {\r
- return false; // Default\r
- }\r
-\r
- public override ${glSqlClauseInterfaceName} lockForUpdate() {\r
- _lockSqlSuffix = " for update";\r
- return this;\r
- }\r
-\r
- protected override String createSelectHint() {\r
- return "";\r
- }\r
-\r
- protected override String createFromBaseTableHint() {\r
- return "";\r
- }\r
-\r
- protected override String createFromHint() {\r
- return "";\r
- }\r
-\r
- protected override String createSqlSuffix() {\r
- return _lockSqlSuffix;\r
- }\r
-}\r
-\r
-}\r
+++ /dev/null
-#set ($myClassName = "${glSqlClauseInterfaceName}${database.DaoGenDbName}")\r
-\r
-using System;\r
-\r
-namespace ${glPackageBaseCommonSqlClause} {\r
-\r
-[System.Serializable]\r
-public class ${myClassName} : ${glSqlClauseAbstractName} {\r
-\r
- protected String _fetchScopeSelectHint = "";\r
- protected String _lockSqlSuffix = "";\r
-\r
- public ${myClassName}(String tableName)\r
- : base(tableName) {}\r
-\r
- protected override void doFetchFirst() {\r
- if (this.isFetchSizeSupported()) {\r
- _fetchScopeSelectHint = " first " + this.getFetchSize();\r
- }\r
- }\r
-\r
- protected override void doFetchPage() {\r
- if (this.isFetchStartIndexSupported() && this.isFetchSizeSupported()) {\r
- _fetchScopeSelectHint = " first " + this.getFetchSize() + " skip " + this.getPageStartIndex();\r
- }\r
- if (this.isFetchStartIndexSupported() && !this.isFetchSizeSupported()) {\r
- _fetchScopeSelectHint = " skip " + this.getPageStartIndex();\r
- }\r
- if (!this.isFetchStartIndexSupported() && this.isFetchSizeSupported()) {\r
- _fetchScopeSelectHint = " first " + this.getPageEndIndex();\r
- }\r
- }\r
-\r
- protected override void doClearFetchPageClause() {\r
- _fetchScopeSelectHint = "";\r
- }\r
-\r
- public override ${glSqlClauseInterfaceName} lockForUpdate() {\r
- _lockSqlSuffix = " for update with lock";\r
- return this;\r
- }\r
-\r
- protected override String createSelectHint() {\r
- return _fetchScopeSelectHint;\r
- }\r
-\r
- protected override String createFromBaseTableHint() {\r
- return "";\r
- }\r
-\r
- protected override String createFromHint() {\r
- return "";\r
- }\r
-\r
- protected override String createSqlSuffix() {\r
- return _lockSqlSuffix;\r
- }\r
-}\r
-\r
-}\r
+++ /dev/null
-#set ($myClassName = "${glSqlClauseInterfaceName}${database.DaoGenDbName}")\r
-\r
-using System;\r
-\r
-namespace ${glPackageBaseCommonSqlClause} {\r
-\r
-[System.Serializable]\r
-public class ${myClassName} : ${glSqlClauseAbstractName} {\r
-\r
- protected String _fetchScopeSelectHint = "";\r
- protected String _lockSqlSuffix = "";\r
-\r
- public ${myClassName}(String tableName)\r
- : base(tableName) {}\r
-\r
- protected override void doFetchFirst() {\r
- if (this.isFetchSizeSupported()) {\r
- _fetchScopeSelectHint = " first " + this.getFetchSize();\r
- }\r
- }\r
-\r
- protected override void doFetchPage() {\r
- if (this.isFetchStartIndexSupported() && this.isFetchSizeSupported()) {\r
- _fetchScopeSelectHint = " first " + this.getFetchSize() + " skip " + this.getPageStartIndex();\r
- }\r
- if (this.isFetchStartIndexSupported() && !this.isFetchSizeSupported()) {\r
- _fetchScopeSelectHint = " skip " + this.getPageStartIndex();\r
- }\r
- if (!this.isFetchStartIndexSupported() && this.isFetchSizeSupported()) {\r
- _fetchScopeSelectHint = " first " + this.getPageEndIndex();\r
- }\r
- }\r
-\r
- protected override void doClearFetchPageClause() {\r
- _fetchScopeSelectHint = "";\r
- }\r
-\r
- public override ${glSqlClauseInterfaceName} lockForUpdate() {\r
- _lockSqlSuffix = " for update with lock";\r
- return this;\r
- }\r
-\r
- protected override String createSelectHint() {\r
- return _fetchScopeSelectHint;\r
- }\r
-\r
- protected override String createFromBaseTableHint() {\r
- return "";\r
- }\r
-\r
- protected override String createFromHint() {\r
- return "";\r
- }\r
-\r
- protected override String createSqlSuffix() {\r
- return _lockSqlSuffix;\r
- }\r
-}\r
-\r
-}\r
+++ /dev/null
-#set ($myClassName = "${glSqlClauseInterfaceName}${database.DaoGenDbName}")\r
-\r
-using System;\r
-\r
-namespace ${glPackageBaseCommonSqlClause} {\r
-\r
-[System.Serializable]\r
-public class ${myClassName} : ${glSqlClauseAbstractName} {\r
-\r
- protected String _fetchFirstSelectHint = "";\r
- protected String _lockFromHint = "";\r
-\r
- public ${myClassName}(String tableName)\r
- : base(tableName) {}\r
-\r
- protected override OrderByNullsSetupper createOrderByNullsSetupper() {\r
- return new OrderByNullsSetupperByCaseWhen();\r
- }\r
- \r
- protected override void doFetchFirst() {\r
- if (this.isFetchSizeSupported()) {\r
- _fetchFirstSelectHint = " top " + this.getFetchSize();\r
- }\r
- }\r
-\r
- protected override void doFetchPage() {\r
- if (this.isFetchSizeSupported()) {\r
- if (this.isFetchStartIndexSupported()) {\r
- _fetchFirstSelectHint = " top " + this.getFetchSize();\r
- } else {\r
- _fetchFirstSelectHint = " top " + this.getPageEndIndex();\r
- }\r
- }\r
- }\r
-\r
- protected override void doClearFetchPageClause() {\r
- _fetchFirstSelectHint = "";\r
- }\r
-\r
- public override bool isFetchStartIndexSupported() {\r
- return false; // Default\r
- }\r
-\r
- public override ${glSqlClauseInterfaceName} lockForUpdate() {\r
- _lockFromHint = " with (updlock)";\r
- return this;\r
- }\r
-\r
- protected override String createSelectHint() {\r
- return _fetchFirstSelectHint;\r
- }\r
-\r
- protected override String createFromBaseTableHint() {\r
- return _lockFromHint;\r
- }\r
-\r
- protected override String createFromHint() {\r
- return "";\r
- }\r
-\r
- protected override String createSqlSuffix() {\r
- return "";\r
- }\r
-}\r
-\r
-}\r
+++ /dev/null
-#set ($myClassName = "${glSqlClauseInterfaceName}${database.DaoGenDbName}")\r
-\r
-using System;\r
-\r
-namespace ${glPackageBaseCommonSqlClause} {\r
-\r
-[System.Serializable]\r
-public class ${myClassName} : ${glSqlClauseAbstractName} {\r
-\r
- protected String _fetchScopeSqlSuffix = "";\r
- protected String _lockSqlSuffix = "";\r
-\r
- public ${myClassName}(String tableName)\r
- : base(tableName) {}\r
-\r
- protected override OrderByNullsSetupper createOrderByNullsSetupper() {\r
- return new OrderByNullsSetupperByCaseWhen();\r
- }\r
- \r
- protected override void doFetchFirst() {\r
- doFetchPage();\r
- }\r
-\r
- protected override void doFetchPage() {\r
- _fetchScopeSqlSuffix = " limit " + this.getPageStartIndex() + ", " + this.getFetchSize();\r
- }\r
-\r
- protected override void doClearFetchPageClause() {\r
- _fetchScopeSqlSuffix = "";\r
- }\r
-\r
- public override ${glSqlClauseInterfaceName} lockForUpdate() {\r
- _lockSqlSuffix = " for update";\r
- return this;\r
- }\r
-\r
- protected override String createSelectHint() {\r
- return "";\r
- }\r
-\r
- protected override String createFromBaseTableHint() {\r
- return "";\r
- }\r
-\r
- protected override String createFromHint() {\r
- return "";\r
- }\r
-\r
- protected override String createSqlSuffix() {\r
- return _fetchScopeSqlSuffix + _lockSqlSuffix;\r
- }\r
- \r
- // [DBFlute-0.7.9]\r
- // ===================================================================================\r
- // Query Update Override\r
- // =====================\r
- protected override bool isUpdateSubQueryUseLocalTableSupported() {\r
- return false;\r
- }\r
-}\r
- \r
-}\r
+++ /dev/null
-#set ($myClassName = "${glSqlClauseInterfaceName}${database.DaoGenDbName}")\r
-\r
-using System;\r
-\r
-using ${glPackageBaseCommonDBMeta};\r
-\r
-namespace ${glPackageBaseCommonSqlClause} {\r
-\r
-[System.Serializable]\r
-public class ${myClassName} : ${glSqlClauseAbstractName} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected String _fetchScopeSelectHint = "";\r
- protected String _fetchScopeSqlSuffix = "";\r
- protected String _lockSqlSuffix = "";\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${myClassName}(String tableName)\r
- : base(tableName) {}\r
-\r
- // ===================================================================================\r
- // Database Original Override\r
- // ==========================\r
- protected override String buildUnionClause(String selectClause) {\r
- \r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- // Remove select-hint comment from select clause of union\r
- // for fetch-scope with union().\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
-\r
- selectClause = replaceString(selectClause, SELECT_HINT, "");\r
- return base.buildUnionClause(selectClause);\r
- }\r
- \r
- // ===================================================================================\r
- // FetchScope Override\r
- // ===================\r
- protected override void doFetchFirst() {\r
- doFetchPage();\r
- }\r
-\r
- protected override void doFetchPage() {\r
- if (!isFetchStartIndexSupported() && !isFetchSizeSupported()) {\r
- return;\r
- }\r
- String ln = null;\r
- if (isFormatClauseEffective()) {\r
- ln = getLineSeparator();\r
- } else {\r
- ln = "";\r
- }\r
- _fetchScopeSelectHint = " * from (select base.*, rownum as rn from (" + ln + "select";\r
- _fetchScopeSqlSuffix = "";\r
- if (isFetchStartIndexSupported()) {\r
- _fetchScopeSqlSuffix = ") base )" + ln + " where rn > " + getPageStartIndex();\r
- }\r
- if (isFetchSizeSupported()) {\r
- if (isFetchStartIndexSupported()) {\r
- _fetchScopeSqlSuffix = _fetchScopeSqlSuffix + " and rn <= " + getPageEndIndex();\r
- } else {\r
- _fetchScopeSqlSuffix = ") base )" + ln + " where rn <= " + getPageEndIndex();\r
- }\r
- }\r
- }\r
-\r
- protected override void doClearFetchPageClause() {\r
- _fetchScopeSelectHint = "";\r
- _fetchScopeSqlSuffix = "";\r
- }\r
-\r
- // ===================================================================================\r
- // Lock Override\r
- // =============\r
- public override ${glSqlClauseInterfaceName} lockForUpdate() {\r
- ${glDBMetaInterfaceName} dbmeta = ${glDBMetaInstanceHandlerName}.FindDBMeta(_tableName);\r
- if (dbmeta.HasPrimaryKey) {\r
- String primaryKeyColumnName = dbmeta.PrimaryUniqueInfo.FirstColumn.ColumnDbName;\r
- _lockSqlSuffix = " for update of " + _tableName + "." + primaryKeyColumnName;\r
- } else {\r
- String randomColumnName = dbmeta.ColumnInfoList.get(0).ColumnDbName;\r
- _lockSqlSuffix = " for update of " + _tableName + "." + randomColumnName;\r
- }\r
-\r
- _lockSqlSuffix = " for update";\r
- return this;\r
- }\r
-\r
- // ===================================================================================\r
- // Hint Override\r
- // =============\r
- protected override String createSelectHint() {\r
- return _fetchScopeSelectHint;\r
- }\r
-\r
- protected override String createFromBaseTableHint() {\r
- return "";\r
- }\r
-\r
- protected override String createFromHint() {\r
- return "";\r
- }\r
- \r
- protected override String createSqlSuffix() {\r
- return _fetchScopeSqlSuffix + _lockSqlSuffix;\r
- }\r
-}\r
- \r
-}\r
+++ /dev/null
-#set ($myClassName = "${glSqlClauseInterfaceName}${database.DaoGenDbName}")\r
-\r
-using System;\r
-\r
-namespace ${glPackageBaseCommonSqlClause} {\r
-\r
-[System.Serializable]\r
-public class ${myClassName} : ${glSqlClauseAbstractName} {\r
-\r
- protected String _fetchScopeSqlSuffix = "";\r
- protected String _lockSqlSuffix = "";\r
-\r
- public ${myClassName}(String tableName)\r
- : base(tableName) {}\r
-\r
- protected override void doFetchFirst() {\r
- doFetchPage();\r
- }\r
-\r
- protected override void doFetchPage() {\r
- _fetchScopeSqlSuffix = " offset " + this.getPageStartIndex() + " limit " + this.getFetchSize();\r
- }\r
-\r
- protected override void doClearFetchPageClause() {\r
- _fetchScopeSqlSuffix = "";\r
- }\r
-\r
- public override ${glSqlClauseInterfaceName} lockForUpdate() {\r
- _lockSqlSuffix = " for update";\r
- return this;\r
- }\r
-\r
- protected override String createSelectHint() {\r
- return "";\r
- }\r
-\r
- protected override String createFromBaseTableHint() {\r
- return "";\r
- }\r
-\r
- protected override String createFromHint() {\r
- return "";\r
- }\r
-\r
- protected override String createSqlSuffix() {\r
- return _fetchScopeSqlSuffix + _lockSqlSuffix;\r
- }\r
-}\r
- \r
-}\r
+++ /dev/null
-\r
-#set ($myClassName = "${glDBMetaAbstractName}")\r
-\r
-using System;\r
-using System.Reflection;\r
-\r
-using ${glPackageBaseCommon};\r
-using ${glPackageBaseCommonCBean};\r
-using ${glPackageBaseCommonDBMetaInfo};\r
-using ${glPackageBaseCommonJavaLike};\r
-using ${glPackageBaseCommonUtil};\r
-\r
-namespace ${glPackageBaseCommonDBMeta} {\r
-\r
- public abstract class ${myClassName} : ${glDBMetaInterfaceName} {\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected List<${glColumnInfoName}> _columnInfoList;\r
-\r
- // ===============================================================================\r
- // Table Info\r
- // ==========\r
- public abstract String TableDbName { get; }\r
- public abstract String TablePropertyName { get; }\r
- public abstract String TableSqlName { get; }\r
-\r
- // ===============================================================================\r
- // Column Info\r
- // ===========\r
- public bool HasColumn(String columnFlexibleName) {\r
- if (!HasFlexibleName(columnFlexibleName)) {\r
- return false;\r
- }\r
- String propertyName = FindPropertyName(columnFlexibleName);\r
- return HasProperty("Column" + InitCap(propertyName));\r
- }\r
-\r
- public ${glColumnInfoName} FindColumnInfo(String columnFlexibleName) {\r
- AssertStringNotNullAndNotTrimmedEmpty("columnFlexibleName", columnFlexibleName);\r
- if (!HasColumn(columnFlexibleName)) {\r
- String msg = "Not found column by columnFlexibleName: " + columnFlexibleName;\r
- msg = msg + " tableName=" + TableDbName;\r
- throw new SystemException(msg);\r
- }\r
- String propertyName = "Column" + InitCap(FindPropertyName(columnFlexibleName));\r
- PropertyInfo propertyInfo = GetType().GetProperty(propertyName);\r
- return (${glColumnInfoName})propertyInfo.GetValue(this, null);\r
- }\r
-\r
- // createColumnInfo()\r
- protected ${glColumnInfoName} cci(String columnDbName, String propertyName, Type propertyType, bool primary, int? columnSize, int? columnDecimalDigits) {\r
- return new ${glColumnInfoName}(this, columnDbName, propertyName, propertyType, primary, columnSize, columnDecimalDigits);\r
- }\r
-\r
- // createColumnInfo()\r
- protected ${glColumnInfoName} cci(String columnDbName, String propertyName, Type propertyType, bool primary, int? columnSize, int? columnDecimalDigits, OptimisticLockType optimisticLockType) {\r
- return new ${glColumnInfoName}(this, columnDbName, propertyName, propertyType, primary, columnSize, columnDecimalDigits, optimisticLockType);\r
- }\r
-\r
- public List<${glColumnInfoName}> ColumnInfoList { get { return _columnInfoList; } }\r
-\r
- // ===============================================================================\r
- // Name Handling\r
- // =============\r
- public bool HasFlexibleName(String flexibleName) {\r
- String key = flexibleName.ToLower();\r
- if (DbNamePropertyNameKeyToLowerMap.containsKey(key)) {\r
- return true;\r
- }\r
- if (PropertyNameDbNameKeyToLowerMap.containsKey(key)) {\r
- return true;\r
- }\r
- return false;\r
- }\r
-\r
- public String FindDbName(String flexibleName) {\r
- String key = flexibleName.ToLower();\r
- if (PropertyNameDbNameKeyToLowerMap.containsKey(key)) {\r
- return PropertyNameDbNameKeyToLowerMap.get(key);\r
- }\r
- if (DbNamePropertyNameKeyToLowerMap.containsKey(key)) {\r
- String dbNameKeyToLower = DbNamePropertyNameKeyToLowerMap.get(key).ToLower();\r
- if (PropertyNameDbNameKeyToLowerMap.containsKey(dbNameKeyToLower)) {\r
- return PropertyNameDbNameKeyToLowerMap.get(dbNameKeyToLower);\r
- }\r
- }\r
- String msg = "Not found object by the flexible name: flexibleName=" + flexibleName;\r
- throw new SystemException(msg);\r
- }\r
-\r
- public String FindPropertyName(String flexibleName) {\r
- String key = flexibleName.ToLower();\r
- if (DbNamePropertyNameKeyToLowerMap.containsKey(key)) {\r
- return DbNamePropertyNameKeyToLowerMap.get(key);\r
- }\r
- if (PropertyNameDbNameKeyToLowerMap.containsKey(key)) {\r
- String dbNameToLower = PropertyNameDbNameKeyToLowerMap.get(key).ToLower();\r
- if (DbNamePropertyNameKeyToLowerMap.containsKey(dbNameToLower)) {\r
- return DbNamePropertyNameKeyToLowerMap.get(dbNameToLower);\r
- }\r
- }\r
- String msg = "Not found object by the flexible name: flexibleName=" + flexibleName;\r
- throw new SystemException(msg);\r
- }\r
-\r
- // ===============================================================================\r
- // Name Map\r
- // ========\r
- public abstract Map<String, String> DbNamePropertyNameKeyToLowerMap { get; }\r
- public abstract Map<String, String> PropertyNameDbNameKeyToLowerMap { get; }\r
-\r
- // ===============================================================================\r
- // Type Name\r
- // =========\r
- public abstract String EntityTypeName { get; }\r
- public abstract String DaoTypeName { get; }\r
- public abstract String ConditionBeanTypeName { get; }\r
- public abstract String BehaviorTypeName { get; }\r
-\r
- // ===============================================================================\r
- // Object Type\r
- // ===========\r
- public abstract Type EntityType { get; }\r
-\r
- // ===============================================================================\r
- // Object Instance\r
- // ===============\r
- public abstract ${glEntityInterfaceName} NewEntity();\r
- public abstract ${glConditionBeanInterfaceName} NewConditionBean();\r
-\r
- // ===============================================================================\r
- // Unique Info\r
- // ===========\r
- public abstract ${glUniqueInfoName} PrimaryUniqueInfo { get; }\r
- public abstract bool HasPrimaryKey { get; }\r
- public abstract bool HasTwoOrMorePrimaryKeys { get; }\r
-\r
- // ===============================================================================\r
- // Relation Info\r
- // =============\r
- public ${glRelationInfoName} FindRelationInfo(String relationPropertyName) {\r
- AssertStringNotNullAndNotTrimmedEmpty("relationPropertyName", relationPropertyName);\r
- return HasForeign(relationPropertyName) ? (${glRelationInfoName})FindForeignInfo(relationPropertyName) : (${glRelationInfoName})FindReferrerInfo(relationPropertyName);\r
- }\r
-\r
- // -------------------------------------------------\r
- // Foreign Element\r
- // ---------------\r
- public bool HasForeign(String foreignPropertyName) {\r
- AssertStringNotNullAndNotTrimmedEmpty("foreignPropertyName", foreignPropertyName);\r
- String propertyName = BuildRelationInfoGetterMethodNameInitCap("Foreign", foreignPropertyName);\r
- return HasProperty(propertyName);\r
- }\r
-\r
- public ${glDBMetaInterfaceName} FindForeignDBMeta(String foreignPropertyName) {\r
- return FindForeignInfo(foreignPropertyName).ForeignDBMeta;\r
- }\r
-\r
- public ${glPackageBaseCommonDBMetaInfo}.${glForeignInfoName} FindForeignInfo(String foreignPropertyName) {\r
- AssertStringNotNullAndNotTrimmedEmpty("foreignPropertyName", foreignPropertyName);\r
- String propertyName = BuildRelationInfoGetterMethodNameInitCap("Foreign", foreignPropertyName);\r
- PropertyInfo propertyInfo = GetType().GetProperty(propertyName);\r
- if (propertyInfo == null) {\r
- String msg = "The property '" + propertyName + "' was Not Found on " + GetType().Name;\r
- throw new SystemException(msg);\r
- }\r
- return (${glForeignInfoName})propertyInfo.GetValue(this, null);\r
- }\r
- \r
- protected ${glForeignInfoName} cfi(String propName\r
- , ${glDBMetaInterfaceName} localDbm, ${glDBMetaInterfaceName} foreignDbm\r
- , Map<${glColumnInfoName}, ${glColumnInfoName}> localForeignColumnInfoMap\r
- , int relNo, bool oneToOne) {// createForeignInfo()\r
- ${glForeignInfoName} foreignInfo = new ${glForeignInfoName}();\r
- foreignInfo.ForeignPropertyName = propName;\r
- foreignInfo.LocalDBMeta = localDbm;\r
- foreignInfo.ForeignDBMeta = foreignDbm;\r
- foreignInfo.LocalForeignColumnInfoMap = localForeignColumnInfoMap;\r
- foreignInfo.RelationNo = relNo;\r
- foreignInfo.IsOneToOne = oneToOne;\r
- return foreignInfo;\r
- }\r
-\r
- // -------------------------------------------------\r
- // Referrer Element\r
- // ----------------\r
- public bool HasReferrer(String referrerPropertyName) {\r
- AssertStringNotNullAndNotTrimmedEmpty("referrerPropertyName", referrerPropertyName);\r
- String propertyName = BuildRelationInfoGetterMethodNameInitCap("Referrer", referrerPropertyName);\r
- return HasProperty(propertyName);\r
- }\r
-\r
- public ${glDBMetaInterfaceName} FindReferrerDBMeta(String referrerPropertyName) {\r
- AssertStringNotNullAndNotTrimmedEmpty("referrerPropertyName", referrerPropertyName);\r
- return FindReferrerInfo(referrerPropertyName).ReferrerDBMeta;\r
- }\r
-\r
- public ${glReferrerInfoName} FindReferrerInfo(String referrerPropertyName) {\r
- AssertStringNotNullAndNotTrimmedEmpty("referrerPropertyName", referrerPropertyName);\r
- String propertyName = BuildRelationInfoGetterMethodNameInitCap("Referrer", referrerPropertyName);\r
- PropertyInfo propertyInfo = GetType().GetProperty(propertyName);\r
- if (propertyInfo == null) {\r
- String msg = "The property '" + propertyName + "' was Not Found on " + GetType().Name;\r
- throw new SystemException(msg);\r
- }\r
- return (${glReferrerInfoName})propertyInfo.GetValue(this, null);\r
- }\r
-\r
- protected ${glReferrerInfoName} cri(String propName\r
- , ${glDBMetaInterfaceName} localDbm, ${glDBMetaInterfaceName} referrerDbm\r
- , Map<${glColumnInfoName}, ${glColumnInfoName}> localReferrerColumnInfoMap\r
- , bool oneToOne) {// createReferrerInfo()\r
- ${glReferrerInfoName} referrerInfo = new ${glReferrerInfoName}();\r
- referrerInfo.ReferrerPropertyName = propName;\r
- referrerInfo.LocalDBMeta = localDbm;\r
- referrerInfo.ReferrerDBMeta = referrerDbm;\r
- referrerInfo.LocalReferrerColumnInfoMap = localReferrerColumnInfoMap;\r
- referrerInfo.IsOneToOne = oneToOne;\r
- return referrerInfo;\r
- }\r
-\r
- // -------------------------------------------------\r
- // Common Logic\r
- // ------------\r
- protected static String BuildRelationInfoGetterMethodNameInitCap(String targetName, String relationPropertyName) {\r
- return targetName + relationPropertyName.Substring(0, 1).ToUpper() + relationPropertyName.Substring(1);\r
- }\r
-\r
- // ===============================================================================\r
- // Sequence Info\r
- // =============\r
- public virtual bool HasSequence { get { return false; } }\r
- public virtual String SequenceNextValSql { get { return null; } }\r
-\r
- // ===============================================================================\r
- // Optimistic Lock Info\r
- // ====================\r
- public virtual bool HasVersionNo { get { return false; } }\r
- public virtual ${glColumnInfoName} VersionNoColumnInfo { get { return null; } }\r
- public virtual bool HasUpdateDate { get { return false; } }\r
- public virtual ${glColumnInfoName} UpdateDateColumnInfo { get { return null; } }\r
-\r
- // ===============================================================================\r
- // Common Column Info\r
- // ==================\r
- public abstract bool HasCommonColumn { get; }\r
-\r
- // ===============================================================================\r
- // Entity Property Setup\r
- // =====================\r
- public abstract bool HasEntityPropertySetupper(String propertyName);\r
- public abstract void SetupEntityProperty(String propertyName, Object entity, Object value);\r
-\r
- protected void RegisterEntityPropertySetupper<ENTITY>(\r
- String columnName\r
- , String propertyName\r
- , EntityPropertySetupper<ENTITY> setupper\r
- , Map<String, EntityPropertySetupper<ENTITY>> _entityPropertySetupperMap\r
- ) where ENTITY : ${glEntityInterfaceName} {\r
- _entityPropertySetupperMap.put(columnName, setupper);\r
- _entityPropertySetupperMap.put(propertyName, setupper);\r
- _entityPropertySetupperMap.put(columnName.ToLower(), setupper);\r
- _entityPropertySetupperMap.put(propertyName.ToLower(), setupper);\r
- }\r
- \r
- // ===============================================================================\r
- // Assist Helper\r
- // =============\r
-// protected abstract void checkDowncast(${glEntityInterfaceName} entity);\r
-// \r
-// protected String helpGettingColumnStringValue(Object value) {\r
-// if (value instanceof java.sql.Timestamp) {\r
-// return (value != null ? helpFormatingTimestamp((java.sql.Timestamp)value) : "");\r
-// } else if (value instanceof java.util.Date) {\r
-// return (value != null ? helpFormatingDate((java.util.Date)value) : "");\r
-// } else {\r
-// return (value != null ? value.toString() : "");\r
-// }\r
-// }\r
-\r
-// protected String helpFormatingDate(java.util.Date date) {\r
-// return MapStringUtil.formatDate(date);\r
-// }\r
-\r
-// protected String helpFormatingTimestamp(java.sql.Timestamp timestamp) {\r
-// return MapStringUtil.formatTimestamp(timestamp);\r
-// }\r
-\r
- // ===============================================================================\r
- // General Helper\r
- // ==============\r
- // -------------------------------------------------\r
- // Reflection Handling\r
- // -------------------\r
- protected bool HasProperty(String propertyName) {\r
- AssertStringNotNullAndNotTrimmedEmpty("propertyName", propertyName);\r
- PropertyInfo propertyInfo = this.GetType().GetProperty(propertyName);\r
- return propertyInfo != null;\r
- }\r
-\r
- // -------------------------------------------------\r
- // String Handling\r
- // ---------------\r
- protected static String InitCap(String str) {\r
- return ${glSimpleStringUtil}.InitCap(str);\r
- }\r
-\r
- // -------------------------------------------------\r
- // Assert Object\r
- // -------------\r
- protected static void AssertObjectNotNull(String variableName, Object value) {\r
- ${glSimpleAssertUtil}.AssertObjectNotNull(variableName, value);\r
- }\r
-\r
- // -------------------------------------------------\r
- // Assert String\r
- // -------------\r
- protected static void AssertStringNotNullAndNotTrimmedEmpty(String variableName, String value) {\r
- ${glSimpleAssertUtil}.AssertStringNotNullAndNotTrimmedEmpty(variableName, value);\r
- }\r
- }\r
-}\r
+++ /dev/null
-#set ($myClassName = "${glDBMetaInterfaceName}")\r
-\r
-using System;\r
-\r
-using ${glPackageBaseCommon};\r
-using ${glPackageBaseCommonCBean};\r
-using ${glPackageBaseCommonDBMetaInfo};\r
-using ${glPackageBaseCommonJavaLike};\r
-\r
-namespace ${glPackageBaseCommonDBMeta} {\r
-\r
- public interface ${myClassName} {\r
-\r
- // ===============================================================================\r
- // Table Name\r
- // ==========\r
- String TableDbName { get; }\r
- String TablePropertyName { get; }\r
- String TableSqlName { get; }\r
-\r
- // ===============================================================================\r
- // Name Handling\r
- // =============\r
- bool HasFlexibleName(String flexibleName);\r
- String FindDbName(String flexibleName);\r
- String FindPropertyName(String flexibleName);\r
-\r
- // ===============================================================================\r
- // Name Map\r
- // ========\r
- Map<String, String> DbNamePropertyNameKeyToLowerMap { get; }\r
- Map<String, String> PropertyNameDbNameKeyToLowerMap { get; }\r
-\r
- // ===============================================================================\r
- // Type Name\r
- // =========\r
- String EntityTypeName { get; }\r
- String DaoTypeName { get; }\r
- String ConditionBeanTypeName { get; }\r
- String BehaviorTypeName { get; }\r
-\r
- // ===============================================================================\r
- // Object Type\r
- // ===========\r
- Type EntityType { get; }\r
-\r
- // ===============================================================================\r
- // Object Instance\r
- // ===============\r
- ${glEntityInterfaceName} NewEntity();\r
- ${glConditionBeanInterfaceName} NewConditionBean();\r
-\r
- // ===============================================================================\r
- // Column Info\r
- // ===========\r
- List<${glColumnInfoName}> ColumnInfoList { get; }\r
- bool HasColumn(String columnFlexibleName);\r
- ${glColumnInfoName} FindColumnInfo(String columnFlexibleName);\r
-\r
- // ===============================================================================\r
- // Unique Info\r
- // ===========\r
- ${glUniqueInfoName} PrimaryUniqueInfo { get; }\r
- bool HasPrimaryKey { get; }\r
- bool HasTwoOrMorePrimaryKeys { get; }\r
-\r
- // ===============================================================================\r
- // Relation Info\r
- // =============\r
- // -------------------------------------------------\r
- // Relation Element\r
- // ----------------\r
- ${glRelationInfoName} FindRelationInfo(String relationPropertyName);\r
-\r
- // -------------------------------------------------\r
- // Foreign Element\r
- // ---------------\r
- bool HasForeign(String foreignPropName);\r
- ${myClassName} FindForeignDBMeta(String foreignPropName);\r
- ${glForeignInfoName} FindForeignInfo(String foreignPropName);\r
-\r
- // -------------------------------------------------\r
- // Referrer Element\r
- // ----------------\r
- bool HasReferrer(String referrerPropertyName);\r
- ${myClassName} FindReferrerDBMeta(String referrerPropertyName);\r
- ${glReferrerInfoName} FindReferrerInfo(String referrerPropertyName);\r
-\r
- // ===============================================================================\r
- // Sequence Info\r
- // =============\r
- bool HasSequence { get; }\r
- String SequenceNextValSql { get; }\r
-\r
- // ===============================================================================\r
- // Optimistic Lock Info\r
- // ====================\r
- bool HasVersionNo { get; }\r
- ${glColumnInfoName} VersionNoColumnInfo { get; }\r
- bool HasUpdateDate { get; }\r
- ${glColumnInfoName} UpdateDateColumnInfo { get; }\r
-\r
- // ===============================================================================\r
- // Common Column Info\r
- // ==================\r
- bool HasCommonColumn { get; }\r
-\r
- // ===============================================================================\r
- // Entity Property Setup\r
- // =====================\r
- bool HasEntityPropertySetupper(String propertyName);\r
- void SetupEntityProperty(String propertyName, Object entity, Object value);\r
- }\r
-\r
- public interface EntityPropertySetupper<ENTITY> where ENTITY : ${glEntityInterfaceName} {\r
- void Setup(ENTITY entity, Object value);\r
- }\r
-\r
- public enum OptimisticLockType {\r
- NONE, VERSION_NO, UPDATE_DATE\r
- }\r
-}\r
+++ /dev/null
-#set ($myClassName = "${glDBMetaInstanceHandlerName}")\r
-#set ($instanceMapGenericDefinition = "String, ${glDBMetaInterfaceName}")\r
-\r
-using System;\r
-\r
-using ${glPackageBaseCommonJavaLike};\r
-using ${glPackageBaseCommonUtil};\r
-\r
-namespace ${glPackageBaseCommonDBMeta} {\r
-\r
- public class ${myClassName} {\r
-\r
- // ===============================================================================\r
- // Definition\r
- // ==========\r
- protected static readonly Map<String, ${glDBMetaInterfaceName}> _tableDbNameInstanceMap = new HashMap<String, ${glDBMetaInterfaceName}>();\r
- protected static readonly Map<String, String> _tableDbNameClassNameMap;\r
- protected static readonly Map<String, String> _tableDbNamePropertyNameKeyToLowerMap;\r
- protected static readonly Map<String, String> _tablePropertyNameDbNameKeyToLowerMap;\r
-\r
- static ${myClassName}() {\r
- {\r
- Map<String, String> tmpMap = new HashMap<String, String>();\r
-#foreach ($table in $database.tables)\r
- tmpMap.put("${table.name}", "${glPackageBaseDBMeta}.${glProjectPrefix}${table.JavaName}Dbm");\r
-#end\r
- _tableDbNameClassNameMap = tmpMap;//java.util.Collections.unmodifiableMap(tmpMap);\r
- }\r
-\r
- {\r
- Map<String, String> tmpMap = new HashMap<String, String>();\r
-#foreach ($table in $database.tables)\r
- tmpMap.put("${table.name}".ToLower(), "${table.javaBeansRulePropertyName}");\r
-#end\r
- _tableDbNamePropertyNameKeyToLowerMap = tmpMap;//java.util.Collections.unmodifiableMap(tmpMap);\r
- }\r
-\r
- {\r
- Map<String, String> tmpMap = new HashMap<String, String>();\r
-#foreach ($table in $database.tables)\r
- tmpMap.put("${table.javaName}".ToLower(), "${table.name}");\r
-#end\r
- _tablePropertyNameDbNameKeyToLowerMap = tmpMap;//java.util.Collections.unmodifiableMap(tmpMap);\r
- }\r
- }\r
-\r
- protected static ${glDBMetaInterfaceName} GetDBMeta(String className) {\r
- Type clazz = ForName(className, AppDomain.CurrentDomain.GetAssemblies());\r
- if (clazz == null) {\r
- String msg = "The className was not found: " + className + " assemblys=";\r
- msg = msg + Seasar.Framework.Util.ToStringUtil.ToString(AppDomain.CurrentDomain.GetAssemblies());\r
- throw new SystemException(msg);\r
- }\r
- System.Reflection.MethodInfo method = clazz.GetMethod("GetInstance");\r
- return (${glDBMetaInterfaceName})method.Invoke(null, null);\r
- }\r
-\r
- protected static Type ForName(string className, System.Collections.IList assemblys) {\r
- Type type = Type.GetType(className);\r
- if(type != null) return type;\r
- foreach(String assemblyName in assemblys) {\r
- System.Reflection.Assembly assembly = System.Reflection.Assembly.Load(assemblyName);\r
- if (assembly == null) {\r
- String msg = "The assemblyName was not found: " + assemblyName + " assemblys=";\r
- msg = msg + Seasar.Framework.Util.ToStringUtil.ToString(assemblys);\r
- throw new SystemException(msg);\r
- }\r
- type = assembly.GetType(className);\r
- if(type != null) return type;\r
- }\r
- return type;\r
- }\r
-\r
- // Returns the initialized map that contains all instances of dbmeta. (NotNull & NotEmpty)\r
- public static Map<String, ${glDBMetaInterfaceName}> GetDBMetaMap() {\r
- InitializeDBMetaMap();\r
- return _tableDbNameInstanceMap;\r
- }\r
- \r
- protected static void InitializeDBMetaMap() {\r
- if (IsInitialized) {\r
- return;\r
- }\r
- Set<String> tableDbNameSet = _tableDbNameClassNameMap.keySet();\r
- foreach (String tableDbName in tableDbNameSet) {\r
- FindDBMeta(tableDbName); // Initialize!\r
- }\r
- if (!IsInitialized) {\r
- String msg = "Failed to initialize tableDbNameInstanceMap:";\r
- msg = msg + " tableDbNameInstanceMap=" + _tableDbNameInstanceMap;\r
- throw new IllegalStateException(msg);\r
- }\r
- }\r
-\r
- protected static bool IsInitialized { get {\r
- return _tableDbNameInstanceMap.size() == _tableDbNameClassNameMap.size();\r
- }}\r
-\r
- // ===============================================================================\r
- // Main Method\r
- // ===========\r
- /// <summary>\r
- /// Find dbmeta by table flexible-name.\r
- /// <![CDATA[\r
- /// If the table name is 'ORDER_DETAIL', you can find the dbmeta by ...(as follows)\r
- /// 'ORDER_DETAIL', 'ORDer_DeTAiL', 'order_detail'\r
- /// , 'OrderDetail', 'orderdetail', 'oRderDetaIl'\r
- /// ]]>\r
- /// </summary>\r
- /// <param name="tableFlexibleName">Table flexible-name. (NotNull and NotEmpty)</param>\r
- /// <returns>DBMeta. (NotNull)</returns>\r
- public static ${glDBMetaInterfaceName} FindDBMeta(String tableFlexibleName) {\r
- AssertStringNotNullAndNotTrimmedEmpty("tableFlexibleName", tableFlexibleName);\r
- if (_tableDbNameInstanceMap.containsKey(tableFlexibleName)) {\r
- return ByTableDbName(tableFlexibleName);\r
- }\r
- String toLowerKey = tableFlexibleName.ToLower();\r
- if (_tableDbNamePropertyNameKeyToLowerMap.containsKey(toLowerKey)) {\r
- String propertyName = (String)_tableDbNamePropertyNameKeyToLowerMap.get(toLowerKey);\r
- String dbName = (String)_tablePropertyNameDbNameKeyToLowerMap.get(propertyName.ToLower());\r
- return ByTableDbName(dbName);\r
- }\r
- if (_tablePropertyNameDbNameKeyToLowerMap.containsKey(toLowerKey)) {\r
- String dbName = (String)_tablePropertyNameDbNameKeyToLowerMap.get(toLowerKey);\r
- return ByTableDbName(dbName);\r
- }\r
- int dotLastIndex = tableFlexibleName.LastIndexOf(".");\r
- if (dotLastIndex >= 0) {\r
- try {\r
- return FindDBMeta(tableFlexibleName.Substring(dotLastIndex + 1));\r
- } catch (DBMetaNotFoundException) {\r
- // Nothing\r
- }\r
- }\r
- String msg = "The instance map returned null by the key: key=" + tableFlexibleName + " instanceMap=" + _tableDbNameInstanceMap;\r
- throw new DBMetaNotFoundException(msg);\r
- }\r
-\r
- protected static ${glDBMetaInterfaceName} ByTableDbName(String tableDbName) {\r
- AssertObjectNotNull("tableDbName", tableDbName);\r
- try {\r
- return GetCachedDBMeta(tableDbName);\r
- } catch (System.Collections.Generic.KeyNotFoundException e) {\r
- String msg = "The tableDbNameInstanceMap didn't contain the key of '" + tableDbName + "': ";\r
- throw new ArgumentOutOfRangeException(msg + _tableDbNameInstanceMap, e);\r
- }\r
- }\r
-\r
- protected static ${glDBMetaInterfaceName} GetCachedDBMeta(String tableName) {// For lazy-load! Thank you koyak!\r
- if (_tableDbNameInstanceMap.containsKey(tableName)) {\r
- return _tableDbNameInstanceMap.get(tableName);\r
- }\r
- lock (_tableDbNameInstanceMap) {\r
- if (_tableDbNameInstanceMap.containsKey(tableName)) {\r
- return _tableDbNameInstanceMap.get(tableName);\r
- }\r
- String entityName = _tableDbNameClassNameMap.get(tableName);\r
- _tableDbNameInstanceMap.put(tableName, GetDBMeta(entityName));\r
- }\r
- return _tableDbNameInstanceMap.get(tableName);\r
- }\r
-\r
- // ===============================================================================\r
- // General Helper\r
- // ==============\r
- // -------------------------------------------------\r
- // Assert Object\r
- // -------------\r
- protected static void AssertObjectNotNull(String variableName, Object value) {\r
- ${glSimpleAssertUtil}.AssertObjectNotNull(variableName, value);\r
- }\r
-\r
- // -------------------------------------------------\r
- // Assert String\r
- // -------------\r
- protected static void AssertStringNotNullAndNotTrimmedEmpty(String variableName, String value) {\r
- ${glSimpleAssertUtil}.AssertStringNotNullAndNotTrimmedEmpty(variableName, value);\r
- }\r
- }\r
-\r
- public class DBMetaNotFoundException : SystemException {\r
-\r
- public DBMetaNotFoundException(String msg)\r
- : base(msg) {}\r
- }\r
-}\r
+++ /dev/null
-#set ($myClassName = "${glColumnInfoName}")\r
-\r
-using System;\r
-using System.Reflection;\r
-\r
-using ${glPackageBaseCommonDBMeta};\r
-\r
-namespace ${glPackageBaseCommonDBMetaInfo} {\r
-\r
- public class ${myClassName} {\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected ${glDBMetaInterfaceName} dbmeta;\r
- protected String columnDbName;\r
- protected String propertyName;\r
- protected Type propertyType;\r
- protected bool primary;\r
- protected int? columnSize;\r
- protected int? columnDecimalDigits;\r
- protected OptimisticLockType optimisticLockType;\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${myClassName}(${glDBMetaInterfaceName} dbmeta, String columnDbName) : this (dbmeta, columnDbName, null, null, false, null, null) {\r
- }\r
-\r
- public ${myClassName}(${glDBMetaInterfaceName} dbmeta, String columnDbName, String propertyName, Type propertyType, bool primary, int? columnSize, int? columnDecimalDigits)\r
- : this (dbmeta, columnDbName, propertyName, propertyType, primary, columnSize, columnDecimalDigits, OptimisticLockType.NONE) {\r
- }\r
-\r
- public ${myClassName}(${glDBMetaInterfaceName} dbmeta, String columnDbName, String propertyName, Type propertyType, bool primary, int? columnSize, int? columnDecimalDigits, OptimisticLockType optimisticLockType) {\r
- this.dbmeta = dbmeta;\r
- this.columnDbName = columnDbName;\r
- this.propertyName = propertyName;\r
- this.propertyType = propertyType;\r
- this.primary = primary;\r
- this.columnSize = columnSize;\r
- this.columnDecimalDigits = columnDecimalDigits;\r
- this.optimisticLockType = optimisticLockType;\r
- }\r
-\r
- // ===============================================================================\r
- // Finder\r
- // ======\r
- public PropertyInfo FindProperty() {\r
- return FindProperty(dbmeta.EntityType, propertyName);\r
- }\r
-\r
- // ===============================================================================\r
- // Internal Helper\r
- // ===============\r
- protected virtual PropertyInfo FindProperty(Type clazz, String name) {\r
- return clazz.GetProperty(name);\r
- }\r
-\r
- // ===============================================================================\r
- // Optimistic Lock Type\r
- // ====================\r
- public bool IsOptimisticLock { get {\r
- return IsVersionNo || IsUpdateDate;\r
- }}\r
-\r
- public bool IsVersionNo { get {\r
- return OptimisticLockType.VERSION_NO == optimisticLockType;\r
- }}\r
-\r
- public bool IsUpdateDate { get {\r
- return OptimisticLockType.UPDATE_DATE == optimisticLockType;\r
- }}\r
-\r
- // ===============================================================================\r
- // Basic Override\r
- // ==============\r
- public override int GetHashCode() {\r
- return dbmeta.GetHashCode() + columnDbName.GetHashCode();\r
- }\r
-\r
- public override bool Equals(Object obj) {\r
- if (!(obj is ${myClassName})) {\r
- return false;\r
- }\r
- ${myClassName} target = (${myClassName})obj;\r
- if (dbmeta == null || target.DBMeta == null) {\r
- return false;\r
- }\r
- if (!dbmeta.Equals(target.DBMeta)) {\r
- return false;\r
- }\r
- if (columnDbName == null || target.ColumnDbName == null) {\r
- return false;\r
- }\r
- if (!columnDbName.Equals(target.ColumnDbName)) {\r
- return false;\r
- }\r
- return true;\r
- }\r
-\r
- public override String ToString() {\r
- return dbmeta.TableDbName + "." + columnDbName;\r
- }\r
-\r
- // ===============================================================================\r
- // Accessor\r
- // ========\r
- public ${glDBMetaInterfaceName} DBMeta {\r
- get { return dbmeta; }\r
- set { dbmeta = value; }\r
- }\r
-\r
- public String ColumnDbName {\r
- get { return columnDbName; }\r
- set { columnDbName = value; }\r
- }\r
-\r
- public String PropertyName {\r
- get { return propertyName; }\r
- set { propertyName = value; }\r
- }\r
-\r
- public Type PropertyType {\r
- get { return propertyType; }\r
- set { propertyType = value; }\r
- }\r
-\r
- public bool IsPrimary {\r
- get { return primary; }\r
- set { primary = value; }\r
- }\r
-\r
- public int? ColumnSize {\r
- get { return columnSize; }\r
- set { columnSize = value; }\r
- }\r
-\r
- public int? ColumnDecimalDigits {\r
- get { return columnDecimalDigits; }\r
- set { columnDecimalDigits = value; }\r
- }\r
- }\r
-}\r
+++ /dev/null
-#set ($myClassName = "${glForeignInfoName}")\r
-\r
-using System;\r
-using System.Reflection;\r
-\r
-using ${glPackageBaseCommonDBMeta};\r
-using ${glPackageBaseCommonJavaLike};\r
-using ${glPackageBaseCommonUtil};\r
-\r
-namespace ${glPackageBaseCommonDBMetaInfo} {\r
-\r
- public class ${myClassName} : ${glRelationInfoName} {\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected String foreignPropertyName;\r
- protected ${glDBMetaInterfaceName} localDBMeta;\r
- protected ${glDBMetaInterfaceName} foreignDBMeta;\r
- protected Map<${glColumnInfoName}, ${glColumnInfoName}> localForeignColumnInfoMap;\r
- protected Map<${glColumnInfoName}, ${glColumnInfoName}> foreignLocalColumnInfoMap;\r
- protected int relationNo;\r
- protected bool oneToOne;\r
-\r
- // ===============================================================================\r
- // Finder\r
- // ======\r
- public ${glColumnInfoName} FindLocalByForeign(String foreignColumnDbName) {\r
- ${glColumnInfoName} keyColumnInfo = new ${glColumnInfoName}(foreignDBMeta, foreignColumnDbName);\r
- ${glColumnInfoName} resultColumnInfo = (${glColumnInfoName})foreignLocalColumnInfoMap.get(keyColumnInfo);\r
- if (resultColumnInfo == null) {\r
- String msg = "Not found by foreignColumnDbName in foreignLocalColumnInfoMap:";\r
- msg = msg + " foreignColumnDbName=" + foreignColumnDbName + " foreignLocalColumnInfoMap=" + foreignLocalColumnInfoMap;\r
- throw new ArgumentException(msg);\r
- }\r
- return resultColumnInfo;\r
- }\r
-\r
- public PropertyInfo FindAccessor() {\r
- return FindProperty(localDBMeta.EntityType, BuildInitCapPropertyName(), new Type[] { typeof(System.Collections.Generic.IList<>) });\r
- }\r
-\r
- // ===============================================================================\r
- // Builder\r
- // =======\r
- public String BuildInitCapPropertyName() {\r
- return InitCap(this.foreignPropertyName);\r
- }\r
-\r
- // ===============================================================================\r
- // Implement\r
- // =========\r
- public String RelationPropertyName {\r
- get { return ForeignPropertyName; }\r
- }\r
-\r
- public ${glDBMetaInterfaceName} TargetDBMeta {\r
- get { return ForeignDBMeta; }\r
- }\r
-\r
- public Map<${glColumnInfoName}, ${glColumnInfoName}> LocalTargetColumnInfoMap {\r
- get { return LocalForeignColumnInfoMap; }\r
- }\r
-\r
- public bool IsReferrer {\r
- get { return false; }\r
- }\r
-\r
- // ===============================================================================\r
- // Accessor\r
- // ========\r
- public String ForeignPropertyName {\r
- get { return foreignPropertyName; }\r
- set {this.foreignPropertyName = value; }\r
- }\r
-\r
- public ${glDBMetaInterfaceName} LocalDBMeta {\r
- get { return localDBMeta; }\r
- set { this.localDBMeta = value; }\r
- }\r
-\r
- public ${glDBMetaInterfaceName} ForeignDBMeta {\r
- get { return foreignDBMeta; }\r
- set { this.foreignDBMeta = value; }\r
- }\r
-\r
- public Map<${glColumnInfoName}, ${glColumnInfoName}> LocalForeignColumnInfoMap {\r
- get { return localForeignColumnInfoMap; }\r
- set {\r
- this.localForeignColumnInfoMap = value;\r
- foreignLocalColumnInfoMap = new LinkedHashMap<${glColumnInfoName}, ${glColumnInfoName}>();\r
- foreach (${glColumnInfoName} key in localForeignColumnInfoMap.keySet()) {\r
- ${glColumnInfoName} val = (${glColumnInfoName})localForeignColumnInfoMap.get(key);\r
- foreignLocalColumnInfoMap.put(val, key);\r
- }\r
- }\r
- }\r
-\r
- public Map<${glColumnInfoName}, ${glColumnInfoName}> ForeignLocalColumnInfoMap {\r
- get { return foreignLocalColumnInfoMap; }\r
- }\r
-\r
- public int RelationNo {\r
- get { return relationNo; }\r
- set { this.relationNo = value; }\r
- }\r
-\r
- public bool IsOneToOne {\r
- get { return oneToOne; }\r
- set { this.oneToOne = value; }\r
- }\r
-\r
- // ===============================================================================\r
- // General Helper\r
- // ==============\r
- // -------------------------------------------------\r
- // Reflection Handling\r
- // -------------------\r
- protected static PropertyInfo FindProperty(Type clazz, String propertyName, Type[] argTypes) {\r
- return clazz.GetProperty(propertyName, argTypes);\r
- }\r
- \r
- // -------------------------------------------------\r
- // String Handling\r
- // ---------------\r
- protected static String InitCap(String str) {\r
- return ${glSimpleStringUtil}.InitCap(str);\r
- }\r
- }\r
-}\r
+++ /dev/null
-#set ($myClassName = "${glReferrerInfoName}")\r
-\r
-using System;\r
-using System.Reflection;\r
-\r
-using ${glPackageBaseCommonDBMeta};\r
-using ${glPackageBaseCommonJavaLike};\r
-using ${glPackageBaseCommonUtil};\r
-\r
-namespace ${glPackageBaseCommonDBMetaInfo} {\r
-\r
- public class ${myClassName} : ${glRelationInfoName} {\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected String referrerPropertyName;\r
- protected ${glDBMetaInterfaceName} localDBMeta;\r
- protected ${glDBMetaInterfaceName} referrerDBMeta;\r
- protected Map<${glColumnInfoName}, ${glColumnInfoName}> localReferrerColumnInfoMap;\r
- protected Map<${glColumnInfoName}, ${glColumnInfoName}> referrerLocalColumnInfoMap;\r
- protected bool oneToOne;\r
-\r
- // ===============================================================================\r
- // Finder\r
- // ======\r
- public ${glColumnInfoName} FindLocalByReferrer(String referrerColumnDbName) {\r
- ${glColumnInfoName} keyColumnInfo = new ${glColumnInfoName}(referrerDBMeta, referrerColumnDbName);\r
- ${glColumnInfoName} resultColumnInfo = (${glColumnInfoName})referrerLocalColumnInfoMap.get(keyColumnInfo);\r
- if (resultColumnInfo == null) {\r
- String msg = "Not found by referrerColumnDbName in referrerLocalColumnInfoMap:";\r
- msg = msg + " referrerColumnDbName=" + referrerColumnDbName + " referrerLocalColumnInfoMap=" + referrerLocalColumnInfoMap;\r
- throw new ArgumentException(msg);\r
- }\r
- return resultColumnInfo;\r
- }\r
-\r
- public ${glColumnInfoName} FindReferrerByLocal(String localColumnDbName) {\r
- ${glColumnInfoName} keyColumnInfo = new ${glColumnInfoName}(localDBMeta, localColumnDbName);\r
- ${glColumnInfoName} resultColumnInfo = (${glColumnInfoName})localReferrerColumnInfoMap.get(keyColumnInfo);\r
- if (resultColumnInfo == null) {\r
- String msg = "Not found by localColumnDbName in localReferrerColumnInfoMap:";\r
- msg = msg + " localColumnDbName=" + localColumnDbName + " localReferrerColumnInfoMap=" + localReferrerColumnInfoMap;\r
- throw new ArgumentException(msg);\r
- }\r
- return resultColumnInfo;\r
- }\r
-\r
- public PropertyInfo FindAccessor() {\r
- return FindProperty(localDBMeta.EntityType, BuildInitCapPropertyName(), new Type[] { typeof(System.Collections.Generic.IList<>) });\r
- }\r
-\r
- // ===============================================================================\r
- // Builder\r
- // =======\r
- public String BuildInitCapPropertyName() {\r
- return InitCap(this.referrerPropertyName);\r
- }\r
-\r
- // ===============================================================================\r
- // Implement\r
- // =========\r
- public String RelationPropertyName {\r
- get { return ReferrerPropertyName; }\r
- }\r
-\r
- public ${glDBMetaInterfaceName} TargetDBMeta {\r
- get { return ReferrerDBMeta; }\r
- }\r
-\r
- public Map<${glColumnInfoName}, ${glColumnInfoName}> LocalTargetColumnInfoMap {\r
- get { return LocalReferrerColumnInfoMap; }\r
- }\r
-\r
- public bool IsReferrer {\r
- get { return true; }\r
- }\r
-\r
- // ===============================================================================\r
- // Accessor\r
- // ========\r
- public String ReferrerPropertyName {\r
- get { return referrerPropertyName; }\r
- set { this.referrerPropertyName = value; }\r
- }\r
-\r
- public ${glDBMetaInterfaceName} LocalDBMeta {\r
- get { return localDBMeta; }\r
- set { this.localDBMeta = value; }\r
- }\r
-\r
- public ${glDBMetaInterfaceName} ReferrerDBMeta {\r
- get { return referrerDBMeta; }\r
- set { this.referrerDBMeta = value; }\r
- }\r
-\r
- public Map<${glColumnInfoName}, ${glColumnInfoName}> LocalReferrerColumnInfoMap {\r
- get { return localReferrerColumnInfoMap; }\r
- set { \r
- this.localReferrerColumnInfoMap = value;\r
- referrerLocalColumnInfoMap = new LinkedHashMap<${glColumnInfoName}, ${glColumnInfoName}>();\r
- foreach (${glColumnInfoName} key in localReferrerColumnInfoMap.keySet()) {\r
- ${glColumnInfoName} val = (${glColumnInfoName})localReferrerColumnInfoMap.get(key);\r
- referrerLocalColumnInfoMap.put(val, key);\r
- }\r
- }\r
- }\r
-\r
- public Map<${glColumnInfoName}, ${glColumnInfoName}> ReferrerLocalColumnInfoMap {\r
- get { return referrerLocalColumnInfoMap; }\r
- }\r
-\r
- public bool IsOneToOne {\r
- get { return oneToOne; }\r
- set { this.oneToOne = value; }\r
- }\r
- \r
- // ===============================================================================\r
- // General Helper\r
- // ==============\r
- // -------------------------------------------------\r
- // Reflection Handling\r
- // -------------------\r
- protected static PropertyInfo FindProperty(Type clazz, String propertyName, Type[] argTypes) {\r
- return clazz.GetProperty(propertyName, argTypes);\r
- }\r
- \r
- // -------------------------------------------------\r
- // String Handling\r
- // ---------------\r
- protected static String InitCap(String str) {\r
- return ${glSimpleStringUtil}.InitCap(str);\r
- }\r
- }\r
-}\r
+++ /dev/null
-#set ($myClassName = "${glRelationInfoName}")\r
-\r
-using System;\r
-using ${glPackageBaseCommonDBMeta};\r
-using ${glPackageBaseCommonJavaLike};\r
-\r
-namespace ${glPackageBaseCommonDBMetaInfo} {\r
- \r
- public interface ${myClassName} {\r
-\r
- String RelationPropertyName { get; }\r
- ${glDBMetaInterfaceName} LocalDBMeta { get; }\r
- ${glDBMetaInterfaceName} TargetDBMeta { get; }\r
- Map<${glColumnInfoName},${glColumnInfoName}> LocalTargetColumnInfoMap { get; }\r
- bool IsOneToOne { get; }\r
- bool IsReferrer { get; }\r
- }\r
-}\r
+++ /dev/null
-#set ($myClassName = "${glUniqueInfoName}")\r
-\r
-using System;\r
-\r
-using ${glPackageBaseCommonDBMeta};\r
-using ${glPackageBaseCommonJavaLike};\r
-\r
-namespace ${glPackageBaseCommonDBMetaInfo} {\r
-\r
- public class ${myClassName} {\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected ${glDBMetaInterfaceName} dbmeta;\r
- protected List<${glColumnInfoName}> uniqueColumnList = new ArrayList<${glColumnInfoName}>();\r
- protected bool primary;\r
-\r
- // ===============================================================================\r
- // Easy-to-Use\r
- // ===========\r
- public bool ContainsColumn(String columnName) {\r
- foreach (${glColumnInfoName} columnInfo in uniqueColumnList) {\r
- if (columnInfo.ColumnDbName.Equals(columnName)) {\r
- return true;\r
- }\r
- }\r
- return false;\r
- }\r
-\r
- public bool ContainsColumn(${glColumnInfoName} column) {\r
- return ContainsColumn(column.ColumnDbName);\r
- }\r
-\r
- // ===============================================================================\r
- // Accessor\r
- // ========\r
- public ${glDBMetaInterfaceName} DBMeta {\r
- get { return dbmeta; }\r
- set { this.dbmeta = value; }\r
- }\r
-\r
- public List<${glColumnInfoName}> UniqueColumnList {\r
- get { return uniqueColumnList; }\r
- }\r
-\r
- public void AddUniqueColumnList(${glColumnInfoName} uniqueColumn) {\r
- this.uniqueColumnList.add(uniqueColumn);\r
- }\r
-\r
- public ${glColumnInfoName} FirstColumn {\r
- get { return (${glColumnInfoName})this.uniqueColumnList.get(0); }\r
- }\r
-\r
- public bool IsTwoOrMore {\r
- get { return this.uniqueColumnList.size() > 1; }\r
- }\r
-\r
- public bool IsPrimary {\r
- get { return this.primary; }\r
- set { this.primary = value; }\r
- }\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-\r
-namespace ${glPackageBaseCommonException} {\r
-\r
- /// <summary>\r
- /// The exception of when the entity has already been updated by other thread in batch update.\r
- /// Author: ${database.ClassAuthor}\r
- /// </summary>\r
- public class ${glBatchEntityAlreadyUpdatedException} : ${glEntityAlreadyUpdatedException} {\r
-\r
- protected int? _batchUpdateCount;\r
- public ${glBatchEntityAlreadyUpdatedException}(Object bean, int rows, int? batchUpdateCount)\r
- : base(bean, rows) { this._batchUpdateCount = batchUpdateCount; }\r
- \r
- public int? BatchUpdateCount { get { return _batchUpdateCount; } }\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections;\r
-\r
-namespace ${glPackageBaseCommonException} {\r
-\r
- /// <summary>\r
- /// The exception of when the property on bind variable comment is not found about outsideSql.\r
- /// </summary>\r
- public class ${glBindVariableCommentNotFoundPropertyException} : SystemException {\r
-\r
- public ${glBindVariableCommentNotFoundPropertyException}(String msg)\r
- : base(msg) {}\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections;\r
-\r
-namespace ${glPackageBaseCommonException} {\r
-\r
- /// <summary>\r
- /// The exception of when the value of bind variable is null about outsideSql.\r
- /// </summary>\r
- public class ${glBindVariableParameterNullValueException} : SystemException {\r
-\r
- public ${glBindVariableParameterNullValueException}(String msg)\r
- : base(msg) {}\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-\r
-namespace ${glPackageBaseCommonException} {\r
-\r
- /// <summary>\r
- /// The exception of when the result size is dangerous.\r
- /// </summary>\r
- public class ${glDangerousResultSizeException} : SystemException {\r
-\r
- protected int _safetyMaxResultSize;\r
-\r
- public ${glDangerousResultSizeException}(String msg, int safetyMaxResultSize)\r
- : base(msg) { _safetyMaxResultSize = safetyMaxResultSize; }\r
-\r
- public int SafetyMaxResultSize {\r
- get { return _safetyMaxResultSize; }\r
- }\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-\r
-namespace ${glPackageBaseCommonException} {\r
-\r
- /// <summary>\r
- /// The exception of when the property on embedded value comment is not found about outsideSql.\r
- /// </summary>\r
- public class ${glEmbeddedValueCommentNotFoundPropertyException} : SystemException {\r
-\r
- public ${glEmbeddedValueCommentNotFoundPropertyException}(String msg)\r
- : base(msg) {}\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-\r
-namespace ${glPackageBaseCommonException} {\r
-\r
- /// <summary>\r
- /// The exception of when the value of embedded value is null.\r
- /// </summary>\r
- public class ${glEmbeddedValueParameterNullValueException} : SystemException {\r
-\r
- public ${glEmbeddedValueParameterNullValueException}(String msg)\r
- : base(msg) {}\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-\r
-namespace ${glPackageBaseCommonException} {\r
-\r
- /// <summary>\r
- /// The exception of when the end comment is not found about outsideSql.\r
- /// </summary>\r
- public class ${glEndCommentNotFoundException} : SystemException {\r
-\r
- public ${glEndCommentNotFoundException}(String msg)\r
- : base(msg) {}\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-\r
-namespace ${glPackageBaseCommonException} {\r
-\r
- /// <summary>\r
- /// The exception of when the entity has already been deleted (by other thread).\r
- /// Author: ${database.ClassAuthor}\r
- /// </summary>\r
- public class ${glEntityAlreadyDeletedException} : SystemException {\r
-\r
- /// <summary>\r
- /// Constructor.\r
- /// </summary>\r
- /// <param="msg">Exception message. (NotNull)</param>\r
- public ${glEntityAlreadyDeletedException}(String msg)\r
- : base(msg) {}\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-\r
-namespace ${glPackageBaseCommonException} {\r
-\r
- /// <summary>\r
- /// The exception of when the entity already exists on the database.\r
- /// Author: ${database.ClassAuthor}\r
- /// </summary>\r
- public class ${glEntityAlreadyExistsException} : ${glSQLFailureException} {\r
-\r
- public ${glEntityAlreadyExistsException}(String msg, Exception e)\r
- : base(msg,e) {}\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using Seasar.Dao;\r
-\r
-namespace ${glPackageBaseCommonException} {\r
-\r
- /// <summary>\r
- /// The exception of when the entity has already been updated by other thread.\r
- /// Author: ${database.ClassAuthor}\r
- /// </summary>\r
- public class ${glEntityAlreadyUpdatedException} : NotSingleRowUpdatedRuntimeException {\r
-\r
- public ${glEntityAlreadyUpdatedException}(Object bean, int rows)\r
- : base(bean, rows) {}\r
-\r
- public ${glEntityAlreadyUpdatedException}(NotSingleRowUpdatedRuntimeException e)\r
- : base(e.Bean, e.Rows) {}\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections;\r
-\r
-namespace ${glPackageBaseCommonException} {\r
-\r
- /// <summary>\r
- /// The exception when the entity has been duplicated.\r
- /// Author: ${database.ClassAuthor}\r
- /// </summary>\r
- public class ${glEntityDuplicatedException} : SystemException {\r
-\r
- /// <summary>\r
- /// Constructor.\r
- /// </summary>\r
- /// <param="msg">Exception message.</param>\r
- public ${glEntityDuplicatedException}(String msg)\r
- : base(msg) {}\r
-\r
- public ${glEntityDuplicatedException}(String msg, Exception e)\r
- : base(msg, e) {}\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-\r
-namespace ${glPackageBaseCommonException} {\r
-\r
- /// <summary>\r
- /// The exception of when the condition of IF comment is not found about outsideSql.\r
- /// </summary>\r
- public class ${glIfCommentConditionNotFoundException} : SystemException {\r
-\r
- public ${glIfCommentConditionNotFoundException}(String msg)\r
- : base(msg) {}\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections;\r
-\r
-namespace ${glPackageBaseCommonException} {\r
-\r
- /// <summary>\r
- /// The exception of when the result of IF comment is not boolean about outsideSql.\r
- /// Author: ${database.ClassAuthor}\r
- /// </summary>\r
- public class ${glIfCommentNotBooleanResultException} : SystemException {\r
-\r
- public ${glIfCommentNotBooleanResultException}(String msg)\r
- : base(msg) {}\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections;\r
-\r
-namespace ${glPackageBaseCommonException} {\r
-\r
- /// <summary>\r
- /// The exception of when the IF comment has a wrong expression about outsideSql.\r
- /// Author: ${database.ClassAuthor}\r
- /// </summary>\r
- public class ${glIfCommentWrongExpressionException} : SystemException {\r
-\r
- /// <summary>\r
- /// Constructor.\r
- /// </summary>\r
- /// <param="msg">Exception message. (NotNull)</param>\r
- public ${glIfCommentWrongExpressionException}(String msg)\r
- : base(msg) {}\r
-\r
- /// <summary>\r
- /// Constructor.\r
- /// </summary>\r
- /// <param="msg">Exception message. (NotNull)</param>\r
- /// <param="cause">Exception. (NotNull)</param>\r
- public ${glIfCommentWrongExpressionException}(String msg, Exception cause)\r
- : base(msg, cause) {}\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections;\r
-\r
-namespace ${glPackageBaseCommonException} {\r
-\r
- /// <summary>\r
- /// The exception of when the outside-sql is not found.\r
- /// Author: ${database.ClassAuthor}\r
- /// </summary>\r
- public class ${glOutsideSqlNotFoundException} : SystemException {\r
-\r
- /// <summary>\r
- /// Constructor.\r
- /// </summary>\r
- /// <param="msg">Exception message.</param>\r
- public ${glOutsideSqlNotFoundException}(String msg)\r
- : base(msg) {}\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections;\r
-\r
-namespace ${glPackageBaseCommonException} {\r
-\r
- /// <summary>\r
- /// The exception of when the required option is not found.\r
- /// Author: ${database.ClassAuthor}\r
- /// </summary>\r
- public class ${glRequiredOptionNotFoundException} : SystemException {\r
-\r
- /// <summary>\r
- /// Constructor.\r
- /// </summary>\r
- /// <param="msg">Exception message.</param>\r
- public ${glRequiredOptionNotFoundException}(String msg)\r
- : base(msg) {}\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Data.Common;\r
-\r
-namespace ${glPackageBaseCommonException} {\r
-\r
- /// <summary>\r
- /// The exception of when the SQL failed to execute.\r
- /// Author: ${database.ClassAuthor}\r
- /// </summary>\r
- public class ${glSQLFailureException} : SystemException {\r
-\r
- protected DbException _causeDbException;\r
-\r
- public ${glSQLFailureException}(String msg, Exception e)\r
- : base(msg,e) {\r
- SetupCauseDbException(e);\r
- }\r
-\r
- protected void SetupCauseDbException(Exception e) {\r
- if (e is DbException) {\r
- _causeDbException = (DbException)e;\r
- return;\r
- }\r
- if (e == null) { return; }\r
- e = e.InnerException;\r
- if (e is DbException) {\r
- _causeDbException = (DbException)e;\r
- return;\r
- }\r
- if (e == null) { return; }\r
- e = e.InnerException;\r
- if (e is DbException) {\r
- _causeDbException = (DbException)e;\r
- return;\r
- }\r
- if (e == null) { return; }\r
- e = e.InnerException;\r
- if (e is DbException) {\r
- _causeDbException = (DbException)e;\r
- return;\r
- }\r
- if (e == null) { return; }\r
- e = e.InnerException;\r
- if (e is DbException) {\r
- _causeDbException = (DbException)e;\r
- return;\r
- }\r
- // It doesn't use recursive call by design because ADO.NET is unpredictable fellow.\r
- }\r
-\r
- public DbException CauseDbException { get { return _causeDbException; } }\r
- }\r
-}\r
+++ /dev/null
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-\r
-namespace ${glPackageBaseCommonHelper} {\r
-\r
- public interface ${glMapListStringName} {\r
-\r
- string NEW_LINE { get;}\r
-\r
- string DEFAULT_MAP_MARK { get;}\r
-\r
- string DEFAULT_LIST_MARK { get;}\r
-\r
- string DEFAULT_DELIMITER { get;}\r
-\r
- string DEFAULT_START_BRACE { get;}\r
-\r
- string DEFAULT_END_BRACE { get;}\r
-\r
- string DEFAULT_EQUAL { get;}\r
-\r
- String MapMark { get; set; }\r
-\r
- String ListMark { get; set; }\r
-\r
- String StartBrace { get; set; }\r
-\r
- String EndBrace { get; set; }\r
-\r
- String Delimiter { get; set; }\r
-\r
- String Equal { get; set; }\r
-\r
- // ==========================================================================================\r
- // Generate\r
- // ========\r
- /**\r
- * Generate map from map-string.\r
- * \r
- * @param mapString Map-string (NotNull)\r
- * @return Generated map. (NotNull)\r
- */\r
- Dictionary<String, Object> generateMap(String mapString);\r
-\r
- /**\r
- * Generate map from list-string. {Implement}\r
- * \r
- * @param listString List-string (NotNull)\r
- * @return Generated list. (NotNull)\r
- */\r
- List<Object> generateList(String listString);\r
- }\r
-}\r
+++ /dev/null
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-\r
-namespace ${glPackageBaseCommonHelper}\r
-{\r
- public class IllegalStateException : ApplicationException\r
- {\r
- public IllegalStateException(string message)\r
- : base(message)\r
- {\r
- }\r
- }\r
-\r
- public class IllegalArgumentException : ApplicationException\r
- {\r
- public IllegalArgumentException(string message)\r
- : base(message)\r
- {\r
- }\r
- }\r
-\r
- public class ${glMapListStringImplName} : ${glMapListStringName}\r
- {\r
- public string NEW_LINE\r
- {\r
- get { return "\n"; }\r
- }\r
-\r
- public string DEFAULT_MAP_MARK \r
- {\r
- get\r
- {\r
- return "map:";\r
- }\r
- }\r
-\r
- public string DEFAULT_LIST_MARK \r
- {\r
- get\r
- {\r
- return "list:";\r
- }\r
- }\r
-\r
- public string DEFAULT_DELIMITER \r
- {\r
- get\r
- {\r
- return ";";\r
- }\r
- }\r
-\r
- public string DEFAULT_START_BRACE \r
- {\r
- get\r
- {\r
- return "{";\r
- }\r
- }\r
-\r
- public string DEFAULT_END_BRACE \r
- {\r
- get\r
- {\r
- return "}";\r
- }\r
- }\r
-\r
- public string DEFAULT_EQUAL \r
- {\r
- get\r
- {\r
- return "=";\r
- }\r
- }\r
-\r
- /** Map-mark. */\r
- protected String _mapMark;\r
-\r
- /** List-mark. */\r
- protected String _listMark;\r
-\r
- /** Start-brace. */\r
- protected String _startBrace;\r
-\r
- /** End-brace. */\r
- protected String _endBrace;\r
-\r
- /** Delimiter. */\r
- protected String _delimiter;\r
-\r
- /** Equal. */\r
- protected String _equal;\r
-\r
- /** Remainder string. */\r
- protected String _topString;\r
-\r
- /** Remainder string. */\r
- protected String _remainderString;\r
-\r
- public ${glMapListStringImplName}()\r
- {\r
- _mapMark = DEFAULT_MAP_MARK;\r
- _listMark = DEFAULT_LIST_MARK;\r
- _startBrace = DEFAULT_START_BRACE;\r
- _endBrace = DEFAULT_END_BRACE;\r
- _delimiter = DEFAULT_DELIMITER;\r
- _equal = DEFAULT_EQUAL;\r
- }\r
-\r
- public String MapMark {\r
- get { return _mapMark; }\r
- set { _mapMark = value ; }\r
- }\r
-\r
- public String ListMark {\r
- get { return _listMark; }\r
- set { _listMark = value ; }\r
- }\r
-\r
- public String StartBrace {\r
- get { return _startBrace; }\r
- set { _startBrace = value ; }\r
- }\r
-\r
- public String EndBrace {\r
- get { return _endBrace; }\r
- set { _endBrace = value ; }\r
- }\r
-\r
- public String Delimiter {\r
- get { return _delimiter; }\r
- set { _delimiter = value ; }\r
- }\r
-\r
- public String Equal {\r
- get { return _equal; }\r
- set { _equal = value ; }\r
- }\r
-\r
- // ****************************************************************************************************\r
- // Main Method\r
- // ***********\r
-\r
- // ==========================================================================================\r
- // Generate\r
- // ========\r
- /**\r
- * Generate map from map-string. {Implement}\r
- * \r
- * @param mapString Map-string (NotNull)\r
- * @return Generated map. (NotNull)\r
- */\r
- public Dictionary<String, Object> generateMap(string mapString)\r
- {\r
- assertMapString(mapString);\r
-\r
- _topString = mapString;\r
- _remainderString = mapString;\r
-\r
- removeBothSideSpaceAndTabAndNewLine();\r
- removePrefixMapMarkAndStartBrace();\r
-\r
- Dictionary<String, Object> generatedMap = newStringObjectMap();\r
- parseRemainderMapString(generatedMap);\r
- if (!"".Equals(_remainderString) && !_endBrace.Equals(_remainderString))\r
- {\r
- string msg = "remainderString must be empty or end-brace string:";\r
- msg = msg + getNewLineAndIndent() + " # remainderString --> " + _remainderString;\r
- msg = msg + getNewLineAndIndent() + " # mapString --> " + mapString;\r
- msg = msg + getNewLineAndIndent() + " # generatedMap --> " + generatedMap;\r
- throw new IllegalStateException(msg);\r
- }\r
- return generatedMap;\r
- }\r
-\r
- /**\r
- * Generate map from list-string. {Implement}\r
- * \r
- * @param listString List-string (NotNull)\r
- * @return Generated list. (NotNull)\r
- */\r
- public List<Object> generateList(string listString)\r
- {\r
- assertListString(listString);\r
-\r
- _topString = listString;\r
- _remainderString = listString;\r
-\r
- removeBothSideSpaceAndTabAndNewLine();\r
- removePrefixListMarkAndStartBrace();\r
-\r
- List<Object> generatedList = newObjectList();\r
- parseRemainderListString(generatedList);\r
- if (!"".Equals(_remainderString) && !_endBrace.Equals(_remainderString))\r
- {\r
- string msg = "rRemainderString must be empty or end-brace string:";\r
- msg = msg + getNewLineAndIndent() + " # remainderString --> " + _remainderString;\r
- msg = msg + getNewLineAndIndent() + " # listString --> " + listString;\r
- msg = msg + getNewLineAndIndent() + " # generatedList --> " + generatedList;\r
- throw new IllegalStateException(msg);\r
- }\r
- return generatedList;\r
- }\r
-\r
- // ==========================================================================================\r
- // Parse\r
- // =====\r
- protected void parseRemainderMapString(Dictionary<String, Object> currentMap)\r
- {\r
- while (true)\r
- {\r
- if (initializeAtLoopBeginning())\r
- {\r
- return;\r
- }\r
-\r
- // *** Now, _remainderString should starts with the key of the map. ***\r
-\r
- int equalIndex = _remainderString.IndexOf(_equal);\r
- assertEqualIndex(_remainderString, equalIndex, _topString, currentMap);\r
- string mapKey = _remainderString.Substring(0, equalIndex).Trim();\r
- removePrefixTargetIndexPlus(equalIndex, _equal.Length);\r
- removeBothSideSpaceAndTabAndNewLine();\r
-\r
- // *** Now, _remainderString should starts with the value of the map. ***\r
-\r
- if (isStartsWithMapPrefix(_remainderString))\r
- {\r
- removePrefixMapMarkAndStartBrace();\r
- parseRemainderMapString(setupNestMap(currentMap, mapKey));\r
- if (closingAfterParseNestMapList())\r
- {\r
- return;\r
- }\r
- continue;\r
- }\r
-\r
- if (isStartsWithListPrefix(_remainderString))\r
- {\r
- removePrefixListMarkAndStartBrace();\r
- parseRemainderListString(setupNestList(currentMap, mapKey));\r
- if (closingAfterParseNestMapList())\r
- {\r
- return;\r
- }\r
- continue;\r
- }\r
-\r
- int delimiterIndex = _remainderString.IndexOf(_delimiter);\r
- int endBraceIndex = _remainderString.IndexOf(_endBrace);\r
- assertEndBracekIndex(_remainderString, endBraceIndex, _topString, currentMap);\r
-\r
- // If delimiter exists and delimiter is closer than end brace, \r
- // Everything from the head of the present remainder string to the delimiter becomes map value.\r
- // ex) value1,key2=value2}\r
- if (delimiterIndex >= 0 && delimiterIndex < endBraceIndex)\r
- {\r
- string mapValue = _remainderString.Substring(0, delimiterIndex);\r
- currentMap.Add(mapKey, filterMapListValue(mapValue));\r
-\r
- // Because the map element continues since the delimiter, skip the delimiter and continue the loop.\r
- removePrefixTargetIndexPlus(delimiterIndex, _delimiter.Length);\r
- continue;\r
- }\r
-\r
- // Everything from the head of the present remainder string to the delimiter becomes map value.\r
- // ex) value1}, key2=value2}\r
- string mapValue2 = _remainderString.Substring(0, endBraceIndex);\r
- currentMap.Add(mapKey, filterMapListValue(mapValue2));\r
-\r
- // Analyzing map is over. So closing and return.\r
- closingByEndBraceIndex(endBraceIndex);\r
- return;\r
- }\r
- }\r
-\r
- protected void parseRemainderListString(List<Object> currentList)\r
- {\r
- while (true)\r
- {\r
- if (initializeAtLoopBeginning())\r
- {\r
- return;\r
- }\r
-\r
- // *** Now, _remainderString should starts with the value of the list. ***\r
-\r
- if (isStartsWithMapPrefix(_remainderString))\r
- {\r
- removePrefixMapMarkAndStartBrace();\r
- parseRemainderMapString(setupNestMap(currentList));\r
- if (closingAfterParseNestMapList())\r
- {\r
- return;\r
- }\r
- continue;\r
- }\r
-\r
- if (isStartsWithListPrefix(_remainderString))\r
- {\r
- removePrefixListMarkAndStartBrace();\r
- parseRemainderListString(setupNestList(currentList));\r
- if (closingAfterParseNestMapList())\r
- {\r
- return;\r
- }\r
- continue;\r
- }\r
-\r
- int delimiterIndex = _remainderString.IndexOf(_delimiter);\r
- int endBraceIndex = _remainderString.IndexOf(_endBrace);\r
- assertEndBraceIndex(_remainderString, endBraceIndex, _topString, currentList);\r
-\r
- // If delimiter exists and delimiter is closer than end brace, \r
- // Everything from the head of the present remainder string to the delimiter becomes list value.\r
- // ex) value1,value2,value3}\r
- if (delimiterIndex >= 0 && delimiterIndex < endBraceIndex)\r
- {\r
- string listValue = _remainderString.Substring(0, delimiterIndex);\r
- currentList.Add(filterMapListValue(listValue));\r
-\r
- // Because the list element continues since the delimiter, skip the delimiter and continue the loop.\r
- removePrefixTargetIndexPlus(delimiterIndex, _delimiter.Length);\r
- continue;\r
- }\r
-\r
- // Everything from the head of the present remainder string to the delimiter becomes list value.\r
- // ex) value1}, value2, }\r
- string listValue2 = _remainderString.Substring(0, endBraceIndex);\r
- currentList.Add(filterMapListValue(listValue2));\r
-\r
- // Analyzing list is over. So closing and return.\r
- closingByEndBraceIndex(endBraceIndex);\r
- return;\r
- }\r
- }\r
-\r
- /**\r
- * @return Is return?\r
- */\r
- protected bool initializeAtLoopBeginning()\r
- {\r
- // Remove prefix delimiter. (Result string is always trimmed.)\r
- removePrefixAllDelimiter();\r
-\r
- // If the remainder string is empty-string, Analyzing is over!\r
- if (_remainderString.Equals(""))\r
- {\r
- return true;\r
- }\r
-\r
- // If the remainder string starts with end-brace, Analyzing current map is over!\r
- // And then remove the end-brace.\r
- if (isStartsWithEndBrace(_remainderString))\r
- {\r
- removePrefixEndBrace();\r
- return true;\r
- }\r
- return false;\r
- }\r
-\r
- /**\r
- * @return Is return?\r
- */\r
- protected bool closingAfterParseNestMapList()\r
- {\r
- // If the remainder string starts with end-brace, remove it and return true.\r
- if (isStartsWithEndBrace(_remainderString))\r
- {\r
- removePrefixEndBrace();\r
- return true;\r
- }\r
- return false;\r
- }\r
-\r
- protected void closingByEndBraceIndex(int endBraceIndex)\r
- {\r
- // Remove the value that was finished analyzing and end-brace.\r
- _remainderString = _remainderString.Substring(endBraceIndex);\r
- removePrefixEndBrace();\r
- }\r
-\r
- // ****************************************************************************************************\r
- // StateFul Method\r
- // ***************\r
-\r
- // ==========================================================================================\r
- // Remove\r
- // ======\r
- protected void removePrefixMapMarkAndStartBrace()\r
- {\r
- removePrefix(_mapMark + _startBrace);\r
- }\r
-\r
- protected void removePrefixListMarkAndStartBrace()\r
- {\r
- removePrefix(_listMark + _startBrace);\r
- }\r
-\r
- protected void removePrefixDelimiter()\r
- {\r
- removePrefix(_delimiter);\r
- }\r
-\r
- protected void removePrefixEndBrace()\r
- {\r
- removePrefix(_endBrace);\r
- }\r
-\r
- protected void removePrefix(String prefixString)\r
- {\r
- if (_remainderString == null)\r
- {\r
- String msg = "Argument[remainderString] must not be null: " + _remainderString;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- removeBothSideSpaceAndTabAndNewLine();\r
- if (prefixString == null)\r
- {\r
- String msg = "Argument[prefixString] must not be null: " + prefixString;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (_remainderString.Length < prefixString.Length)\r
- {\r
- String msg = "Argument[remainderString] length must be larger than Argument[prefixString] length:";\r
- msg = msg + getNewLineAndIndent() + " # remainderString --> " + _remainderString;\r
- msg = msg + getNewLineAndIndent() + " # prefixString=" + prefixString;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (!_remainderString.StartsWith(prefixString))\r
- {\r
- String msg = "Argument[remainderString] must start with Argument[prefixString:]";\r
- msg = msg + getNewLineAndIndent() + " # remainderString --> " + _remainderString;\r
- msg = msg + getNewLineAndIndent() + " # prefixString --> " + prefixString;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- \r
- _remainderString = _remainderString.Substring(prefixString.Length);\r
- removeBothSideSpaceAndTabAndNewLine();\r
- }\r
-\r
- protected void removePrefixAllDelimiter()\r
- {\r
- removeBothSideSpaceAndTabAndNewLine();\r
-\r
- while (true)\r
- {\r
- if (!isStartsWithDelimiter(_remainderString))\r
- {\r
- break;\r
- }\r
-\r
- if (isStartsWithDelimiter(_remainderString))\r
- {\r
- removePrefixDelimiter();\r
- removeBothSideSpaceAndTabAndNewLine();\r
- }\r
- }\r
- }\r
-\r
- protected void removeBothSideSpaceAndTabAndNewLine()\r
- {\r
- _remainderString = _remainderString.Trim();\r
- }\r
-\r
- protected void removePrefixTargetIndexPlus(int index, int plusCount)\r
- {\r
- _remainderString = _remainderString.Substring(index + plusCount);\r
- }\r
-\r
- // ****************************************************************************************************\r
- // StateLess Method\r
- // ****************\r
-\r
- // ==========================================================================================\r
- // Assert\r
- // ======\r
- protected void assertMapString(String mapString)\r
- {\r
- if (mapString == null)\r
- {\r
- String msg = "Argument[mapString] must not be null: ";\r
- throw new IllegalArgumentException(msg + "mapString=" + mapString);\r
- }\r
- mapString = mapString.Trim();\r
- if (!isStartsWithMapPrefix(mapString))\r
- {\r
- String msg = "Argument[mapString] must start with '" + _mapMark + _startBrace + "': ";\r
- throw new IllegalArgumentException(msg + "mapString=" + mapString);\r
- }\r
- if (!isEndsWithEndMark(mapString))\r
- {\r
- String msg = "Argument[mapString] must end with '" + _endBrace + "': ";\r
- throw new IllegalArgumentException(msg + "mapString=" + mapString);\r
- }\r
-\r
- int startBraceCount = getDelimiterCount(mapString, _startBrace);\r
- int endBraceCount = getDelimiterCount(mapString, _endBrace);\r
- if (startBraceCount != endBraceCount)\r
- {\r
- String msg = "It is necessary to have braces of the same number on start and end:";\r
- msg = msg + getNewLineAndIndent() + " # mapString --> " + mapString;\r
- msg = msg + getNewLineAndIndent() + " # startBraceCount --> " + startBraceCount;\r
- msg = msg + getNewLineAndIndent() + " # endBraceCount --> " + endBraceCount;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-\r
- protected void assertListString(String listString)\r
- {\r
- if (listString == null)\r
- {\r
- String msg = "Argument[listString] must not be null: ";\r
- throw new IllegalArgumentException(msg + "liststring=" + listString);\r
- }\r
- listString = listString.Trim();\r
- if (!isStartsWithListPrefix(listString))\r
- {\r
- string msg = "Argument[listString] must start with '" + _mapMark + "': ";\r
- throw new IllegalArgumentException(msg + "listString=" + listString);\r
- }\r
- if (!isEndsWithEndMark(listString))\r
- {\r
- string msg = "Argument[listString] must end with '" + _endBrace + "': ";\r
- throw new IllegalArgumentException(msg + "listString=" + listString);\r
- }\r
-\r
- int startBraceCount = getDelimiterCount(listString, _startBrace);\r
- int endBraceCount = getDelimiterCount(listString, _endBrace);\r
- if (startBraceCount != endBraceCount)\r
- {\r
- string msg = "It is necessary to have braces of the same number on start and end:";\r
- msg = msg + getNewLineAndIndent() + " # listString --> " + listString;\r
- msg = msg + getNewLineAndIndent() + " # startBraceCount --> " + startBraceCount;\r
- msg = msg + getNewLineAndIndent() + " # endBraceCount --> " + endBraceCount;\r
- msg = msg + getNewLineAndIndent() + " # _startBrace --> " + _startBrace;\r
- msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace;\r
- msg = msg + getNewLineAndIndent() + " # _delimiter --> " + _delimiter;\r
- msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-\r
- protected void assertEqualIndex(string remainderMapString, int equalIndex, string mapString4Log, Dictionary<string,object> currentMap4Log)\r
- {\r
- if (remainderMapString == null)\r
- {\r
- string msg = "Argument[remainderMapString] must not be null:";\r
- msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + remainderMapString;\r
- msg = msg + getNewLineAndIndent() + " # equalIndex --> " + equalIndex;\r
- msg = msg + getNewLineAndIndent() + " # mapString4Log --> " + mapString4Log;\r
- msg = msg + getNewLineAndIndent() + " # currentMap4Log --> " + currentMap4Log;\r
- msg = msg + getNewLineAndIndent() + " # _startBrace --> " + _startBrace;\r
- msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace;\r
- msg = msg + getNewLineAndIndent() + " # _delimiter --> " + _delimiter;\r
- msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal;\r
- throw new IllegalArgumentException(msg);\r
- }\r
-\r
- if (equalIndex < 0)\r
- {\r
- string msg = "Argument[equalIndex] must be plus or zero:";\r
- msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + remainderMapString;\r
- msg = msg + getNewLineAndIndent() + " # equalIndex --> " + equalIndex;\r
- msg = msg + getNewLineAndIndent() + " # mapString4Log --> " + mapString4Log;\r
- msg = msg + getNewLineAndIndent() + " # currentMap4Log --> " + currentMap4Log;\r
- msg = msg + getNewLineAndIndent() + " # _startBrace --> " + _startBrace;\r
- msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace;\r
- msg = msg + getNewLineAndIndent() + " # _delimiter --> " + _delimiter;\r
- msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal;\r
- throw new IllegalArgumentException(msg);\r
- }\r
-\r
- if (remainderMapString.Length < equalIndex)\r
- {\r
- string msg = "Argument[remainderMapString] length must be larger than equalIndex value:";\r
- msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + remainderMapString;\r
- msg = msg + getNewLineAndIndent() + " # equalIndex --> " + equalIndex;\r
- msg = msg + getNewLineAndIndent() + " # mapString4Log --> " + mapString4Log;\r
- msg = msg + getNewLineAndIndent() + " # currentMap4Log --> " + currentMap4Log;\r
- msg = msg + getNewLineAndIndent() + " # _startBrace --> " + _startBrace;\r
- msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace;\r
- msg = msg + getNewLineAndIndent() + " # _delimiter --> " + _delimiter;\r
- msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal;\r
- throw new IllegalArgumentException(msg);\r
- }\r
-\r
- String expectedAsEndMark = remainderMapString.Substring(equalIndex, _equal.Length);\r
- if (!expectedAsEndMark.Equals(_equal))\r
- {\r
- string msg = "Argument[remainderMapString] must have '" + _equal + "' at Argument[equalIndex]:";\r
- msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + remainderMapString;\r
- msg = msg + getNewLineAndIndent() + " # equalIndex --> " + equalIndex;\r
- msg = msg + getNewLineAndIndent() + " # expectedAsEndMark --> " + expectedAsEndMark;\r
- msg = msg + getNewLineAndIndent() + " # mapString --> " + mapString4Log;\r
- msg = msg + getNewLineAndIndent() + " # currentMap --> " + currentMap4Log;\r
- msg = msg + getNewLineAndIndent() + " # _startBrace --> " + _startBrace;\r
- msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace;\r
- msg = msg + getNewLineAndIndent() + " # _delimiter --> " + _delimiter;\r
- msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-\r
- protected void assertEndBracekIndex(string remainderMapString, int endBraceIndex, string mapString4Log,\r
- Dictionary<string, object> currentMap4Log)\r
- {\r
- if (remainderMapString == null)\r
- {\r
- string msg = "Argument[remainderMapString] must not be null:";\r
- msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + remainderMapString;\r
- msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + endBraceIndex;\r
- msg = msg + getNewLineAndIndent() + " # mapString --> " + mapString4Log;\r
- msg = msg + getNewLineAndIndent() + " # currentMap --> " + currentMap4Log;\r
- msg = msg + getNewLineAndIndent() + " # _startBrace --> " + _startBrace;\r
- msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace;\r
- msg = msg + getNewLineAndIndent() + " # _delimiter --> " + _delimiter;\r
- msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal;\r
- throw new IllegalArgumentException(msg);\r
- }\r
-\r
- if (endBraceIndex < 0)\r
- {\r
- string msg = "Argument[endMarkIndex] must be plus or zero:";\r
- msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + remainderMapString;\r
- msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + endBraceIndex;\r
- msg = msg + getNewLineAndIndent() + " # mapString --> =" + mapString4Log;\r
- msg = msg + getNewLineAndIndent() + " # currentMap --> " + currentMap4Log;\r
- msg = msg + getNewLineAndIndent() + " # _startBrace --> " + _startBrace;\r
- msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace;\r
- msg = msg + getNewLineAndIndent() + " # _delimiter --> " + _delimiter;\r
- msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal;\r
- throw new IllegalArgumentException(msg);\r
- }\r
-\r
- if (remainderMapString.Length < endBraceIndex)\r
- {\r
- string msg = "Argument[remainderMapString] length must be larger than endMarkIndex value:";\r
- msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + remainderMapString;\r
- msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + endBraceIndex;\r
- msg = msg + getNewLineAndIndent() + " # mapString --> " + mapString4Log;\r
- msg = msg + getNewLineAndIndent() + " # currentMap --> " + currentMap4Log;\r
- msg = msg + getNewLineAndIndent() + " # _startBrace --> " + _startBrace;\r
- msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace;\r
- msg = msg + getNewLineAndIndent() + " # _delimiter --> " + _delimiter;\r
- msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal;\r
- throw new IllegalArgumentException(msg);\r
- }\r
-\r
- String expectedAsEndMark = remainderMapString.Substring(endBraceIndex, _endBrace.Length);\r
- if (!expectedAsEndMark.Equals(_endBrace))\r
- {\r
- string msg = "Argument[remainderMapString] must have '" + _endBrace + "' at Argument[endBraceIndex]:";\r
- msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + remainderMapString;\r
- msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + endBraceIndex;\r
- msg = msg + getNewLineAndIndent() + " # expectedAsEndMark --> " + expectedAsEndMark;\r
- msg = msg + getNewLineAndIndent() + " # mapString --> " + mapString4Log;\r
- msg = msg + getNewLineAndIndent() + " # currentMap --> " + currentMap4Log;\r
- msg = msg + getNewLineAndIndent() + " # _startBrace --> " + _startBrace;\r
- msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace;\r
- msg = msg + getNewLineAndIndent() + " # _delimiter --> " + _delimiter;\r
- msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-\r
- protected void assertEndBraceIndex(string remainderListString, int endBraceIndex, string mapString4Log,\r
- List<Object> currentList4Log)\r
- {\r
- if (remainderListString == null)\r
- {\r
- string msg = "Argument[remainderMapString] must not be null:";\r
- msg = msg + getNewLineAndIndent() + " # remainderListString --> " + remainderListString;\r
- msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + endBraceIndex;\r
- msg = msg + getNewLineAndIndent() + " # mapString --> " + mapString4Log;\r
- msg = msg + getNewLineAndIndent() + " # currentList --> " + currentList4Log;\r
- msg = msg + getNewLineAndIndent() + " # _startBrace --> " + _startBrace;\r
- msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace;\r
- msg = msg + getNewLineAndIndent() + " # _delimiter --> " + _delimiter;\r
- msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal;\r
- throw new IllegalArgumentException(msg);\r
- }\r
-\r
- if (endBraceIndex < 0)\r
- {\r
- string msg = "Argument[endMarkIndex] must be plus or zero:";\r
- msg = msg + getNewLineAndIndent() + " # remainderListString --> " + remainderListString;\r
- msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + endBraceIndex;\r
- msg = msg + getNewLineAndIndent() + " # mapString --> " + mapString4Log;\r
- msg = msg + getNewLineAndIndent() + " # currentList --> " + currentList4Log;\r
- msg = msg + getNewLineAndIndent() + " # _startBrace --> " + _startBrace;\r
- msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace;\r
- msg = msg + getNewLineAndIndent() + " # _delimiter --> " + _delimiter;\r
- msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal;\r
- throw new IllegalArgumentException(msg);\r
- }\r
-\r
- if (remainderListString.Length < endBraceIndex)\r
- {\r
- string msg = "Argument[remainderMapString] length must be larger than endMarkIndex value:";\r
- msg = msg + getNewLineAndIndent() + " # remainderListString --> " + remainderListString;\r
- msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + endBraceIndex;\r
- msg = msg + getNewLineAndIndent() + " # mapString --> " + mapString4Log;\r
- msg = msg + getNewLineAndIndent() + " # currentList --> " + currentList4Log;\r
- msg = msg + getNewLineAndIndent() + " # _startBrace --> " + _startBrace;\r
- msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace;\r
- msg = msg + getNewLineAndIndent() + " # _delimiter --> " + _delimiter;\r
- msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal;\r
- throw new IllegalArgumentException(msg);\r
- }\r
-\r
- String expectedAsEndBrace = remainderListString.Substring(endBraceIndex, _endBrace.Length);\r
- if (!expectedAsEndBrace.Equals(_endBrace))\r
- {\r
- string msg = "Argument[remainderMapString] must have '" + _endBrace + "' at Argument[endBraceIndex]:";\r
- msg = msg + getNewLineAndIndent() + " # remainderListString --> " + remainderListString;\r
- msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + endBraceIndex;\r
- msg = msg + getNewLineAndIndent() + " # expectedAsEndBrace --> " + expectedAsEndBrace;\r
- msg = msg + getNewLineAndIndent() + " # mapString --> " + mapString4Log;\r
- msg = msg + getNewLineAndIndent() + " # currentList --> " + currentList4Log;\r
- msg = msg + getNewLineAndIndent() + " # _startBrace --> " + _startBrace;\r
- msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace;\r
- msg = msg + getNewLineAndIndent() + " # _delimiter --> " + _delimiter;\r
- msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-\r
- // ==========================================================================================\r
- // Filter\r
- // ======\r
- /**\r
- * Filter map or list value.\r
- * <p>\r
- * <pre>\r
- * # The value is trimmed.\r
- * # If the value is null, this returns null.\r
- * # If the value is 'null', this returns null.\r
- * # If the trimmed value is empty string, this returns null.\r
- * </pre>\r
- * @param value value. (Nullable)\r
- * @return Filtered value. (Nullable)\r
- */\r
- protected String filterMapListValue(string value)\r
- {\r
- if (value == null)\r
- {\r
- return null;\r
- }\r
- value = value.Trim();\r
- return (("".Equals(value) || "null".Equals(value)) ? null : value);\r
- }\r
-\r
- // ==========================================================================================\r
- // Judgement\r
- // =========\r
- protected bool isStartsWithMapPrefix(string targetString)\r
- {\r
- if (targetString == null)\r
- {\r
- string msg = "Argument[targetString] must not be null: " + targetString;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- targetString = targetString.Trim();\r
- if (targetString.StartsWith(_mapMark + _startBrace))\r
- {\r
- return true;\r
- }\r
- else\r
- {\r
- return false;\r
- }\r
- }\r
-\r
- protected bool isStartsWithListPrefix(string targetString)\r
- {\r
- if (targetString == null)\r
- {\r
- string msg = "Argument[targetString] must not be null: " + targetString;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- targetString = targetString.Trim();\r
- if (targetString.StartsWith(_listMark + _startBrace))\r
- {\r
- return true;\r
- }\r
- else\r
- {\r
- return false;\r
- }\r
- }\r
-\r
- protected bool isStartsWithDelimiter(string targetString)\r
- {\r
- if (targetString == null)\r
- {\r
- string msg = "Argument[targetString] must not be null: " + targetString;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- targetString = targetString.Trim();\r
- if (targetString.StartsWith(_delimiter))\r
- {\r
- return true;\r
- }\r
- else\r
- {\r
- return false;\r
- }\r
- }\r
-\r
- protected bool isStartsWithEndBrace(string targetString)\r
- {\r
- if (targetString == null)\r
- {\r
- string msg = "Argument[targetString] must not be null: " + targetString;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- targetString = targetString.Trim();\r
- if (targetString.StartsWith(_endBrace))\r
- {\r
- return true;\r
- }\r
- else\r
- {\r
- return false;\r
- }\r
- }\r
-\r
- protected bool isEndsWithEndMark(string targetString)\r
- {\r
- if (targetString == null)\r
- {\r
- string msg = "Argument[targetString] must not be null: " + targetString;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- targetString = targetString.Trim();\r
- if (targetString.EndsWith(_endBrace))\r
- {\r
- return true;\r
- }\r
- else\r
- {\r
- return false;\r
- }\r
- }\r
-\r
- // ==========================================================================================\r
- // Other\r
- // =====\r
- protected Dictionary<String, Object> setupNestMap(Dictionary<String, Object> currentMap, string mapKey)\r
- {\r
- Dictionary<String, Object> nestMap = newStringObjectMap();\r
- currentMap.Add(mapKey, nestMap);\r
- return nestMap;\r
- }\r
-\r
- protected Dictionary<String, Object> setupNestMap(List<Object> currentList)\r
- {\r
- Dictionary<String, Object> nestMap = newStringObjectMap();\r
- currentList.Add(nestMap);\r
- return nestMap;\r
- }\r
-\r
- protected List<Object> setupNestList(Dictionary<String, Object> currentMap, string mapKey)\r
- {\r
- List<Object> nestList = newObjectList();\r
- currentMap.Add(mapKey, nestList);\r
- return nestList;\r
- }\r
-\r
- protected List<Object> setupNestList(List<Object> currentList)\r
- {\r
- List<Object> nestList = newObjectList();\r
- currentList.Add(nestList);\r
- return nestList;\r
- }\r
-\r
- protected Dictionary<String, Object> newStringObjectMap()\r
- {\r
- return new Dictionary<String, Object>();\r
- }\r
-\r
- protected List<Object> newObjectList()\r
- {\r
- return new List<Object>();\r
- }\r
-\r
- protected String getNewLineAndIndent()\r
- {\r
- return NEW_LINE + " ";\r
- }\r
-\r
- /**\r
- * Get count that target string exist in the base string.\r
- * \r
- * @param targetString \91Î\8fÛ\95¶\8e\9a\97ñ\r
- * @param delimiter \83f\83\8a\83~\83^\r
- * @return \8ec\82è\82Ì\95¶\8e\9a\97ñ\82É\8aÜ\82Ü\82ê\82Ä\82¢\82é\83f\83\8a\83~\83^\82Ì\90\94\r
- */\r
- protected int getDelimiterCount(string targetString, string delimiter)\r
- {\r
- int result = 0;\r
- for (int i = 0; ; )\r
- {\r
- if (targetString.IndexOf(delimiter, i) != -1)\r
- {\r
- result++;\r
- i = targetString.IndexOf(delimiter, i) + 1;\r
- }\r
- else\r
- {\r
- break;\r
- }\r
- }\r
- if (result == 0)\r
- {\r
- result = -1;\r
- }\r
- return result;\r
- }\r
-\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-\r
-namespace ${glPackageBaseCommonHelper} {\r
-\r
- /// <summary>\r
- /// The interface of map-string-builder.\r
- /// Author: ${database.ClassAuthor}\r
- /// </summary>\r
- public interface ${glMapStringBuilderName} {// Thank you koyak!\r
-\r
- /// <summary>\r
- /// The property of column-name array.\r
- /// </summary>\r
- String[] ColumnNames { set; }\r
-\r
- /// <summary>\r
- /// The property of map-mark for map-string.\r
- /// </summary>\r
- String MapStringMapMark { set; }\r
-\r
- /// <summary>\r
- /// The property of delimiter for map-string.\r
- /// </summary>\r
- String MapStringDelimiter { set; }\r
-\r
- /// <summary>\r
- /// The property of equal for map-string .\r
- /// </summary>\r
- String MapStringEqual { set; }\r
-\r
- /// <summary>\r
- /// The property of start-brace for map-string.\r
- /// </summary>\r
- String MapStringStartBrace { set; }\r
-\r
- /// <summary>\r
- /// The property of end-brace for map-string.\r
- /// </summary>\r
- String MapStringEndBrace { set; }\r
-\r
- /// <summary>\r
- /// Build by delimiter.\r
- /// </summary>\r
- /// <param name="values">String separated by delimiter. (NotNull)</param>\r
- /// <param name="delimiter">Delimiter. (NotNull)</param>\r
- /// <returns>Map-string. (NotNull)</returns>\r
- /// <exception cref="DifferentDelimiterCountException"></exception>\r
- String BuildByDelimiter(String values, String delimiter);\r
- }\r
-\r
- public class DifferentDelimiterCountException : ApplicationException {\r
- protected String[] _columnNames;\r
- protected String[] _values;\r
- public DifferentDelimiterCountException(String msg, String[] columnNames, String[] values) \r
- : base(msg) {\r
- _columnNames = columnNames;\r
- _values = values;\r
- }\r
- public String[] getColumnNames() {\r
- return _columnNames;\r
- }\r
- public String[] getValues() {\r
- return _values;\r
- }\r
- }\r
-}\r
+++ /dev/null
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Text.RegularExpressions;\r
-\r
-namespace ${glPackageBaseCommonHelper} {\r
-\r
- /// <summary>\r
- /// The implementation of map-string-builder.\r
- /// Author: ${database.ClassAuthor}\r
- /// </summary>\r
- public class ${glMapStringBuilderImplName} : ${glMapStringBuilderName} {\r
-\r
- /// <summary>The instance of regular-expressions.</summary>\r
- protected Regex _regDelimiter;\r
-\r
- /// <summary>The array of column-name.</summary>\r
- protected String[] _columnNames;\r
-\r
- /// <summary>The value of map-mark for map-string.</summary>\r
- protected String _msMapMark;\r
-\r
- /// <summary>The value of delimiter for map-string.</summary>\r
- protected String _msDelimiter;\r
-\r
- /// <summary>The value of equal for map-string.</summary>\r
- protected String _msEqual;\r
-\r
- /// <summary>The value of start-brace for map-string.</summary>\r
- protected String _msStartBrace;\r
-\r
- /// <summary>The value of end-brace for map-string.</summary>\r
- protected String _msEndBrace;\r
-\r
- /// <summary>\r
- /// The property of column-name.\r
- /// </summary>\r
- public String[] ColumnNames {\r
- set{ _columnNames = value; }\r
- }\r
-\r
- /// <summary>\r
- /// The property of map-mark for map-string.\r
- /// </summary>\r
- public String MapStringMapMark {\r
- set { _msMapMark = value; }\r
- }\r
-\r
- /// <summary>\r
- /// The property of delimiter for map-string.\r
- /// </summary>\r
- public String MapStringDelimiter {\r
- set { _msDelimiter = value; _regDelimiter = new Regex(String.Format("({0})$", _msDelimiter)); }\r
- }\r
-\r
- /// <summary>\r
- /// The property of equal for map-string.\r
- /// </summary>\r
- public String MapStringEqual {\r
- set { _msEqual = value; }\r
- }\r
-\r
- /// <summary>\r
- /// The property of start-brace for map-string.\r
- /// </summary>\r
- public String MapStringStartBrace {\r
- set { _msStartBrace = value; }\r
- }\r
-\r
- /// <summary>\r
- /// The property of end-brace for map-string.\r
- /// </summary>\r
- public String MapStringEndBrace {\r
- set { _msEndBrace = value; }\r
- }\r
-\r
- /// <summary>\r
- /// Build by delimiter.\r
- /// </summary>\r
- /// <param name="values">String separated by delimiter. (NotNull)</param>\r
- /// <param name="delimiter">Delimiter. (NotNull)</param>\r
- /// <returns>Map-string. (NotNull)</returns>\r
- /// <exception cref="DifferentDelimiterCountException"></exception>\r
- public String BuildByDelimiter(String values, String delimiter) {\r
- if (values == null) {\r
- String msg = "The argument[values] should not be null.";\r
- throw new ArgumentNullException(msg);\r
- }\r
- if (delimiter == null) {\r
- String msg = "The argument[delimiter] should not be null.";\r
- throw new ArgumentNullException(msg);\r
- }\r
- AssertStringComponent();\r
-\r
- String[] valueArray = values.Split(delimiter.ToCharArray());\r
- AssertValueArray(_columnNames, valueArray);\r
-\r
- StringBuilder builder = new StringBuilder();\r
- builder.Append(_msMapMark + _msStartBrace);\r
- for (int i = 0; i < _columnNames.Length; i++ ) {\r
- builder.AppendFormat("{0}{1}{2} {3}", _columnNames[i], _msEqual, valueArray[i], _msDelimiter);\r
- }\r
-\r
- return String.Format("{0}{1}", _regDelimiter.Replace(builder.ToString(), ""), _msEndBrace); \r
- }\r
-\r
- protected void AssertStringComponent() {\r
- if (_columnNames == null) {\r
- String msg = "The columnNames should not be null.";\r
- throw new SystemException(msg);\r
- }\r
- if (_columnNames.Length == 0) {\r
- String msg = "The columnNames should not be empty-array.";\r
- throw new SystemException(msg);\r
- }\r
- if (_msMapMark == null) {\r
- String msg = "The msMapMark should not be null.";\r
- throw new SystemException(msg);\r
- }\r
- if (_msDelimiter == null) {\r
- String msg = "The msDelimiter should not be null.";\r
- throw new SystemException(msg);\r
- }\r
- if (_msEqual == null) {\r
- String msg = "The msEqual should not be null.";\r
- throw new SystemException(msg);\r
- }\r
- if (_msStartBrace == null) {\r
- String msg = "The msStartBrace should not be null.";\r
- throw new SystemException(msg);\r
- }\r
- if (_msEndBrace == null) {\r
- String msg = "The msEndBrace should not be null.";\r
- throw new SystemException(msg);\r
- }\r
- }\r
-\r
- /// <summary>\r
- /// Assert\r
- /// </summary>\r
- /// <param name="expected">The expected columns. (NotNull)</param>\r
- /// <param name="actual">The actual values. (NotNull)</param>\r
- /// <exception cref="DifferentDelimiterCountException"></exception>\r
- protected void AssertValueArray(String[] expected, String[] actual) {\r
- if (expected.Length != actual.Length) {\r
- String msg = String.Format("StringArray's length is difference. ({0}, {1})", expected.Length, actual.Length);\r
- {\r
- StringBuilder sb = new StringBuilder();\r
- foreach (String str in expected) {\r
- sb.Append(", ").Append(str);\r
- }\r
- sb.Remove(0, ", ".Length);\r
- msg = msg + " expectedNames=" + sb.ToString();\r
- }\r
- {\r
- StringBuilder sb = new StringBuilder();\r
- foreach (String str in actual) {\r
- sb.Append(", ").Append(str);\r
- }\r
- sb.Remove(0, ", ".Length);\r
- msg = msg + " actualValues=" + sb.ToString();\r
- }\r
- throw new DifferentDelimiterCountException(msg, expected, actual);\r
- }\r
- }\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Text;\r
-\r
-namespace ${glPackageBaseCommonJavaLike} {\r
-\r
- public class JString {\r
- System.String _res;\r
- public JString(System.String str) {\r
- _res = str;\r
- }\r
- public JString trim() {\r
- return new JString(_res.Trim());\r
- }\r
- public int length() {\r
- return _res.Length;\r
- }\r
- public String getString() {\r
- return _res;\r
- }\r
- public static JString operator +(JString a, JString b) {\r
- return new JString(a.getString() + b.getString());\r
- }\r
- }\r
- \r
- public class StringBuilder {\r
- System.Text.StringBuilder _res;\r
- public StringBuilder() {\r
- _res = new System.Text.StringBuilder();\r
- }\r
- public StringBuilder(int size) {\r
- _res = new System.Text.StringBuilder(size);\r
- }\r
- public StringBuilder append(Object obj) {\r
- _res.Append(obj);\r
- return this;\r
- }\r
- public StringBuilder insert(int offset, Object obj) {\r
- _res.Insert(offset, obj);\r
- return this;\r
- }\r
- public StringBuilder delete(int start, int end) {\r
- _res.Remove(start, end - start);\r
- return this;\r
- }\r
- public int length() {\r
- return _res.Length;\r
- }\r
- public String toString() {\r
- return _res.ToString();\r
- }\r
- public static String operator +(StringBuilder a, StringBuilder b) {\r
- return a.toString() + b.toString();\r
- }\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-\r
-namespace ${glPackageBaseCommonJavaLike} {\r
-\r
- public interface Collection<ELEMENT> : System.Collections.IEnumerable {\r
- bool add(ELEMENT element);\r
- bool remove(ELEMENT element);\r
- int size();\r
- bool isEmpty();\r
- void clear();\r
- Iterator<ELEMENT> iterator();\r
- ICollection<ELEMENT> getCollection();\r
- String toString();\r
- }\r
-\r
- public interface NgCollection {\r
- bool addAsNg(Object element);\r
- bool removeAsNg(Object element);\r
- System.Collections.ICollection getCollectionAsNg();\r
- }\r
-\r
- public interface Iterator<ELEMENT> {\r
- bool hasNext();\r
- ELEMENT next();\r
- }\r
-\r
- public interface List<ELEMENT> : Collection<ELEMENT> {\r
- ELEMENT get(int index);\r
- ELEMENT set(int index, ELEMENT element);\r
- ELEMENT remove(int index);\r
- IList<ELEMENT> getList();\r
- }\r
-\r
- public interface NgList : NgCollection {\r
- Object getAsNg(int index);\r
- System.Collections.IList getListAsNg();\r
- }\r
-\r
- public class ArrayList<ELEMENT> : List<ELEMENT>, NgList {\r
- IList<ELEMENT> _res = new System.Collections.Generic.List<ELEMENT>();\r
- public ArrayList() {\r
- }\r
- public ArrayList(Collection<ELEMENT> col) {\r
- foreach (ELEMENT element in col) {\r
- add(element);\r
- }\r
- }\r
- public bool add(ELEMENT element) {\r
- _res.Add(element);\r
- return true;\r
- }\r
- public ELEMENT get(int index) {\r
- return _res[index];\r
- }\r
- public ELEMENT set(int index, ELEMENT element) {\r
- ELEMENT result = _res[index];\r
- _res[index] = element;\r
- return result;\r
- }\r
- public ELEMENT remove(int index) {\r
- ELEMENT result = _res[index]; \r
- _res.Remove(result);\r
- return result;\r
- }\r
- public bool remove(ELEMENT element) {\r
- return _res.Remove(element);\r
- }\r
- public int size() {\r
- return _res.Count;\r
- }\r
- public bool isEmpty() {\r
- return _res.Count == 0;\r
- }\r
- public void clear() {\r
- _res.Clear();\r
- }\r
- public IList<ELEMENT> getList() {\r
- return _res;\r
- }\r
- public ICollection<ELEMENT> getCollection() {\r
- return _res;\r
- }\r
- public Object getAsNg(int index) {\r
- return get(index);\r
- }\r
- public System.Collections.IList getListAsNg() {\r
- return (System.Collections.IList)getList();\r
- }\r
- public bool addAsNg(Object element) {\r
- return add((ELEMENT)element);\r
- }\r
- public bool removeAsNg(Object element) {\r
- return remove((ELEMENT)element);\r
- }\r
- public System.Collections.ICollection getCollectionAsNg() {\r
- return (System.Collections.ICollection)getCollection();\r
- }\r
- public Iterator<ELEMENT> iterator() {\r
- return new MyEmumerator(this);\r
- }\r
- public System.Collections.IEnumerator GetEnumerator() {\r
- return new MyEmumerator(this);\r
- }\r
- protected class MyEmumerator : System.Collections.IEnumerator, Iterator<ELEMENT> {\r
- protected IEnumerator<ELEMENT> _target;\r
- public MyEmumerator(ArrayList<ELEMENT> target) {\r
- _target = target.getCollection().GetEnumerator();\r
- }\r
- public Object Current { get { return _target.Current; } }\r
- public bool MoveNext() {\r
- return _target.MoveNext();\r
- }\r
- public void Reset() {\r
- _target.Reset();\r
- }\r
- public bool hasNext() {\r
- return MoveNext();\r
- }\r
- public ELEMENT next() { // Not moving because hasNext() does it.\r
- return _target.Current;\r
- }\r
- }\r
- public String toString() {\r
- return _res.ToString();\r
- }\r
- }\r
-\r
- public interface Set<ELEMENT> : Collection<ELEMENT> {\r
- bool contains(ELEMENT element);\r
- }\r
-\r
- public interface NgSet : NgCollection {\r
- bool containsAsNg(Object element);\r
- }\r
-\r
- public class HashSet<ELEMENT> : Set<ELEMENT>, NgSet {\r
- protected IDictionary<ELEMENT, Object> _res = new Dictionary<ELEMENT, Object>();\r
- public bool add(ELEMENT element) {\r
- if (_res.ContainsKey(element)) {\r
- return false;\r
- }\r
- _res.Add(element, null);\r
- return true;\r
- }\r
- public bool remove(ELEMENT element) {\r
- if (_res.ContainsKey(element)) {\r
- _res.Remove(element);\r
- return true;\r
- }\r
- return false;\r
- }\r
- public int size() {\r
- return _res.Count;\r
- }\r
- public bool isEmpty() {\r
- return _res.Count == 0;\r
- }\r
- public void clear() {\r
- _res.Clear();\r
- }\r
- public bool contains(ELEMENT element) {\r
- return _res.ContainsKey(element);\r
- }\r
- public ICollection<ELEMENT> getCollection() {\r
- return _res.Keys;\r
- }\r
- public bool containsAsNg(Object element) {\r
- return contains((ELEMENT)element);\r
- }\r
- public bool addAsNg(Object element) {\r
- return add((ELEMENT)element);\r
- }\r
- public bool removeAsNg(Object element) {\r
- return remove((ELEMENT)element);\r
- }\r
- public System.Collections.ICollection getCollectionAsNg() {\r
- return (System.Collections.ICollection)getCollection();\r
- }\r
- public Iterator<ELEMENT> iterator() {\r
- return new MyEmumerator(this);\r
- }\r
- public System.Collections.IEnumerator GetEnumerator() {\r
- return new MyEmumerator(this);\r
- }\r
- protected class MyEmumerator : System.Collections.IEnumerator, Iterator<ELEMENT> {\r
- protected IEnumerator<ELEMENT> _target;\r
- protected int _index;\r
- public MyEmumerator(HashSet<ELEMENT> target) {\r
- _target = target.getCollection().GetEnumerator();\r
- }\r
- public Object Current { get { return _target.Current; } }\r
- public bool MoveNext() {\r
- return _target.MoveNext();\r
- }\r
- public void Reset() {\r
- _target.Reset();\r
- }\r
- public bool hasNext() {\r
- return MoveNext();\r
- }\r
- public ELEMENT next() { // Not moving because hasNext() does it.\r
- return _target.Current;\r
- }\r
- }\r
- public String toString() {\r
- return _res.ToString();\r
- }\r
- }\r
-\r
- public class LinkedHashSet<ELEMENT> : Set<ELEMENT>, NgSet {\r
- protected IDictionary<ELEMENT, Object> _res = new Dictionary<ELEMENT, Object>();\r
- protected List<ELEMENT> _seq = new ArrayList<ELEMENT>();\r
- public ELEMENT get(int index) {\r
- return _seq.get(index);\r
- }\r
- public bool add(ELEMENT element) {\r
- if (_res.ContainsKey(element)) {\r
- return false;\r
- }\r
- _res.Add(element, null);\r
- _seq.add(element);\r
- return true;\r
- }\r
- public bool remove(ELEMENT element) {\r
- if (_res.ContainsKey(element)) {\r
- _res.Remove(element);\r
- _seq.remove(element);\r
- return true;\r
- }\r
- return false;\r
- }\r
- public int size() {\r
- return _res.Count;\r
- }\r
- public bool isEmpty() {\r
- return _res.Count == 0;\r
- }\r
- public void clear() {\r
- _res.Clear();\r
- }\r
- public bool contains(ELEMENT element) {\r
- return _res.ContainsKey(element);\r
- }\r
- public ICollection<ELEMENT> getCollection() {\r
- return _seq.getCollection();\r
- }\r
- public bool containsAsNg(Object element) {\r
- return contains((ELEMENT)element);\r
- }\r
- public bool addAsNg(Object element) {\r
- return add((ELEMENT)element);\r
- }\r
- public bool removeAsNg(Object element) {\r
- return remove((ELEMENT)element);\r
- }\r
- public System.Collections.ICollection getCollectionAsNg() {\r
- return (System.Collections.ICollection)getCollection();\r
- }\r
- public Iterator<ELEMENT> iterator() {\r
- return new MyEmumerator(this);\r
- }\r
- public System.Collections.IEnumerator GetEnumerator() {\r
- return new MyEmumerator(this);\r
- }\r
- protected class MyEmumerator : System.Collections.IEnumerator, Iterator<ELEMENT> {\r
- protected LinkedHashSet<ELEMENT> _target;\r
- protected int _index = -1;\r
- public MyEmumerator(LinkedHashSet<ELEMENT> target) {\r
- _target = target;\r
- }\r
- public Object Current { get { return _target.get(_index); } }\r
- public bool MoveNext() {\r
- ++_index;\r
- return _target.size() > _index;\r
- }\r
- public void Reset() {\r
- _index = -1;\r
- }\r
- public bool hasNext() {\r
- return MoveNext();\r
- }\r
- public ELEMENT next() { // Not moving because hasNext() does it.\r
- if (_index == -1) { MoveNext(); } // For getting first element.\r
- return _target.get(_index);\r
- }\r
- }\r
- public String toString() {\r
- return _res.ToString();\r
- }\r
- }\r
-\r
- public interface Map<KEY, VALUE> {\r
- VALUE get(KEY key);\r
- VALUE put(KEY key, VALUE value);\r
- VALUE remove(KEY obj);\r
- int size();\r
- bool isEmpty();\r
- void clear();\r
- bool containsKey(KEY key);\r
- Set<KEY> keySet();\r
- Collection<VALUE> values();\r
- }\r
-\r
- public interface NgMap {\r
- Object getAsNg(Object key);\r
- Object putAsNg(Object key, Object value);\r
- Object removeAsNg(Object key);\r
- bool containsKeyAsNg(Object key);\r
- }\r
-\r
- public class HashMap<KEY, VALUE> : Map<KEY, VALUE>, NgMap {\r
- protected IDictionary<KEY, VALUE> _res = new Dictionary<KEY, VALUE>();\r
- public VALUE get(KEY key) {\r
- return _res.ContainsKey(key) ? _res[key] : default(VALUE);\r
- }\r
- public VALUE put(KEY key, VALUE value) {\r
- VALUE result = default(VALUE);\r
- if (_res.ContainsKey(key)) {\r
- result = _res[key];\r
- _res.Remove(key);\r
- }\r
- _res.Add(key, value);\r
- return result;\r
- }\r
- public VALUE remove(KEY key) {\r
- VALUE result = default(VALUE);\r
- if (_res.ContainsKey(key)) {\r
- result = _res[key];\r
- _res.Remove(key);\r
- }\r
- return result;\r
- }\r
- public int size() {\r
- return _res.Count;\r
- }\r
- public bool isEmpty() {\r
- return _res.Count == 0;\r
- }\r
- public void clear() {\r
- _res.Clear();\r
- }\r
- public bool containsKey(KEY key) {\r
- return _res.ContainsKey(key);\r
- }\r
- public Set<KEY> keySet() {\r
- Set<KEY> keySet = new LinkedHashSet<KEY>();\r
- ICollection<KEY> keyCol = _res.Keys;\r
- foreach (KEY key in keyCol) {\r
- keySet.add(key);\r
- }\r
- return keySet;\r
- }\r
- public Collection<VALUE> values() {\r
- List<VALUE> valueList = new ArrayList<VALUE>();\r
- ICollection<VALUE> keyCol = _res.Values;\r
- foreach (VALUE value in keyCol) {\r
- valueList.add(value);\r
- }\r
- return valueList;\r
- }\r
- public Object getAsNg(Object key) {\r
- return get((KEY)key);\r
- }\r
- public Object putAsNg(Object key, Object value) {\r
- return put((KEY)key, (VALUE)value);\r
- }\r
- public Object removeAsNg(Object key) {\r
- return remove((KEY)key);\r
- }\r
- public bool containsKeyAsNg(Object key) {\r
- return containsKey((KEY)key);\r
- }\r
- public String toString() {\r
- return _res.ToString();\r
- }\r
- }\r
-\r
- public class LinkedHashMap<KEY, VALUE> : Map<KEY, VALUE>, NgMap {\r
- protected Map<KEY, VALUE> _res = new HashMap<KEY, VALUE>();\r
- protected LinkedHashSet<KEY> _seq = new LinkedHashSet<KEY>();\r
- public VALUE get(KEY key) {\r
- return _res.containsKey(key) ? _res.get(key) : default(VALUE);\r
- }\r
- public VALUE get(int index) {\r
- return _res.get(_seq.get(index));\r
- }\r
- public VALUE put(KEY key, VALUE value) {\r
- VALUE result = default(VALUE);\r
- if (_res.containsKey(key)) {\r
- result = _res.get(key);\r
- _res.remove(key);\r
- } else {\r
- _seq.add(key);\r
- }\r
- _res.put(key, value);\r
- return result;\r
- }\r
- public VALUE remove(KEY key) {\r
- VALUE result = default(VALUE);\r
- if (_res.containsKey(key)) {\r
- result = _res.get(key);\r
- _res.remove(key);\r
- _seq.remove(key);\r
- }\r
- return result;\r
- }\r
-\r
- public int size() {\r
- return _res.size();\r
- }\r
- public bool isEmpty() {\r
- return _res.isEmpty();\r
- }\r
- public void clear() {\r
- _res.clear();\r
- }\r
- public bool containsKey(KEY obj) {\r
- return _res.containsKey(obj);\r
- }\r
- public Set<KEY> keySet() {\r
- return _seq;\r
- }\r
- public Collection<VALUE> values() {\r
- List<VALUE> valueList = new ArrayList<VALUE>();\r
- foreach (KEY key in _seq.getCollection()) {\r
- valueList.add(_res.get(key));\r
- }\r
- return valueList;\r
- }\r
- public Object getAsNg(Object key) {\r
- return get((KEY)key);\r
- }\r
- public Object putAsNg(Object key, Object value) {\r
- return put((KEY)key, (VALUE)value);\r
- }\r
- public Object removeAsNg(Object key) {\r
- return remove((KEY)key);\r
- }\r
- public bool containsKeyAsNg(Object key) {\r
- return containsKey((KEY)key);\r
- }\r
- public String toString() {\r
- return _res.ToString();\r
- }\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-\r
-namespace ${glPackageBaseCommonJavaLike} {\r
-\r
- public class RuntimeException : SystemException {\r
- public RuntimeException(String msg)\r
- : base(msg) {\r
- }\r
- public RuntimeException(String msg, Exception e)\r
- : base(msg, e) {\r
- }\r
- public Class<RuntimeException> getClass() {\r
- return new Class<RuntimeException>(GetType());\r
- }\r
- }\r
- public class IllegalArgumentException : SystemException {\r
- public IllegalArgumentException(String msg)\r
- : base(msg) {\r
- }\r
- public IllegalArgumentException(String msg, Exception e)\r
- : base(msg, e) {\r
- }\r
- }\r
- public class IllegalStateException : SystemException {\r
- public IllegalStateException(String msg)\r
- : base(msg) {\r
- }\r
- public IllegalStateException(String msg, Exception e)\r
- : base(msg, e) {\r
- }\r
- }\r
- public class UnsupportedOperationException : SystemException {\r
- public UnsupportedOperationException(String msg)\r
- : base(msg) {\r
- }\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-\r
-namespace ${glPackageBaseCommonJavaLike} {\r
-\r
- public class Class<TYPE> {\r
- protected Type _res;\r
- public Class(Type type) {\r
- _res = type;\r
- }\r
- public String getName() {\r
- return _res.Name;\r
- }\r
- public String getSimpleName() {\r
- return _res.Name.Substring(_res.Name.LastIndexOf(".") + ".".Length);\r
- }\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Data;\r
-\r
-namespace ${glPackageBaseCommonJdbc} {\r
-\r
- /// <summary>\r
- /// The handler of cursor.\r
- /// Author : ${database.ClassAuthor}\r
- /// </summary>\r
- public interface ${glCursorHandlerName} {\r
-\r
- /// <summary>\r
- /// Handle dataReader.\r
- /// </summary>\r
- /// <param name="reader">The dataReader of handling target. (NotNull)</param>\r
- /// <returns>The result of handling. (Nullable)</returns>\r
- Object Handle(IDataReader reader);\r
- }\r
-\r
- /// <summary>\r
- /// The delegator of cursor fetcher.\r
- /// </summary>\r
- /// <typeparam name="CURSOR">The type of cursor.</typeparam>\r
- /// <param name="cursor">The cursor of fetch target. (NotNull)</param>\r
- /// <returns>the result of fetching. (Nullable)</returns>\r
- public delegate Object ${glCursorFetcherName}<CURSOR>(CURSOR cursor);\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Data;\r
-\r
-namespace ${glPackageBaseCommonJdbc} {\r
-\r
- public class ${glStatementConfig} {\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- // -------------------------------------------------\r
- // Statement Option\r
- // ----------------\r
- protected int? _queryTimeout;\r
-\r
- // ===============================================================================\r
- // Setting Interface\r
- // =================\r
- // -------------------------------------------------\r
- // Statement Option\r
- // ----------------\r
- public ${glStatementConfig} QueryTimeout(int? queryTimeout) { _queryTimeout = queryTimeout; return this; }\r
-\r
- // ===============================================================================\r
- // Determination\r
- // =============\r
- // -------------------------------------------------\r
- // Statement Option\r
- // ----------------\r
- public bool HasQueryTimeout() {\r
- return _queryTimeout != null;\r
- }\r
-\r
- // ===============================================================================\r
- // Basic Override\r
- // ==============\r
- public override String ToString() {\r
- return "{" + _queryTimeout + "}";\r
- }\r
- \r
- // ===============================================================================\r
- // Accessor\r
- // ========\r
- // -------------------------------------------------\r
- // Statement Option\r
- // ----------------\r
- public int? GetQueryTimeout() {\r
- return _queryTimeout;\r
- }\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="utf-8" ?>\r
-<!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN"\r
-"http://www.seasar.org/dtd/components21.dtd">\r
-\r
-<components namespace="${glDBFluteDiconNamespace}">\r
-#foreach ($includePath in $database.DBFluteDiconBeforeJ2eeIncludePathList)\r
- <include path="${includePath}"/>\r
-#end\r
-\r
- <include path="${glJdbcDiconResourceName}"/>\r
-#foreach ($includePath in $database.DBFluteDiconOtherIncludePathList)\r
- <include path="${includePath}"/>\r
-#end\r
-\r
- <!-- S2Dao component. -->\r
- <component class="Seasar.Dao.Impl.FieldAnnotationReaderFactory" />\r
- <component class="${database.extendedDaoMetaDataFactoryImplClassName}"/>\r
- <component name="interceptor" class="${glPackageBaseCommonS2Dao}.${glDaoInterceptor}"/>\r
-\r
- <!-- The selector of dao. -->\r
- <component name="${database.behaviorSelectorComponentName}" class="${glPackageBaseCommon}.${glCacheBehaviorSelectorName}"/>\r
- <component name="${database.daoSelectorComponentName}" class="${glPackageBaseCommon}.${glCacheDaoSelectorName}"/>\r
-\r
- <!-- The dao of outsideSql. -->\r
- <component class="${glPackageBaseCommonCBeanOutsidesql}.${glOutsideSqlDaoName}">\r
- <aspect>${glDBFluteDiconNamespace}.interceptor</aspect>\r
- </component>\r
-\r
- <!-- Original behavior aspect. -->\r
-#foreach ($componentName in $database.getOriginalBehaviorAspectComponentNameList())\r
-#set ($className = ${database.getOriginalBehaviorAspectClassName($componentName)})\r
- <component name="${componentName}" class="${className}"/>\r
-#end\r
-\r
- <!-- Original dao component. -->\r
-#foreach ($componentName in $database.getOriginalDaoComponentComponentNameList())\r
- #set ($className = ${database.getOriginalDaoComponentClassName($componentName)})\r
- #if ($database.isDaoComponent($componentName))\r
-\r
- <component name="${componentName}" class="${className}">\r
- <aspect>${glDaoDiconNamespace}.interceptor</aspect>\r
- </component>\r
- #else\r
-\r
- <component name="${componentName}" class="${className}"/>\r
- #end\r
-#end\r
-\r
- <!-- * * * * * * * * * * * -->\r
- <!-- Domain dao component. -->\r
- <!-- * * * * * * * * * * * -->\r
-#foreach ($table in $database.tables)\r
-\r
- <!-- ${table.Name} -->\r
- <component name="${table.daoComponentName}" class="${glPackageExtendedDao}.${glProjectPrefix}${table.JavaName}Dao">\r
- <aspect>${glDBFluteDiconNamespace}.interceptor</aspect>\r
- </component>\r
-#end\r
-\r
-</components>\r
+++ /dev/null
-\r
-using System;\r
-using System.Data;\r
-using System.Data.Common;\r
-using System.Reflection;\r
-using System.Text;\r
-\r
-using Seasar.Framework.Exceptions;\r
-using Seasar.Framework.Util;\r
-using Seasar.Extension.ADO;\r
-\r
-using ${glPackageBaseCommonCBean};\r
-using ${glPackageBaseCommonCBeanOutsidesql};\r
-using ${glPackageBaseCommonS2DaoInternalSqlHandler};\r
-\r
-namespace ${glPackageBaseCommonS2Dao} {\r
-\r
- public class ${glFetchNarrowingResultSetFactory} : IDataReaderFactory {\r
-\r
- public ${glFetchNarrowingResultSetFactory}() {\r
- }\r
-\r
- public IDataReader CreateDataReader(IDataSource dataSource, IDbCommand cmd) {\r
- IDataReader dataReader = ExecuteReader(dataSource, cmd);\r
-\r
- if (!${glFetchNarrowingBeanContextName}.IsExistFetchNarrowingBeanOnThread()) {\r
- return dataReader;// If the first argument is not condition-bean...\r
- }\r
- ${glFetchNarrowingBeanInterfaceName} cb = ${glFetchNarrowingBeanContextName}.GetFetchNarrowingBeanOnThread();\r
- if (!IsUseFetchNarrowingResultSetWrapper(cb)) {\r
- return dataReader;\r
- }\r
- ${glFetchNarrowingResultSetWrapper} wrapper = null;\r
- if (${glOutsideSqlContextName}.IsExistOutsideSqlContextOnThread()) {\r
- ${glOutsideSqlContextName} outsideSqlContext = ${glOutsideSqlContextName}.GetOutsideSqlContextOnThread();\r
- wrapper = new ${glFetchNarrowingResultSetWrapper}(dataReader, cb, outsideSqlContext.IsOffsetByCursorForcedly, outsideSqlContext.IsLimitByCursorForcedly);\r
- } else {\r
- wrapper = new ${glFetchNarrowingResultSetWrapper}(dataReader, cb, false, false);\r
- }\r
- return wrapper;\r
- }\r
-\r
- protected bool IsUseFetchNarrowingResultSetWrapper(${glFetchNarrowingBeanInterfaceName} cb) {\r
- if (cb.SafetyMaxResultSize > 0) {\r
- return true;\r
- }\r
- if (!cb.IsFetchNarrowingEffective) {\r
- return false;// It is not necessary to control.\r
- }\r
- if (${glOutsideSqlContextName}.IsExistOutsideSqlContextOnThread()) {\r
- ${glOutsideSqlContextName} outsideSqlContext = ${glOutsideSqlContextName}.GetOutsideSqlContextOnThread();\r
- if (outsideSqlContext.IsOffsetByCursorForcedly || outsideSqlContext.IsLimitByCursorForcedly) {\r
- return true;\r
- }\r
- }\r
- if (cb.IsFetchNarrowingSkipStartIndexEffective || cb.IsFetchNarrowingLoopCountEffective) {\r
- return true;\r
- }\r
- return false;\r
- }\r
-\r
- protected IDataReader ExecuteReader(IDataSource dataSource, IDbCommand cmd) {\r
- return CommandUtil.ExecuteReader(dataSource, cmd);\r
- }\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections;\r
-using System.Reflection;\r
-\r
-using ${glPackageBaseCommon};\r
-using ${glPackageBaseCommonCBean};\r
-\r
-namespace ${glPackageBaseCommonS2Dao} {\r
-\r
- public class ${glFetchNarrowingResultSetWrapper} : System.Data.IDataReader {\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected System.Data.IDataReader _dataReader;\r
- protected ${glFetchNarrowingBeanInterfaceName} _fetchNarrowingBean;\r
- protected long _fetchCounter;\r
- protected long _requestCounter;\r
- protected bool _offsetByCursorForcedly;\r
- protected bool _limitByCursorForcedly;\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- /**\r
- * Constructor.\r
- * \r
- * @param dataReader Original data-reader. (NotNull)\r
- * @param ${glAttachedCBArgsVariableName} FetchNarrowing-bean. (NotNull)\r
- */\r
- public ${glFetchNarrowingResultSetWrapper}(System.Data.IDataReader dataReader, ${glFetchNarrowingBeanInterfaceName} fetchNarrowingBean\r
- , bool offsetByCursorForcedly, bool limitByCursorForcedly) {\r
- _dataReader = dataReader;\r
- _fetchNarrowingBean = fetchNarrowingBean;\r
- _offsetByCursorForcedly = offsetByCursorForcedly;\r
- _limitByCursorForcedly = limitByCursorForcedly;\r
-\r
- skip();\r
- }\r
-\r
- // ===============================================================================\r
- // Skip\r
- // ====\r
- private void skip() {\r
- if (!IsAvailableSkipRecord()) {\r
- return;\r
- }\r
- int skipStartIndex = GetFetchNarrowingSkipStartIndex();\r
- if (IsCursorUsed()) {\r
-// if (0 == skipStartIndex) {\r
-// _dataReader.beforeFirst();\r
-// } else {\r
-// _dataReader.absolute(skipStartIndex);\r
-// }\r
-// _fetchCounter = _dataReader.getRow();\r
- throw new NotSupportedException("Cursor is unsupported!!!");\r
- } else {\r
- while (_fetchCounter < skipStartIndex && _dataReader.Read()) {\r
- ++_fetchCounter;\r
- }\r
- }\r
- }\r
-\r
- protected bool IsAvailableSkipRecord() {\r
- if (!IsFetchNarrowingEffective()) {\r
- return false;\r
- }\r
- if (IsOffsetByCursorForcedly) {\r
- return true;\r
- }\r
- if (IsFetchNarrowingSkipStartIndexEffective()) {\r
- return true;\r
- }\r
- return false;\r
- }\r
-\r
- // ===============================================================================\r
- // Read\r
- // ====\r
- /**\r
- * Read.\r
- * \r
- * @return Does the result set have next record?\r
- * @throws SQLException\r
- */\r
- public bool Read() {\r
- bool hasNext = _dataReader.Read();\r
- ++_requestCounter;\r
- if (!IsAvailableLimitLoopCount()) {\r
- CheckSafetyResult(hasNext);\r
- return hasNext;\r
- }\r
-\r
- if (hasNext && _fetchCounter < GetFetchNarrowingSkipStartIndex() + GetFetchNarrowingLoopCount()) {\r
- ++_fetchCounter;\r
- CheckSafetyResult(true);\r
- return true;\r
- } else {\r
- return false;\r
- }\r
- }\r
-\r
- protected bool IsAvailableLimitLoopCount() {\r
- if (!IsFetchNarrowingEffective()) {\r
- return false;\r
- }\r
- if (IsLimitByCursorForcedly) {\r
- return true;\r
- }\r
- if (IsFetchNarrowingLoopCountEffective()) {\r
- return true;\r
- }\r
- return false;\r
- }\r
-\r
- protected void CheckSafetyResult(bool hasNext) {\r
- if (hasNext && GetSafetyMaxResultSize() > 0 && _requestCounter > (GetSafetyMaxResultSize() + 1)) {\r
- String msg = "You have already been in Danger Zone!";\r
- msg = msg + " Please confirm your query or data of table: safetyMaxResultSize=" + GetSafetyMaxResultSize();\r
- throw new ${glPackageBaseCommonException}.${glDangerousResultSizeException}(msg, GetSafetyMaxResultSize());\r
- }\r
- }\r
-\r
- // ===============================================================================\r
- // Fetch Option\r
- // ============\r
- protected bool IsFetchNarrowingEffective() {\r
- return _fetchNarrowingBean.IsFetchNarrowingEffective;\r
- }\r
-\r
- protected bool IsFetchNarrowingSkipStartIndexEffective() {\r
- return _fetchNarrowingBean.IsFetchNarrowingSkipStartIndexEffective;\r
- }\r
-\r
- protected bool IsFetchNarrowingLoopCountEffective() {\r
- return _fetchNarrowingBean.IsFetchNarrowingLoopCountEffective;\r
- }\r
-\r
- protected int GetFetchNarrowingSkipStartIndex() {\r
- return _fetchNarrowingBean.FetchNarrowingSkipStartIndex;\r
- }\r
-\r
- protected int GetFetchNarrowingLoopCount() {\r
- return _fetchNarrowingBean.FetchNarrowingLoopCount;\r
- }\r
-\r
- protected int GetSafetyMaxResultSize() {\r
- return _fetchNarrowingBean.SafetyMaxResultSize;\r
- }\r
-\r
- protected bool IsCursorUsed() {\r
- return IsCursorSupported(_dataReader);\r
- }\r
-\r
- public static bool IsCursorSupported(System.Data.IDataReader dataReader) {\r
- return false;// Is Cursor Unsupported at C#?\r
- }\r
-\r
- // ===============================================================================\r
- // Accessor\r
- // ========\r
- public ${glFetchNarrowingBeanInterfaceName} FetchNarrowingBean {\r
- get { return _fetchNarrowingBean; }\r
- }\r
-\r
- public bool IsOffsetByCursorForcedly {\r
- get { return _offsetByCursorForcedly; }\r
- }\r
-\r
- public bool IsLimitByCursorForcedly {\r
- get { return _limitByCursorForcedly; }\r
- }\r
-\r
- // ===============================================================================\r
- // Implementation of IDataReader\r
- // =============================\r
- #region Implementation of IDataReader\r
- void System.Data.IDataReader.Close() {\r
- _dataReader.Close();\r
- }\r
-\r
- int System.Data.IDataReader.Depth {\r
- get { return _dataReader.Depth; }\r
- }\r
-\r
- System.Data.DataTable System.Data.IDataReader.GetSchemaTable() {\r
- return _dataReader.GetSchemaTable();\r
- }\r
-\r
- bool System.Data.IDataReader.IsClosed {\r
- get { return _dataReader.IsClosed; }\r
- }\r
-\r
- bool System.Data.IDataReader.NextResult() {\r
- return _dataReader.NextResult();\r
- }\r
-\r
- int System.Data.IDataReader.RecordsAffected {\r
- get { return _dataReader.RecordsAffected; }\r
- }\r
- #endregion\r
-\r
- // ===============================================================================\r
- // Implementation of IDisposable\r
- // =============================\r
- #region Implementation of IDisposable\r
- void System.IDisposable.Dispose() {\r
- _dataReader.Dispose();\r
- }\r
- #endregion\r
-\r
- // ===============================================================================\r
- // Implementation of IDataRecord\r
- // =============================\r
- #region Implementation of IDataRecord\r
- int System.Data.IDataRecord.FieldCount {\r
- get { return _dataReader.FieldCount; }\r
- }\r
-\r
- bool System.Data.IDataRecord.GetBoolean(int i) {\r
- return _dataReader.GetBoolean(i);\r
- }\r
-\r
- byte System.Data.IDataRecord.GetByte(int i) {\r
- return _dataReader.GetByte(i);\r
- }\r
-\r
- long System.Data.IDataRecord.GetBytes(int i, long fieldOffset, byte[] buffer, int bufferoffset, int length) {\r
- return _dataReader.GetBytes(i, fieldOffset, buffer, bufferoffset, length);\r
- }\r
-\r
- char System.Data.IDataRecord.GetChar(int i) {\r
- return _dataReader.GetChar(i);\r
- }\r
-\r
- long System.Data.IDataRecord.GetChars(int i, long fieldoffset, char[] buffer, int bufferoffset, int length) {\r
- return _dataReader.GetChars(i, fieldoffset, buffer, bufferoffset, length);\r
- }\r
-\r
- System.Data.IDataReader System.Data.IDataRecord.GetData(int i) {\r
- return _dataReader.GetData(i);\r
- }\r
-\r
- string System.Data.IDataRecord.GetDataTypeName(int i) {\r
- return _dataReader.GetDataTypeName(i);\r
- }\r
-\r
- System.DateTime System.Data.IDataRecord.GetDateTime(int i) {\r
- return _dataReader.GetDateTime(i);\r
- }\r
-\r
- decimal System.Data.IDataRecord.GetDecimal(int i) {\r
- return _dataReader.GetDecimal(i);\r
- }\r
-\r
- double System.Data.IDataRecord.GetDouble(int i) {\r
- return _dataReader.GetDouble(i);\r
- }\r
-\r
- System.Type System.Data.IDataRecord.GetFieldType(int i) {\r
- return _dataReader.GetFieldType(i);\r
- }\r
-\r
- float System.Data.IDataRecord.GetFloat(int i) {\r
- return _dataReader.GetFloat(i);\r
- }\r
-\r
- System.Guid System.Data.IDataRecord.GetGuid(int i) {\r
- return _dataReader.GetGuid(i);\r
- }\r
-\r
- short System.Data.IDataRecord.GetInt16(int i) {\r
- return _dataReader.GetInt16(i);\r
- }\r
-\r
- int System.Data.IDataRecord.GetInt32(int i) {\r
- return _dataReader.GetInt32(i);\r
- }\r
-\r
- long System.Data.IDataRecord.GetInt64(int i) {\r
- return _dataReader.GetInt64(i);\r
- }\r
-\r
- string System.Data.IDataRecord.GetName(int i) {\r
- return _dataReader.GetName(i);\r
- }\r
-\r
- int System.Data.IDataRecord.GetOrdinal(string name) {\r
- return _dataReader.GetOrdinal(name);\r
- }\r
-\r
- string System.Data.IDataRecord.GetString(int i) {\r
- return _dataReader.GetString(i);\r
- }\r
-\r
- object System.Data.IDataRecord.GetValue(int i) {\r
- return _dataReader.GetValue(i);\r
- }\r
-\r
- int System.Data.IDataRecord.GetValues(object[] values) {\r
- return _dataReader.GetValues(values);\r
- }\r
-\r
- bool System.Data.IDataRecord.IsDBNull(int i) {\r
- return _dataReader.IsDBNull(i);\r
- }\r
-\r
- object System.Data.IDataRecord.this[string name] {\r
- get { return _dataReader[name]; }\r
- }\r
-\r
- object System.Data.IDataRecord.this[int i] {\r
- get { return _dataReader[i]; }\r
- }\r
- #endregion\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections;\r
-using System.Diagnostics;\r
-using System.Reflection;\r
-using System.Text;\r
-\r
-using Seasar.Framework.Aop;\r
-using Seasar.Framework.Aop.Interceptors;\r
-using Seasar.Framework.Beans;\r
-using Seasar.Dao;\r
-\r
-using ${glPackageBaseCommon};\r
-using ${glPackageBaseCommonCBean};\r
-using ${glPackageBaseCommonCBeanOutsidesql};\r
-using ${glPackageBaseCommonDBMeta};\r
-using ${glPackageBaseCommonException};\r
-using ${glPackageBaseCommonUtil};\r
-\r
-namespace ${glPackageBaseCommonS2Dao} {\r
-\r
- public class ${glDaoInterceptor} : AbstractInterceptor {\r
-\r
- // ===============================================================================\r
- // Definition\r
- // ==========\r
- private static readonly log4net.ILog _log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- private IDaoMetaDataFactory _daoMetaDataFactory;\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glDaoInterceptor}(IDaoMetaDataFactory daoMetaDataFactory) {\r
- _daoMetaDataFactory = daoMetaDataFactory;\r
- }\r
- \r
- // ===============================================================================\r
- // Execute Status Log\r
- // ==================\r
- protected void Log(String msg) {\r
- ${glXLog}.Log(msg);\r
- }\r
- \r
- protected bool IsLogEnabled() {\r
- return ${glXLog}.IsLogEnabled();\r
- }\r
-\r
- // ===============================================================================\r
- // Invoke\r
- // ======\r
- public override object Invoke(IMethodInvocation invocation) {\r
- ClearThreadLocal();\r
- try {\r
- return DispatchInvoking(invocation);\r
- } finally {\r
- ClearThreadLocal();\r
- }\r
- }\r
-\r
- protected virtual object DispatchInvoking(IMethodInvocation invocation) {\r
- MethodBase method = invocation.Method;\r
- if (!method.IsAbstract) {\r
- return invocation.Proceed();\r
- }\r
- \r
- // - - - - - - - - - - - - -\r
- // Initialize DAO meta data\r
- // - - - - - - - - - - - - -\r
- if (method.Name.Equals("InitializeDaoMetaData")) {\r
- InitializeSqlCommand(invocation);\r
- return null;// The end! (Initilization Only)\r
- }\r
-\r
- // - - - - - - - - - - -\r
- // Preprocess outsideSql\r
- // - - - - - - - - - - -\r
- PreprocessOutsideSql(invocation);\r
-\r
- // - - - - - - - - - - - - -\r
- // Preprocess conditionBean\r
- // - - - - - - - - - - - - -\r
- ${glConditionBeanInterfaceName} cb = PreprocessConditionBean(invocation);\r
-\r
- // - - - - - - - - -\r
- // Set up sqlCommand\r
- // - - - - - - - - -\r
- ISqlCommand cmd = null;\r
- try {\r
- DateTime? beforeCmd = null;\r
- if (_log.IsDebugEnabled) {\r
- beforeCmd = DateTime.Now;\r
- }\r
- cmd = FindSqlCommand(invocation);\r
- if (IsLogEnabled() && beforeCmd != null) {\r
- DateTime afterCmd = DateTime.Now;\r
- if (!afterCmd.Equals(beforeCmd.Value)) {\r
- LogSqlCommand(invocation, cmd, beforeCmd.Value, afterCmd);\r
- }\r
- }\r
- } finally {\r
- if (IsLogEnabled()) {\r
- LogInvocation(invocation);\r
- }\r
- }\r
-\r
- DateTime? before = null;\r
- if (IsLogEnabled()) {\r
- before = DateTime.Now; // for performance view\r
- }\r
-\r
- // - - - - - - - - - -\r
- // Execute sqlCommand!\r
- // - - - - - - - - - -\r
- object ret = null;\r
- try {\r
- ret = cmd.Execute(invocation.Arguments);\r
- } catch (Exception e) {\r
- if (e.GetType().Equals(typeof(NotSingleRowUpdatedRuntimeException))) {\r
- throw new ${glEntityAlreadyUpdatedException}((NotSingleRowUpdatedRuntimeException)e);\r
- }\r
- throw;\r
- } finally {\r
- PostprocessConditionBean(invocation, cb);\r
- }\r
-\r
- // - - - - - - - - - -\r
- // Convert and Return!\r
- // - - - - - - - - - -\r
- Type retType = ((MethodInfo) method).ReturnType;\r
- ret = Seasar.Framework.Util.ConversionUtil.ConvertTargetType(ret, retType);\r
-\r
- if (IsLogEnabled() && before != null) {\r
- DateTime after = DateTime.Now; // for performance view\r
- LogReturn(invocation, retType, ret, before.Value, after);\r
- }\r
- return ret;\r
- }\r
-\r
- // ===============================================================================\r
- // SqlCommand\r
- // ==========\r
- protected void InitializeSqlCommand(IMethodInvocation invocation) {\r
- Type targetType = GetComponentDef(invocation).ComponentType;\r
- IDaoMetaData dmd = _daoMetaDataFactory.GetDaoMetaData(targetType);\r
- if (typeof(${glOutsideSqlDaoName}).IsAssignableFrom(targetType)) {\r
- return;// Do nothing!\r
- } else {\r
- Object[] arguments = invocation.Arguments;\r
- if (arguments != null && arguments.Length > 0 && arguments[0] is String) {\r
- String methodName = (String)arguments[0];\r
- try {\r
- dmd.GetSqlCommand(methodName);\r
- } catch (MethodNotFoundRuntimeException ignored) {\r
- // Do nothing!\r
- if (IsLogEnabled()) {\r
- Log("Not Found the method: " + methodName + " msg=" + ignored.Message);\r
- }\r
- }\r
- return;\r
- } else {\r
- String msg = "The method should have one string argument as method name: " + invocation;\r
- throw new SystemException(msg);\r
- }\r
- }\r
- }\r
-\r
- protected ISqlCommand FindSqlCommand(IMethodInvocation invocation) {\r
- ISqlCommand cmd;\r
- Type targetType = GetComponentDef(invocation).ComponentType;\r
- IDaoMetaData dmd = _daoMetaDataFactory.GetDaoMetaData(targetType);\r
- if (typeof(${glOutsideSqlDaoName}).IsAssignableFrom(targetType)) {\r
- cmd = dmd.GetSqlCommand(GenerateSpecifiedOutsideSqlUniqueKey(invocation));\r
- } else {\r
- cmd = dmd.GetSqlCommand(invocation.Method.Name);\r
- }\r
- return cmd;\r
- }\r
-\r
- protected String GenerateSpecifiedOutsideSqlUniqueKey(IMethodInvocation invocation) {\r
- Object[] args = invocation.Arguments;\r
- String path = (String)args[0];\r
- Object pmb = args[1];\r
- ${glOutsideSqlOptionName} option = (${glOutsideSqlOptionName})args[2];\r
- Object resultTypeSpecification = null;\r
- if (args.Length > 3) {\r
- resultTypeSpecification = args[3];\r
- }\r
- return ${glOutsideSqlContextName}.GenerateSpecifiedOutsideSqlUniqueKey(invocation.Method.Name, path, pmb, option, resultTypeSpecification);\r
- }\r
-\r
- // ===============================================================================\r
- // Log Invocation\r
- // ==============\r
- protected void LogInvocation(IMethodInvocation invocation) {\r
- StackTrace stackTrace = new StackTrace();\r
- MethodBase method = invocation.Method;\r
- InvokeNameExtractingResult behaviorResult = null;\r
- try {\r
- behaviorResult = extractBehaviorInvokeName(stackTrace);\r
- } catch (Exception ignored) {\r
- Log("Failed to extract behavior name: msg=" + ignored.Message);\r
- }\r
- String invokeName = null;\r
- if (behaviorResult != null && behaviorResult.getSimpleClassName() != null) {\r
- String invokeClassName = behaviorResult.getSimpleClassName();\r
- String invokeMethodName = behaviorResult.getMethodName();\r
- invokeName = buildInvocationExpressionWithoutKakko(invocation, invokeClassName, invokeMethodName);\r
- } else {\r
- invokeName = BuildSimpleExpressionFromDaoName(method.DeclaringType.Name) + "." + method.Name;\r
- }\r
-\r
- // Save behavior invoke name for error message.\r
- PutObjectToMapContext("df:BehaviorInvokeName", invokeName + "()");\r
-\r
- int length = invokeName.Length;\r
- StringBuilder sb = new StringBuilder();\r
- for (int i=0; i < length; i++) {\r
- sb.Append("=");\r
- }\r
- Log("/=====================================================" + sb.ToString() + "==");\r
- Log(" " + invokeName + "()");\r
- Log(" " + sb.ToString() + "=/");\r
-\r
- LogPath(invocation, stackTrace, behaviorResult);\r
-\r
- // Specified OutsideSql\r
- if (IsSpecifiedOutsideSql(invocation)) {\r
- Object[] args = invocation.Arguments;\r
- ${glOutsideSqlContextName} outsideSqlContext = GetOutsideSqlContext();\r
- if (outsideSqlContext != null) {\r
- Log("path: " + outsideSqlContext.OutsideSqlPath);\r
- } else {\r
- Log("path: " + GetOutsideSqlPath(args));\r
- }\r
- Log("option: " + GetOutsideSqlOption(args));\r
- }\r
- }\r
-\r
- protected String buildInvocationExpressionWithoutKakko(IMethodInvocation invocation, String invokeClassName, String invokeMethodName) {\r
- if (invokeClassName.Contains("OutsideSql") && invokeClassName.Contains("Executor")) { // OutsideSql Executor Handling and CSharp Only Contains\r
- try {\r
- String originalName = invokeClassName;\r
- if (IsSpecifiedOutsideSql()) {\r
- ${glOutsideSqlContextName} outsideSqlContext = GetOutsideSqlContext();\r
- String tableDbName = outsideSqlContext.TableDbName;\r
- ${glDBMetaInterfaceName} dbmeta = ${glDBMetaInstanceHandlerName}.FindDBMeta(tableDbName);\r
- String behaviorTypeName = dbmeta.BehaviorTypeName;\r
- String behaviorClassName = behaviorTypeName.Substring(behaviorTypeName.LastIndexOf(".") + ".".Length);\r
- invokeClassName = behaviorClassName + ".OutsideSql()";\r
- if (originalName.Contains("OutsideSqlEntityExecutor")) { // CSharp Only Contains\r
- invokeClassName = invokeClassName + ".EntityHandling()";\r
- } else if (originalName.Contains("OutsideSqlPagingExecutor")) { // CSharp Only Contains\r
- if (outsideSqlContext.IsOffsetByCursorForcedly || outsideSqlContext.IsLimitByCursorForcedly) {\r
- invokeClassName = invokeClassName + ".AutoPaging()";\r
- } else {\r
- invokeClassName = invokeClassName + ".ManualPaging()";\r
- }\r
- } else if (originalName.Contains("OutsideSqlCursorExecutor")) { // CSharp Only Contains\r
- invokeClassName = invokeClassName + ".CursorHandling()";\r
- }\r
- } else {\r
- invokeClassName = "OutsideSql";\r
- }\r
- } catch (Exception ignored) {\r
- Log("Ignored exception occurred: msg=" + ignored.Message);\r
- }\r
- }\r
- String invocationExpressionWithoutKakko = invokeClassName + "." + invokeMethodName;\r
- if ("SelectPage".Equals(invokeMethodName)) { // Special Handling!\r
- bool resultTypeInteger = false;\r
- if (IsSpecifiedOutsideSql()) {\r
- ${glOutsideSqlContextName} outsideSqlContext = GetOutsideSqlContext();\r
- Object resultTypeSpecification = outsideSqlContext.ResultTypeSpecification;\r
- if (resultTypeSpecification != null && resultTypeSpecification is Type) {\r
- Type resultType = (Type)resultTypeSpecification;\r
- if (typeof(int).IsAssignableFrom(resultType)) {\r
- resultTypeInteger = true;\r
- }\r
- }\r
- }\r
- if (resultTypeInteger || "SelectCount".Equals(invocation.Method.Name)) {\r
- invocationExpressionWithoutKakko = invocationExpressionWithoutKakko + "():count";\r
- } else {\r
- invocationExpressionWithoutKakko = invocationExpressionWithoutKakko + "():paging";\r
- }\r
- }\r
- return invocationExpressionWithoutKakko;\r
- }\r
-\r
- protected String BuildSimpleExpressionFromDaoName(String name) {\r
- return InvokeNameStringUtil.removeBasePrefixFromSimpleClassName(name);\r
- }\r
-\r
- protected void LogPath(IMethodInvocation invocation, StackTrace stackTrace, InvokeNameExtractingResult behaviorResult) {\r
- try {\r
- int bhvNextIndex = behaviorResult.getNextStartIndex();\r
- InvokeNameExtractingResult clientResult = extractClientInvokeName(stackTrace, bhvNextIndex);\r
- int clientFirstIndex = clientResult.getFoundFirstIndex();\r
- InvokeNameExtractingResult byPassResult = extractByPassInvokeName(stackTrace, bhvNextIndex, clientFirstIndex - bhvNextIndex);\r
- String clientInvokeName = clientResult.getInvokeName();\r
- String byPassInvokeName = byPassResult.getInvokeName();\r
- String behaviorInvokeName = behaviorResult.getInvokeName();\r
-\r
- // Save client invoke name for error message.\r
- if (clientResult.getSimpleClassName() != null) {\r
- PutObjectToMapContext("df:ClientInvokeName", clientInvokeName);\r
- }\r
- // Save by-pass invoke name for error message.\r
- if (byPassResult.getSimpleClassName() != null) {\r
- PutObjectToMapContext("df:ByPassInvokeName", byPassInvokeName);\r
- }\r
-\r
- if (clientInvokeName.Trim().Length == 0 && byPassInvokeName.Trim().Length == 0) {\r
- return;\r
- }\r
- Log(clientInvokeName + byPassInvokeName + behaviorInvokeName + "...");\r
- } catch (Exception ignored) {\r
- Log("Failed to extract client or by-pass name: " + ignored.Message);\r
- }\r
- }\r
-\r
- protected InvokeNameExtractingResult extractClientInvokeName(StackTrace stackTrace, int startIndex) {\r
- InvokeNameExtractingCallback callback = new ClientInvokeNameExtractingCallback(startIndex);\r
- return extractInvokeName(callback, stackTrace);\r
- }\r
-\r
- protected class ClientInvokeNameExtractingCallback : InvokeNameExtractingCallback {\r
- protected int _startIndex;\r
- public ClientInvokeNameExtractingCallback(int startIndex) {\r
- _startIndex = startIndex;\r
- }\r
- public bool isTargetElement(String className, String methodName) {\r
- return isClassNameEndsWith(className);\r
- }\r
- public String filterSimpleClassName(String simpleClassName) {\r
- return simpleClassName;\r
- }\r
- public bool isUseAdditionalInfo() {\r
- return true;\r
- }\r
- public int getStartIndex() {\r
- return _startIndex;\r
- }\r
- public int getLoopSize() {\r
- return 25;\r
- }\r
-\r
- protected bool isClassNameEndsWith(String className) {\r
- String[] suffixArray = new String[]{"Page", "Action"};\r
- foreach (String suffix in suffixArray) { if (className.EndsWith(suffix)) { return true; } }\r
- return false;\r
- }\r
- }\r
-\r
- protected InvokeNameExtractingResult extractByPassInvokeName(StackTrace stackTrace, int startIndex, int loopSize) {\r
- InvokeNameExtractingCallback callback = new ByPassInvokeNameExtractingCallback(startIndex, loopSize);\r
- return extractInvokeName(callback, stackTrace);\r
- }\r
-\r
- protected class ByPassInvokeNameExtractingCallback : InvokeNameExtractingCallback {\r
- protected int _startIndex;\r
- protected int _loopSize;\r
- public ByPassInvokeNameExtractingCallback(int startIndex, int loopSize) {\r
- _startIndex = startIndex;\r
- _loopSize = loopSize;\r
- }\r
- public bool isTargetElement(String className, String methodName) {\r
- return isClassNameEndsWith(className);\r
- }\r
- public String filterSimpleClassName(String simpleClassName) {\r
- return simpleClassName;\r
- }\r
- public bool isUseAdditionalInfo() {\r
- return true;\r
- }\r
- public int getStartIndex() {\r
- return _startIndex;\r
- }\r
- public int getLoopSize() {\r
- return _loopSize >= 0 ? _loopSize : 25;\r
- }\r
-\r
- protected bool isClassNameEndsWith(String className) {\r
- String[] suffixArray = new String[]{"Service", "ServiceImpl", "Facade", "FacadeImpl"};\r
- foreach (String suffix in suffixArray) { if (className.EndsWith(suffix)) { return true; } }\r
- return false;\r
- }\r
- }\r
-\r
- protected InvokeNameExtractingResult extractBehaviorInvokeName(StackTrace stackTrace) {\r
- InvokeNameExtractingCallback callback = new BehaviorInvokeNameExtractingCallback();\r
- return extractInvokeName(callback, stackTrace);\r
- }\r
-\r
- protected class BehaviorInvokeNameExtractingCallback : InvokeNameExtractingCallback {\r
- public bool isTargetElement(String className, String methodName) {\r
- if (isClassNameEndsWith(className)) {\r
- return true;\r
- }\r
- if (isClassNameContains(className)) {\r
- return true;\r
- }\r
- if (isClassNameOutsideSqlExecutor(className)) {\r
- return true;\r
- }\r
- return false;\r
- }\r
- public String filterSimpleClassName(String simpleClassName) {\r
- return removeBasePrefixFromSimpleClassName(simpleClassName);\r
- }\r
- public bool isUseAdditionalInfo() {\r
- return false;\r
- }\r
- public int getStartIndex() {\r
- return 0;\r
- }\r
- public int getLoopSize() {\r
- return 25;\r
- }\r
-\r
- protected bool isClassNameEndsWith(String className) {\r
- String[] suffixArray = new String[]{"Bhv", "BehaviorReadable", "BehaviorWritable"};\r
- foreach (String suffix in suffixArray) { if (className.EndsWith(suffix)) { return true; } }\r
- return false;\r
- }\r
-\r
- protected bool isClassNameContains(String className) {\r
- String[] keywordArray = new String[]{"PagingInvoker"};\r
- foreach (String keyword in keywordArray) { if (className.Contains(keyword)) { return true; } }\r
- return false;\r
- }\r
-\r
- protected bool isClassNameOutsideSqlExecutor(String className) {\r
- String[] keywordArray1 = new String[]{"OutsideSql"};\r
- String[] keywordArray2 = new String[]{"Executor"};\r
- bool containsOutsideSql = false;\r
- bool containsExecutor = false; // CSharp Only Contains because of unknown suffix found\r
- foreach (String keyword in keywordArray1) { if (className.Contains(keyword)) { containsOutsideSql = true; break; } }\r
- foreach (String keyword in keywordArray2) { if (className.Contains(keyword)) { containsExecutor = true; break; } }\r
- return containsOutsideSql && containsExecutor;\r
- }\r
-\r
- protected String removeBasePrefixFromSimpleClassName(String simpleClassName) {\r
- return InvokeNameStringUtil.removeBasePrefixFromSimpleClassName(simpleClassName);\r
- }\r
- }\r
-\r
- protected InvokeNameExtractingResult extractInvokeName(InvokeNameExtractingCallback callback, StackTrace stackTrace) {\r
- String targetSimpleClassName = null;\r
- String targetMethodName = null;\r
- int lineNumber = 0;\r
- int foundIndex = -1;// The minus one means 'Not Found'.\r
- int foundFirstIndex = -1;// The minus one means 'Not Found'.\r
- bool onTarget = false;\r
- for (int i = 0; i < stackTrace.FrameCount; i++) {\r
- StackFrame stackFrame = stackTrace.GetFrame(i); // The inner class is not appeared.\r
- MethodBase method = stackFrame.GetMethod();\r
- if (method == null) {\r
- break; // End\r
- }\r
- String className = method.DeclaringType.Name; // This is simple class name at CSharp.\r
- String methodName = method.Name;\r
-\r
- if (i > callback.getStartIndex() + callback.getLoopSize()) {\r
- break;\r
- }\r
- if (className.StartsWith("System.")) { // This is system package of CSharp.\r
- if (onTarget) { // But the class name is simple so this 'if' statement is waste... \r
- break;\r
- }\r
- continue;\r
- }\r
- if (callback.isTargetElement(className, methodName)) {\r
- if (methodName.Equals("Invoke")) {\r
- continue;\r
- }\r
- targetSimpleClassName = className.Substring(className.LastIndexOf(".") + 1);\r
- targetMethodName = methodName;\r
- if (callback.isUseAdditionalInfo()) {\r
- try {\r
- lineNumber = stackFrame.GetFileLineNumber();\r
- } catch (Exception) {\r
- // Ignored\r
- }\r
- }\r
- foundIndex = i;\r
- if (foundFirstIndex == -1) {\r
- foundFirstIndex = i;\r
- }\r
- onTarget = true;\r
- continue;\r
- }\r
- if (onTarget) {\r
- break;\r
- }\r
- }\r
- InvokeNameExtractingResult result = new InvokeNameExtractingResult();\r
- if (targetSimpleClassName == null) {\r
- result.setInvokeName("");// Not Found! It sets empty string as default.\r
- return result;\r
- }\r
- String filteredClassName = callback.filterSimpleClassName(targetSimpleClassName);\r
- result.setSimpleClassName(callback.filterSimpleClassName(targetSimpleClassName));\r
- result.setMethodName(targetMethodName);\r
- if (lineNumber > 0) {\r
- result.setInvokeName(filteredClassName + "." + targetMethodName + "():" + lineNumber + " --> ");\r
- } else {\r
- result.setInvokeName(filteredClassName + "." + targetMethodName + "() --> ");\r
- }\r
- result.setFoundIndex(foundIndex);\r
- result.setFoundFirstIndex(foundFirstIndex);\r
- return result;\r
- }\r
-\r
- protected interface InvokeNameExtractingCallback {\r
- bool isTargetElement(String className, String methodName);\r
- String filterSimpleClassName(String simpleClassName);\r
- bool isUseAdditionalInfo();\r
- int getStartIndex();\r
- int getLoopSize();\r
- }\r
-\r
- protected class InvokeNameExtractingResult {\r
- protected String _simpleClassName;\r
- protected String _methodName;\r
- protected String _invokeName;\r
- protected int _foundIndex;\r
- protected int _foundFirstIndex;\r
-\r
- public int getNextStartIndex() {\r
- return _foundIndex + 1;\r
- }\r
-\r
- public String getSimpleClassName() {\r
- return _simpleClassName;\r
- }\r
- public void setSimpleClassName(String simpleClassName) {\r
- _simpleClassName = simpleClassName;\r
- }\r
- public String getMethodName() {\r
- return _methodName;\r
- }\r
- public void setMethodName(String methodName) {\r
- _methodName = methodName;\r
- }\r
- public String getInvokeName() {\r
- return _invokeName;\r
- }\r
- public void setInvokeName(String invokeName) {\r
- _invokeName = invokeName;\r
- }\r
- public int getFoundIndex() {\r
- return _foundIndex;\r
- }\r
- public void setFoundIndex(int foundIndex) {\r
- _foundIndex = foundIndex;\r
- }\r
- public int getFoundFirstIndex() {\r
- return _foundFirstIndex;\r
- }\r
- public void setFoundFirstIndex(int foundFirstIndex) {\r
- _foundFirstIndex = foundFirstIndex;\r
- }\r
- }\r
-\r
- protected static class InvokeNameStringUtil {\r
- public static String removeBasePrefixFromSimpleClassName(String simpleClassName) {\r
- if (!simpleClassName.StartsWith("${glProjectPrefix}${glBasePrefix}")) {\r
- return simpleClassName;\r
- }\r
- int prefixLength = "${glProjectPrefix}${glBasePrefix}".Length;\r
- // [Under Review]: I want someone to teach me how to do this by CSharp!\r
- // if (!Character.isUpperCase(simpleClassName.substring(prefixLength).charAt(0))) {\r
- // return simpleClassName;\r
- // }\r
- if (simpleClassName.Length <= prefixLength) {\r
- return simpleClassName;\r
- }\r
- return "${glProjectPrefix}" + simpleClassName.Substring(prefixLength);\r
- }\r
- }\r
-\r
- // ===============================================================================\r
- // Log SqlCommand\r
- // ==============\r
- protected void LogSqlCommand(IMethodInvocation invocation, ISqlCommand cmd, DateTime beforeCmd, DateTime afterCmd) {\r
- Log("SqlCommand Initialization Cost: [" + ${glTraceViewUtilName}.ConvertToPerformanceView(beforeCmd, afterCmd) + "]");\r
- }\r
-\r
- // ===============================================================================\r
- // Log Return\r
- // ==========\r
- protected void LogReturn(IMethodInvocation invocation, Type retType, Object ret, DateTime before, DateTime after) {\r
- MethodBase method = invocation.Method;\r
- try {\r
- String daoResultPrefix = "===========/ [" + ${glTraceViewUtilName}.ConvertToPerformanceView(before, after) + " - ";\r
- if (typeof(System.Collections.IList).IsAssignableFrom(retType) || (ret != null && ret is System.Collections.IList)) {\r
- if (ret == null) {\r
- Log(daoResultPrefix + "Selected list: null]");\r
- } else {\r
- System.Collections.IList ls = (System.Collections.IList)ret;\r
- if (ls.Count == 0) {\r
- Log(daoResultPrefix + "Selected list: 0]");\r
- } else if (ls.Count == 1 && ls[0] is int) {\r
- Log(daoResultPrefix + "Selected count: " + ls[0] + "]");\r
- } else {\r
- Log(daoResultPrefix + "Selected list: " + ls.Count + " first=" + ls[0] + "]");\r
- }\r
- }\r
- } else if (typeof(${glEntityInterfaceName}).IsAssignableFrom(retType)) {\r
- if (ret == null) {\r
- Log(daoResultPrefix + "Selected entity: null" + "]");\r
- } else {\r
- ${glEntityInterfaceName} entity = (${glEntityInterfaceName})ret;\r
- Log(daoResultPrefix + "Selected entity: " + entity + "]");\r
- }\r
- } else {\r
- if (IsSelectCountIgnoreFetchScopeMethod(invocation)) {\r
- Log(daoResultPrefix + "Selected count: " + ret + "]");\r
- } else {\r
- Log(daoResultPrefix + "Result: " + ret + "]");\r
- }\r
- }\r
- Log(" ");\r
- } catch (Exception e) {\r
- String msg = "Result object debug threw the exception: methodName=" + method.Name + " retType=" + retType;\r
- msg = msg + " ret=" + ret;\r
- _log.Warn(msg, e);\r
- throw;\r
- }\r
- }\r
-\r
- // ===============================================================================\r
- // Pre Post Process\r
- // ================\r
- // -------------------------------------------------\r
- // OutsideSql\r
- // ----------\r
- protected void PreprocessOutsideSql(IMethodInvocation invocation) {\r
- // Specified OutsideSql\r
- if (IsSpecifiedOutsideSql(invocation)) {\r
- if (IsOutsideSqlDaoMethodSelect(invocation)) {\r
- SetupOutsideSqlContextSelect(invocation);\r
- } else {\r
- SetupOutsideSqlContextExecute(invocation);\r
- }\r
- return;\r
- }\r
- }\r
- \r
- protected bool IsSpecifiedOutsideSql(IMethodInvocation invocation) {\r
- return typeof(${glOutsideSqlDaoName}).IsAssignableFrom(GetComponentDef(invocation).ComponentType);\r
- }\r
- \r
- // - - - - - - - - - -\r
- // Select\r
- // - - -\r
- protected bool IsOutsideSqlDaoMethodSelect(IMethodInvocation invocation) {\r
- return invocation.Method.Name.StartsWith("Select");\r
- }\r
-\r
- protected void SetupOutsideSqlContextSelect(IMethodInvocation invocation) {\r
- Object[] args = invocation.Arguments;\r
- if (args.Length != 4) {\r
- String msg = "Internal Error! OutsideSqlDao.selectXxx() should have 4 arguements: args.Length=" + args.Length;\r
- throw new SystemException(msg);\r
- }\r
- String path = GetOutsideSqlPath(args);\r
- Object pmb = GetOutsideSqlParameterBean(args);\r
- ${glOutsideSqlOptionName} option = GetOutsideSqlOption(args);\r
- Object resultTypeSpecification = args[3];\r
- ${glOutsideSqlContextName} outsideSqlContext = new ${glOutsideSqlContextName}();\r
- outsideSqlContext.IsDynamicBinding = option.IsDynamicBinding;\r
- outsideSqlContext.IsOffsetByCursorForcedly = option.IsAutoPaging;\r
- outsideSqlContext.IsLimitByCursorForcedly = option.IsAutoPaging;\r
- outsideSqlContext.OutsideSqlPath = path;\r
- outsideSqlContext.ParameterBean = pmb;\r
- outsideSqlContext.ResultTypeSpecification = resultTypeSpecification;\r
- outsideSqlContext.MethodName = invocation.Method.Name;\r
- outsideSqlContext.StatementConfig = option.StatementConfig;\r
- outsideSqlContext.TableDbName = option.TableDbName;\r
- outsideSqlContext.SetupBehaviorQueryPathIfNeeds();\r
- ${glOutsideSqlContextName}.SetOutsideSqlContextOnThread(outsideSqlContext);\r
-\r
- // Set up fetchNarrowingBean.\r
- SetupOutsideSqlFetchNarrowingBean(pmb, option);\r
- }\r
-\r
- // - - - - - - - - - -\r
- // Execute\r
- // - - - -\r
- protected void SetupOutsideSqlContextExecute(IMethodInvocation invocation) {\r
- Object[] args = invocation.Arguments;\r
- if (args.Length != 3) {\r
- String msg = "Internal Error! OutsideSqlDao.execute() should have 3 arguements: args.Length=" + args.Length;\r
- throw new SystemException(msg);\r
- }\r
- String path = GetOutsideSqlPath(args);\r
- Object pmb = GetOutsideSqlParameterBean(args);\r
- ${glOutsideSqlOptionName} option = GetOutsideSqlOption(args);\r
- ${glOutsideSqlContextName} outsideSqlContext = new ${glOutsideSqlContextName}();\r
- outsideSqlContext.IsDynamicBinding = option.IsDynamicBinding;\r
- outsideSqlContext.IsOffsetByCursorForcedly = option.IsAutoPaging;\r
- outsideSqlContext.IsLimitByCursorForcedly = option.IsAutoPaging;\r
- outsideSqlContext.OutsideSqlPath = path;\r
- outsideSqlContext.ParameterBean = pmb;\r
- outsideSqlContext.MethodName = invocation.Method.Name;\r
- outsideSqlContext.StatementConfig = option.StatementConfig;\r
- outsideSqlContext.TableDbName = option.TableDbName;\r
- outsideSqlContext.SetupBehaviorQueryPathIfNeeds();\r
- ${glOutsideSqlContextName}.SetOutsideSqlContextOnThread(outsideSqlContext);\r
-\r
- // Set up fetchNarrowingBean.\r
- SetupOutsideSqlFetchNarrowingBean(pmb, option);\r
- }\r
-\r
- // - - - - - - - - - -\r
- // Common\r
- // - - -\r
- protected String GetOutsideSqlPath(Object[] args) {\r
- return (String)args[0];\r
- }\r
- protected Object GetOutsideSqlParameterBean(Object[] args) {\r
- return args[1];\r
- }\r
- protected ${glOutsideSqlOptionName} GetOutsideSqlOption(Object[] args) {\r
- return (${glOutsideSqlOptionName})args[2];\r
- }\r
- \r
- protected void SetupOutsideSqlFetchNarrowingBean(Object pmb, ${glOutsideSqlOptionName} option) {\r
- if (pmb == null || !${glFetchNarrowingBeanContextName}.IsTheTypeFetchNarrowingBean(pmb.GetType())) {\r
- return;\r
- }\r
- ${glFetchNarrowingBeanInterfaceName} fetchNarrowingBean = (${glFetchNarrowingBeanInterfaceName})pmb;\r
- if (option.IsManualPaging) {\r
- fetchNarrowingBean.IgnoreFetchNarrowing();\r
- }\r
- ${glFetchNarrowingBeanContextName}.SetFetchNarrowingBeanOnThread(fetchNarrowingBean);\r
- }\r
-\r
- // -------------------------------------------------\r
- // ConditionBean\r
- // -------------\r
- protected ${glConditionBeanInterfaceName} PreprocessConditionBean(IMethodInvocation invocation) {\r
- ${glOutsideSqlContextName} outsideSqlContext = GetOutsideSqlContext();\r
- if (outsideSqlContext != null) {\r
- return null; // Because it has already finished setting up fetchNarrowingBean for outsideSql here.\r
- }\r
- \r
- ${glConditionBeanInterfaceName} cb = null;\r
- {\r
- Object[] args = invocation.Arguments;\r
- if (args == null || !(args.Length >= 1)) {\r
- return null;\r
- }\r
- Object arg0 = args[0];\r
- if (arg0 == null) {\r
- return null;\r
- }\r
-\r
- if (!${glConditionBeanContextName}.IsTheArgumentConditionBean(arg0)) {// The argument is not condition-bean...\r
- if (${glFetchNarrowingBeanContextName}.IsTheArgumentFetchNarrowingBean(arg0) && !IsSelectCountIgnoreFetchScopeMethod(invocation)) {\r
- // Fetch-narrowing-bean and Not select count!\r
- ${glFetchNarrowingBeanContextName}.SetFetchNarrowingBeanOnThread((${glFetchNarrowingBeanInterfaceName})arg0);\r
- }\r
- return null;\r
- }\r
-\r
- cb = (${glConditionBeanInterfaceName})arg0;\r
- }\r
-\r
- if (IsSelectCountIgnoreFetchScopeMethod(invocation)) {\r
- cb.XSetupSelectCountIgnoreFetchScope();\r
- } else {\r
- ${glFetchNarrowingBeanContextName}.SetFetchNarrowingBeanOnThread(cb);\r
- }\r
-\r
- ${glConditionBeanContextName}.SetConditionBeanOnThread(cb);\r
- return cb;\r
- }\r
-\r
- public void PostprocessConditionBean(IMethodInvocation invocation, ${glConditionBeanInterfaceName} cb) {\r
- if (cb == null) {\r
- return;\r
- }\r
- if (IsSelectCountIgnoreFetchScopeMethod(invocation)) {\r
- cb.XAfterCareSelectCountIgnoreFetchScope();\r
- }\r
- }\r
-\r
- // -------------------------------------------------\r
- // Clear Thread Local\r
- // ------------------\r
- protected void ClearThreadLocal() {\r
- if (${glOutsideSqlContextName}.IsExistOutsideSqlContextOnThread()) {\r
- ${glOutsideSqlContextName}.ClearOutsideSqlContextOnThread();\r
- }\r
- if (${glFetchNarrowingBeanContextName}.IsExistFetchNarrowingBeanOnThread()) {\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- // Because there is possible that fetch narrowing has been ignored for manualPaging of outsideSql.\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- ${glFetchNarrowingBeanContextName}.GetFetchNarrowingBeanOnThread().RestoreIgnoredFetchNarrowing();\r
-\r
- ${glFetchNarrowingBeanContextName}.ClearFetchNarrowingBeanOnThread();\r
- }\r
- if (${glConditionBeanContextName}.IsExistConditionBeanOnThread()) {\r
- ${glConditionBeanContextName}.ClearConditionBeanOnThread();\r
- }\r
- if (${glInternalMapContextName}.IsExistInternalMapOnThread()) {\r
- ${glInternalMapContextName}.ClearInternalMapOnThread();\r
- }\r
- }\r
-\r
- // ===============================================================================\r
- // Context Helper\r
- // ==============\r
- protected ${glOutsideSqlContextName} GetOutsideSqlContext() {\r
- if (!${glOutsideSqlContextName}.IsExistOutsideSqlContextOnThread()) {\r
- return null;\r
- }\r
- return ${glOutsideSqlContextName}.GetOutsideSqlContextOnThread();\r
- }\r
- \r
- protected bool IsSpecifiedOutsideSql() {\r
- ${glOutsideSqlContextName} outsideSqlContext = GetOutsideSqlContext();\r
- return outsideSqlContext != null && outsideSqlContext.IsSpecifiedOutsideSql;\r
- }\r
-\r
- protected void PutObjectToMapContext(String key, Object value) {\r
- ${glInternalMapContextName}.SetObject(key, value);\r
- }\r
-\r
- // ===============================================================================\r
- // Determination\r
- // =============\r
- protected bool IsSelectCountIgnoreFetchScopeMethod(IMethodInvocation invocation) {\r
- String name = invocation.Method.Name;\r
- return name.StartsWith("ReadCount") || name.StartsWith("SelectCount");\r
- }\r
-\r
- // ===============================================================================\r
- // Helper\r
- // ======\r
- protected virtual String GetLineSeparator() {\r
- return Environment.NewLine;\r
- }\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System;\r
-using System.Collections;\r
-using System.Data;\r
-using System.Reflection;\r
-\r
-using Seasar.Framework.Beans;\r
-using Seasar.Framework.Util;\r
-using Seasar.Extension.ADO;\r
-using Seasar.Extension.ADO.Impl;\r
-using Seasar.Extension.ADO.Types;\r
-using Seasar.Dao;\r
-using Seasar.Dao.Attrs;\r
-using Seasar.Dao.Dbms;\r
-using Seasar.Dao.Impl;\r
-\r
-using ${glPackageBaseCommon};\r
-using ${glPackageBaseCommonAnnotation};\r
-using ${glPackageBaseCommonCBean};\r
-using ${glPackageBaseCommonCBeanOutsidesql};\r
-using ${glPackageBaseCommonDBMeta};\r
-using ${glPackageBaseCommonJavaLike};\r
-using ${glPackageBaseCommonJdbc};\r
-using ${glPackageBaseCommonS2DaoInternalSqlHandler};\r
-using ${glPackageBaseCommonS2DaoInternalSqlCommand};\r
-using ${glPackageBaseCommonS2DaoInternalRsHandler};\r
-\r
-namespace ${glPackageBaseCommonS2Dao} {\r
-\r
- public class ${glDaoMetaDataExtension} : DaoMetaDataImpl {\r
-\r
- // ===============================================================================\r
- // Definition\r
- // ==========\r
- private static readonly log4net.ILog _log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected Map<Type, IBeanMetaData> _beanMetaDataCacheMap = new HashMap<Type, IBeanMetaData>();\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glDaoMetaDataExtension}()\r
- : base() {}\r
-\r
- // ===============================================================================\r
- // Initialization Override\r
- // =======================\r
- public override void Initialize() {\r
- _daoInterface = GetDaoInterface(_daoType);\r
- _annotationReader = AnnotationReaderFactory.CreateDaoAnnotationReader(_daoType);\r
- _beanType = _annotationReader.GetBeanType();\r
- _dbms = GetDbms(_dataSource);\r
- \r
- // Initialize bean-meta-data!\r
- BeanMetaDataCacheHandler handler = new BeanMetaDataCacheHandler(_beanMetaDataCacheMap);\r
- _beanMetaData = handler.FindOrCreateCachedMetaIfNeeds(_beanType, _annotationReaderFactory, _dbMetaData, _dbms);\r
- if (_beanMetaData == null) {\r
- _beanMetaData = new BeanMetaDataCacheExtension(_beanType, _annotationReaderFactory, false);// Don't use cache!\r
- }\r
-\r
- // For lazy initializing methods!\r
- // SetupSqlCommand();\r
- }\r
-\r
- public override ISqlCommand GetSqlCommand(String methodName) {\r
- ISqlCommand cmd = (ISqlCommand)_sqlCommands[methodName];\r
- if (cmd != null) {\r
- return cmd;\r
- }\r
- if (_log.IsDebugEnabled) {\r
- _log.Debug("...Initializing sqlCommand for " + methodName + "().");\r
- }\r
- return InitializeSqlCommand(methodName);\r
- }\r
-\r
- protected ISqlCommand InitializeSqlCommand(String methodName) {\r
- if (${glOutsideSqlContextName}.IsExistOutsideSqlContextOnThread()) {\r
- ${glOutsideSqlContextName} outsideSqlContext = ${glOutsideSqlContextName}.GetOutsideSqlContextOnThread();\r
- if (outsideSqlContext != null && outsideSqlContext.IsSpecifiedOutsideSql) {\r
- return InitializeSpecifiedOutsideSqlCommand(methodName, outsideSqlContext);\r
- }\r
- }\r
- MethodInfo method = _daoInterface.GetMethod(methodName);\r
- if (method != null && method.IsAbstract) {\r
- SetupMethod(method);\r
- }\r
- ISqlCommand cmd = (ISqlCommand) _sqlCommands[methodName];\r
- if (cmd != null) {\r
- return cmd;\r
- }\r
- throw new MethodNotFoundRuntimeException(_daoType, methodName, null);\r
- }\r
-\r
- protected ISqlCommand InitializeSpecifiedOutsideSqlCommand(String sqlCommandKey, ${glOutsideSqlContextName} outsideSqlContext) {\r
- MethodInfo method = _daoInterface.GetMethod(outsideSqlContext.MethodName);// By real method name.\r
- if (method != null && method.IsAbstract) {\r
- if (IsOutsideSqlDaoMethodSelect(method)) {\r
- SetupSpecifiedOutsideSqlSelectCommand(sqlCommandKey, method, outsideSqlContext);\r
- } else if (IsOutsideSqlDaoMethodCall(method)) {\r
- SetupSpecifiedOutsideSqlCallCommand(sqlCommandKey, method, outsideSqlContext);\r
- } else {\r
- SetupSpecifiedOutsideSqlExecuteCommand(sqlCommandKey, method, outsideSqlContext);\r
- }\r
- }\r
- ISqlCommand cmd = (ISqlCommand) _sqlCommands[sqlCommandKey];\r
- if (cmd != null) {\r
- return cmd;\r
- }\r
- String msg = "Internal Error! The sql-command is not found:";\r
- msg = msg + " sqlCommandKey=" + sqlCommandKey;\r
- msg = msg + " sqlCommands=" + _sqlCommands;\r
- throw new SystemException(msg);\r
- }\r
-\r
- protected bool IsOutsideSqlDaoMethodSelect(MethodInfo method) {\r
- return method.Name.StartsWith("Select");\r
- }\r
-\r
- protected bool IsOutsideSqlDaoMethodCall(MethodInfo method) {\r
- return method.Name.StartsWith("Call");\r
- }\r
-\r
- // ===============================================================================\r
- // Assert Override\r
- // ===============\r
- protected override void SetupMethodByAttribute(MethodInfo methodInfo) {\r
- String sql = _annotationReader.GetSql(methodInfo.Name, _dbms);\r
- AssertSQLAnnotationUnsupported(methodInfo, sql);\r
- base.SetupMethodByAttribute(methodInfo);\r
- }\r
-\r
- protected void AssertSQLAnnotationUnsupported(MethodInfo methodInfo, String sql) {\r
- if (sql != null) {\r
- String msg = "Sorry! The SQL annotation of S2Dao is unsupported on DBFlute:";\r
- msg = msg + " sql=" + sql + " method=" + methodInfo;\r
- throw new NotSupportedException(msg);\r
- }\r
- }\r
-\r
- protected override void SetupMethodByAuto(MethodInfo mi) {\r
- ${glOutsideSqlAnnotation} outsideSql = Attribute.GetCustomAttribute(mi, typeof(${glOutsideSqlAnnotation})) as ${glOutsideSqlAnnotation};\r
- if (outsideSql != null) {\r
- String msg = "This method '" + mi.Name + "()' should use Outside Sql but the file was not found!";\r
- msg = msg + " Expected sql file name is '" + mi.DeclaringType.Name + "_" + mi.Name + ".sql'";\r
- throw new SystemException(msg);\r
- }\r
- base.SetupMethodByAuto(mi);\r
- }\r
-\r
- // ===============================================================================\r
- // ConditionBean Override\r
- // ======================\r
- protected override void SetupSelectMethodByAuto(MethodInfo methodInfo) {\r
- if (SetupInternalSelectMethodSequenceNextVal(methodInfo)) {\r
- return;\r
- }\r
-\r
- // Assert unsupported\r
- String query = _annotationReader.GetQuery(methodInfo.Name);\r
- AssertQueryAnnotationUnsupported(methodInfo, query);\r
-\r
- IDataReaderHandler handler = CreateDataReaderHandler(methodInfo);\r
- String[] argNames = MethodUtil.GetParameterNames(methodInfo);\r
- Type[] argTypes = MethodUtil.GetParameterTypes(methodInfo);\r
- SelectDynamicCommand cmd = CreateSelectDynamicCommand(handler);\r
- if (argTypes.Length == 1 && ValueTypes.GetValueType(argTypes[0]) == ValueTypes.OBJECT) {\r
- argNames = new String[] { "dto" };\r
- AssertAutoQueryByDtoUnsupported(methodInfo, argTypes);\r
- ${glSelectDynamicCommand} dynamicCommand = CreateCustomizeSelectDynamicCommand(handler);\r
- cmd = dynamicCommand;\r
- } else {\r
- HandleAutoQueryByArgsAnnotationUnsupported(methodInfo, argNames);\r
- }\r
- cmd.ArgNames = argNames;\r
- cmd.ArgTypes = argTypes;\r
- _sqlCommands[methodInfo.Name] = cmd;\r
- }\r
-\r
- protected bool SetupInternalSelectMethodSequenceNextVal(MethodInfo methodInfo) {\r
- if (!"SelectNextVal".Equals(methodInfo.Name)) {\r
- return false;\r
- }\r
- ${glDBMetaInterfaceName} dbmeta = FindDBMeta();\r
- if (!dbmeta.HasSequence) {\r
- String msg = "If the method 'SelectNextVal()' exists, DBMeta.HasSequence should return true:";\r
- msg = msg + " dbmeta.HasSequence=" + dbmeta.HasSequence + " method=" + methodInfo;\r
- throw new SystemException(msg);\r
- }\r
- String nextValSql = dbmeta.SequenceNextValSql;\r
- if (nextValSql == null) {\r
- String msg = "If the method 'SelectNextVal()' exists, DBMeta.SequenceNextValSql should not return null:";\r
- msg = msg + " dbmeta.SequenceNextValSql=" + dbmeta.SequenceNextValSql + " method=" + methodInfo;\r
- throw new SystemException(msg);\r
- }\r
- SetupSelectMethodByManual(methodInfo, nextValSql);\r
- return true;\r
- }\r
-\r
- protected void AssertQueryAnnotationUnsupported(MethodInfo methodInfo, String query) {\r
- if (query != null) {\r
- String msg = "Sorry! The QUERY annotation of S2Dao is unsupported on DBFlute:";\r
- msg = msg + " query=" + query + " method=" + methodInfo;\r
- throw new NotSupportedException(msg);\r
- }\r
- }\r
-\r
- protected void HandleAutoQueryByArgsAnnotationUnsupported(MethodInfo methodInfo, String[] argNames) {\r
- String msg = "Sorry! The auto query by ARGS annotation of S2Dao is unsupported on DBFlute:";\r
- msg = msg + " argNames=" + argNames + " method=" + methodInfo;\r
- throw new NotSupportedException(msg);\r
- }\r
-\r
- protected void AssertAutoQueryByDtoUnsupported(MethodInfo methodInfo, Type[] argTypes) {\r
- Type firstArgType = argTypes[0];\r
- if (!${glConditionBeanContextName}.IsTheTypeConditionBean(firstArgType)) {\r
- String msg = "Sorry! The auto query by DTO of S2Dao is unsupported on DBFlute:";\r
- msg = msg + " dto=" + firstArgType + " method=" + methodInfo;\r
- throw new NotSupportedException(msg);\r
- }\r
- }\r
-\r
- // ===============================================================================\r
- // Insert and Update and Delete By Auto Override\r
- // =============================================\r
- protected override AbstractSqlCommand CreateInsertAutoDynamicCommand(MethodInfo methodInfo, IDataSource dataSource, ICommandFactory commandFactory, IBeanMetaData beanMetaData, string[] propertyNames) {\r
- return new ${glInternalInsertAutoDynamicCommand}(dataSource, commandFactory, beanMetaData, propertyNames);\r
- }\r
- \r
- protected override void SetupUpdateMethodByAuto(MethodInfo mi) {\r
- if (IsFirstArgumentConditionBean(mi)) {\r
- ISqlCommand cmd = new ${glInternalUpdateQueryAutoDynamicCommand}(_dataSource, _commandFactory);\r
- _sqlCommands.Add(mi.Name, cmd);\r
- return;\r
- }\r
- base.SetupUpdateMethodByAuto(mi);\r
- }\r
-\r
- protected override AbstractSqlCommand CreateUpdateAutoDynamicCommand(MethodInfo method, IDataSource dataSource, ICommandFactory commandFactory, IBeanMetaData beanMetaData, string[] propertyNames) {\r
- ${glInternalUpdateAutoDynamicCommand} cmd = new ${glInternalUpdateAutoDynamicCommand}(dataSource, commandFactory, CreateBeanMetaData4UpdateDeleteByAuto(method), propertyNames);\r
- cmd.VersionNoAutoIncrementOnMemory = IsUpdateVersionNoAutoIncrementOnMemory(method);\r
- cmd.IsCheckSingleRowUpdate = !IsNonstrictMethod(method);\r
- return cmd;\r
- }\r
-\r
- protected override AbstractSqlCommand CreateUpdateModifiedOnlyCommand(MethodInfo method, IDataSource dataSource, ICommandFactory commandFactory, IBeanMetaData beanMetaData, string[] propertyNames) {\r
- ${glInternalUpdateModifiedOnlyCommand} cmd = new ${glInternalUpdateModifiedOnlyCommand}(dataSource, commandFactory, CreateBeanMetaData4UpdateDeleteByAuto(method), propertyNames);\r
- cmd.VersionNoAutoIncrementOnMemory = IsUpdateVersionNoAutoIncrementOnMemory(method);\r
- cmd.IsCheckSingleRowUpdate = !IsNonstrictMethod(method);\r
- return cmd;\r
- }\r
-\r
- protected override void SetupDeleteMethodByAuto(MethodInfo mi) {\r
- if (IsFirstArgumentConditionBean(mi)) {\r
- ISqlCommand cmd = new ${glInternalDeleteQueryAutoDynamicCommand}(_dataSource, _commandFactory);\r
- _sqlCommands.Add(mi.Name, cmd);\r
- return;\r
- }\r
- base.SetupDeleteMethodByAuto(mi);\r
- }\r
-\r
- protected override AbstractSqlCommand CreateDeleteAutoStaticCommand(MethodInfo method, IDataSource dataSource, ICommandFactory commandFactory, IBeanMetaData beanMetaData, string[] propertyNames) {\r
- ${glInternalDeleteAutoStaticCommand} cmd = new ${glInternalDeleteAutoStaticCommand}(dataSource, commandFactory, CreateBeanMetaData4UpdateDeleteByAuto(method), propertyNames);\r
- cmd.IsCheckSingleRowUpdate = !IsNonstrictMethod(method);\r
- return cmd;\r
- }\r
- \r
- // -------------------------------------------------\r
- // Common Helper\r
- // -------------\r
- protected IBeanMetaData CreateBeanMetaData4UpdateDeleteByAuto(MethodInfo method) {\r
- if (IsNonstrictMethod(method)) {\r
- BeanMetaDataForUpdateNonConcurrency bmdNonConcurrency = new BeanMetaDataForUpdateNonConcurrency(_beanType, _annotationReaderFactory, false);\r
- bmdNonConcurrency.Initialize(_dbMetaData, _dbms);\r
- return bmdNonConcurrency;\r
- } else {\r
- return this.BeanMetaData;\r
- }\r
- }\r
-\r
- protected bool IsUpdateVersionNoAutoIncrementOnMemory(MethodInfo mi) {\r
- return !IsNonstrictMethod(mi);\r
- }\r
-\r
- protected bool IsNonstrictMethod(MethodInfo mi) {\r
- return mi.Name.Contains("Nonstrict");\r
- }\r
-\r
- protected bool IsFirstArgumentConditionBean(MethodInfo mi) {\r
- Type[] pmbTypes = MethodUtil.GetParameterTypes(mi);\r
- return pmbTypes.Length > 0 && typeof(${glConditionBeanInterfaceName}).IsAssignableFrom(pmbTypes[0]);\r
- }\r
-\r
- // ===============================================================================\r
- // OutsideSql Override\r
- // ===================\r
- protected override void SetupSelectMethodByManual(MethodInfo mi, string sql) {\r
- string[] parameterNames = MethodUtil.GetParameterNames(mi);\r
- Type[] parameterTypes = MethodUtil.GetParameterTypes(mi);\r
- string[] filteredParameterNames = null;\r
- Type[] filteredParameterTypes = null;\r
- if (parameterTypes != null && parameterTypes.Length > 0\r
- && typeof(${glCursorHandlerName}).IsAssignableFrom(parameterTypes[parameterTypes.Length - 1])) {\r
- filteredParameterNames = new string[parameterTypes.Length - 1];\r
- filteredParameterTypes = new Type[parameterTypes.Length - 1];\r
- for (int i = 0; i < parameterTypes.Length - 1; i++) {\r
- filteredParameterNames[i] = parameterNames[i];\r
- filteredParameterTypes[i] = parameterTypes[i];\r
- }\r
- } else {\r
- filteredParameterNames = parameterNames;\r
- filteredParameterTypes = parameterTypes;\r
- }\r
- IBeanMetaData myMetaData = GetOutsideSqlBeanMetaData(mi, _dbMetaData, _dbms);\r
- IDataReaderHandler myDataReaderHandler = CreateDataReaderHandler(mi, myMetaData);\r
- RegisterSqlCommand(mi.Name, mi, sql, filteredParameterNames, filteredParameterTypes, myDataReaderHandler);\r
- }\r
-\r
- protected IBeanMetaData GetOutsideSqlBeanMetaData(MethodInfo mi, IDatabaseMetaData databaseMetaData, Seasar.Dao.IDbms dbInfo) {\r
- Type beanClass4SelectMethodByManual = GetOutsideSqlDefaultBeanClass(mi);\r
- if (beanClass4SelectMethodByManual.Equals(_beanType)) {\r
- return _beanMetaData;\r
- }\r
- BeanMetaDataCacheExtension bmdExt = new BeanMetaDataCacheExtension(beanClass4SelectMethodByManual, _annotationReaderFactory, false);\r
- bmdExt.Initialize(databaseMetaData, dbInfo);// Don't use cache!\r
- return bmdExt;\r
- }\r
-\r
- // -------------------------------------------------\r
- // Specified OutsideSql\r
- // --------------------\r
- // - - - - - - - - - -\r
- // Select\r
- // - - -\r
- protected void SetupSpecifiedOutsideSqlSelectCommand(String sqlCommandKey, MethodInfo method, ${glOutsideSqlContextName} outsideSqlContext) {\r
- // - - - - - - - - - - - - - - - - - - - - - - -\r
- // The attribute of Specified-OutsideSqlContext.\r
- // - - - - - - - - - - - - - - - - - - - - - - -\r
- String sql = outsideSqlContext.ReadFilteredOutsideSql(this.SqlFileEncoding, _dbms.Suffix);\r
- Object pmb = outsideSqlContext.ParameterBean;\r
- Object resultTypeSpecification = outsideSqlContext.ResultTypeSpecification;\r
-\r
- // - - - - - - - - - - - - - - -\r
- // The attribute of SqlCommand.\r
- // - - - - - - - - - - - - - - -\r
- String[] argNames = (pmb != null ? new String[] {"pmb"} : new String[]{});\r
- Type[] argTypes = (pmb != null ? new Type[] {pmb.GetType()} : new Type[]{});\r
-\r
- // - - - - - - - - - - - - - - - -\r
- // Create customized BeanMetaData.\r
- // - - - - - - - - - - - - - - - -\r
- Type lastestArguementType = method.GetParameters()[method.GetParameters().Length - 1].ParameterType;\r
- IDataReaderHandler myDataReaderHandler;\r
- if (typeof(Type).IsAssignableFrom(lastestArguementType)) {\r
- // - - - - - - - -\r
- // EntityHandling\r
- // - - - - - - - -\r
- Type customizeEntityType = (Type)resultTypeSpecification;\r
- IBeanMetaData myBeanMetaData = CreateSpecifiedOutsideSqlCustomizeBeanMetaData(customizeEntityType);\r
- Type retType = method.ReturnType;\r
- if (retType.IsGenericType && (retType.GetGenericTypeDefinition().Equals(typeof(System.Collections.Generic.IList<>)))) {\r
- myDataReaderHandler = CreateSpecifiedOutsideSqlCustomizeBeanListResultSetHandler(myBeanMetaData, customizeEntityType);\r
- } else if (retType.Equals(typeof(System.Collections.IList))) {\r
- // For the problem about DynamicProxy unsupporting generic method!\r
- myDataReaderHandler = CreateSpecifiedOutsideSqlCustomizeBeanListResultSetHandler(myBeanMetaData, customizeEntityType);\r
- } else {\r
- throw new NotSupportedException("The return type of method is unsupported: method.ReturnType=" + method.ReturnType);\r
- }\r
- } else if (typeof(${glCursorHandlerName}).IsAssignableFrom(lastestArguementType)) {\r
- // - - - - - - - -\r
- // CursorHandling\r
- // - - - - - - - -\r
- IBeanMetaData myBeanMetaData = CreateSpecifiedOutsideSqlCursorBeanMetaData(method);\r
- myDataReaderHandler = CreateSpecifiedOutsideSqlCursorResultSetHandler(myBeanMetaData);\r
- } else {\r
- String msg = "The lastestArguementType is unsupported:";\r
- msg = msg + " lastestArguementType=" + lastestArguementType;\r
- msg = msg + " method=" + method;\r
- throw new SystemException(msg);\r
- }\r
-\r
- // - - - - - - - - - - -\r
- // Register Sql-Command.\r
- // - - - - - - - - - - -\r
- RegisterSqlCommand(sqlCommandKey, method, sql, argNames, argTypes, myDataReaderHandler);\r
- }\r
-\r
- protected IBeanMetaData CreateSpecifiedOutsideSqlCustomizeBeanMetaData(Type clazz) {\r
- BeanMetaDataCacheExtension bmdExt = new BeanMetaDataCacheExtension(clazz, this.AnnotationReaderFactory, false);\r
- bmdExt.Initialize(_dbMetaData, _dbms);// Don't use cache!\r
- return bmdExt;\r
- }\r
-\r
- protected IDataReaderHandler CreateSpecifiedOutsideSqlCustomizeBeanListResultSetHandler(IBeanMetaData specifiedBeanMetaData, Type customizeEntityType) {\r
- IValueType valueType = ValueTypes.GetValueType(customizeEntityType);\r
- if (valueType == null || !valueType.Equals(ValueTypes.OBJECT)) {\r
- return new InternalObjectGenericListResultSetHandler(customizeEntityType, valueType);\r
- }\r
- InternalRowCreator rowCreator = CreateInternalRowCreator(specifiedBeanMetaData); // For performance turning!\r
- InternalRelationRowCreator relationRowCreator = CreateInternalRelationRowCreator(specifiedBeanMetaData);\r
- return new ${glInternalBeanGenericListMetaDataResultSetHandler}(specifiedBeanMetaData, rowCreator, relationRowCreator);\r
- }\r
-\r
- protected InternalRowCreator CreateInternalRowCreator(IBeanMetaData bmd) {\r
- Type clazz = bmd != null ? bmd.BeanType : null;\r
- return InternalRowCreator.CreateInternalRowCreator(clazz);\r
- }\r
-\r
- protected InternalRelationRowCreator CreateInternalRelationRowCreator(IBeanMetaData bmd) {\r
- return new InternalRelationRowCreator();\r
- }\r
-\r
- public class InternalObjectGenericListResultSetHandler : IDataReaderHandler {\r
- private Type _beanType;\r
- private IValueType _valueType;\r
- public InternalObjectGenericListResultSetHandler(Type beanType, IValueType valueType) {\r
- this._beanType = beanType;\r
- this._valueType = valueType;\r
- }\r
- public object Handle(IDataReader dataReader) {\r
- Type generic = typeof(System.Collections.Generic.List<>);\r
- Type constructed = generic.MakeGenericType(_beanType);\r
- System.Collections.IList resultList = (System.Collections.IList) Activator.CreateInstance(constructed);\r
- while (dataReader.Read()) {\r
- resultList.Add(_valueType.GetValue(dataReader, 0)); // It's zero origin.\r
- }\r
- return resultList;\r
- }\r
- }\r
-\r
- protected IBeanMetaData CreateSpecifiedOutsideSqlCursorBeanMetaData(MethodInfo method) {\r
- BeanMetaDataCacheExtension bmdExt = new BeanMetaDataCacheExtension(GetOutsideSqlDefaultBeanClass(method), this.AnnotationReaderFactory, false);\r
- bmdExt.Initialize(_dbMetaData, _dbms);// Don't use cache!\r
- return bmdExt;\r
- }\r
-\r
- protected IDataReaderHandler CreateSpecifiedOutsideSqlCursorResultSetHandler(IBeanMetaData specifiedBeanMetaData) {\r
- return new ObjectDataReaderHandler();// This is dummy for cursor handling!\r
- }\r
-\r
- // - - - - - - - - - -\r
- // Execute\r
- // - - - -\r
- protected void SetupSpecifiedOutsideSqlExecuteCommand(String sqlCommandKey, MethodInfo method, ${glOutsideSqlContextName} outsideSqlContext) {\r
- // - - - - - - - - - - - - - - - - - - - - - - -\r
- // The attribute of Specified-OutsideSqlContext.\r
- // - - - - - - - - - - - - - - - - - - - - - - -\r
- String sql = outsideSqlContext.ReadFilteredOutsideSql(this.SqlFileEncoding, _dbms.Suffix);\r
- Object pmb = outsideSqlContext.ParameterBean;\r
-\r
- // - - - - - - - - - - - - - - -\r
- // The attribute of SqlCommand.\r
- // - - - - - - - - - - - - - - -\r
- String[] argNames = (pmb != null ? new String[] {"pmb"} : new String[]{});\r
- Type[] argTypes = (pmb != null ? new Type[] {pmb.GetType()} : new Type[]{});\r
-\r
- InternalSpecifiedOusideSqlUpdateDynamicCommand cmd = new InternalSpecifiedOusideSqlUpdateDynamicCommand(_dataSource, _commandFactory);\r
- RegisterSqlCommand(sqlCommandKey, method, sql, argNames, argTypes, cmd);\r
- }\r
-\r
- protected class InternalSpecifiedOusideSqlUpdateDynamicCommand : ${glInternalUpdateDynamicCommand} {\r
- public InternalSpecifiedOusideSqlUpdateDynamicCommand(IDataSource dataSource, ICommandFactory factory)\r
- : base(dataSource, factory) {\r
- }\r
- public override Object Execute(Object[] args) {\r
- if (args.Length != 3) {\r
- String msg = "Internal Error! OutsideSqlDao.execute() should have 3 arguements: args.length=" + args.Length;\r
- throw new SystemException(msg);\r
- }\r
- Object arg = args[1];\r
- return base.Execute(new Object[]{arg});\r
- }\r
- }\r
-\r
- // - - - - - - - - - - - -\r
- // Call Procedure\r
- // - - - - - - -\r
- protected void SetupSpecifiedOutsideSqlCallCommand(String sqlCommandKey, MethodInfo method, ${glOutsideSqlContextName} outsideSqlContext) {\r
- // - - - - - - - - - - - - - - - - - - - - - - -\r
- // The attribute of Specified-OutsideSqlContext.\r
- // - - - - - - - - - - - - - - - - - - - - - - -\r
- Object pmb = outsideSqlContext.ParameterBean;\r
- String procedureName = outsideSqlContext.OutsideSqlPath;\r
-\r
- // - - - - - - - - - - - - - - -\r
- // The attribute of SqlCommand.\r
- // - - - - - - - - - - - - - - -\r
- InternalProcedureMetaDataFactory myProcedureMetaDataFactory = new InternalProcedureMetaDataFactory();\r
- Type pmbType = pmb != null ? pmb.GetType() : null;\r
- InternalProcedureMetaData metaData = myProcedureMetaDataFactory.CreateProcedureMetaData(procedureName, pmbType);\r
- ${glInternalProcedureCommand} cmd = CreateInternalProcedureCommand(method, metaData);\r
- _sqlCommands.Add(sqlCommandKey, cmd);\r
- }\r
-\r
- protected ${glInternalProcedureCommand} CreateInternalProcedureCommand(MethodInfo method, InternalProcedureMetaData metaData) {\r
- return new ${glInternalProcedureCommand}(_dataSource, CreateDataReaderHandler(method), _commandFactory, _dataReaderFactory, metaData);\r
- }\r
-\r
- // -------------------------------------------------\r
- // Common of OutsideSql\r
- // --------------------\r
- protected Type GetOutsideSqlDefaultBeanClass(MethodInfo mi) {\r
- Type retType = mi.ReturnType;\r
- if (retType.IsGenericType && (retType.GetGenericTypeDefinition().Equals(typeof(System.Collections.Generic.IList<>)))) {\r
- return retType.GetGenericArguments()[0];\r
- } else if (!retType.IsGenericType && typeof(System.Collections.IList).IsAssignableFrom(retType)) {\r
- return _beanType;\r
- } else if (retType.IsArray) {\r
- return retType.GetElementType();\r
- } else if (ValueTypes.GetValueType(retType) != ValueTypes.OBJECT) {\r
- return _beanType;\r
- } else {\r
- return retType;\r
- }\r
- }\r
-\r
- protected void RegisterSqlCommand(String sqlCommandKey, MethodInfo method, String sql, String[] argNames, Type[] argTypes, IDataReaderHandler myDataReaderHandler) {\r
- SelectDynamicCommand cmd = CreateSelectDynamicCommand(myDataReaderHandler);\r
- RegisterSqlCommand(sqlCommandKey, method, sql, argNames, argTypes, cmd);\r
- }\r
-\r
- protected void RegisterSqlCommand(String sqlCommandKey, MethodInfo method, String sql, String[] argNames, Type[] argTypes, SelectDynamicCommand cmd) {\r
- cmd.Sql = sql;\r
- cmd.ArgNames = argNames;\r
- cmd.ArgTypes = argTypes;\r
- _sqlCommands.Add(sqlCommandKey, cmd);\r
- }\r
-\r
- protected void RegisterSqlCommand(String sqlCommandKey, MethodInfo method, String sql, String[] argNames, Type[] argTypes, ${glInternalUpdateDynamicCommand} cmd) {\r
- cmd.Sql = sql;\r
- cmd.ArgNames = argNames;\r
- cmd.ArgTypes = argTypes;\r
- _sqlCommands.Add(sqlCommandKey, cmd);\r
- }\r
-\r
- // ===============================================================================\r
- // Extension Override\r
- // ==================\r
- protected override SelectDynamicCommand CreateSelectDynamicCommand(IDataReaderHandler handler) {\r
- return CreateCustomizeSelectDynamicCommand(handler);\r
- }\r
-\r
- protected virtual ${glSelectDynamicCommand} CreateCustomizeSelectDynamicCommand(IDataReaderHandler handler) {\r
- ${glFetchNarrowingResultSetFactory} customizeResultSetFactory = new ${glFetchNarrowingResultSetFactory}();\r
- return new ${glSelectDynamicCommand}(_dataSource, _commandFactory, handler, customizeResultSetFactory);\r
- }\r
-\r
- protected override IRowCreator CreateRowCreator() {\r
- return new InternalRowCreator();\r
- }\r
-\r
- protected override IRelationRowCreator CreateRelationRowCreator() {\r
- return new InternalRelationRowCreator();\r
- }\r
- \r
- // ===============================================================================\r
- // ADO.NET Delegator\r
- // =================\r
- protected IDbms GetDbms(IDataSource dataSource) {\r
- try {\r
- return DbmsManager.GetDbms(dataSource);\r
- } catch (Exception e) {\r
- new DbExceptionHandler().HandleDbException(e, null);\r
- return null; // Unreachable!\r
- }\r
- }\r
-\r
- // ===============================================================================\r
- // Assist Helper\r
- // =============\r
- protected ${glDBMetaInterfaceName} FindDBMeta() {\r
- Type beanType = this.BeanType;\r
- if (beanType == null) {\r
- return null;\r
- }\r
- if (!typeof(${glEntityInterfaceName}).IsAssignableFrom(beanType)) {\r
- return null;\r
- }\r
- ${glEntityInterfaceName} entity = (${glEntityInterfaceName})Activator.CreateInstance(beanType);\r
- return entity.DBMeta;\r
- }\r
-\r
- // ===============================================================================\r
- // BeanMetaData Map\r
- // ================\r
- public Map<Type, IBeanMetaData> BeanMetaDataCacheMap {\r
- get { return _beanMetaDataCacheMap; }\r
- set { _beanMetaDataCacheMap = value; }\r
- }\r
- }\r
-\r
- public class BeanMetaDataDBFluteDBMetaExtension : BeanMetaDataImpl {\r
- protected ${glPackageBaseCommonJavaLike}.List<IPropertyType> _primaryKeyList = new ${glPackageBaseCommonJavaLike}.ArrayList<IPropertyType>();\r
- public BeanMetaDataDBFluteDBMetaExtension() \r
- : base() {\r
- }\r
- protected override void SetupProperty(Type beanType, IDatabaseMetaData dbMetaData, IDbms dbms) {\r
- if (!IsEntity(beanType)) {\r
- base.SetupProperty(beanType, dbMetaData, dbms);\r
- return;\r
- }\r
- ${glEntityInterfaceName} entity = (${glEntityInterfaceName})ClassUtil.NewInstance(beanType);\r
- ${glDBMetaInterfaceName} dbmeta = entity.DBMeta;\r
- foreach (PropertyInfo pi in beanType.GetProperties()) {\r
- IPropertyType pt = null;\r
- RelnoAttribute relnoAttr = _beanAnnotationReader.GetRelnoAttribute(pi);\r
- if (relnoAttr != null) {\r
- if (!_relation) {\r
- IRelationPropertyType rpt = CreateRelationPropertyType(beanType, pi, relnoAttr, dbMetaData, dbms);\r
- AddRelationPropertyType(rpt);\r
- }\r
- } else {\r
- if (pi.CanWrite) {\r
- pt = CreatePropertyTypeExtension(pi, dbmeta);\r
- if (pt != null) {\r
- AddPropertyType(pt);\r
- if (pt.IsPrimaryKey) {\r
- _primaryKeyList.add(pt);\r
- }\r
- }\r
- }\r
- }\r
- if (IdentifierGenerator == null) {\r
- IDAttribute idAttr = _beanAnnotationReader.GetIdAttribute(pi, dbms);\r
- if (idAttr != null) {\r
- _identifierGenerator = Seasar.Dao.Id.IdentifierGeneratorFactory.CreateIdentifierGenerator(pi.Name, dbms, idAttr);\r
- if (pt != null) {\r
- _primaryKeys = new string[] { pt.ColumnName };\r
- pt.IsPrimaryKey = true;\r
- }\r
- }\r
- }\r
- }\r
- }\r
- protected IPropertyType CreatePropertyTypeExtension(PropertyInfo pi, ${glDBMetaInterfaceName} dbmeta) {\r
- if (IsRelationProperty(pi, dbmeta)) {\r
- return null;\r
- }\r
- String columnName = GetPropertyTypeColumnName(pi);\r
- IValueType valueType = ValueTypes.GetValueType(pi.PropertyType);\r
- IPropertyType pt = new PropertyTypeImpl(pi, valueType, columnName);\r
- if (dbmeta.HasPrimaryKey && dbmeta.HasColumn(pt.ColumnName)) {\r
- if (dbmeta.FindColumnInfo(pt.ColumnName).IsPrimary) {\r
- pt.IsPrimaryKey = true;\r
- }\r
- }\r
- pt.IsPersistent = IsPersistentProperty(pi, dbmeta);\r
- return pt;\r
- }\r
- protected String GetPropertyTypeColumnName(PropertyInfo pi) {\r
- String columnName = _beanAnnotationReader.GetColumn(pi);\r
- columnName = (columnName != null ? columnName : pi.Name);\r
- return columnName;\r
- }\r
- protected bool IsRelationProperty(PropertyInfo pi, ${glDBMetaInterfaceName} dbmeta) {\r
- String propertyName = pi.Name;\r
- if (dbmeta.HasForeign(propertyName) || dbmeta.HasReferrer(propertyName)) {\r
- return true;\r
- }\r
- return _beanAnnotationReader.GetRelnoAttribute(pi) != null;\r
- }\r
- protected bool IsPersistentProperty(PropertyInfo pi, ${glDBMetaInterfaceName} dbmeta) {\r
- String propertyName = pi.Name;\r
- if (dbmeta.HasColumn(propertyName) || _beanAnnotationReader.GetColumn(pi) != null) {\r
- if (!IsElementOfNoPersistentProps(pi)) {\r
- return true;\r
- }\r
- }\r
- return false;\r
- }\r
- protected bool IsElementOfNoPersistentProps(PropertyInfo pi) {\r
- String propertyName = pi.Name;\r
- String[] props = _beanAnnotationReader.GetNoPersisteneProps();\r
- if (props != null && props.Length >= 0) {\r
- for (int i = 0; i < props.Length; ++i) {\r
- if (props[i].Equals(propertyName)) {\r
- return true;\r
- }\r
- }\r
- }\r
- return false;\r
- }\r
- protected override void SetupDatabaseMetaData(Type beanType, IDatabaseMetaData dbMetaData, IDbms dbms) {\r
- if (IsEntity(beanType)) {\r
- SetupPrimaryKeyExtension(beanType, dbMetaData, dbms);\r
- return;\r
- }\r
- base.SetupDatabaseMetaData(beanType, dbMetaData, dbms);\r
- }\r
- protected void SetupPrimaryKeyExtension(Type beanType, IDatabaseMetaData dbMetaData, IDbms dbms) {\r
- // = = = = = = = = = = = = = = = = = = = = = = =\r
- // Set up _primaryKeys and _identifierGenerator!\r
- // = = = = = = = = = = = = = = = = = = = = = = =\r
- if (_primaryKeys == null || _primaryKeys.Length == 0) {\r
- _primaryKeys = new String[_primaryKeyList.size()];\r
- int index = 0;\r
- foreach (IPropertyType pt in _primaryKeyList) {\r
- _primaryKeys[index] = pt.ColumnName;\r
- ++index;\r
- }\r
- }\r
- if (_identifierGenerator == null) {\r
- _identifierGenerator = Seasar.Dao.Id.IdentifierGeneratorFactory.CreateIdentifierGenerator(null, dbms);\r
- }\r
- }\r
- protected bool IsEntity(Type beanType) {\r
- return typeof(${glEntityInterfaceName}).IsAssignableFrom(beanType);\r
- }\r
- public override bool HasModifiedPropertyNamesPropertyName {\r
- get {\r
- return BeanType.GetProperty(_modifiedPropertyNamesPropertyName) != null;\r
- }\r
- }\r
- public override bool HasClearModifiedPropertyNamesMethodName {\r
- get {\r
- return BeanType.GetMethod(_clearModifiedPropertyNamesMethodName) != null;\r
- }\r
- }\r
- public override IDictionary GetModifiedPropertyNames(object bean) {\r
- String propertyName = _modifiedPropertyNamesPropertyName;\r
- if (!HasModifiedPropertyNamesPropertyName) {\r
- throw new NotFoundModifiedPropertiesRuntimeException(bean.GetType().Name, propertyName);\r
- }\r
- PropertyInfo modifiedPropertyType = BeanType.GetProperty(propertyName);\r
- object value = modifiedPropertyType.GetValue(bean, null);\r
- IDictionary names = (IDictionary)value;\r
- return names;\r
- }\r
- public override void ClearModifiedPropertyNames(object bean) {\r
- if (HasClearModifiedPropertyNamesMethodName) {\r
- MethodInfo mi = BeanType.GetMethod(ClearModifiedPropertyNamesMethodName);\r
- mi.Invoke(bean, null);\r
- } else if (HasModifiedPropertyNamesPropertyName) {\r
- PropertyInfo pi = BeanType.GetProperty(ModifiedPropertyNamesPropertyName);\r
- IDictionary modifiedPropertyNames = (IDictionary)pi.GetValue(bean, null);\r
- modifiedPropertyNames.Clear();\r
- }\r
- }\r
- }\r
- \r
- public class BeanMetaDataCacheExtension : BeanMetaDataDBFluteDBMetaExtension {\r
- protected Map<Type, IBeanMetaData> _metaMap;\r
- protected int _nestNo;\r
- \r
- public BeanMetaDataCacheExtension(Type beanType, IAnnotationReaderFactory annotationReaderFactory, bool relation) \r
- : base() {\r
- this.BeanType = beanType;\r
- this._relation = relation;\r
- this.AnnotationReaderFactory = annotationReaderFactory;\r
- }\r
- \r
- public override void Initialize(IDatabaseMetaData dbMetaData, IDbms dbms) {\r
- if (_metaMap != null) {\r
- BeanMetaDataCacheHandler handler = new BeanMetaDataCacheHandler(_metaMap);\r
- Type myBeanClass = BeanType;\r
- if (handler.IsDBFluteEntity(myBeanClass)) {\r
- IBeanMetaData cachedMeta = handler.GetMetaFromCache(myBeanClass);\r
- if (cachedMeta == null) {\r
- handler.AddMetaFromCache(myBeanClass, this);\r
- }\r
- }\r
- }\r
- base.Initialize(dbMetaData, dbms);\r
- }\r
-\r
- protected override IBeanMetaData CreateRelationBeanMetaData(PropertyInfo propertyInfo, IDatabaseMetaData dbMetaData, IDbms dbms) {\r
- if (_metaMap != null) {\r
- BeanMetaDataCacheHandler handler = new BeanMetaDataCacheHandler(_metaMap);\r
- IBeanMetaData cachedBmd = handler.FindOrCreateCachedMetaIfNeeds(propertyInfo.PropertyType, AnnotationReaderFactory, dbMetaData, dbms);\r
- if (cachedBmd != null) {\r
- return cachedBmd;\r
- }\r
- }\r
- bool isRelation = false;\r
- if (this.NestNo > 0) {\r
- isRelation = true;\r
- }\r
- BeanMetaDataCacheExtension bmdExt = new BeanMetaDataCacheExtension(propertyInfo.PropertyType, this.AnnotationReaderFactory, isRelation);\r
- bmdExt.NestNo = this.NestNo + 1;\r
- bmdExt.Initialize(dbMetaData, dbms);\r
- return bmdExt;\r
- }\r
- \r
- public Map<Type, IBeanMetaData> MetaMap {\r
- get { return _metaMap; }\r
- set { _metaMap = value; }\r
- }\r
- public int NestNo {\r
- get { return _nestNo; }\r
- set { _nestNo = value; }\r
- }\r
- }\r
-\r
- public class BeanMetaDataForUpdateNonConcurrency : BeanMetaDataDBFluteDBMetaExtension {\r
- public BeanMetaDataForUpdateNonConcurrency(Type beanType, IAnnotationReaderFactory annotationReaderFactory, bool relation) \r
- : base() {\r
- this.BeanType = beanType;\r
- this._relation = relation;\r
- this.AnnotationReaderFactory = annotationReaderFactory;\r
- }\r
- public override bool HasVersionNoPropertyType {\r
- get { return false; }\r
- }\r
-\r
- public override bool HasTimestampPropertyType {\r
- get { return false; }\r
- }\r
- }\r
- \r
- public class BeanMetaDataCacheHandler {\r
- protected Map<Type, IBeanMetaData> _metaMap;\r
- public BeanMetaDataCacheHandler(Map<Type, IBeanMetaData> metaMap) {\r
- _metaMap = metaMap;\r
- }\r
- public IBeanMetaData FindOrCreateCachedMetaIfNeeds(Type beanClass, IAnnotationReaderFactory factory, IDatabaseMetaData dbMetaData, IDbms dbms) {\r
- if (IsDBFluteEntity(beanClass)) {\r
- IBeanMetaData cachedMeta = GetMetaFromCache(beanClass);\r
- if (cachedMeta != null) {\r
- return cachedMeta;\r
- } else {\r
- BeanMetaDataCacheExtension bmdExt = new BeanMetaDataCacheExtension(beanClass, factory, false);\r
- bmdExt.MetaMap = _metaMap;\r
- bmdExt.Initialize(dbMetaData, dbms);\r
- return bmdExt;\r
- }\r
- }\r
- return null;\r
- }\r
-\r
- public IBeanMetaData FindCachedMeta(Type beanClass) {\r
- if (IsDBFluteEntity(beanClass)) {\r
- IBeanMetaData cachedMeta = GetMetaFromCache(beanClass);\r
- if (cachedMeta != null) {\r
- return cachedMeta;\r
- }\r
- }\r
- return null;\r
- }\r
-\r
- public bool IsDBFluteEntity(Type beanClass) {\r
- return typeof(${glEntityInterfaceName}).IsAssignableFrom(beanClass);\r
- }\r
-\r
- public IBeanMetaData GetMetaFromCache(Type beanClass) {\r
- lock (_metaMap) {\r
- return _metaMap.get(beanClass);\r
- }\r
- }\r
- public IBeanMetaData AddMetaFromCache(Type beanClass, IBeanMetaData metaData) {\r
- lock (_metaMap) {\r
- return _metaMap.put(beanClass, metaData);\r
- }\r
- }\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System;\r
-using System.Data;\r
-using System.Collections;\r
-using System.Reflection;\r
-using System.Text;\r
-\r
-using Seasar.Framework.Util;\r
-using Seasar.Extension.ADO;\r
-using Seasar.Extension.ADO.Impl;\r
-using Seasar.Dao;\r
-using Seasar.Dao.Impl;\r
-\r
-using ${glPackageBaseCommonCBean};\r
-using ${glPackageBaseCommonDBMeta};\r
-using ${glPackageBaseCommonJavaLike};\r
-using ${glPackageBaseCommonS2DaoInternalRsHandler};\r
-\r
-namespace ${glPackageBaseCommonS2Dao} {\r
-\r
- public class ${glS2DaoMetaDataFactoryImpl} : Seasar.Dao.IDaoMetaDataFactory {\r
-\r
- // ===============================================================================\r
- // Definition\r
- // ==========\r
- private static readonly log4net.ILog _log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- private readonly Hashtable _daoMetaDataCache = new Hashtable();\r
- protected readonly IDataSource _dataSource;\r
- protected readonly ICommandFactory _commandFactory;\r
- protected readonly IDataReaderFactory _dataReaderFactory;\r
- protected readonly IAnnotationReaderFactory _readerFactory;\r
- protected IDatabaseMetaData _dbMetaData;\r
- protected string _sqlFileEncoding = Encoding.Default.WebName;\r
- protected string[] _insertPrefixes;\r
- protected string[] _updatePrefixes;\r
- protected string[] _deletePrefixes;\r
- protected Map<Type, IBeanMetaData> _beanMetaDataCacheMap = new HashMap<Type, IBeanMetaData>();\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glS2DaoMetaDataFactoryImpl}(IDataSource dataSource,\r
- ICommandFactory commandFactory, IAnnotationReaderFactory readerFactory,\r
- IDataReaderFactory dataReaderFactory) {\r
- _dataSource = dataSource;\r
- _commandFactory = commandFactory;\r
- _readerFactory = readerFactory;\r
- _dataReaderFactory = dataReaderFactory;\r
- }\r
-\r
- // ===============================================================================\r
- // Implementation\r
- // ==============\r
- public IDaoMetaData GetDaoMetaData(Type daoType) {\r
- lock (this) {\r
- string key = daoType.FullName;\r
- IDaoMetaData dmd = (IDaoMetaData)_daoMetaDataCache[key];\r
- if (dmd != null) {\r
- return dmd;\r
- }\r
- if (_log.IsDebugEnabled) {\r
- _log.Debug("...Creating daoMetaData for '" + daoType.Name + "'.");\r
- }\r
- dmd = CreateDaoMetaData(daoType);\r
- _daoMetaDataCache[key] = dmd;\r
- return dmd;\r
- }\r
- }\r
-\r
- protected virtual IDaoMetaData CreateDaoMetaData(Type daoType) {\r
- ${glS2DaoMetaDataExtension} dmd = NewDaoMetaDataExtension();\r
- dmd.DaoType = daoType;\r
- dmd.DataSource = _dataSource;\r
- dmd.CommandFactory = _commandFactory;\r
- dmd.DataReaderFactory = _dataReaderFactory;\r
- dmd.DataReaderHandlerFactory = CreateInternalDataReaderHandlerFactory();\r
- dmd.AnnotationReaderFactory = _readerFactory;\r
- if (_dbMetaData == null) {\r
- _dbMetaData = new DatabaseMetaDataImpl(_dataSource);\r
- }\r
- dmd.DatabaseMetaData = _dbMetaData;\r
- if (_sqlFileEncoding != null) {\r
- dmd.SqlFileEncoding = _sqlFileEncoding;\r
- }\r
- if (_insertPrefixes != null) {\r
- dmd.InsertPrefixes = _insertPrefixes;\r
- }\r
- if (_updatePrefixes != null) {\r
- dmd.UpdatePrefixes = _updatePrefixes;\r
- }\r
- if (_deletePrefixes != null) {\r
- dmd.DeletePrefixes = _deletePrefixes;\r
- }\r
- dmd.BeanMetaDataCacheMap = _beanMetaDataCacheMap;\r
- dmd.Initialize();\r
- return dmd;\r
- }\r
-\r
- protected virtual ${glS2DaoMetaDataExtension} NewDaoMetaDataExtension() {\r
- return new ${glS2DaoMetaDataExtension}();\r
- }\r
-\r
- protected virtual InternalDataReaderHandlerFactory CreateInternalDataReaderHandlerFactory() {\r
- return new InternalDataReaderHandlerFactory();\r
- }\r
-\r
- // ===============================================================================\r
- // Accessor\r
- // ========\r
- public IDatabaseMetaData DBMetaData {\r
- set { _dbMetaData = value; }\r
- }\r
-\r
- public string[] InsertPrefixes {\r
- set { _insertPrefixes = value; }\r
- }\r
-\r
- public string[] UpdatePrefixes {\r
- set { _updatePrefixes = value; }\r
- }\r
-\r
- public string[] DeletePrefixes {\r
- set { _deletePrefixes = value; }\r
- }\r
-\r
- public string SqlFileEncoding {\r
- set { _sqlFileEncoding = value; }\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Procedure\r
- // =========\r
- public class InternalProcedureMetaData {\r
- protected String _procedureName;\r
- protected LinkedHashMap<String, InternalProcedureParameterType> parameterTypeMap = new LinkedHashMap<String, InternalProcedureParameterType>();\r
- protected Type _returnType;\r
- public InternalProcedureMetaData(String procedureName) {\r
- _procedureName = procedureName;\r
- }\r
- public String ProcedureName { get {\r
- return _procedureName;\r
- } set {\r
- _procedureName = value;\r
- }}\r
- public InternalProcedureParameterType GetParameterType(int index) {\r
- return parameterTypeMap.get(index);\r
- }\r
- public InternalProcedureParameterType GetParameterType(String parameterName) {\r
- return parameterTypeMap.get(parameterName.ToLower());\r
- }\r
- public int ParameterTypeSize { get {\r
- return parameterTypeMap.size();\r
- }}\r
- public bool HasReturnParameterType { get {\r
- return _returnType != null;\r
- }}\r
- public Type ReturnParameterType { get {\r
- return _returnType;\r
- }}\r
- public void AddParameterType(InternalProcedureParameterType parameterType) {\r
- String name = parameterType.ParameterName;\r
- parameterTypeMap.put(name.ToLower(), parameterType);\r
- if (parameterType.IsReturnType) {\r
- _returnType = parameterType.ParameterPropertyType;\r
- }\r
- }\r
- }\r
-\r
- public class InternalProcedureParameterType {\r
- protected String _parameterName;\r
- protected PropertyInfo _parameterProperty;\r
- protected Type _parameterPropertyType;\r
- protected ParameterDirection _parameterDirectionType;\r
- protected bool _inType;\r
- protected bool _outType;\r
- protected bool _returnType;\r
- public InternalProcedureParameterType(String parameterName, PropertyInfo parameterProperty) {\r
- _parameterName = parameterName;\r
- _parameterProperty = parameterProperty;\r
- _parameterPropertyType = parameterProperty.PropertyType;\r
- }\r
- public Object GetValue(Object dto) {\r
- return _parameterProperty.GetValue(dto, null);\r
- }\r
- public void SetValue(Object dto, Object value) {\r
- _parameterProperty.SetValue(dto, value, null);\r
- }\r
- public String ParameterName { get { return _parameterName; } }\r
- public PropertyInfo ParameterProperty { get { return _parameterProperty; } }\r
- public Type ParameterPropertyType { get { return _parameterPropertyType; } }\r
- public ParameterDirection ParameterDirectionType { get { return _parameterDirectionType; } set { _parameterDirectionType = value; } }\r
- public bool IsInType { get { return _inType; } set { _inType = value; } }\r
- public bool IsOutType { get { return _outType; } set { _outType = value; } }\r
- public bool IsReturnType { get { return _returnType; } set { _returnType = value; } }\r
- }\r
-\r
- public class InternalProcedureMetaDataFactory {\r
- protected InternalFieldProcedureAnnotationReader _annotationReader = new InternalFieldProcedureAnnotationReader();\r
- public InternalProcedureMetaData CreateProcedureMetaData(String procedureName, Type pmbType) {\r
- InternalProcedureMetaData metaData = new InternalProcedureMetaData(procedureName);\r
- if (pmbType == null) {\r
- return metaData;\r
- } else {\r
- if (!IsDtoType(pmbType)) {\r
- throw new IllegalStateException("The pmb type is Not DTO type: " + pmbType.Name);\r
- }\r
- }\r
- RegisterParameterType(metaData, pmbType, pmbType.GetProperties());\r
- return metaData;\r
- }\r
- protected void RegisterParameterType(InternalProcedureMetaData metaData, Type pmbType, PropertyInfo[] properties) {\r
- foreach (PropertyInfo property in properties) {\r
- InternalProcedureParameterType ppt = GetProcedureParameterType(pmbType, property);\r
- if (ppt == null) {\r
- continue;\r
- }\r
- metaData.AddParameterType(ppt);\r
- }\r
- }\r
- protected InternalProcedureParameterType GetProcedureParameterType(Type pmbType, PropertyInfo property) {\r
- InternalProcedureParameterInfo info = _annotationReader.GetProcedureParameter(pmbType, property);\r
- if (info == null) {\r
- return null;\r
- }\r
- String name = info.ParameterName;\r
- String type = info.ParameterType;\r
- type = type.ToLower();\r
- InternalProcedureParameterType ppt = new InternalProcedureParameterType(name, property);\r
- if (type.Equals("in")) {\r
- ppt.IsInType = true;\r
- ppt.ParameterDirectionType = ParameterDirection.Input;\r
- } else if (type.Equals("out")) {\r
- ppt.IsOutType = true;\r
- ppt.ParameterDirectionType = ParameterDirection.Output;\r
- } else if (type.Equals("inout")) {\r
- ppt.IsInType = true;\r
- ppt.IsOutType = true;\r
- ppt.ParameterDirectionType = ParameterDirection.InputOutput;\r
- } else if (type.Equals("return")) {\r
- ppt.IsOutType = true;\r
- ppt.IsReturnType = true;\r
- ppt.ParameterDirectionType = ParameterDirection.ReturnValue;\r
- } else {\r
- throw new IllegalStateException("The parameter type is wrong: type=" + type);\r
- }\r
- return ppt;\r
- }\r
- protected bool IsDtoType(Type clazz) {\r
- return true; // No check because no time.\r
- }\r
- }\r
-\r
- public class InternalFieldProcedureAnnotationReader {\r
- protected String PROCEDURE_PARAMETER_SUFFIX;\r
- public InternalFieldProcedureAnnotationReader() {\r
- PROCEDURE_PARAMETER_SUFFIX = "_PROCEDURE_PARAMETER";\r
- }\r
- public InternalProcedureParameterInfo GetProcedureParameter(Type pmbType, PropertyInfo property) {\r
- String propertyName = property.Name;\r
- String annotationName = InitUncap(propertyName) + PROCEDURE_PARAMETER_SUFFIX;\r
- FieldInfo field = pmbType.GetField(annotationName, BindingFlags.Public | BindingFlags.Static);\r
- if (field != null) {\r
- String annotationValue = (String)field.GetValue(null);\r
- InternalProcedureParameterInfo info = new InternalProcedureParameterInfo();\r
- String[] values = annotationValue.Split(',');\r
- if (values.Length != 2) {\r
- String msg = "The value of annotation is wrong.";\r
- msg = msg + " You should set '[parameterName], [parameterType]'.";\r
- msg = msg + " But: annotation=" + annotationName + " value=" + annotationValue;\r
- throw new IllegalStateException(msg);\r
- }\r
- info.ParameterName = values[0].Trim();\r
- info.ParameterType = values[1].Trim();\r
- return info;\r
- } else {\r
- return null;\r
- }\r
- }\r
- protected String InitUncap(String str) {\r
- return str.Substring(0, 1).ToLower() + str.Substring(1);\r
- }\r
- }\r
-\r
- public class InternalProcedureParameterInfo {\r
- protected String _parameterName;\r
- protected String _parameterType;\r
- public String ParameterName { get { return _parameterName; } set { _parameterName = value; } }\r
- public String ParameterType { get { return _parameterType; } set { _parameterType = value; } }\r
- }\r
-\r
- // ===================================================================================\r
- // Row Creator\r
- // ===========\r
- public class InternalRowCreator : RowCreatorImpl {\r
-\r
- protected ${glDBMetaInterfaceName} _dbmeta;\r
- public ${glDBMetaInterfaceName} DBMeta { set { _dbmeta = value; } }\r
-\r
- public static InternalRowCreator CreateInternalRowCreator(Type beanClass) {\r
- InternalRowCreator rowCreator = new InternalRowCreator();\r
- if (beanClass != null) {\r
- rowCreator.DBMeta = FindDBMetaByClass(beanClass);\r
- }\r
- return rowCreator;\r
- }\r
-\r
- protected static ${glDBMetaInterfaceName} FindDBMetaByClass(Type beanClass) {\r
- Object instance = NewInstance(beanClass);\r
- if (!(instance is ${glEntityInterfaceName})) {\r
- return null;\r
- }\r
- return ((${glEntityInterfaceName})instance).DBMeta;\r
- }\r
-\r
- protected static Object NewInstance(Type clazz) {\r
- return ClassUtil.NewInstance(clazz);\r
- }\r
-\r
- public override Object CreateRow(IDataReader reader, IColumnMetaData[] columns, Type beanType) {\r
- Object row;\r
- ${glDBMetaInterfaceName} dbmeta;\r
- if (_dbmeta != null) {\r
- dbmeta = _dbmeta;\r
- row = dbmeta.NewEntity();\r
- } else {\r
- row = NewBean(beanType);\r
- dbmeta = FindDBMeta(row);\r
- }\r
- if (dbmeta != null) {\r
- foreach (IColumnMetaData column in columns) {\r
- Object value = column.ValueType.GetValue(reader, column.ColumnName);\r
- if (dbmeta.HasEntityPropertySetupper(column.PropertyInfo.Name)) {\r
- dbmeta.SetupEntityProperty(column.PropertyInfo.Name, row, value);\r
- continue;\r
- }\r
- column.PropertyInfo.SetValue(row, value, null);\r
- }\r
- } else {\r
- foreach (IColumnMetaData column in columns) {\r
- Object value = column.ValueType.GetValue(reader, column.ColumnName);\r
- column.PropertyInfo.SetValue(row, value, null);\r
- }\r
- }\r
- return row;\r
- }\r
-\r
- public static ${glDBMetaInterfaceName} FindDBMeta(Object row) {\r
- return DBMetaCacheHandler.FindDBMeta(row);\r
- }\r
-\r
- public static ${glDBMetaInterfaceName} FindDBMeta(Type rowType, String tableName) {\r
- return DBMetaCacheHandler.FindDBMeta(rowType, tableName);\r
- }\r
- }\r
-\r
- public class DBMetaCacheHandler {\r
- protected static readonly String DBMETA_CACHE_KEY = "df:DBMetaCache";\r
- \r
- public static ${glDBMetaInterfaceName} FindDBMeta(Object row) {\r
- if (!(row is ${glEntityInterfaceName})) {\r
- return null;\r
- }\r
- ${glEntityInterfaceName} entity = (${glEntityInterfaceName})row;\r
- ${glDBMetaInterfaceName} dbmeta = FindCachedDBMeta(entity.GetType());\r
- if (dbmeta != null) {\r
- return dbmeta;\r
- }\r
- dbmeta = entity.DBMeta;\r
- CacheDBMeta(entity, dbmeta);\r
- return dbmeta;\r
- }\r
- \r
- public static ${glDBMetaInterfaceName} FindDBMeta(Type rowType, String tableName) {\r
- ${glDBMetaInterfaceName} dbmeta = FindCachedDBMeta(rowType);\r
- if (dbmeta != null) {\r
- return dbmeta;\r
- }\r
- try {\r
- dbmeta = ${glDBMetaInstanceHandlerName}.FindDBMeta(tableName);\r
- } catch (DBMetaNotFoundException) {\r
- return null;\r
- }\r
- CacheDBMeta(rowType, dbmeta);\r
- return dbmeta;\r
- }\r
-\r
- protected static ${glDBMetaInterfaceName} FindCachedDBMeta(Type rowType) {\r
- System.Collections.Generic.IDictionary<Type, ${glDBMetaInterfaceName}> dbmetaCache = FindDBMetaCache();\r
- if (dbmetaCache == null) {\r
- dbmetaCache = new System.Collections.Generic.Dictionary<Type, ${glDBMetaInterfaceName}>();\r
- ${glInternalMapContextName}.SetObject(DBMETA_CACHE_KEY, dbmetaCache);\r
- }\r
- if (dbmetaCache.ContainsKey(rowType)) {\r
- return dbmetaCache[rowType];\r
- }\r
- return null;\r
- }\r
- \r
- protected static void CacheDBMeta(${glEntityInterfaceName} entity, ${glDBMetaInterfaceName} dbmeta) {\r
- CacheDBMeta(entity.GetType(), dbmeta);\r
- }\r
- \r
- protected static void CacheDBMeta(Type type, ${glDBMetaInterfaceName} dbmeta) {\r
- System.Collections.Generic.IDictionary<Type, ${glDBMetaInterfaceName}> dbmetaCache = FindDBMetaCache();\r
- dbmetaCache.Add(type, dbmeta);\r
- }\r
- \r
- protected static System.Collections.Generic.IDictionary<Type, ${glDBMetaInterfaceName}> FindDBMetaCache() {\r
- return (System.Collections.Generic.IDictionary<Type, ${glDBMetaInterfaceName}>)${glInternalMapContextName}.GetObject(DBMETA_CACHE_KEY);\r
- }\r
- }\r
- \r
- public class InternalRelationRowCreator : RelationRowCreatorImpl {\r
-\r
- protected override void SetupRelationKeyValue(RelationRowCreationResource res) {\r
- IRelationPropertyType rpt = res.RelationPropertyType;\r
- IBeanMetaData bmd = rpt.BeanMetaData;\r
- ${glDBMetaInterfaceName} dbmeta = FindDBMeta(bmd.BeanType, bmd.TableName);\r
- for (int i = 0; i < rpt.KeySize; ++i) {\r
- String columnName = rpt.GetMyKey(i) + res.BaseSuffix;\r
-\r
- if (!res.ContainsColumnName(columnName)) {\r
- continue;\r
- }\r
- if (!res.HasRowInstance()) {\r
- Object row;\r
- if (dbmeta != null) {\r
- row = dbmeta.NewEntity();\r
- } else {\r
- row = NewRelationRow(rpt);\r
- }\r
- res.Row = row;\r
- }\r
- if (!res.ContainsRelKeyValueIfExists(columnName)) {\r
- continue;\r
- }\r
- Object value = res.ExtractRelKeyValue(columnName);\r
- if (value == null) {\r
- continue;\r
- }\r
-\r
- String yourKey = rpt.GetYourKey(i);\r
- IPropertyType pt = bmd.GetPropertyTypeByColumnName(yourKey);\r
- PropertyInfo pi = pt.PropertyInfo;\r
- pi.SetValue(res.Row, value, null);\r
- continue;\r
- }\r
- }\r
-\r
- protected Object CreateRelationRowInstance(${glDBMetaInterfaceName} dbmeta) {\r
- if (dbmeta != null) {\r
- return dbmeta.NewEntity();\r
- }\r
- return null;\r
- }\r
-\r
- protected ${glDBMetaInterfaceName} FindDBMeta(Type rowType, String tableName) {\r
- return ${glInternalRowCreator}.FindDBMeta(rowType, tableName);\r
- }\r
-\r
- protected override void SetupRelationAllValue(RelationRowCreationResource res) {\r
- System.Collections.Generic.IDictionary<String, IPropertyType> propertyCacheElement = res.ExtractPropertyCacheElement();\r
- System.Collections.Generic.ICollection<String> columnNameCacheElementKeySet = propertyCacheElement.Keys;\r
- foreach (String columnName in columnNameCacheElementKeySet) {\r
- IPropertyType pt = propertyCacheElement[columnName];\r
- res.CurrentPropertyType = pt;\r
- if (!IsValidRelationPerPropertyLoop(res)) {\r
- res.ClearRowInstance();\r
- return;\r
- }\r
- SetupRelationProperty(res);\r
- }\r
- if (!IsValidRelationAfterPropertyLoop(res)) {\r
- res.ClearRowInstance();\r
- return;\r
- }\r
- res.ClearValidValueCount();\r
- if (res.HasNextRelationProperty() && (HasConditionBean(res) || res.HasNextRelationLevel())) {\r
- SetupNextRelationRow(res);\r
- }\r
- }\r
-\r
- protected override void RegisterRelationValue(RelationRowCreationResource res, String columnName) {\r
- IPropertyType pt = res.CurrentPropertyType;\r
- Object value = null;\r
- if (res.ContainsRelKeyValueIfExists(columnName)) {\r
- value = res.ExtractRelKeyValue(columnName);\r
- } else {\r
- IValueType valueType = pt.ValueType;\r
- value = valueType.GetValue(res.DataReader, columnName);\r
- }\r
- if (value != null) {\r
- res.IncrementValidValueCount();\r
- ${glDBMetaInterfaceName} dbmeta = FindDBMeta(res.Row);\r
- String propertyName = pt.PropertyName;\r
- if (dbmeta != null && dbmeta.HasEntityPropertySetupper(propertyName)) {\r
- dbmeta.SetupEntityProperty(propertyName, res.Row, value);\r
- } else {\r
- PropertyInfo pd = pt.PropertyInfo;\r
- pd.SetValue(res.Row, value, null);\r
- }\r
- }\r
- }\r
- \r
- protected ${glDBMetaInterfaceName} FindDBMeta(Object row) {\r
- return ${glInternalRowCreator}.FindDBMeta(row);\r
- }\r
- \r
- protected override void SetupPropertyCache(RelationRowCreationResource res) {\r
- // - - - - - - - - - - - \r
- // Recursive Call Point!\r
- // - - - - - - - - - - -\r
- res.InitializePropertyCacheElement();\r
-\r
- // Do only selected foreign property for performance if condition-bean exists.\r
- if (HasConditionBean(res) && !HasSelectedForeignInfo(res)) {\r
- return;\r
- }\r
-\r
- // Set up property cache about current beanMetaData.\r
- IBeanMetaData nextBmd = res.GetRelationBeanMetaData();\r
- for (int i = 0; i < nextBmd.PropertyTypeSize; ++i) {\r
- IPropertyType pt = nextBmd.GetPropertyType(i);\r
- res.CurrentPropertyType = pt;\r
- if (!IsTargetProperty(res)) {\r
- continue;\r
- }\r
- SetupPropertyCacheElement(res);\r
- }\r
-\r
- // Set up next relation.\r
- if (res.HasNextRelationProperty() && (HasConditionBean(res) || res.HasNextRelationLevel())) {\r
- res.BackupRelationPropertyType();\r
- res.IncrementCurrentRelationNestLevel();\r
- try {\r
- SetupNextPropertyCache(res, nextBmd);\r
- } finally {\r
- res.RestoreRelationPropertyType();\r
- res.DecrementCurrentRelationNestLevel();\r
- }\r
- }\r
- }\r
-\r
- protected override bool IsTargetProperty(RelationRowCreationResource res) {\r
- IPropertyType pt = res.CurrentPropertyType;\r
- if (!pt.PropertyInfo.CanWrite) {\r
- return false;\r
- }\r
- if (typeof(System.Collections.Generic.IList<>).IsAssignableFrom(pt.PropertyInfo.GetType())) {\r
- return false;\r
- }\r
- return true;\r
- }\r
-\r
- protected override bool IsCreateDeadLink() {\r
- return false;\r
- }\r
-\r
- protected override int GetLimitRelationNestLevel() {\r
- return 2;\r
- }\r
-\r
- protected bool HasConditionBean(RelationRowCreationResource res) {\r
- return ${glConditionBeanContextName}.IsExistConditionBeanOnThread();\r
- }\r
-\r
- protected bool HasSelectedForeignInfo(RelationRowCreationResource res) {\r
- ${glConditionBeanInterfaceName} cb = ${glConditionBeanContextName}.GetConditionBeanOnThread();\r
- if (cb.SqlClause.hasSelectedForeignInfo(res.RelationNoSuffix)) {\r
- return true;\r
- }\r
- return false;\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Data Reader Handler\r
- // ===================\r
- public class InternalDataReaderHandlerFactory : IDataReaderHandlerFactory {\r
- public virtual IDataReaderHandler GetResultSetHandler(Type beanType, IBeanMetaData bmd, MethodInfo mi) {\r
- Type retType = mi.ReturnType;\r
- if (typeof(DataSet).IsAssignableFrom(retType)) {\r
- return CreateBeanDataSetMetaDataDataReaderHandler(bmd, retType);\r
- } else if (typeof(DataTable).IsAssignableFrom(retType)) {\r
- return CreateBeanDataTableMetaDataDataReaderHandler(bmd, retType);\r
- } else if (retType.IsArray) {\r
- Type elementType = retType.GetElementType();\r
- if (AssignTypeUtil.IsSimpleType(elementType)) {\r
- return CreateObjectArrayDataReaderHandler(elementType);\r
- } else {\r
- return CreateBeanArrayMetaDataDataReaderHandler(bmd);\r
- }\r
- } else if (AssignTypeUtil.IsList(retType)) {\r
- if (AssignTypeUtil.IsSimpleType(beanType)) {\r
- return CreateObjectListDataReaderHandler();\r
- } else {\r
- return CreateBeanListMetaDataDataReaderHandler(bmd);\r
- }\r
- } else if (IsBeanTypeAssignable(beanType, retType)) {\r
- return CreateBeanMetaDataDataReaderHandler(bmd);\r
- } else if (AssignTypeUtil.IsGenericList(retType)) {\r
- Type elementType = retType.GetGenericArguments()[0];\r
- if (AssignTypeUtil.IsSimpleType(elementType)) {\r
- return CreateObjectGenericListDataReaderHandler(elementType);\r
- } else {\r
- return CreateBeanGenericListMetaDataDataReaderHandler(bmd);\r
- }\r
- } else {\r
- return CreateObjectDataReaderHandler();\r
- }\r
- }\r
-\r
- protected virtual IDataReaderHandler CreateObjectGenericListDataReaderHandler(Type elementType) {\r
- return new ObjectGenericListDataReaderHandler(elementType);\r
- }\r
-\r
- protected virtual IDataReaderHandler CreateObjectListDataReaderHandler() {\r
- return new ObjectListDataReaderHandler();\r
- }\r
-\r
- protected virtual IDataReaderHandler CreateObjectArrayDataReaderHandler(Type elementType) {\r
- return new ObjectArrayDataReaderHandler(elementType);\r
- }\r
-\r
- protected virtual IDataReaderHandler CreateBeanDataSetMetaDataDataReaderHandler(IBeanMetaData bmd, Type returnType) {\r
- return new BeanDataSetMetaDataDataReaderHandler(returnType);\r
- }\r
-\r
- protected virtual IDataReaderHandler CreateBeanDataTableMetaDataDataReaderHandler(IBeanMetaData bmd, Type returnType) {\r
- return new BeanDataTableMetaDataDataReaderHandler(returnType);\r
- }\r
-\r
- protected virtual IDataReaderHandler CreateBeanListMetaDataDataReaderHandler(IBeanMetaData bmd) {\r
- return new BeanListMetaDataDataReaderHandler(bmd, CreateRowCreator(), CreateRelationRowCreator());\r
- }\r
-\r
- protected virtual IDataReaderHandler CreateBeanMetaDataDataReaderHandler(IBeanMetaData bmd) {\r
- return new BeanMetaDataDataReaderHandler(bmd, CreateRowCreator(), CreateRelationRowCreator());\r
- }\r
-\r
- // DBFlute Target (but unused actually)\r
- protected virtual IDataReaderHandler CreateBeanArrayMetaDataDataReaderHandler(IBeanMetaData bmd) {\r
- InternalRowCreator rowCreator = CreateInternalRowCreator(bmd);\r
- InternalRelationRowCreator relationRowCreator = CreateInternalRelationRowCreator(bmd);\r
- return new ${glInternalBeanArrayMetaDataResultSetHandler}(bmd, rowCreator, relationRowCreator);\r
- }\r
-\r
- // DBFlute Target\r
- protected virtual IDataReaderHandler CreateBeanGenericListMetaDataDataReaderHandler(IBeanMetaData bmd) {\r
- InternalRowCreator rowCreator = CreateInternalRowCreator(bmd);\r
- InternalRelationRowCreator relationRowCreator = CreateInternalRelationRowCreator(bmd);\r
- return new ${glInternalBeanGenericListMetaDataResultSetHandler}(bmd, rowCreator, relationRowCreator);\r
- }\r
-\r
- protected virtual IDataReaderHandler CreateObjectDataReaderHandler() {\r
- return new ObjectDataReaderHandler();\r
- }\r
-\r
- protected virtual IRowCreator CreateRowCreator() {\r
- return CreateInternalRowCreator(null);\r
- }\r
-\r
- protected virtual IRelationRowCreator CreateRelationRowCreator() {\r
- return CreateInternalRelationRowCreator(null);\r
- }\r
-\r
- protected virtual bool IsBeanTypeAssignable(Type beanType, Type type) {\r
- return beanType.IsAssignableFrom(type) || type.IsAssignableFrom(beanType);\r
- }\r
-\r
- protected InternalRowCreator CreateInternalRowCreator(IBeanMetaData bmd) {\r
- Type clazz = bmd != null ? bmd.BeanType : null;\r
- return InternalRowCreator.CreateInternalRowCreator(clazz);\r
- }\r
-\r
- protected InternalRelationRowCreator CreateInternalRelationRowCreator(IBeanMetaData bmd) {\r
- return new InternalRelationRowCreator(); // Not yet implemented about performance tuning!\r
- }\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System;\r
-using System.Data;\r
-using System.Reflection;\r
-using System.Collections.Generic;\r
-\r
-using Seasar.Extension.ADO;\r
-using Seasar.Extension.ADO.Impl;\r
-using Seasar.Framework.Util;\r
-using Seasar.Dao;\r
-using Seasar.Dao.Impl;\r
-using Seasar.Dao.Node;\r
-using Seasar.Dao.Parser;\r
-\r
-using ${glPackageBaseCommon};\r
-using ${glPackageBaseCommonCBean};\r
-using ${glPackageBaseCommonCBeanOutsidesql};\r
-using ${glPackageBaseCommonException};\r
-using ${glPackageBaseCommonJavaLike};\r
-using ${glPackageBaseCommonS2DaoInternalSqlHandler};\r
-using ${glPackageBaseCommonS2DaoInternalSqlParser};\r
-using ${glPackageBaseCommonUtil};\r
-\r
-namespace ${glPackageBaseCommonS2Dao} {\r
-\r
- /**\r
- * @author ${database.ClassAuthor}\r
- */\r
- public class ${glSelectDynamicCommand} : SelectDynamicCommand {\r
-\r
- // ===============================================================================\r
- // Definition\r
- // ==========\r
- /** Log instance. */\r
- private static readonly log4net.ILog _log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- private IDataReaderHandler dataReaderHandler;\r
- private IDataReaderFactory dataReaderFactory;\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glSelectDynamicCommand}(IDataSource dataSource, ICommandFactory commandFactory\r
- , IDataReaderHandler dataReaderHandler, IDataReaderFactory dataReaderFactory)\r
- : base(dataSource, commandFactory, dataReaderHandler, dataReaderFactory) {\r
- this.dataReaderHandler = dataReaderHandler;\r
- this.dataReaderFactory = dataReaderFactory;\r
- }\r
-\r
- // ===============================================================================\r
- // Very Important Extension\r
- // ========================\r
- // -------------------------------------------------\r
- // Override\r
- // --------\r
- protected override ISqlParser CreateSqlParser(string sqlString) {\r
- return new ${glInternalSqlParser}(sqlString);\r
- }\r
-\r
- // -------------------------------------------------\r
- // Extension\r
- // ---------\r
- protected ${glSelectDynamicCommand} CreateMySelectDynamicCommand() {\r
- return new ${glSelectDynamicCommand}(DataSource, CommandFactory, dataReaderHandler, dataReaderFactory);\r
- }\r
-\r
- // -------------------------------------------------\r
- // For Public\r
- // ----------\r
- public ICommandContext DoApply(Object[] args) {\r
- return Apply(args);\r
- }\r
-\r
- // ===============================================================================\r
- // Execute\r
- // =======\r
- public override object Execute(object[] args) {\r
- // - - - - - - - - - - - -\r
- // This is top execution.\r
- // - - - - - - - - - - - -\r
-\r
- if (!${glConditionBeanContextName}.IsExistConditionBeanOnThread()) {\r
- // - - - - - - - - - -\r
- // Execute outsideSql.\r
- // - - - - - - - - - -\r
- if (${glOutsideSqlContextName}.IsExistOutsideSqlContextOnThread()) {\r
- ${glOutsideSqlContextName} outsideSqlContext = ${glOutsideSqlContextName}.GetOutsideSqlContextOnThread();\r
- if (outsideSqlContext.IsDynamicBinding) {\r
- return ExecuteOutsideSqlAsDynamic(args, outsideSqlContext);\r
- } else {\r
- return ExecuteOutsideSqlAsStatic(args, outsideSqlContext);\r
- }\r
- }\r
-\r
- // - - - - - - - - -\r
- // Execute default.\r
- // - - - - - - - - -\r
- return ExecuteDefault(args);\r
- }\r
-\r
- // - - - - - - - - - - - -\r
- // Execute conditionBean.\r
- // - - - - - - - - - - - -\r
- IList<Object> bindVariableList = new System.Collections.Generic.List<Object>();\r
- IList<Type> bindVariableTypeList = new System.Collections.Generic.List<Type>();\r
- IList<String> bindVariableNameList = new System.Collections.Generic.List<String>();\r
-\r
- ${glConditionBeanInterfaceName} cb = ${glConditionBeanContextName}.GetConditionBeanOnThread();\r
- String finalClause = null;\r
- if (cb.HasUnionQueryOrUnionAllQuery()) {\r
- String realClause = SetupRealClause(args, bindVariableList, bindVariableTypeList, bindVariableNameList);\r
- if (cb.IsSelectCountIgnoreFetchScope()) {\r
- // If the query uses union and it selects count, the way of select-count is as follows.\r
- finalClause = "select count(*) from (" + realClause + ") dfmain";\r
- } else {\r
- finalClause = realClause;\r
- }\r
- } else {\r
- if (cb.IsSelectCountIgnoreFetchScope()) {\r
- finalClause = SetupRealSelectCountClause(args, bindVariableList, bindVariableTypeList, bindVariableNameList);\r
- } else {\r
- finalClause = SetupRealClause(args, bindVariableList, bindVariableTypeList, bindVariableNameList);\r
- }\r
- }\r
- \r
- ${glInternalBasicSelectHandler} selectHandler = CreateBasicSelectHandler(finalClause, this.dataReaderHandler);\r
- Object[] bindVariableArray = new Object[bindVariableList.Count];\r
- bindVariableList.CopyTo(bindVariableArray, 0);\r
- Type[] bindVariableTypeArray = new Type[bindVariableTypeList.Count];\r
- bindVariableTypeList.CopyTo(bindVariableTypeArray, 0);\r
- String[] bindVariableNameArray = new String[bindVariableNameList.Count];\r
- bindVariableNameList.CopyTo(bindVariableNameArray, 0);\r
- selectHandler.LoggingMessageSqlArgs = bindVariableArray;\r
- return selectHandler.Execute(bindVariableArray, bindVariableTypeArray, bindVariableNameArray);\r
- }\r
-\r
- // -------------------------------------------------\r
- // Default Execute\r
- // ---------------\r
- protected virtual object ExecuteDefault(object[] args) {\r
- // - - - - - - - - - - - - - - - - -\r
- // Find specified resultSetHandler.\r
- // - - - - - - - - - - - - - - - - -\r
- IDataReaderHandler specifiedDataReaderHandler = FindSpecifiedDataReaderHandler(args);\r
-\r
- // - - - - - - - - -\r
- // Filter arguments.\r
- // - - - - - - - - -\r
- Object[] filteredArgs = FilterArgumentsForDataReaderHandler(args);\r
-\r
- ICommandContext ctx = Apply(filteredArgs);\r
- ${glInternalBasicSelectHandler} selectHandler = CreateBasicSelectHandler(ctx.Sql, specifiedDataReaderHandler);\r
- Object[] bindVariableArray = ctx.BindVariables;\r
- selectHandler.LoggingMessageSqlArgs = bindVariableArray;\r
- return selectHandler.Execute(bindVariableArray, ctx.BindVariableTypes);\r
- }\r
-\r
- // -------------------------------------------------\r
- // OutsideSql Execute\r
- // ------------------\r
- protected Object ExecuteOutsideSqlAsStatic(Object[] args, ${glOutsideSqlContextName} outsideSqlContext) {\r
- // - - - - - - - - - - - - - - - - -\r
- // Find specified resultSetHandler.\r
- // - - - - - - - - - - - - - - - - -\r
- IDataReaderHandler specifiedDataReaderHandler = FindSpecifiedDataReaderHandler(args);\r
-\r
- // - - - - - - - - -\r
- // Filter arguments.\r
- // - - - - - - - - -\r
- Object[] filteredArgs;\r
- if (outsideSqlContext.IsSpecifiedOutsideSql) {\r
- Object parameterBean = outsideSqlContext.ParameterBean;\r
- filteredArgs = new Object[] {parameterBean};\r
- } else {\r
- filteredArgs = FilterArgumentsForDataReaderHandler(args);\r
- }\r
-\r
- ICommandContext ctx = Apply(filteredArgs);\r
- ${glInternalBasicSelectHandler} selectHandler = CreateBasicSelectHandler(ctx.Sql, specifiedDataReaderHandler);\r
- Object[] bindVariableArray = ctx.BindVariables;\r
- selectHandler.LoggingMessageSqlArgs = bindVariableArray;\r
- return selectHandler.Execute(bindVariableArray, ctx.BindVariableTypes);\r
- }\r
-\r
- protected Object ExecuteOutsideSqlAsDynamic(Object[] args, ${glOutsideSqlContextName} outsideSqlContext) {\r
- Object firstArg = args[0];\r
- PropertyInfo[] properties = firstArg.GetType().GetProperties();\r
- String filteredSql = this.Sql;\r
-\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- // Resolve embedded comment for parsing bind variable comment in embedded comment.\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- for (int i = 0; i < properties.Length; i++) {\r
- PropertyInfo propertyInfo = properties[i];\r
- Type propertyType = propertyInfo.PropertyType;\r
- if (!propertyType.Equals(typeof(String))) {\r
- continue;\r
- }\r
- String outsideSqlPiece = (String)propertyInfo.GetValue(firstArg, null);\r
- if (outsideSqlPiece == null) {\r
- continue;\r
- }\r
- String embeddedComment = "/*$pmb." + propertyInfo.Name + "*/";\r
- filteredSql = filteredSql.Replace(embeddedComment, outsideSqlPiece);\r
- }\r
-\r
- ${glSelectDynamicCommand} outsideSqlCommand = CreateMySelectDynamicCommand();\r
- outsideSqlCommand.ArgNames = ArgNames;\r
- outsideSqlCommand.ArgTypes = ArgTypes;\r
- outsideSqlCommand.Sql = filteredSql;\r
-\r
- // - - - - - - - - - - - - - - - - -\r
- // Find specified resultSetHandler.\r
- // - - - - - - - - - - - - - - - - -\r
- IDataReaderHandler specifiedDataReaderHandler = FindSpecifiedDataReaderHandler(args);\r
-\r
- // - - - - - - - - -\r
- // Filter arguments.\r
- // - - - - - - - - -\r
- Object[] filteredArgs;\r
- if (outsideSqlContext.IsSpecifiedOutsideSql) {\r
- Object parameterBean = outsideSqlContext.ParameterBean;\r
- filteredArgs = new Object[] {parameterBean};\r
- } else {\r
- filteredArgs = FilterArgumentsForDataReaderHandler(args);\r
- }\r
-\r
- ICommandContext ctx = outsideSqlCommand.DoApply(filteredArgs);\r
- IList<Object> bindVariableList = new System.Collections.Generic.List<Object>();\r
- IList<Type> bindVariableTypeList = new System.Collections.Generic.List<Type>();\r
- IList<String> bindVariableNameList = new System.Collections.Generic.List<String>();\r
- AddBindVariableInfo(ctx, bindVariableList, bindVariableTypeList, bindVariableNameList);\r
- ${glInternalBasicSelectHandler} selectHandler = CreateBasicSelectHandler(ctx.Sql, specifiedDataReaderHandler);\r
- Object[] bindVariableArray = new Object[bindVariableList.Count];\r
- bindVariableList.CopyTo(bindVariableArray, 0);\r
- Type[] bindVariableTypeArray = new Type[bindVariableTypeList.Count];\r
- bindVariableTypeList.CopyTo(bindVariableTypeArray, 0);\r
- String[] bindVariableNameArray = new String[bindVariableNameList.Count];\r
- bindVariableNameList.CopyTo(bindVariableNameArray, 0);\r
- selectHandler.LoggingMessageSqlArgs = bindVariableArray;\r
- return selectHandler.Execute(bindVariableArray, bindVariableTypeArray, bindVariableNameArray);\r
- }\r
-\r
- protected virtual object[] FilterArgumentsForDataReaderHandler(object[] args) {\r
- if (args == null || args.Length == 0) {\r
- return args;\r
- }\r
- object[] filteredArgs;\r
- if (args[args.Length - 1] is ${glPackageBaseCommonJdbc}.${glCursorHandlerName}) {\r
- filteredArgs = new object[args.Length - 1];\r
- for (int i=0; i < args.Length - 1; i++) {\r
- filteredArgs[i] = args[i];\r
- }\r
- } else {\r
- filteredArgs = args;\r
- }\r
- return filteredArgs;\r
- }\r
-\r
- protected IDataReaderHandler FindSpecifiedDataReaderHandler(object[] args) {\r
- if (args == null || args.Length == 0) {\r
- return this.dataReaderHandler;\r
- }\r
- if (args[args.Length-1] is ${glPackageBaseCommonJdbc}.${glCursorHandlerName}) {\r
- ${glPackageBaseCommonJdbc}.${glCursorHandlerName} cursorHandler = (${glPackageBaseCommonJdbc}.${glCursorHandlerName})args[args.Length-1];\r
- return new DataReaderCursol(cursorHandler);\r
- }\r
- if (ArgTypes.Length+1 == args.Length && args[args.Length-1] == null) {\r
- String lineSeparator = Environment.NewLine;\r
- String msg = "System Level Exception!" + lineSeparator;\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + lineSeparator;\r
- msg = msg + "The size of arg types have not been same as the size of arg objects:";\r
- msg = msg + " argTypes=" + ArgTypes.Length + " args=" + args.Length + lineSeparator;\r
- msg = msg + "If the arguments contain DataReaderHandler, the argument value should not be null!" + lineSeparator;\r
- for (int i=0; i < args.Length - 1; i++) {\r
- msg = msg + " args[" + i + "] -- " + args[i] + lineSeparator;\r
- }\r
- msg = msg + "* * * * * * * * * */" + lineSeparator;\r
- throw new SystemException(msg);\r
- }\r
- return this.dataReaderHandler;\r
- }\r
-\r
- // -------------------------------------------------\r
- // Setup Clause\r
- // ------------\r
- protected String SetupRealClause(Object[] args, IList<Object> bindVariableList, IList<Type> bindVariableTypeList, IList<String> bindVariableNameList) {\r
- ${glConditionBeanInterfaceName} cb = ${glConditionBeanContextName}.GetConditionBeanOnThread();\r
- String realClause = null;\r
- {\r
- ${glSelectDynamicCommand} dynamicCommand = CreateMySelectDynamicCommand();\r
- dynamicCommand.ArgNames = ArgNames;\r
- dynamicCommand.ArgTypes = ArgTypes;\r
- if (cb.IsLimitSelect_PKOnly()) {\r
- dynamicCommand.Sql = cb.SqlClause.getClausePKOnly();\r
- } else {\r
- dynamicCommand.Sql = cb.SqlClause.getClause();\r
- }\r
- ICommandContext ctx = dynamicCommand.Apply(args);\r
- realClause = ctx.Sql;\r
- AddBindVariableInfo(ctx, bindVariableList, bindVariableTypeList, bindVariableNameList);\r
- }\r
- return realClause;\r
- }\r
- \r
- protected String SetupRealSelectCountClause(Object[] args, IList<Object> bindVariableList, IList<Type> bindVariableTypeList, IList<String> bindVariableNameList) {\r
- ${glConditionBeanInterfaceName} cb = ${glConditionBeanContextName}.GetConditionBeanOnThread();\r
- String realSelectCountClause = null;\r
- {\r
- ${glSelectDynamicCommand} selectCountCommand = CreateMySelectDynamicCommand();\r
- selectCountCommand.ArgNames = ArgNames;\r
- selectCountCommand.ArgTypes = ArgTypes;\r
- String selectClause = "select count(*)";\r
- String fromWhereClause = cb.SqlClause.getClauseFromWhereWithUnionTemplate();\r
- \r
- // Replace template marks. These are very important!\r
- fromWhereClause = ReplaceString(fromWhereClause, cb.SqlClause.getUnionSelectClauseMark(), selectClause);\r
- fromWhereClause = ReplaceString(fromWhereClause, cb.SqlClause.getUnionWhereClauseMark(), "");\r
- fromWhereClause = ReplaceString(fromWhereClause, cb.SqlClause.getUnionWhereFirstConditionMark(), "");\r
-\r
- String sql = cb.SqlClause.filterSubQueryIndent(selectClause + " " + fromWhereClause);\r
- selectCountCommand.Sql = sql;\r
-\r
- ICommandContext ctx = selectCountCommand.Apply(args);\r
- realSelectCountClause = ctx.Sql;\r
- AddBindVariableInfo(ctx, bindVariableList, bindVariableTypeList, bindVariableNameList);\r
- }\r
- return realSelectCountClause;\r
- }\r
-\r
- protected ${glInternalBasicSelectHandler} CreateBasicSelectHandler(String realSql, IDataReaderHandler specifiedDataReaderHandler) {\r
- return new ${glInternalBasicSelectHandler}(DataSource, realSql, specifiedDataReaderHandler, CommandFactory, dataReaderFactory);\r
- }\r
- \r
- // ===============================================================================\r
- // Assist Helper\r
- // =============\r
- // -------------------------------------------------\r
- // Setup Helper\r
- // ------------\r
- protected void AddBindVariableInfo(ICommandContext ctx, IList<Object> bindVariableList, IList<Type> bindVariableTypeList, IList<String> bindVariableNameList) {\r
- Object[] bindVariables = ctx.BindVariables;\r
- AddBindVariableList(bindVariableList, bindVariables);\r
- Type[] bindVariableTypes = ctx.BindVariableTypes;\r
- AddBindVariableTypeList(bindVariableTypeList, bindVariableTypes);\r
- String[] bindVariableNames = ctx.BindVariableNames;\r
- AddBindVariableNameList(bindVariableNameList, bindVariableNames);\r
- }\r
-\r
- protected void AddBindVariableList(IList<Object> bindVariableList, Object[] bindVariables) {\r
- for (int i=0; i < bindVariables.Length; i++) {\r
- bindVariableList.Add(bindVariables[i]);\r
- }\r
- }\r
-\r
- protected void AddBindVariableTypeList(IList<Type> bindVariableTypeList, Type[] bindVariableTypes) {\r
- for (int i=0; i < bindVariableTypes.Length; i++) {\r
- bindVariableTypeList.Add(bindVariableTypes[i]);\r
- }\r
- }\r
-\r
- protected void AddBindVariableNameList(IList<String> bindVariableNameList, String[] bindVariableNames) {\r
- for (int i=0; i < bindVariableNames.Length; i++) {\r
- bindVariableNameList.Add(bindVariableNames[i]);\r
- }\r
- }\r
-\r
- // ===============================================================================\r
- // General Helper\r
- // ==============\r
- protected String ReplaceString(String text, String fromText, String toText) {\r
- return ${glSimpleStringUtil}.Replace(text, fromText, toText);\r
- }\r
- \r
- protected class DataReaderCursol : IDataReaderHandler {\r
- protected ${glPackageBaseCommonJdbc}.${glCursorHandlerName} _cursorHandler;\r
- public DataReaderCursol(${glPackageBaseCommonJdbc}.${glCursorHandlerName} cursorHandler) {\r
- this._cursorHandler = cursorHandler;\r
- }\r
- public object Handle(System.Data.IDataReader dr) {\r
- return _cursorHandler.Handle(dr);\r
- }\r
- }\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System;\r
-using System.Data;\r
-using System.Data.SqlTypes;\r
-\r
-using Seasar.Dao.Impl;\r
-using Seasar.Extension.ADO;\r
-using Seasar.Extension.ADO.Impl;\r
-using Seasar.Quill.Dao.Impl;\r
-\r
-using ${glPackageBaseCommon};\r
-using ${glPackageBaseCommonCBean};\r
-using ${glPackageBaseCommonCBeanOutsidesql};\r
-using ${glPackageBaseCommonJdbc};\r
-\r
-namespace ${glPackageBaseCommonS2Dao} {\r
-\r
- public class ${glS2DaoSetting} : AbstractDaoSetting {\r
- protected override void SetupDao(IDataSource dataSource) {\r
- BasicCommandFactory commandFactory = new InternalBasicCommandFactory();\r
- BasicDataReaderFactory dataReaderFactory = new BasicDataReaderFactory(commandFactory);\r
- FieldAnnotationReaderFactory annotationReaderFactory = new FieldAnnotationReaderFactory();\r
- _daoMetaDataFactory = new ${glS2DaoMetaDataFactoryImpl}(dataSource, commandFactory, annotationReaderFactory, dataReaderFactory);\r
- _daoInterceptor = new ${glS2DaoInterceptor}(_daoMetaDataFactory);\r
- }\r
- }\r
-\r
- public class InternalBasicCommandFactory : BasicCommandFactory {\r
-\r
- // ===============================================================================\r
- // Definition\r
- // ==========\r
- private static readonly log4net.ILog _log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);\r
-\r
- // ===============================================================================\r
- // Command Creation\r
- // ================\r
- public override IDbCommand CreateCommand(IDbConnection conn, string sql) {\r
- IDbCommand cmd = conn.CreateCommand();\r
- cmd.CommandText = ChangeSignSql(cmd, sql);\r
- ${glStatementConfig} defaultStatementConfig = ${glDBFluteConfig}.GetInstance().DefaultStatementConfig;\r
- bool internalDebug = ${glDBFluteConfig}.GetInstance().IsInternalDebug;\r
- ${glStatementConfig} config = FindStatementConfigOnThread();\r
- if (config != null && config.HasQueryTimeout()) {\r
- if (internalDebug) {\r
- _log.Debug("...Setting statement config as request: " + config);\r
- }\r
- cmd.CommandTimeout = config.GetQueryTimeout().Value;// DBFlute original logic.\r
- } else if (defaultStatementConfig != null && defaultStatementConfig.HasQueryTimeout()) {\r
- if (internalDebug) {\r
- _log.Debug("...Setting statement config as default: " + config);\r
- }\r
- cmd.CommandTimeout = defaultStatementConfig.GetQueryTimeout().Value;// DBFlute original logic.\r
- } else {\r
- if (CommandTimeout > -1) {\r
- cmd.CommandTimeout = CommandTimeout;// S2Dao original logic.\r
- }\r
- }\r
- return cmd;\r
- }\r
-\r
- protected ${glStatementConfig} FindStatementConfigOnThread() {\r
- ${glStatementConfig} config = null;\r
- if (${glConditionBeanContextName}.IsExistConditionBeanOnThread()) {\r
- ${glConditionBeanInterfaceName} cb = ${glConditionBeanContextName}.GetConditionBeanOnThread();\r
- config = cb.StatementConfig;\r
- } else if (${glOutsideSqlContextName}.IsExistOutsideSqlContextOnThread()) {\r
- ${glOutsideSqlContextName} context = ${glOutsideSqlContextName}.GetOutsideSqlContextOnThread();\r
- config = context.StatementConfig;\r
- }\r
- return config;\r
- }\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System;\r
-using System.Collections.Generic;\r
-using System.Data;\r
-\r
-using Seasar.Framework.Util;\r
-using Seasar.Extension.ADO;\r
-using Seasar.Dao;\r
-\r
-namespace ${glPackageBaseCommonS2DaoInternalRsHandler} {\r
-\r
- public abstract class ${glInternalAbstractBeanMetaDataResultSetHandler} : IDataReaderHandler {\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- private readonly IBeanMetaData _beanMetaData;\r
- private string[] _clearModifiedOnlyPropertyNamePrefixes = new string[] { "Clear" }; // [DAONET-57] 2007/10/02\r
- protected IRowCreator _rowCreator; // [DAONET-56] (2007/08/29)\r
- protected IRelationRowCreator _relationRowCreator; // [DAONET-56] (2007/08/29)\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalAbstractBeanMetaDataResultSetHandler}(IBeanMetaData beanMetaData, IRowCreator rowCreator, IRelationRowCreator relationRowCreator) {\r
- _beanMetaData = beanMetaData;\r
- _rowCreator = rowCreator;\r
- _relationRowCreator = relationRowCreator;\r
- }\r
-\r
- // ===============================================================================\r
- // Handle\r
- // ======\r
- public virtual Object Handle(IDataReader dataReader) {\r
- return null;\r
- }\r
-\r
- // ===============================================================================\r
- // Assist Helper\r
- // =============\r
- protected virtual IColumnMetaData[] CreateColumnMetaData(System.Collections.IList columnNames) {\r
- return _rowCreator.CreateColumnMetaData(columnNames, _beanMetaData);\r
- }\r
-\r
- protected virtual Object CreateRow(IDataReader reader, IColumnMetaData[] columns) {\r
- return _rowCreator.CreateRow(reader, columns, _beanMetaData.BeanType);\r
- }\r
-\r
- protected virtual IDictionary<string, IDictionary<string, IPropertyType>> CreateRelationPropertyCache(System.Collections.IList columnNames) {\r
- return _relationRowCreator.CreateRelationPropertyCache(columnNames, _beanMetaData);\r
- }\r
-\r
- protected virtual Object CreateRelationRow(IDataReader reader, IRelationPropertyType rpt,\r
- System.Collections.IList columnNames, System.Collections.Hashtable relKeyValues,\r
- IDictionary<String, IDictionary<String, IPropertyType>> relationColumnMetaDataCache) {\r
- return _relationRowCreator.CreateRelationRow(reader, rpt, columnNames, relKeyValues, relationColumnMetaDataCache);\r
- }\r
-\r
- protected virtual bool IsTargetProperty(IPropertyType pt) { // [DAONET-56] (2007/08/29)\r
- return pt.PropertyInfo.CanWrite;\r
- }\r
-\r
- protected virtual Object CreateRelationRow(IRelationPropertyType rpt) {\r
- return ClassUtil.NewInstance(rpt.PropertyInfo.PropertyType);\r
- }\r
-\r
- protected virtual System.Collections.IList CreateColumnNames(DataTable dt) {\r
- System.Collections.IList columnNames = new CaseInsentiveSet();\r
- foreach (DataRow row in dt.Rows) {\r
- string columnName = (string) row["ColumnName"];\r
- columnNames.Add(columnName);\r
- }\r
- return columnNames;\r
- }\r
-\r
- protected virtual void PostCreateRow(Object row, IBeanMetaData bmd) {\r
- if (row is ${glEntityInterfaceName}) { // DBFlute Target\r
- ((${glEntityInterfaceName})row).ClearModifiedPropertyNames();\r
- } else { // Basically Unreachable\r
- bmd.ClearModifiedPropertyNames(row);\r
- }\r
- }\r
-\r
- // ===============================================================================\r
- // Accessor\r
- // ========\r
- public IBeanMetaData BeanMetaData {\r
- get { return _beanMetaData; }\r
- }\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System.Collections;\r
-using System.Data;\r
-\r
-using Seasar.Dao;\r
-\r
-namespace ${glPackageBaseCommonS2DaoInternalRsHandler} {\r
-\r
- public class ${glInternalBeanArrayMetaDataResultSetHandler} : ${glInternalBeanListMetaDataResultSetHandler} {\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalBeanArrayMetaDataResultSetHandler}(IBeanMetaData beanMetaData, IRowCreator rowCreator, IRelationRowCreator relationRowCreator)\r
- : base(beanMetaData, rowCreator, relationRowCreator) {\r
- }\r
-\r
- // ===============================================================================\r
- // Handle\r
- // ======\r
- public override object Handle(IDataReader dataReader) {\r
- ArrayList list = (ArrayList) base.Handle(dataReader);\r
- return list.ToArray(BeanMetaData.BeanType);\r
- }\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System;\r
-using System.Collections;\r
-using System.Data;\r
-\r
-using Seasar.Dao;\r
-\r
-namespace ${glPackageBaseCommonS2DaoInternalRsHandler} {\r
-\r
- public class ${glInternalBeanGenericListMetaDataResultSetHandler} : ${glInternalBeanListMetaDataResultSetHandler} {\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalBeanGenericListMetaDataResultSetHandler}(\r
- IBeanMetaData beanMetaData, IRowCreator rowCreator, IRelationRowCreator relationRowCreator)\r
- : base(beanMetaData, rowCreator, relationRowCreator) {\r
- }\r
-\r
- // ===============================================================================\r
- // Handle\r
- // ======\r
- public override object Handle(IDataReader dataReader) {\r
- Type generic = typeof(System.Collections.Generic.List<>);\r
- Type constructed = generic.MakeGenericType(BeanMetaData.BeanType);\r
- object list = Activator.CreateInstance(constructed);\r
- Handle(dataReader, (IList) list);\r
- return list;\r
- }\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System;\r
-using System.Collections.Generic;\r
-using System.Data;\r
-using System.Reflection;\r
-\r
-using Seasar.Extension.ADO;\r
-using Seasar.Dao;\r
-using Seasar.Dao.Impl;\r
-\r
-using ${glPackageBaseCommonCBean};\r
-using ${glPackageBaseCommonCBeanOutsidesql};\r
-\r
-namespace ${glPackageBaseCommonS2DaoInternalRsHandler} {\r
-\r
- public class ${glInternalBeanListMetaDataResultSetHandler} : ${glInternalAbstractBeanMetaDataResultSetHandler} {\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalBeanListMetaDataResultSetHandler}(IBeanMetaData beanMetaData, IRowCreator rowCreator, IRelationRowCreator relationRowCreator)\r
- : base(beanMetaData, rowCreator, relationRowCreator) {\r
- }\r
-\r
- // ===============================================================================\r
- // Handle\r
- // ======\r
- public override Object Handle(IDataReader dataReader) {\r
- System.Collections.ArrayList list = new System.Collections.ArrayList();\r
- Handle(dataReader, list);\r
- return list;\r
- }\r
-\r
- protected void Handle(IDataReader dataReader, System.Collections.IList list) {\r
- // Lazy initialization because if the result is zero, the resources are unused.\r
- System.Collections.IList columnNames = null;\r
- IColumnMetaData[] columns = null;\r
- IDictionary<String, IDictionary<String, IPropertyType>> relationPropertyCache = null;\r
- RelationRowCache relRowCache = null;\r
-\r
- int relSize = BeanMetaData.RelationPropertyTypeSize;\r
- bool hasCB = HasConditionBean();\r
- bool skipRelationLoop;\r
- {\r
- bool emptyRelation = IsSelectedForeignInfoEmpty();\r
- bool hasOSC = HasOutsideSqlContext();\r
- bool specifiedOutsideSql = IsSpecifiedOutsideSql();\r
-\r
- // If it has condition-bean that has no relation to get\r
- // or it has outside-sql context that is specified-outside-sql,\r
- // they are unnecessary to do relation loop!\r
- skipRelationLoop = (hasCB && emptyRelation) || (hasOSC && specifiedOutsideSql);\r
- }\r
-\r
- while (dataReader.Read()) {\r
- if (columnNames == null) {\r
- columnNames = CreateColumnNames(dataReader.GetSchemaTable());\r
- }\r
- if (columns == null) {\r
- columns = CreateColumnMetaData(columnNames);\r
- }\r
-\r
- // Create row instance of base table by row property cache.\r
- Object row = CreateRow(dataReader, columns);\r
- if (skipRelationLoop) {\r
- PostCreateRow(row, BeanMetaData);\r
- list.Add(row);\r
- continue;\r
- }\r
-\r
- if (relationPropertyCache == null) {\r
- relationPropertyCache = CreateRelationPropertyCache(columnNames);\r
- }\r
- if (relRowCache == null) {\r
- relRowCache = new RelationRowCache(relSize);\r
- }\r
- for (int i = 0; i < relSize; ++i) {\r
- IRelationPropertyType rpt = BeanMetaData.GetRelationPropertyType(i);\r
- if (rpt == null) {\r
- continue;\r
- }\r
-\r
- // Do only selected foreign property for performance if condition-bean exists.\r
- if (hasCB && !HasSelectedForeignInfo(BuildRelationNoSuffix(rpt))) {\r
- continue;\r
- }\r
-\r
- Object relationRow = null;\r
- System.Collections.Hashtable relKeyValues = new System.Collections.Hashtable();\r
- RelationKey relKey = CreateRelationKey(dataReader, rpt, columnNames, relKeyValues);\r
- if (relKey != null) {\r
- relationRow = relRowCache.GetRelationRow(i, relKey);\r
- if (relationRow == null) {\r
- relationRow = CreateRelationRow(dataReader, rpt, columnNames, relKeyValues, relationPropertyCache);\r
- if (relationRow != null) {\r
- relRowCache.AddRelationRow(i, relKey, relationRow);\r
- PostCreateRow(relationRow, rpt.BeanMetaData);\r
- }\r
- }\r
- }\r
- if (relationRow != null) {\r
- PropertyInfo pi = rpt.PropertyInfo;\r
- pi.SetValue(row, relationRow, null);\r
- }\r
- }\r
- PostCreateRow(row, BeanMetaData);\r
- list.Add(row);\r
- }\r
- }\r
-\r
- protected RelationKey CreateRelationKey(IDataReader reader,\r
- IRelationPropertyType rpt, System.Collections.IList columnNames, System.Collections.Hashtable relKeyValues) {\r
- System.Collections.ArrayList keyList = new System.Collections.ArrayList();\r
- IBeanMetaData bmd = rpt.BeanMetaData;\r
- for (int i = 0; i < rpt.KeySize; ++i) {\r
- IValueType valueType = null;\r
- string columnName = rpt.GetMyKey(i);\r
- IPropertyType pt;\r
- if (columnNames.Contains(columnName)) {\r
- pt = BeanMetaData.GetPropertyTypeByColumnName(columnName);\r
- valueType = pt.ValueType;\r
- } else {\r
- pt = bmd.GetPropertyTypeByColumnName(rpt.GetYourKey(i));\r
- columnName = pt.ColumnName + BuildRelationNoSuffix(rpt);\r
- if (columnNames.Contains(columnName))\r
- valueType = pt.ValueType;\r
- else\r
- return null;\r
- }\r
- object value = valueType.GetValue(reader, columnName);\r
- if (value == null) return null;\r
-\r
- relKeyValues[columnName] = value;\r
- keyList.Add(value);\r
- }\r
- if (keyList.Count > 0) {\r
- object[] keys = keyList.ToArray();\r
- return new RelationKey(keys);\r
- }\r
- else return null;\r
- }\r
- \r
- \r
- // ===================================================================================\r
- // Assist Helper\r
- // =============\r
- protected bool HasConditionBean() {\r
- return ${glConditionBeanContextName}.IsExistConditionBeanOnThread();\r
- }\r
-\r
- protected bool IsSelectedForeignInfoEmpty() {\r
- if (!HasConditionBean()) {\r
- return true;\r
- }\r
- ${glConditionBeanInterfaceName} cb = ${glConditionBeanContextName}.GetConditionBeanOnThread();\r
- if (cb.SqlClause.isSelectedForeignInfoEmpty()) {\r
- return true;\r
- }\r
- return false;\r
- }\r
-\r
- // You should call HasConditionBean() before calling this!\r
- protected bool HasSelectedForeignInfo(String relationNoSuffix) {\r
- ${glConditionBeanInterfaceName} cb = ${glConditionBeanContextName}.GetConditionBeanOnThread();\r
- if (cb.SqlClause.hasSelectedForeignInfo(relationNoSuffix)) {\r
- return true;\r
- }\r
- return false;\r
- }\r
-\r
- protected String BuildRelationNoSuffix(IRelationPropertyType rpt) {\r
- return "_" + rpt.RelationNo;\r
- }\r
-\r
- protected bool HasOutsideSqlContext() {\r
- return ${glOutsideSqlContextName}.IsExistOutsideSqlContextOnThread();\r
- }\r
-\r
- protected bool IsSpecifiedOutsideSql() {\r
- if (!HasOutsideSqlContext()) {\r
- return false;\r
- }\r
- ${glOutsideSqlContextName} context = ${glOutsideSqlContextName}.GetOutsideSqlContextOnThread();\r
- return context.IsSpecifiedOutsideSql;\r
- }\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System.Collections;\r
-using System.Text;\r
-using Seasar.Extension.ADO;\r
-using Seasar.Dao;\r
-using Seasar.Dao.Impl;\r
-\r
-using ${glPackageBaseCommon};\r
-using ${glPackageBaseCommonS2DaoInternalSqlHandler};\r
-\r
-namespace ${glPackageBaseCommonS2DaoInternalSqlCommand} {\r
-\r
- public abstract class ${glInternalAbstractAutoDynamicCommand} : AbstractSqlCommand {\r
-\r
- // ===============================================================================\r
- // Definition\r
- // ==========\r
- private static readonly log4net.ILog _log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);\r
- \r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected IPropertyType[] propertyTypes;\r
- protected const int NO_UPDATE = 0;\r
- protected readonly IBeanMetaData _beanMetaData;\r
- protected readonly string[] _propertyNames;\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalAbstractAutoDynamicCommand}(IDataSource dataSource, ICommandFactory commandFactory,\r
- IBeanMetaData beanMetaData, string[] propertyNames)\r
- : base(dataSource, commandFactory) {\r
- _beanMetaData = beanMetaData;\r
- _propertyNames = propertyNames;\r
- }\r
-\r
- public override Object Execute(Object[] args) {\r
- Object bean = args[0];\r
- IBeanMetaData bmd = BeanMetaData;\r
- string[] propertyNames = PropertyNames;\r
- IPropertyType[] propertyTypes = CreateTargetPropertyTypes(bmd,\r
- bean, propertyNames);\r
- if (CanExecute(bean, bmd, propertyTypes, propertyNames) == false) {\r
- return NO_UPDATE;\r
- }\r
- ${glInternalAbstractAutoHandler} handler = CreateAutoHandler(DataSource, CommandFactory, bmd, propertyTypes);\r
- handler.Sql = SetupSql(bmd, propertyTypes);\r
- handler.LoggingMessageSqlArgs = args;\r
- int i = handler.Execute(args);\r
- if (i < 1) {\r
- throw new NotSingleRowUpdatedRuntimeException(args[0], i);\r
- }\r
- return i;\r
- }\r
-\r
- protected abstract string SetupSql(IBeanMetaData bmd, IPropertyType[] propertyTypes);\r
-\r
- protected abstract ${glInternalAbstractAutoHandler} CreateAutoHandler(IDataSource dataSource, ICommandFactory commandFactory,\r
- IBeanMetaData beanMetaData, IPropertyType[] propertyTypes);\r
-\r
- protected virtual IPropertyType[] CreateTargetPropertyTypes(IBeanMetaData bmd, object bean, string[] propertyNames)\r
- {\r
- IList types = new ArrayList();\r
- string timestampPropertyName = bmd.TimestampPropertyName;\r
- string versionNoPropertyName = bmd.VersionNoPropertyName;\r
- for (int i = 0; i < propertyNames.Length; ++i) {\r
- IPropertyType pt = bmd.GetPropertyType(propertyNames[i]);\r
- if (IsTargetProperty(pt, timestampPropertyName, versionNoPropertyName, bean)) {\r
- types.Add(pt);\r
- }\r
- }\r
-\r
- IPropertyType[] propertyTypes = new IPropertyType[types.Count];\r
- types.CopyTo(propertyTypes, 0);\r
- return propertyTypes;\r
- }\r
-\r
- protected virtual bool IsTargetProperty(IPropertyType pt, string timestampPropertyName,\r
- string versionNoPropertyName, object bean) {\r
- string propertyName = pt.PropertyName;\r
- if (propertyName.Equals(timestampPropertyName, StringComparison.CurrentCultureIgnoreCase)\r
- || propertyName.Equals(versionNoPropertyName, StringComparison.CurrentCultureIgnoreCase))\r
- {\r
- return true;\r
- }\r
-\r
- object value = pt.PropertyInfo.GetValue(bean, null);\r
-\r
- // for normal type include Nullable<T>\r
- if (value == null)\r
- {\r
- return false;\r
- }\r
-\r
- // for Sytem.Data.SqlTypes.INullable\r
- if (value is INullable && ((INullable)value).IsNull)\r
- {\r
- return false;\r
- }\r
-\r
- return true;\r
- }\r
-\r
- protected virtual bool CanExecute(object bean, IBeanMetaData bmd, IPropertyType[] propertyTypes, string[] propertyNames)\r
- {\r
- if (propertyTypes.Length == 0)\r
- {\r
- return false;\r
- }\r
- return true;\r
- }\r
-\r
-\r
- public IBeanMetaData BeanMetaData\r
- {\r
- get { return _beanMetaData; }\r
- }\r
-\r
- public string[] PropertyNames\r
- {\r
- get { return _propertyNames; }\r
- }\r
- \r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System;\r
-using System.Collections;\r
-using System.Text;\r
-using Seasar.Extension.ADO;\r
-using Seasar.Dao;\r
-using Seasar.Dao.Impl;\r
-\r
-using ${glPackageBaseCommon};\r
-using ${glPackageBaseCommonException};\r
-using ${glPackageBaseCommonS2DaoInternalSqlHandler};\r
-\r
-namespace ${glPackageBaseCommonS2DaoInternalSqlCommand} {\r
-\r
- public abstract class ${glInternalAbstractAutoStaticCommand} : AbstractStaticCommand {\r
-\r
- // ===============================================================================\r
- // Definition\r
- // ==========\r
- private static readonly log4net.ILog _log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);\r
- \r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- private IPropertyType[] propertyTypes;\r
- private bool checkSingleRowUpdate = true;\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalAbstractAutoStaticCommand}(IDataSource dataSource,\r
- ICommandFactory commandFactory, IBeanMetaData beanMetaData, string[] propertyNames)\r
- : base(dataSource, commandFactory, beanMetaData) {\r
- SetupPropertyTypes(propertyNames);\r
- SetupSql();\r
- }\r
-\r
- // ===============================================================================\r
- // Execute\r
- // =======\r
- public override Object Execute(object[] args) {\r
- ${glInternalAbstractAutoHandler} handler = CreateAutoHandler();\r
- handler.Sql = Sql;\r
- handler.LoggingMessageSqlArgs = args;\r
- int rows = handler.Execute(args);\r
- if (IsCheckSingleRowUpdate && rows != 1) throw new ${glEntityAlreadyUpdatedException}(args[0], rows);\r
- return rows;\r
- }\r
-\r
- protected abstract ${glInternalAbstractAutoHandler} CreateAutoHandler();\r
-\r
- protected abstract void SetupPropertyTypes(string[] propertyNames);\r
-\r
- // ===============================================================================\r
- // Setupper\r
- // ========\r
- protected void SetupInsertPropertyTypes(string[] propertyNames) {\r
- ArrayList types = new ArrayList();\r
- for (int i = 0; i < propertyNames.Length; ++i) {\r
- IPropertyType pt = BeanMetaData.GetPropertyType(propertyNames[i]);\r
- if (pt.IsPrimaryKey && !BeanMetaData.IdentifierGenerator.IsSelfGenerate)\r
- continue;\r
- types.Add(pt);\r
- }\r
- propertyTypes = (IPropertyType[]) types.ToArray(typeof(IPropertyType));\r
- }\r
-\r
- protected void SetupUpdatePropertyTypes(string[] propertyNames) {\r
- ArrayList types = new ArrayList();\r
- for (int i = 0; i < propertyNames.Length; ++i) {\r
- IPropertyType pt = BeanMetaData.GetPropertyType(propertyNames[i]);\r
- if (pt.IsPrimaryKey) continue;\r
- types.Add(pt);\r
- }\r
- propertyTypes = (IPropertyType[]) types.ToArray(typeof(IPropertyType));\r
- }\r
-\r
- protected virtual void SetupDeletePropertyTypes(string[] propertyNames) {\r
- }\r
-\r
- protected abstract void SetupSql();\r
-\r
- protected void SetupInsertSql() {\r
- IBeanMetaData bmd = BeanMetaData;\r
- StringBuilder sb = new StringBuilder(100);\r
- sb.Append("INSERT INTO ");\r
- sb.Append(bmd.TableName);\r
- sb.Append(" (");\r
- for (int i = 0; i < propertyTypes.Length; ++i) {\r
- IPropertyType pt = propertyTypes[i];\r
- sb.Append(pt.ColumnName);\r
- sb.Append(", ");\r
- }\r
- sb.Length = sb.Length - 2;\r
- sb.Append(") VALUES (");\r
- for (int i = 0; i < propertyTypes.Length; ++i) {\r
- sb.Append("?, ");\r
- }\r
- sb.Length = sb.Length - 2;\r
- sb.Append(")");\r
- Sql = sb.ToString();\r
- }\r
-\r
- protected void SetupUpdateSql() {\r
- CheckPrimaryKey();\r
- StringBuilder sb = new StringBuilder(100);\r
- sb.Append("UPDATE ");\r
- sb.Append(BeanMetaData.TableName);\r
- sb.Append(" SET ");\r
- for (int i = 0; i < propertyTypes.Length; ++i) {\r
- IPropertyType pt = propertyTypes[i];\r
- if (String.Compare(pt.PropertyName, BeanMetaData.VersionNoPropertyName, true) == 0) {\r
- sb.Append(pt.ColumnName).Append(" = ").Append(pt.ColumnName).Append(" + 1, ");\r
- continue;\r
- }\r
- sb.Append(pt.ColumnName);\r
- sb.Append(" = ?, ");\r
- }\r
- sb.Length = sb.Length - 2;\r
- SetupUpdateWhere(sb);\r
- Sql = sb.ToString();\r
- }\r
-\r
- protected void SetupDeleteSql() {\r
- CheckPrimaryKey();\r
- StringBuilder sb = new StringBuilder(100);\r
- sb.Append("DELETE FROM ");\r
- sb.Append(BeanMetaData.TableName);\r
- SetupUpdateWhere(sb);\r
- Sql = sb.ToString();\r
- }\r
-\r
- protected void CheckPrimaryKey() {\r
- IBeanMetaData bmd = BeanMetaData;\r
- if (bmd.PrimaryKeySize == 0) {\r
- throw new PrimaryKeyNotFoundRuntimeException(bmd.BeanType);\r
- }\r
- }\r
-\r
- protected void SetupUpdateWhere(StringBuilder sb) {\r
- IBeanMetaData bmd = BeanMetaData;\r
- sb.Append(" WHERE ");\r
- for (int i = 0; i < bmd.PrimaryKeySize; ++i) {\r
- sb.Append(bmd.GetPrimaryKey(i));\r
- sb.Append(" = ? AND ");\r
- }\r
- sb.Length = sb.Length - 5;\r
- if (bmd.HasVersionNoPropertyType) {\r
- IPropertyType pt = bmd.VersionNoPropertyType;\r
- sb.Append(" AND ");\r
- sb.Append(pt.ColumnName);\r
- sb.Append(" = ?");\r
- }\r
- if (bmd.HasTimestampPropertyType) {\r
- IPropertyType pt = bmd.TimestampPropertyType;\r
- sb.Append(" AND ");\r
- sb.Append(pt.ColumnName);\r
- sb.Append(" = ?");\r
- }\r
- }\r
-\r
- // ===============================================================================\r
- // Accessor\r
- // ========\r
- protected IPropertyType[] PropertyTypes {\r
- get { return propertyTypes; }\r
- set { propertyTypes = value; }\r
- }\r
-\r
- public bool IsCheckSingleRowUpdate {\r
- get { return checkSingleRowUpdate; }\r
- set { checkSingleRowUpdate = value; }\r
- }\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System.Text;\r
-using Seasar.Extension.ADO;\r
-using Seasar.Dao;\r
-using Seasar.Dao.Impl;\r
-\r
-using ${glPackageBaseCommonS2DaoInternalSqlHandler};\r
-\r
-namespace ${glPackageBaseCommonS2DaoInternalSqlCommand} {\r
-\r
- public class ${glInternalDeleteAutoStaticCommand} : ${glInternalAbstractAutoStaticCommand} {\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalDeleteAutoStaticCommand}(IDataSource dataSource, ICommandFactory commandFactory,\r
- IBeanMetaData beanMetaData, string[] propertyNames)\r
- : base(dataSource, commandFactory, beanMetaData, propertyNames) {\r
- }\r
-\r
- // ===============================================================================\r
- // Override\r
- // ========\r
- protected override ${glInternalAbstractAutoHandler} CreateAutoHandler() {\r
- return new ${glInternalDeleteAutoHandler}(DataSource, CommandFactory, BeanMetaData, PropertyTypes);\r
- }\r
- protected override void SetupSql() {\r
- SetupDeleteSql();\r
- }\r
- protected override void SetupPropertyTypes(string[] propertyNames) {\r
- SetupDeletePropertyTypes(propertyNames);\r
- }\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System;\r
-using Seasar.Extension.ADO;\r
-using Seasar.Dao;\r
-\r
-using ${glPackageBaseCommonS2DaoInternalSqlParser};\r
-using ${glPackageBaseCommonS2DaoInternalSqlHandler};\r
-using ${glPackageBaseCommonCBean};\r
-using ${glPackageBaseCommonJavaLike};\r
-using ${glPackageBaseCommonUtil};\r
-\r
-namespace ${glPackageBaseCommonS2DaoInternalSqlCommand} {\r
-\r
-public class ${glInternalDeleteQueryAutoDynamicCommand} : ISqlCommand {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected IDataSource dataSource;\r
- protected ICommandFactory commandFactory;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalDeleteQueryAutoDynamicCommand}(IDataSource dataSource, ICommandFactory commandFactory) {\r
- this.dataSource = dataSource;\r
- this.commandFactory = commandFactory;\r
- }\r
-\r
- // ===================================================================================\r
- // Execute\r
- // =======\r
- public Object Execute(Object[] args) {\r
- ${glConditionBeanInterfaceName} cb = extractConditionBeanWithCheck(args);\r
- String[] argNames = new String[]{"dto"};\r
- Type[] argTypes = new Type[]{cb.GetType()};\r
- String twoWaySql = buildQueryDeleteTwoWaySql(cb);\r
- ICommandContext context = createCommandContext(twoWaySql, argNames, argTypes, args);\r
- ${glInternalCommandContextHandler} handler = createCommandContextHandler(context);\r
- handler.LoggingMessageSqlArgs = context.BindVariables;\r
- int rows = handler.Execute(args);\r
- return rows;\r
- }\r
- \r
- protected ${glConditionBeanInterfaceName} extractConditionBeanWithCheck(Object[] args) {\r
- if (args == null || args.Length == 0) {\r
- String msg = "The arguments should have one argument! But:";\r
- msg = msg + " args=" + (args != null ? "" + args.Length : "null");\r
- throw new IllegalArgumentException(msg);\r
- }\r
- Object fisrtArg = args[0];\r
- if (!(fisrtArg is ${glConditionBeanInterfaceName})) {\r
- String msg = "The type of argument should be " + typeof(${glConditionBeanInterfaceName}) + "! But:";\r
- msg = msg + " type=" + fisrtArg.GetType();\r
- throw new IllegalArgumentException(msg);\r
- }\r
- return (${glConditionBeanInterfaceName}) fisrtArg;\r
- }\r
- \r
- protected ${glInternalCommandContextHandler} createCommandContextHandler(ICommandContext context) {\r
- return new ${glInternalCommandContextHandler}(dataSource, commandFactory, context);\r
- }\r
-\r
- protected String buildQueryDeleteTwoWaySql(${glConditionBeanInterfaceName} cb) {\r
- return cb.SqlClause.getClauseQueryDelete();\r
- }\r
- \r
- protected ICommandContext createCommandContext(String twoWaySql, String[] argNames, Type[] argTypes, Object[] args) {\r
- ICommandContext context;\r
- {\r
- ${glInternalSqlParser} parser = new ${glInternalSqlParser}(twoWaySql);\r
- INode node = parser.Parse();\r
- ${glInternalCommandContextCreator} creator = new ${glInternalCommandContextCreator}(argNames, argTypes);\r
- context = creator.CreateCommandContext(args);\r
- node.Accept(context);\r
- }\r
- return context;\r
- }\r
- \r
- // ===================================================================================\r
- // General Helper\r
- // ==============\r
- protected String getLineSeparator() {\r
- return ${glSimpleSystemUtil}.GetLineSeparator();\r
- }\r
-}\r
-\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System;\r
-using System.Collections;\r
-using System.Data.SqlTypes;\r
-using System.Text;\r
-using Seasar.Framework.Exceptions;\r
-using Seasar.Extension.ADO;\r
-using Seasar.Dao;\r
-using Seasar.Dao.Impl;\r
-\r
-using ${glPackageBaseCommonS2DaoInternalSqlHandler};\r
-\r
-namespace ${glPackageBaseCommonS2DaoInternalSqlCommand} {\r
-\r
- public class ${glInternalInsertAutoDynamicCommand} : AbstractSqlCommand {\r
- \r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- private const int NO_UPDATE = 0;\r
- private readonly IBeanMetaData _beanMetaData;\r
- private readonly string[] _propertyNames;\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalInsertAutoDynamicCommand}(IDataSource dataSource, ICommandFactory commandFactory,\r
- IBeanMetaData beanMetaData, string[] propertyNames)\r
- : base(dataSource, commandFactory) {\r
- _beanMetaData = beanMetaData;\r
- _propertyNames = propertyNames;\r
- }\r
-\r
- // ===============================================================================\r
- // Execute\r
- // =======\r
- public override Object Execute(object[] args) {\r
- object bean = args[0];\r
- IBeanMetaData bmd = BeanMetaData;\r
- string[] propertyNames = PropertyNames;\r
- IPropertyType[] propertyTypes = CreateTargetPropertyTypes(bmd, bean, propertyNames);\r
- if (CanExecute(bean, bmd, propertyTypes, propertyNames) == false) {\r
- return NO_UPDATE;\r
- }\r
- ${glInternalAbstractAutoHandler} handler = CreateAutoHandler(DataSource, CommandFactory, bmd, propertyTypes);\r
- handler.Sql = SetupSql(bmd, propertyTypes);\r
- handler.LoggingMessageSqlArgs = args; // Actually set up this property in the handler again.\r
- int i = handler.Execute(args);\r
- if (i < 1) {\r
- throw new NotSingleRowUpdatedRuntimeException(args[0], i);\r
- }\r
- return i;\r
- }\r
-\r
- protected virtual IPropertyType[] CreateTargetPropertyTypes(IBeanMetaData bmd, object bean, string[] propertyNames) {\r
- IList types = new ArrayList();\r
- string timestampPropertyName = bmd.TimestampPropertyName;\r
- string versionNoPropertyName = bmd.VersionNoPropertyName;\r
- for (int i = 0; i < propertyNames.Length; ++i)\r
- {\r
- IPropertyType pt = bmd.GetPropertyType(propertyNames[i]);\r
- if (IsTargetProperty(pt, timestampPropertyName, versionNoPropertyName, bean)) {\r
- types.Add(pt);\r
- }\r
- }\r
-\r
- IPropertyType[] propertyTypes = new IPropertyType[types.Count];\r
- types.CopyTo(propertyTypes, 0);\r
- return propertyTypes;\r
- }\r
- \r
- protected virtual ${glInternalAbstractAutoHandler} CreateAutoHandler(IDataSource dataSource, ICommandFactory commandFactory, \r
- IBeanMetaData beanMetaData, IPropertyType[] propertyTypes) {\r
- return new ${glInternalInsertAutoHandler}(dataSource, commandFactory, beanMetaData, propertyTypes);\r
- }\r
-\r
- protected virtual string SetupSql(IBeanMetaData bmd, IPropertyType[] propertyTypes) {\r
- StringBuilder buf = new StringBuilder(100);\r
- buf.Append("INSERT INTO ");\r
- buf.Append(bmd.TableName);\r
- buf.Append(" (");\r
- for (int i = 0; i < propertyTypes.Length; ++i) {\r
- IPropertyType pt = propertyTypes[i];\r
- String columnName = pt.ColumnName;\r
- if (i > 0)\r
- {\r
- buf.Append(", ");\r
- }\r
- buf.Append(columnName);\r
- }\r
- buf.Append(") VALUES (");\r
- for (int i = 0; i < propertyTypes.Length; ++i) {\r
- if (i > 0) {\r
- buf.Append(", ");\r
- }\r
- buf.Append("?");\r
- }\r
- buf.Append(")");\r
- return buf.ToString();\r
- }\r
-\r
- protected virtual bool IsTargetProperty(IPropertyType pt, string timestampPropertyName, string versionNoPropertyName, object bean) {\r
- IIdentifierGenerator identifierGenerator = BeanMetaData.IdentifierGenerator;\r
- if (pt.IsPrimaryKey) {\r
- return identifierGenerator.IsSelfGenerate;\r
- }\r
- string propertyName = pt.PropertyName;\r
- if (propertyName.Equals(timestampPropertyName, StringComparison.CurrentCultureIgnoreCase)\r
- || propertyName.Equals(versionNoPropertyName, StringComparison.CurrentCultureIgnoreCase))\r
- {\r
- return true;\r
- }\r
-\r
- object value = pt.PropertyInfo.GetValue(bean, null);\r
-\r
- // for normal type include Nullable<T>\r
- if (value == null)\r
- {\r
- return false;\r
- }\r
- // for Sytem.Data.SqlTypes.INullable\r
- if (value is INullable && ((INullable)value).IsNull)\r
- {\r
- return false;\r
- }\r
- return true;\r
- }\r
-\r
- protected virtual bool CanExecute(object bean, IBeanMetaData bmd, IPropertyType[] propertyTypes, string[] propertyNames)\r
- {\r
- if (propertyTypes.Length == 0) {\r
- throw new SRuntimeException("EDAO0014");\r
- }\r
- return true;\r
- }\r
-\r
-\r
- public IBeanMetaData BeanMetaData\r
- {\r
- get { return _beanMetaData; }\r
- }\r
-\r
- public string[] PropertyNames\r
- {\r
- get { return _propertyNames; }\r
- }\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System;\r
-\r
-using Seasar.Extension.ADO;\r
-using Seasar.Dao;\r
-\r
-using ${glPackageBaseCommonJavaLike};\r
-using ${glPackageBaseCommonCBeanOutsidesql};\r
-using ${glPackageBaseCommonS2Dao};\r
-using ${glPackageBaseCommonS2DaoInternalSqlHandler};\r
-\r
-namespace ${glPackageBaseCommonS2DaoInternalSqlCommand} {\r
-\r
-public class ${glInternalProcedureCommand} : ISqlCommand {\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected IDataSource _dataSource;\r
- protected IDataReaderHandler _dataReaderHandler;\r
- protected ICommandFactory _commandFactory;\r
- protected IDataReaderFactory _dataReaderFactory;\r
- protected InternalProcedureMetaData _procedureMetaData;\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalProcedureCommand}(IDataSource dataSource, IDataReaderHandler dataReaderHandler,\r
- ICommandFactory commandFactory, IDataReaderFactory dataReaderFactory,\r
- InternalProcedureMetaData procedureMetaData) {\r
- this._dataSource = dataSource;\r
- this._dataReaderHandler = dataReaderHandler;\r
- this._commandFactory = commandFactory;\r
- this._dataReaderFactory = dataReaderFactory;\r
- this._procedureMetaData = procedureMetaData;\r
- }\r
-\r
- // ===============================================================================\r
- // Execute\r
- // =======\r
- public Object Execute(Object[] args) {\r
- ${glInternalProcedureHandler} handler = NewArgumentDtoProcedureHandler();\r
- ${glOutsideSqlContextName} outsideSqlContext = ${glOutsideSqlContextName}.GetOutsideSqlContextOnThread();\r
- Object pmb = outsideSqlContext.ParameterBean;\r
- // The logging message SQL of procedure is unnecessary.\r
- // handler.LoggingMessageSqlArgs = ...;\r
- return handler.Execute(new Object[]{pmb});\r
- }\r
- protected ${glInternalProcedureHandler} NewArgumentDtoProcedureHandler() {\r
- return new ${glInternalProcedureHandler}(_dataSource, CreateSql(_procedureMetaData), _dataReaderHandler,\r
- _commandFactory, _dataReaderFactory, _procedureMetaData);\r
- }\r
- protected String CreateSql(InternalProcedureMetaData procedureMetaData) {\r
- // StringBuilder sb = new StringBuilder();\r
- // sb.append("{");\r
- // int size = procedureMetaData.ParameterTypeSize;\r
- // if (procedureMetaData.HasReturnParameterType) {\r
- // sb.append("? = ");\r
- // size--;\r
- // }\r
- // sb.append("call ").append(procedureMetaData.ProcedureName).append("(");\r
- // for (int i = 0; i < size; i++) {\r
- // sb.append("?, ");\r
- // }\r
- // if (size > 0) {\r
- // sb = new StringBuilder().append(sb.toString().Substring(0, sb.length() - 2));\r
- // }\r
- // sb.append(")}");\r
- // return sb.toString();\r
-\r
- // The procedure name is SQL at CSharp!\r
- return procedureMetaData.ProcedureName;\r
- }\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections;\r
-using System.Data.SqlTypes;\r
-using System.Text;\r
-using Seasar.Extension.ADO;\r
-using Seasar.Dao;\r
-using Seasar.Dao.Impl;\r
-\r
-using ${glPackageBaseCommonS2DaoInternalSqlHandler};\r
-\r
-namespace ${glPackageBaseCommonS2DaoInternalSqlCommand} {\r
-\r
- public class ${glInternalUpdateAutoDynamicCommand} : AbstractSqlCommand {\r
-\r
- // ===============================================================================\r
- // Definition\r
- // ==========\r
- protected const int NO_UPDATE = 0;\r
- \r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected readonly IBeanMetaData _beanMetaData;\r
- protected readonly String[] _propertyNames;\r
- protected bool checkSingleRowUpdate = true;\r
- protected bool _versionNoAutoIncrementOnMemory = true;\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalUpdateAutoDynamicCommand}(IDataSource dataSource, ICommandFactory commandFactory,\r
- IBeanMetaData beanMetaData, string[] propertyNames)\r
- : base(dataSource, commandFactory) {\r
- _beanMetaData = beanMetaData;\r
- _propertyNames = propertyNames;\r
- }\r
-\r
- public override object Execute(object[] args) {\r
- Object bean = args[0];\r
- IBeanMetaData bmd = BeanMetaData;\r
- String[] propertyNames = PropertyNames;\r
- IPropertyType[] propertyTypes = CreateTargetPropertyTypes(bmd, bean, propertyNames);\r
- if (CanExecute(bean, bmd, propertyTypes, propertyNames) == false) {\r
- return NO_UPDATE;\r
- }\r
- ${glInternalAbstractAutoHandler} handler = CreateInternalAutoHandler(DataSource, CommandFactory, bmd, propertyTypes);\r
- handler.Sql = CreateUpdateSql(bmd, propertyTypes, bean);\r
- int i = handler.Execute(args);\r
-\r
- // [Comment Out]: This statement moved to the handler at DBFlute-0.8.0.\r
- // if (IsCheckSingleRowUpdate && i < 1) {\r
- // throw new NotSingleRowUpdatedRuntimeException(args[0], i);\r
- // }\r
-\r
- return i;\r
- }\r
- \r
- protected virtual IPropertyType[] CreateTargetPropertyTypes(IBeanMetaData bmd, object bean, string[] propertyNames) {\r
- IList types = new ArrayList();\r
- String timestampPropertyName = bmd.TimestampPropertyName;\r
- String versionNoPropertyName = bmd.VersionNoPropertyName;\r
- for (int i = 0; i < propertyNames.Length; ++i) {\r
- IPropertyType pt = bmd.GetPropertyType(propertyNames[i]);\r
- if (IsTargetProperty(pt, timestampPropertyName, versionNoPropertyName, bean)) {\r
- types.Add(pt);\r
- }\r
- }\r
- IPropertyType[] propertyTypes = new IPropertyType[types.Count];\r
- types.CopyTo(propertyTypes, 0);\r
- return propertyTypes;\r
- }\r
- \r
- protected virtual ${glInternalAbstractAutoHandler} CreateInternalAutoHandler(IDataSource dataSource, ICommandFactory commandFactory, \r
- IBeanMetaData beanMetaData, IPropertyType[] propertyTypes) {\r
- ${glInternalUpdateAutoHandler} handler = new ${glInternalUpdateAutoHandler}(dataSource, commandFactory, beanMetaData, propertyTypes);\r
- handler.VersionNoAutoIncrementOnMemory = _versionNoAutoIncrementOnMemory;\r
- handler.IsCheckSingleRowUpdate = IsCheckSingleRowUpdate; // [DBFlute-0.8.0]\r
- return handler;\r
- }\r
-\r
- protected virtual String CreateUpdateSql(IBeanMetaData bmd, IPropertyType[] propertyTypes, Object bean) {\r
- if (bmd.PrimaryKeySize == 0) {\r
- String msg = "The table '" + bmd.TableName + "' does not have primary keys!";\r
- throw new SystemException(msg);\r
- }\r
- StringBuilder sb = new StringBuilder(100);\r
- sb.Append("UPDATE ").Append(bmd.TableName).Append(" SET ");\r
- String versionNoPropertyName = bmd.VersionNoPropertyName;\r
- for (int i = 0; i < propertyTypes.Length; ++i) {\r
- IPropertyType pt = propertyTypes[i];\r
- String columnName = pt.ColumnName;\r
- if (i > 0) {\r
- sb.Append(", ");\r
- }\r
- if (String.Compare(pt.PropertyName, versionNoPropertyName, true) == 0) {\r
- if (!IsVersionNoAutoIncrementOnMemory()) {\r
- SetupVersionNoAutoIncrementOnQuery(sb, columnName);\r
- continue;// because of always 'VERSION_NO = VERSION_NO + 1'\r
- }\r
- Object value = pt.PropertyInfo.GetValue(bean, null);\r
- if (value == null) {\r
- SetupVersionNoAutoIncrementOnQuery(sb, columnName);\r
- continue;\r
- }\r
- }\r
- sb.Append(columnName).Append(" = ?");\r
- }\r
- sb.Append(" WHERE ");\r
- const string ADD_AND = " AND ";\r
- for (int i = 0; i < bmd.PrimaryKeySize; ++i) {\r
- sb.Append(bmd.GetPrimaryKey(i)).Append(" = ?").Append(ADD_AND);\r
- }\r
- sb.Length = sb.Length - ADD_AND.Length;\r
- if (bmd.HasVersionNoPropertyType) {\r
- IPropertyType pt = bmd.VersionNoPropertyType;\r
- sb.Append(ADD_AND).Append(pt.ColumnName).Append(" = ?");\r
- }\r
- if (bmd.HasTimestampPropertyType) {\r
- IPropertyType pt = bmd.TimestampPropertyType;\r
- sb.Append(ADD_AND).Append(pt.ColumnName).Append(" = ?");\r
- }\r
- return sb.ToString();\r
- }\r
-\r
- protected bool IsVersionNoAutoIncrementOnMemory() {\r
- return _versionNoAutoIncrementOnMemory;\r
- }\r
-\r
- protected void SetupVersionNoAutoIncrementOnQuery(StringBuilder sb, String columnName) {\r
- sb.Append(columnName).Append(" = ").Append(columnName).Append(" + 1");\r
- }\r
-\r
- protected virtual bool IsTargetProperty(IPropertyType pt, string timestampPropertyName, string versionNoPropertyName, object bean) {\r
- if (pt.IsPrimaryKey) {\r
- return false;\r
- }\r
- string propertyName = pt.PropertyName;\r
- if (propertyName.Equals(timestampPropertyName, StringComparison.CurrentCultureIgnoreCase)\r
- || propertyName.Equals(versionNoPropertyName, StringComparison.CurrentCultureIgnoreCase))\r
- {\r
- return true;\r
- }\r
-\r
- object value = pt.PropertyInfo.GetValue(bean, null);\r
-\r
- // for normal type include Nullable<T>\r
- if (value == null) {\r
- return false;\r
- }\r
- // for System.Data.SqlTypes.INullable\r
- if (value is INullable && ((INullable)value).IsNull) {\r
- return false;\r
- }\r
- return true;\r
- }\r
-\r
- protected virtual bool CanExecute(object bean, IBeanMetaData bmd, IPropertyType[] propertyTypes, string[] propertyNames) {\r
- if ( propertyTypes.Length == 0 ) {\r
- throw new NoUpdatePropertyTypeRuntimeException();\r
- }\r
- return true;\r
- }\r
- \r
- // ===============================================================================\r
- // Accessor\r
- // ========\r
- public IBeanMetaData BeanMetaData {\r
- get { return _beanMetaData; }\r
- }\r
-\r
- public string[] PropertyNames {\r
- get { return _propertyNames; }\r
- }\r
-\r
- public bool VersionNoAutoIncrementOnMemory {\r
- set { _versionNoAutoIncrementOnMemory = value; }\r
- }\r
-\r
- public bool IsCheckSingleRowUpdate {\r
- get { return checkSingleRowUpdate; }\r
- set { checkSingleRowUpdate = value; }\r
- }\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System.Text;\r
-using Seasar.Extension.ADO;\r
-using Seasar.Dao;\r
-using Seasar.Dao.Impl;\r
-\r
-using ${glPackageBaseCommonS2DaoInternalSqlHandler};\r
-\r
-namespace ${glPackageBaseCommonS2DaoInternalSqlCommand} {\r
-\r
- public class ${glInternalUpdateAutoStaticCommand} : ${glInternalAbstractAutoStaticCommand} {\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalUpdateAutoStaticCommand}(IDataSource dataSource, ICommandFactory commandFactory,\r
- IBeanMetaData beanMetaData, string[] propertyNames)\r
- : base(dataSource, commandFactory, beanMetaData, propertyNames) {\r
- }\r
-\r
- // ===============================================================================\r
- // Override\r
- // ========\r
- protected override ${glInternalAbstractAutoHandler} CreateAutoHandler() {\r
- return new ${glInternalUpdateAutoHandler}(DataSource, CommandFactory, BeanMetaData, PropertyTypes);\r
- }\r
- protected override void SetupSql() {\r
- SetupUpdateSql();\r
- }\r
- protected override void SetupPropertyTypes(string[] propertyNames) {\r
- SetupUpdatePropertyTypes(propertyNames);\r
- }\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System;\r
-using System.Text;\r
-using Seasar.Extension.ADO;\r
-using Seasar.Dao;\r
-using Seasar.Dao.Impl;\r
-\r
-using ${glPackageBaseCommonS2DaoInternalSqlHandler};\r
-\r
-namespace ${glPackageBaseCommonS2DaoInternalSqlCommand} {\r
-\r
- public class ${glInternalUpdateDynamicCommand} : AbstractDynamicCommand {\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalUpdateDynamicCommand}(IDataSource dataSource, ICommandFactory commandFactory)\r
- : base(dataSource, commandFactory) {\r
- }\r
-\r
- // ===============================================================================\r
- // Execute\r
- // =======\r
- public override object Execute(object[] args) {\r
- ICommandContext ctx = Apply(args);\r
- ${glInternalBasicUpdateHandler} handler = new ${glInternalBasicUpdateHandler}(DataSource, ctx.Sql, CommandFactory);\r
- Object[] bindVariables = ctx.BindVariables;\r
- handler.LoggingMessageSqlArgs = bindVariables;\r
- return handler.Execute(bindVariables, ctx.BindVariableTypes);\r
- }\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System;\r
-using System.Collections;\r
-using System.Text;\r
-using Seasar.Extension.ADO;\r
-using Seasar.Framework.Log;\r
-using Seasar.Dao;\r
-using Seasar.Dao.Impl;\r
-\r
-namespace ${glPackageBaseCommonS2DaoInternalSqlCommand} {\r
-\r
- public class ${glInternalUpdateModifiedOnlyCommand} : ${glInternalUpdateAutoDynamicCommand} {\r
-\r
- // ===============================================================================\r
- // Definition\r
- // ==========\r
- private static readonly log4net.ILog _log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalUpdateModifiedOnlyCommand}(IDataSource dataSource, ICommandFactory commandFactory,\r
- IBeanMetaData beanMetaData, string[] propertyNames)\r
- : base(dataSource, commandFactory, beanMetaData, propertyNames) {\r
- }\r
-\r
- protected override IPropertyType[] CreateTargetPropertyTypes(IBeanMetaData bmd, object bean, string[] propertyNames) {\r
- IDictionary modifiedPropertyNames = bmd.GetModifiedPropertyNames(bean);\r
- IList types = new ArrayList();\r
- string timestampPropertyName = bmd.TimestampPropertyName;\r
- string versionNoPropertyName = bmd.VersionNoPropertyName;\r
- for (int i = 0; i < propertyNames.Length; ++i) {\r
- IPropertyType pt = bmd.GetPropertyType(propertyNames[i]);\r
- if (pt.IsPrimaryKey == false) {\r
- string propertyName = pt.PropertyName;\r
- if (propertyName.Equals(timestampPropertyName, StringComparison.CurrentCultureIgnoreCase)\r
- || propertyName.Equals(versionNoPropertyName, StringComparison.CurrentCultureIgnoreCase)\r
- || modifiedPropertyNames.Contains(propertyName)) {\r
- types.Add(pt);\r
- }\r
- }\r
- }\r
- IPropertyType[] propertyTypes = new IPropertyType[types.Count];\r
- types.CopyTo(propertyTypes, 0);\r
- return propertyTypes;\r
- }\r
-\r
- protected override bool CanExecute(object bean, IBeanMetaData bmd, IPropertyType[] propertyTypes, String[] propertyNames) {\r
- if (propertyTypes.Length > 0) {\r
- return true;\r
- }\r
- if (_log.IsDebugEnabled) {\r
- string s = CreateNoUpdateLogMessage(bean, bmd);\r
- _log.Debug(s);\r
- }\r
- return false;\r
- }\r
-\r
- protected virtual string CreateNoUpdateLogMessage(object bean, IBeanMetaData bmd) {\r
- StringBuilder builder = new StringBuilder();\r
- builder.Append("skip UPDATE: table=");\r
- builder.Append(bmd.TableName);\r
- int size = bmd.PrimaryKeySize;\r
- for ( int i = 0; i < size; i++ ) {\r
- if ( i == 0 ) {\r
- builder.Append(", key{");\r
- } else {\r
- builder.Append(", ");\r
- }\r
- string keyName = bmd.GetPrimaryKey(i);\r
- builder.Append(keyName);\r
- builder.Append("=");\r
- builder.Append(bmd.GetPropertyTypeByColumnName(keyName)\r
- .PropertyInfo.GetValue(bean, null));\r
- if (i == size - 1) {\r
- builder.Append("}");\r
- }\r
- }\r
- \r
- return builder.ToString();\r
- }\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System;\r
-using System.Reflection;\r
-\r
-using Seasar.Extension.ADO;\r
-using Seasar.Dao;\r
-\r
-using ${glPackageBaseCommonS2DaoInternalSqlParser};\r
-using ${glPackageBaseCommonS2DaoInternalSqlHandler};\r
-using ${glPackageBaseCommonCBean};\r
-using ${glPackageBaseCommonDBMeta};\r
-using ${glPackageBaseCommonDBMetaInfo};\r
-using ${glPackageBaseCommonJavaLike};\r
-using ${glPackageBaseCommonUtil};\r
-\r
-namespace ${glPackageBaseCommonS2DaoInternalSqlCommand} {\r
-\r
-public class ${glInternalUpdateQueryAutoDynamicCommand} : ISqlCommand {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected IDataSource dataSource;\r
- protected ICommandFactory commandFactory;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalUpdateQueryAutoDynamicCommand}(IDataSource dataSource, ICommandFactory commandFactory) {\r
- this.dataSource = dataSource;\r
- this.commandFactory = commandFactory;\r
- }\r
-\r
- // ===================================================================================\r
- // Execute\r
- // =======\r
- public Object Execute(Object[] args) {\r
- ${glConditionBeanInterfaceName} cb = extractConditionBeanWithCheck(args);\r
- ${glEntityInterfaceName} entity = extractEntityWithCheck(args);\r
- String[] argNames = new String[]{"dto", "entity"};\r
- Type[] argTypes = new Type[]{cb.GetType(), entity.GetType()};\r
- String twoWaySql = buildQueryUpdateTwoWaySql(cb, entity);\r
- if (twoWaySql == null) {\r
- return 0;// No execute!\r
- }\r
- ICommandContext context = createCommandContext(twoWaySql, argNames, argTypes, args);\r
- ${glInternalCommandContextHandler} handler = createCommandContextHandler(context);\r
- handler.LoggingMessageSqlArgs = context.BindVariables;\r
- return handler.Execute(args);\r
- }\r
- \r
- protected ${glConditionBeanInterfaceName} extractConditionBeanWithCheck(Object[] args) {\r
- assertArgument(args);\r
- Object fisrtArg = args[0];\r
- if (!(fisrtArg is ${glConditionBeanInterfaceName})) {\r
- String msg = "The type of first argument should be " + typeof(${glConditionBeanInterfaceName}) + "! But:";\r
- msg = msg + " type=" + fisrtArg.GetType();\r
- throw new IllegalArgumentException(msg);\r
- }\r
- return (${glConditionBeanInterfaceName}) fisrtArg;\r
- }\r
- \r
- protected ${glEntityInterfaceName} extractEntityWithCheck(Object[] args) {\r
- assertArgument(args);\r
- Object secondArg = args[1];\r
- if (!(secondArg is ${glEntityInterfaceName})) {\r
- String msg = "The type of second argument should be " + typeof(${glEntityInterfaceName}) + "! But:";\r
- msg = msg + " type=" + secondArg.GetType();\r
- throw new IllegalArgumentException(msg);\r
- }\r
- return (${glEntityInterfaceName}) secondArg;\r
- }\r
- \r
- protected void assertArgument(Object[] args) {\r
- if (args == null || args.Length <= 1) {\r
- String msg = "The arguments should have two argument! But:";\r
- msg = msg + " args=" + (args != null ? "" + args.Length : "null");\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
- \r
- protected ${glInternalCommandContextHandler} createCommandContextHandler(ICommandContext context) {\r
- return new ${glInternalCommandContextHandler}(dataSource, commandFactory, context);\r
- }\r
-\r
- /**\r
- * @param cb Condition-bean. (NotNull)\r
- * @param entity Entity. (NotNull)\r
- * @return The two-way SQL of query update. (Nullable: If the set of modified properties is empty, return null.)\r
- */\r
- protected String buildQueryUpdateTwoWaySql(${glConditionBeanInterfaceName} cb, ${glEntityInterfaceName} entity) {\r
- Map<String, String> columnParameterMap = new LinkedHashMap<String, String>();\r
- ${glDBMetaInterfaceName} dbmeta = ${glDBMetaInstanceHandlerName}.FindDBMeta(entity.TableDbName);\r
- System.Collections.Generic.IDictionary<String, Object> modifiedPropertyNames = entity.ModifiedPropertyNames;\r
- if (modifiedPropertyNames.Count == 0) {\r
- return null;\r
- }\r
- String currentPropertyName = null;\r
- try {\r
- foreach (String propertyName in modifiedPropertyNames.Keys) {\r
- currentPropertyName = propertyName;\r
- ${glColumnInfoName} columnInfo = dbmeta.FindColumnInfo(propertyName);\r
- String columnName = columnInfo.ColumnDbName;\r
- PropertyInfo getter = columnInfo.FindProperty();\r
- Object value = getter.GetValue(entity, null);\r
- if (value != null) {\r
- columnParameterMap.put(columnName, "/*entity." + propertyName + "*/null");\r
- } else {\r
- columnParameterMap.put(columnName, "null");\r
- }\r
- }\r
- if (dbmeta.HasVersionNo) {\r
- ${glColumnInfoName} columnInfo = dbmeta.VersionNoColumnInfo;\r
- String columnName = columnInfo.ColumnDbName;\r
- columnParameterMap.put(columnName, columnName + " + 1");\r
- }\r
- if (dbmeta.HasUpdateDate) {\r
- ${glColumnInfoName} columnInfo = dbmeta.UpdateDateColumnInfo;\r
- PropertyInfo setter = columnInfo.FindProperty();\r
- setter.SetValue(entity, DateTime.Now, null);\r
- String columnName = columnInfo.ColumnDbName;\r
- columnParameterMap.put(columnName, "/*entity." + columnInfo.PropertyName + "*/null");\r
- }\r
- } catch (Exception e) {\r
- throwQueryUpdateFailureException(cb, entity, currentPropertyName, e);\r
- }\r
- return cb.SqlClause.getClauseQueryUpdate(columnParameterMap);\r
- }\r
- \r
- protected void throwQueryUpdateFailureException(${glConditionBeanInterfaceName} cb, ${glEntityInterfaceName} entity, String propertyName, Exception e) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "queryUpdate() failed to execute!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "Please confirm the parameter comment logic." + getLineSeparator();\r
- msg = msg + "It may exist the parameter comment that DOESN'T have an end comment." + getLineSeparator();\r
- msg = msg + " For example:" + getLineSeparator();\r
- msg = msg + " before (x) -- /*IF pmb.XxxId != null*/XXX_ID = /*pmb.XxxId*/3" + getLineSeparator();\r
- msg = msg + " after (o) -- /*IF pmb.XxxId != null*/XXX_ID = /*pmb.XxxId*/3/*END*/" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Doubtful Property Name]" + getLineSeparator() + propertyName + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[ConditionBean]" + getLineSeparator() + cb + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Entity]" + getLineSeparator() + entity + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Exception Message]" + getLineSeparator() + e.Message + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new QueryUpdateFailureException(msg, e);\r
- }\r
- \r
- public class QueryUpdateFailureException : RuntimeException {\r
- public QueryUpdateFailureException(String msg, Exception e) : base(msg, e) {\r
- }\r
- }\r
- \r
- protected ICommandContext createCommandContext(String twoWaySql, String[] argNames, Type[] argTypes, Object[] args) {\r
- ICommandContext context;\r
- {\r
- ${glInternalSqlParser} parser = new ${glInternalSqlParser}(twoWaySql);\r
- INode node = parser.Parse();\r
- ${glInternalCommandContextCreator} creator = new ${glInternalCommandContextCreator}(argNames, argTypes);\r
- context = creator.CreateCommandContext(args);\r
- node.Accept(context);\r
- }\r
- return context;\r
- }\r
- \r
- // ===================================================================================\r
- // General Helper\r
- // ==============\r
- protected String getLineSeparator() {\r
- return ${glSimpleSystemUtil}.GetLineSeparator();\r
- }\r
-}\r
-\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Collections;\r
-using System.Data;\r
-using System.Data.SqlTypes;\r
-using System.Reflection;\r
-using Seasar.Extension.ADO;\r
-using Seasar.Extension.ADO.Impl;\r
-using Seasar.Framework.Log;\r
-using Seasar.Framework.Util;\r
-using Seasar.Dao;\r
-\r
-using ${glPackageBaseCommon};\r
-using ${glPackageBaseCommonUtil};\r
-\r
-namespace ${glPackageBaseCommonS2DaoInternalSqlHandler} {\r
-\r
- public abstract class ${glInternalAbstractAutoHandler} : ${glInternalBasicHandler} {\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected readonly IBeanMetaData _beanMetaData;\r
- protected Object[] _bindVariables;\r
- protected Type[] _bindVariableTypes;\r
- protected DateTime _timestamp = DateTime.MinValue;\r
- protected Int32 _versionNo = Int32.MinValue;\r
- protected IPropertyType[] _propertyTypes;\r
- protected bool _versionNoAutoIncrementOnMemory = true;\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalAbstractAutoHandler}(IDataSource dataSource, ICommandFactory commandFactory,\r
- IBeanMetaData beanMetaData, IPropertyType[] propertyTypes) : base(dataSource, null, commandFactory) {\r
- // The property of Sql is treated as lazy setting at this class!\r
- DataSource = dataSource;// This is for this new method! \r
- _beanMetaData = beanMetaData;\r
- _propertyTypes = propertyTypes;\r
- }\r
-\r
- // ===============================================================================\r
- // Execute\r
- // =======\r
- public int Execute(Object[] args) {\r
- IDbConnection connection = Connection;\r
- try {\r
- return Execute(connection, args[0]);\r
- } finally {\r
- ConnectionHolderDataSource holderDataSoure = DataSource as ConnectionHolderDataSource;\r
- holderDataSoure.ReleaseConnection();\r
- holderDataSoure.CloseConnection(connection);\r
- }\r
- }\r
-\r
- public virtual int Execute(Object[] args, Type[] argTypes) {\r
- return Execute(args);\r
- }\r
-\r
- public virtual int Execute(Object[] args, Type[] argTypes, String[] argNames) {\r
- return Execute(args);\r
- }\r
-\r
- protected virtual int Execute(IDbConnection connection, object bean) {\r
- PreUpdateBean(bean);\r
- SetupBindVariables(bean);\r
- LogSql(_bindVariables, _bindVariableTypes);\r
- IDbCommand cmd = Command(connection);\r
- int ret = -1;\r
- try {\r
- BindArgs(cmd, _bindVariables, _bindVariableTypes);\r
- ret = ExecuteUpdate(cmd);\r
- } finally {\r
- Close(cmd);\r
- }\r
- PostUpdateBean(bean, ret);\r
- return ret;\r
- }\r
-\r
- // ===============================================================================\r
- // Assist Helper\r
- // =============\r
- protected virtual void PreUpdateBean(Object bean) {\r
- }\r
-\r
- protected virtual void PostUpdateBean(Object bean, int ret) {\r
- }\r
-\r
- protected abstract void SetupBindVariables(object bean);\r
-\r
- protected void SetupInsertBindVariables(object bean) {\r
- ArrayList varList = new ArrayList();\r
- ArrayList varTypeList = new ArrayList();\r
- for (int i = 0; i < _propertyTypes.Length; ++i) {\r
- IPropertyType pt = _propertyTypes[i];\r
- if (string.Compare(pt.PropertyName, BeanMetaData.TimestampPropertyName, true) == 0) {\r
- Timestamp = DateTime.Now;\r
- SetupTimestampVariableList(varList, pt);\r
- } else if (pt.PropertyName.Equals(BeanMetaData.VersionNoPropertyName)) {\r
- VersionNo = 0;\r
- varList.Add(ConversionUtil.ConvertTargetType(VersionNo, pt.PropertyInfo.PropertyType));\r
- } else {\r
- varList.Add(pt.PropertyInfo.GetValue(bean, null));\r
- }\r
- varTypeList.Add(pt.PropertyInfo.PropertyType);\r
- }\r
- BindVariables = varList.ToArray();\r
- BindVariableTypes = (Type[]) varTypeList.ToArray(typeof(Type));\r
- }\r
-\r
- protected void SetupUpdateBindVariables(Object bean) {\r
- ArrayList varList = new ArrayList();\r
- ArrayList varTypeList = new ArrayList();\r
- for (int i = 0; i < _propertyTypes.Length; ++i) {\r
- IPropertyType pt = _propertyTypes[i];\r
- if (string.Compare(pt.PropertyName, BeanMetaData.TimestampPropertyName, true) == 0) {\r
- Timestamp = DateTime.Now;\r
- SetupTimestampVariableList(varList, pt);\r
- } else if (String.Compare(pt.PropertyName, BeanMetaData.VersionNoPropertyName, true) == 0) {\r
- if (!IsVersionNoAutoIncrementOnMemory()) {\r
- continue;// because of always 'VERSION_NO = VERSION_NO + 1'\r
- }\r
- Object value = pt.PropertyInfo.GetValue(bean, null);\r
- if (value == null) {\r
- continue;// because of 'VERSION_NO = VERSION_NO + 1'\r
- }\r
- SetupVersionNoValiableList(varList, pt, bean);\r
- } else {\r
- varList.Add(pt.PropertyInfo.GetValue(bean, null));\r
- }\r
- varTypeList.Add(pt.PropertyInfo.PropertyType);\r
- }\r
- AddAutoUpdateWhereBindVariables(varList, varTypeList, bean);\r
- BindVariables = varList.ToArray();\r
- BindVariableTypes = (Type[]) varTypeList.ToArray(typeof(Type));\r
- }\r
-\r
- protected bool IsVersionNoAutoIncrementOnMemory() {\r
- return _versionNoAutoIncrementOnMemory;\r
- }\r
-\r
- protected void SetupDeleteBindVariables(object bean) {\r
- ArrayList varList = new ArrayList();\r
- ArrayList varTypeList = new ArrayList();\r
- AddAutoUpdateWhereBindVariables(varList, varTypeList, bean);\r
- BindVariables = varList.ToArray();\r
- BindVariableTypes = (Type[]) varTypeList.ToArray(typeof(Type));\r
- }\r
-\r
- protected void AddAutoUpdateWhereBindVariables(ArrayList varList, ArrayList varTypeList, Object bean) {\r
- IBeanMetaData bmd = BeanMetaData;\r
- for (int i = 0; i < bmd.PrimaryKeySize; ++i) {\r
- IPropertyType pt = bmd.GetPropertyTypeByColumnName(bmd.GetPrimaryKey(i));\r
- PropertyInfo pi = pt.PropertyInfo;\r
- varList.Add(pi.GetValue(bean, null));\r
- varTypeList.Add(pi.PropertyType);\r
- }\r
- if (bmd.HasVersionNoPropertyType) {\r
- IPropertyType pt = bmd.VersionNoPropertyType;\r
- PropertyInfo pi = pt.PropertyInfo;\r
- varList.Add(pi.GetValue(bean, null));\r
- varTypeList.Add(pi.PropertyType);\r
- }\r
- if (bmd.HasTimestampPropertyType) {\r
- IPropertyType pt = bmd.TimestampPropertyType;\r
- PropertyInfo pi = pt.PropertyInfo;\r
- varList.Add(pi.GetValue(bean, null));\r
- varTypeList.Add(pi.PropertyType);\r
- }\r
- }\r
-\r
- protected void UpdateTimestampIfNeed(Object bean) {\r
- if (Timestamp != DateTime.MinValue) {\r
- PropertyInfo pi = BeanMetaData.TimestampPropertyType.PropertyInfo;\r
- SetupTimestampPropertyInfo(pi, bean);\r
- }\r
- }\r
-\r
- protected void UpdateVersionNoIfNeed(object bean) {\r
- if (VersionNo != Int32.MinValue) {\r
- PropertyInfo pi = BeanMetaData.VersionNoPropertyType.PropertyInfo;\r
- SetupVersionNoPropertyInfo(pi, bean);\r
- }\r
- }\r
-\r
- protected void SetupTimestampVariableList(IList varList, IPropertyType pt) {\r
- if (pt.PropertyType == typeof(DateTime)) {\r
- varList.Add(Timestamp);\r
- } else if (pt.PropertyType == typeof(DateTime?)) {\r
- varList.Add(Timestamp);\r
- } else if (pt.PropertyType == typeof(SqlDateTime)) {\r
- varList.Add(new SqlDateTime(Timestamp));\r
- } else {\r
- throw new WrongPropertyTypeOfTimestampException(pt.PropertyName, pt.PropertyType.Name);\r
- }\r
- }\r
-\r
- protected void SetupTimestampPropertyInfo(PropertyInfo pi, object bean) {\r
- if (pi.PropertyType == typeof(DateTime)) {\r
- pi.SetValue(bean, Timestamp, null);\r
- } else if (pi.PropertyType == typeof(DateTime?)) {\r
- pi.SetValue(bean, new DateTime?(Timestamp), null);\r
- } else if (pi.PropertyType == typeof(SqlDateTime)) {\r
- pi.SetValue(bean, new SqlDateTime(Timestamp), null);\r
- } else {\r
- throw new WrongPropertyTypeOfTimestampException(pi.Name, pi.PropertyType.Name);\r
- }\r
- }\r
-\r
- protected void SetupVersionNoValiableList(IList varList, IPropertyType pt, object bean) {\r
- object value = pt.PropertyInfo.GetValue(bean, null);\r
- int intValue = Convert.ToInt32(value) + 1;\r
- VersionNo = intValue;\r
- varList.Add(ConversionUtil.ConvertTargetType(VersionNo, pt.PropertyInfo.PropertyType));\r
- }\r
-\r
- protected void SetupVersionNoPropertyInfo(PropertyInfo pi, object bean) {\r
- pi.SetValue(bean, ConversionUtil.ConvertTargetType(VersionNo, pi.PropertyType), null);\r
- }\r
-\r
- // ===============================================================================\r
- // Accessor\r
- // ========\r
- public new IDataSource DataSource {// Attension! This is new method!\r
- get { return base.DataSource; }\r
- set {\r
- if (value is ConnectionHolderDataSource) {\r
- base.DataSource = value;\r
- } else {\r
- base.DataSource = new ConnectionHolderDataSource(value);\r
- }\r
- }\r
- }\r
-\r
- public IBeanMetaData BeanMetaData {\r
- get { return _beanMetaData; }\r
- }\r
-\r
- protected object[] BindVariables {\r
- get { return _bindVariables; }\r
- set { _bindVariables = value; }\r
- }\r
-\r
- protected Type[] BindVariableTypes {\r
- get { return _bindVariableTypes; }\r
- set { _bindVariableTypes = value; }\r
- }\r
-\r
- protected DateTime Timestamp {\r
- get { return _timestamp; }\r
- set { _timestamp = value; }\r
- }\r
-\r
- protected int VersionNo {\r
- get { return _versionNo; }\r
- set { _versionNo = value; }\r
- }\r
-\r
- protected IPropertyType[] PropertyTypes {\r
- get { return _propertyTypes; }\r
- set { _propertyTypes = value; }\r
- }\r
-\r
- public bool VersionNoAutoIncrementOnMemory {\r
- set { _versionNoAutoIncrementOnMemory = value; }\r
- }\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System;\r
-using System.Data;\r
-using System.Data.Common;\r
-using System.Reflection;\r
-using System.Text;\r
-\r
-using Seasar.Framework.Exceptions;\r
-using Seasar.Framework.Util;\r
-using Seasar.Extension.ADO;\r
-using Seasar.Extension.ADO.Types;\r
-\r
-using ${glPackageBaseCommon};\r
-using ${glPackageBaseCommonCBean};\r
-using ${glPackageBaseCommonCBeanOutsidesql};\r
-using ${glPackageBaseCommonException};\r
-using ${glPackageBaseCommonUtil};\r
-using ${glPackageBaseCommonS2DaoInternalUtil};\r
-\r
-namespace ${glPackageBaseCommonS2DaoInternalSqlHandler} {\r
-\r
- public class ${glInternalBasicHandler} {\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- private IDataSource _dataSource;\r
- private String _sql;\r
- private ICommandFactory _commandFactory;\r
- private Object[] _loggingMessageSqlArgs;\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalBasicHandler}(IDataSource ds, String sql, ICommandFactory commandFactory) {\r
- DataSource = ds;\r
- Sql = sql;\r
- CommandFactory = commandFactory;\r
- }\r
-\r
- // ===============================================================================\r
- // Common Logic\r
- // ============\r
- protected virtual void BindArgs(IDbCommand command, Object[] args, Type[] argTypes) {\r
- if (_loggingMessageSqlArgs == null) { _loggingMessageSqlArgs = args; } // Save arguments for logging.\r
- if (args == null) return;\r
- string[] argNames = _commandFactory.GetArgNames(command, args);\r
- for (int i = 0; i < args.Length; ++i) {\r
- IValueType valueType = ValueTypes.GetValueType(argTypes[i]);\r
- try {\r
- valueType.BindValue(command, argNames[i], args[i]);\r
- } catch (Exception e) {\r
- HandleDbException(e, command);\r
- }\r
- }\r
- }\r
-\r
- protected virtual Type[] GetArgTypes(Object[] args) {\r
- if (args == null) {\r
- return null;\r
- }\r
- Type[] argTypes = new Type[args.Length];\r
- for (int i = 0; i < args.Length; ++i) {\r
- object arg = args[i];\r
- if (arg != null) {\r
- argTypes[i] = arg.GetType();\r
- }\r
- }\r
- return argTypes;\r
- }\r
-\r
- protected virtual string GetCompleteSql(Object[] args) {\r
- return ${glInternalBindVariableUtil}.GetCompleteSql(_sql, args);\r
- }\r
-\r
- protected virtual String GetBindVariableText(Object bindVariable) {\r
- return ${glInternalBindVariableUtil}.GetBindVariableText(bindVariable);\r
- }\r
-\r
- protected virtual void LogSql(Object[] args, Type[] argTypes) {\r
- if (${glQLog}.IsLogEnabled()) {\r
- String completeSql = GetCompleteSql(args);\r
- if (IsContainsLineSeparatorInSql()) {\r
- ${glQLog}.Log(GetLineSeparator() + completeSql);\r
- } else {\r
- ${glQLog}.Log(completeSql);\r
- }\r
- }\r
- }\r
-\r
- protected bool IsContainsLineSeparatorInSql() {\r
- return Sql != null ? Sql.Contains(GetLineSeparator()) : false;\r
- }\r
-\r
-\r
- // ===============================================================================\r
- // Exception Handler\r
- // =================\r
- protected void HandleDbException(Exception e, IDbCommand cmd) {\r
- HandleDbException(e, cmd, false);\r
- }\r
-\r
- protected void HandleDbException(Exception e, IDbCommand cmd, bool uniqueConstraintValid) {\r
- String completeSql = BuildLoggingMessageSql();\r
- new DbExceptionHandler().HandleDbException(e, cmd, uniqueConstraintValid, completeSql);\r
- }\r
-\r
- protected virtual String BuildLoggingMessageSql() {\r
- String completeSql = null;\r
- if (_sql != null && _loggingMessageSqlArgs != null) {\r
- try {\r
- completeSql = GetCompleteSql(_loggingMessageSqlArgs);\r
- } catch (Exception) {\r
- }\r
- }\r
- return completeSql;\r
- }\r
- \r
- // ===============================================================================\r
- // ADO.NET Delegator\r
- // =================\r
- protected virtual Object ExecuteScalar(IDbCommand cmd) {\r
- try {\r
- return CommandFactory.ExecuteScalar(DataSource, cmd);\r
- } catch (Exception e) {\r
- HandleDbException(e, cmd);\r
- return null; // Unreachable!\r
- }\r
- }\r
-\r
- protected virtual Object ExecuteNonQuery(IDbCommand cmd) {\r
- try {\r
- return CommandFactory.ExecuteNonQuery(DataSource, cmd);\r
- } catch (Exception e) {\r
- HandleDbException(e, cmd);\r
- return null; // Unreachable!\r
- }\r
- }\r
-\r
- protected virtual int ExecuteUpdate(IDbCommand cmd) {\r
- try {\r
- return CommandFactory.ExecuteNonQuery(DataSource, cmd);\r
- } catch (Exception e) {\r
- HandleDbException(e, cmd, true);\r
- return 0; // Unreachable!\r
- }\r
- }\r
-\r
- protected virtual void Close(IDbConnection conn) {\r
- try {\r
- DataSource.CloseConnection(conn);\r
- } catch (Exception e) {\r
- HandleDbException(e, null);\r
- }\r
- }\r
-\r
- protected virtual void Close(IDbCommand cmd) {\r
- try {\r
- CommandUtil.Close(cmd);\r
- } catch (Exception e) {\r
- HandleDbException(e, cmd);\r
- }\r
- }\r
-\r
- protected virtual void Close(IDataReader dataReader) {\r
- try {\r
- DataReaderUtil.Close(dataReader);\r
- } catch (Exception e) {\r
- HandleDbException(e, null);\r
- }\r
- }\r
-\r
- protected IDbConnection Connection {\r
- get {\r
- if (_dataSource == null) {\r
- throw new SystemException("The dataSource should not be null at InternalBasicHandler!");\r
- }\r
- try {\r
- return DataSourceUtil.GetConnection(_dataSource);\r
- } catch (Exception e) {\r
- HandleDbException(e, null);\r
- return null; // Unreachable!\r
- }\r
- }\r
- }\r
-\r
- protected virtual IDbCommand Command(IDbConnection connection) {\r
- if (_sql == null) {\r
- throw new SystemException("The sql should not be null at InternalBasicHandler!!");\r
- }\r
- try {\r
- return _commandFactory.CreateCommand(connection, _sql);\r
- } catch (Exception e) {\r
- HandleDbException(e, null);\r
- return null; // Unreachable!\r
- }\r
- }\r
-\r
- // ===============================================================================\r
- // General Helper\r
- // ==============\r
- protected String GetLineSeparator() {\r
- return ${glSimpleSystemUtil}.GetLineSeparator();\r
- }\r
-\r
- // ===============================================================================\r
- // Accessor\r
- // ========\r
- public IDataSource DataSource {\r
- get { return _dataSource; }\r
- set { _dataSource = value; }\r
- }\r
-\r
- public String Sql {\r
- get { return _sql; }\r
- set { _sql = value; }\r
- }\r
-\r
- public ICommandFactory CommandFactory {\r
- get { return _commandFactory; }\r
- set { _commandFactory = value; }\r
- }\r
-\r
- public Object[] LoggingMessageSqlArgs {\r
- get { return _loggingMessageSqlArgs; }\r
- set { _loggingMessageSqlArgs = value; }\r
- }\r
- }\r
-\r
- public class DbExceptionHandler {\r
-\r
- public void HandleDbException(Exception e, IDbCommand cmd) {\r
- HandleDbException(e, cmd, false);\r
- }\r
-\r
- public void HandleDbException(Exception e, IDbCommand cmd, bool uniqueConstraintValid) {\r
- // [UnderReview]: How do I get unique constraint on ADO.NET?\r
- // if (uniqueConstraintValid && IsUniqueConstraintException(e)) {\r
- // ThrowEntityAlreadyExistsException(e, cmd, resource);\r
- // }\r
- HandleDbException(e, cmd, false, null);\r
- }\r
-\r
- public void HandleDbException(Exception e, IDbCommand cmd, bool uniqueConstraintValid, String completeSql) {\r
- // [UnderReview]: How do I get unique constraint on ADO.NET?\r
- // if (uniqueConstraintValid && IsUniqueConstraintException(e)) {\r
- // ThrowEntityAlreadyExistsException(e, cmd, resource);\r
- // }\r
- ThrowSQLFailureException(e, cmd, completeSql);\r
- }\r
-\r
- protected bool IsUniqueConstraintException(DbException e) {\r
- // [UnderReview]: How do I get unique constraint on ADO.NET?\r
- // return ${glConditionBeanContextName}.IsUniqueConstraintException(ExtractSQLState(e), e.ErrorCode);\r
- return false;\r
- }\r
-\r
- protected void ThrowSQLFailureException(Exception e, IDbCommand cmd, String completeSql) {\r
- String msg = "Look! Read the message below." + GetLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + GetLineSeparator();\r
- msg = msg + "The SQL failed to execute!" + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Advice]" + GetLineSeparator();\r
- msg = msg + "Please confirm the Exception message." + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- // msg = msg + "[SQLState]" + GetLineSeparator() + ExtractSQLState(e) + GetLineSeparator();\r
- // msg = msg + GetLineSeparator();\r
- // msg = msg + "[ErrorCode]" + GetLineSeparator() + e.ErrorCode + GetLineSeparator();\r
- // msg = msg + GetLineSeparator();\r
- msg = msg + "[Exception]" + GetLineSeparator() + e.GetType().FullName + GetLineSeparator();\r
- msg = msg + e.Message + GetLineSeparator();\r
- int? errorCode = ExtractErrorCode(e);\r
- if (errorCode != null) {\r
- msg = msg + " ErrorCode = " + errorCode + GetLineSeparator();\r
- }\r
- if (e is DbException) {\r
- msg = msg + " HelpLink = " + ((DbException)e).HelpLink + GetLineSeparator();\r
- }\r
- Exception nextEx = e.InnerException;\r
- if (nextEx != null) {\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[NextException]" + GetLineSeparator();\r
- msg = msg + nextEx.GetType().FullName + GetLineSeparator();\r
- msg = msg + nextEx.Message + GetLineSeparator();\r
- errorCode = ExtractErrorCode(nextEx);\r
- if (errorCode != null) {\r
- msg = msg + " ErrorCode = " + errorCode + GetLineSeparator();\r
- }\r
- if (nextEx is DbException) {\r
- msg = msg + " HelpLink = " + ((DbException)nextEx).HelpLink + GetLineSeparator();\r
- }\r
- Exception nextNextEx = nextEx.InnerException;\r
- if (nextNextEx != null) {\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[NextNextException]" + GetLineSeparator();\r
- msg = msg + nextNextEx.GetType().FullName + GetLineSeparator();\r
- msg = msg + nextNextEx.Message + GetLineSeparator();\r
- errorCode = ExtractErrorCode(nextNextEx);\r
- if (errorCode != null) {\r
- msg = msg + " ErrorCode = " + errorCode + GetLineSeparator();\r
- }\r
- if (nextNextEx is DbException) {\r
- msg = msg + " HelpLink = " + ((DbException)nextNextEx).HelpLink + GetLineSeparator();\r
- }\r
- }\r
- }\r
- Object invokeName = ExtractBehaviorInvokeName();\r
- if (invokeName != null) {\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Behavior]" + GetLineSeparator();\r
- msg = msg + invokeName + GetLineSeparator();\r
- }\r
- if (HasConditionBean()) {\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[ConditionBean]" + GetLineSeparator();\r
- msg = msg + GetConditionBean().GetType().FullName + GetLineSeparator();\r
- }\r
- if (HasOutsideSqlContext()) {\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[OutsideSqlPath]" + GetLineSeparator();\r
- msg = msg + GetOutsideSqlContext().OutsideSqlPath + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[ParameterBean]" + GetLineSeparator();\r
- Object pmb = GetOutsideSqlContext().ParameterBean;\r
- if (pmb != null) {\r
- msg = msg + pmb.GetType().FullName + GetLineSeparator();\r
- msg = msg + pmb + GetLineSeparator();\r
- } else {\r
- msg = msg + pmb + GetLineSeparator();\r
- }\r
- }\r
- if (cmd != null) {\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Statement]" + GetLineSeparator() + cmd + GetLineSeparator();\r
- }\r
- if (completeSql != null) {\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Display SQL]" + GetLineSeparator();\r
- msg = msg + completeSql + GetLineSeparator();\r
- }\r
- msg = msg + "* * * * * * * * * */";\r
- throw new ${glSQLFailureException}(msg, e);\r
- }\r
-\r
- // protected String ExtractSQLState(DbException e) {\r
- // return "" + e.ErrorCode; // [UnderReview]: Where is SQLState?\r
-\r
- // // Next\r
- // DbException nextEx = e.InnerException;\r
- // if (nextEx == null) {\r
- // return null;\r
- // }\r
- // sqlState = nextEx.getSQLState();\r
- // if (sqlState != null) {\r
- // return sqlState;\r
- // }\r
-\r
- // // Next Next\r
- // DbException nextNextEx = nextEx.InnerException;\r
- // if (nextNextEx == null) {\r
- // return null;\r
- // }\r
- // sqlState = nextNextEx.getSQLState();\r
- // if (sqlState != null) {\r
- // return sqlState;\r
- // }\r
-\r
- // // Next Next Next\r
- // DbException nextNextNextEx = nextNextEx.InnerException;\r
- // if (nextNextNextEx == null) {\r
- // return null;\r
- // }\r
- // sqlState = nextNextNextEx.getSQLState();\r
- // if (sqlState != null) {\r
- // return sqlState;\r
- // }\r
-\r
- // // It doesn't use recursive call by design because JDBC is unpredictable fellow.\r
- // return null;\r
- // }\r
-\r
- protected int? ExtractErrorCode(Exception e) {\r
- String expName = e.GetType().Name;\r
- if (expName.Contains("Oracle") || expName.Contains("MySQL")) {\r
- try {\r
- PropertyInfo pi = e.GetType().GetProperty("Number");\r
- if (pi != null) {\r
- Object result = pi.GetValue(e, null);\r
- if (result != null && result is int) {\r
- return (int)result;\r
- }\r
- }\r
- } catch (Exception) {\r
- }\r
- }\r
- if (e is DbException) {\r
- return ((DbException)e).ErrorCode;\r
- }\r
- return null;\r
- }\r
-\r
- protected String ExtractBehaviorInvokeName() {\r
- Object behaviorInvokeName = ${glInternalMapContextName}.GetObject("df:BehaviorInvokeName");\r
- if (behaviorInvokeName == null) {\r
- return null;\r
- }\r
- Object clientInvokeName = ${glInternalMapContextName}.GetObject("df:ClientInvokeName");\r
- Object byPassInvokeName = ${glInternalMapContextName}.GetObject("df:ByPassInvokeName");\r
- StringBuilder sb = new StringBuilder();\r
- bool existsPath = false;\r
- if (clientInvokeName != null) {\r
- existsPath = true;\r
- sb.Append(clientInvokeName);\r
- }\r
- if (byPassInvokeName != null) {\r
- existsPath = true;\r
- sb.Append(byPassInvokeName);\r
- }\r
- sb.Append(behaviorInvokeName);\r
- if (existsPath) {\r
- sb.Append("...");\r
- }\r
- return sb.ToString();\r
- }\r
-\r
- protected bool HasConditionBean() {\r
- return ${glConditionBeanContextName}.IsExistConditionBeanOnThread();\r
- }\r
-\r
- protected ${glConditionBeanInterfaceName} GetConditionBean() {\r
- return ${glConditionBeanContextName}.GetConditionBeanOnThread();\r
- }\r
-\r
- protected bool HasOutsideSqlContext() {\r
- return ${glOutsideSqlContextName}.IsExistOutsideSqlContextOnThread();\r
- }\r
-\r
- protected ${glOutsideSqlContextName} GetOutsideSqlContext() {\r
- return ${glOutsideSqlContextName}.GetOutsideSqlContextOnThread();\r
- }\r
-\r
- protected String GetLineSeparator() {\r
- return ${glSimpleSystemUtil}.GetLineSeparator();\r
- }\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System;\r
-using System.Data;\r
-using Seasar.Framework.Log;\r
-using Seasar.Framework.Util;\r
-using Seasar.Framework.Exceptions;\r
-using Seasar.Extension.ADO;\r
-using Seasar.Extension.ADO.Impl;\r
-\r
-using ${glPackageBaseCommon};\r
-\r
-namespace ${glPackageBaseCommonS2DaoInternalSqlHandler} {\r
-\r
- public class ${glInternalBasicSelectHandler} : ${glInternalBasicHandler} {\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected IDataReaderFactory _dataReaderFactory = BasicDataReaderFactory.INSTANCE;\r
- protected IDataReaderHandler _dataReaderHandler;\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalBasicSelectHandler}(IDataSource dataSource\r
- , String sql\r
- , IDataReaderHandler dataReaderHandler\r
- , ICommandFactory commandFactory\r
- , IDataReaderFactory dataReaderFactory)\r
- : base(dataSource, sql, commandFactory) {\r
- DataReaderHandler = dataReaderHandler;\r
- DataReaderFactory = dataReaderFactory;\r
- }\r
-\r
- // ===============================================================================\r
- // Execute\r
- // =======\r
- public virtual Object Execute(Object[] args) {\r
- return Execute(args, GetArgTypes(args));\r
- }\r
-\r
- public virtual Object Execute(Object[] args, Type[] argTypes) {\r
- IDbConnection conn = Connection;\r
- try {\r
- return Execute(conn, args, argTypes);\r
- } finally {\r
- Close(conn);\r
- }\r
- }\r
-\r
- public virtual Object Execute(Object[] args, Type[] argTypes, String[] argNames) {\r
- return Execute(args, argTypes);\r
- }\r
-\r
- protected virtual Object Execute(IDbConnection conn, object[] args, Type[] argTypes) {\r
- LogSql(args, argTypes);\r
- IDbCommand cmd = null;\r
- try {\r
- cmd = Command(conn);\r
- BindArgs(cmd, args, argTypes);\r
- return Execute(cmd, args);\r
- } finally {\r
- Close(cmd);\r
- }\r
- }\r
-\r
- protected virtual Object Execute(IDbCommand cmd, Object[] args) {\r
- if (_dataReaderHandler == null) {\r
- throw new EmptyRuntimeException("dataReaderHandler");\r
- }\r
- IDataReader dataReader = null;\r
- try {\r
- if (_dataReaderHandler is ObjectDataReaderHandler) {// CSharp specific\r
- return ExecuteScalar(cmd);\r
- } else {\r
- try {\r
- dataReader = CreateDataReader(cmd);\r
- return _dataReaderHandler.Handle(dataReader);\r
- } catch (Exception e) {\r
- HandleDbException(e, cmd);\r
- return null; // Unreachable!\r
- }\r
- }\r
- } finally {\r
- Close(dataReader);\r
- }\r
- }\r
-\r
- protected virtual IDataReader CreateDataReader(IDbCommand cmd) {\r
- return _dataReaderFactory.CreateDataReader(DataSource, cmd);\r
- }\r
-\r
- // ===============================================================================\r
- // Accessor\r
- // ========\r
- public IDataReaderFactory DataReaderFactory {\r
- get { return _dataReaderFactory; }\r
- set { _dataReaderFactory = value; }\r
- }\r
-\r
- public IDataReaderHandler DataReaderHandler {\r
- get { return _dataReaderHandler; }\r
- set { _dataReaderHandler = value; }\r
- }\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System;\r
-using System.Data;\r
-using Seasar.Extension.ADO;\r
-using Seasar.Extension.ADO.Impl;\r
-using Seasar.Framework.Log;\r
-using Seasar.Framework.Util;\r
-\r
-using ${glPackageBaseCommon};\r
-\r
-namespace ${glPackageBaseCommonS2DaoInternalSqlHandler} {\r
-\r
- public class ${glInternalBasicUpdateHandler} : ${glInternalBasicHandler} {\r
-\r
- // ===============================================================================\r
- // Definition\r
- // ==========\r
- private static readonly log4net.ILog _log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);\r
- \r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalBasicUpdateHandler}(IDataSource dataSource, string sql, ICommandFactory commandFactory)\r
- : base(dataSource, sql, commandFactory) {\r
- }\r
- \r
- // ===============================================================================\r
- // Execute\r
- // =======\r
- public virtual int Execute(object[] args) {\r
- return Execute(args, GetArgTypes(args));\r
- }\r
-\r
- public virtual int Execute(object[] args, Type[] argTypes) {\r
- LogSql(args, argTypes);\r
- IDbConnection conn = Connection;\r
- try {\r
- return Execute(conn, args, argTypes);\r
- } finally {\r
- Close(conn);\r
- }\r
- }\r
-\r
- public virtual int Execute(object[] args, Type[] argTypes, string[] argNames) {\r
- return Execute(args, argTypes);\r
- }\r
-\r
- protected virtual int Execute(IDbConnection connection, object[] args, Type[] argTypes) {\r
- IDbCommand cmd = Command(connection);\r
- try {\r
- BindArgs(cmd, args, argTypes);\r
- return ExecuteUpdate(cmd);\r
- } finally {\r
- Close(cmd);\r
- }\r
- }\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System;\r
-using System.Data;\r
-\r
-using Seasar.Dao;\r
-using Seasar.Extension.ADO;\r
-using Seasar.Extension.ADO.Impl;\r
-using Seasar.Framework.Util;\r
-\r
-using ${glPackageBaseCommon};\r
-using ${glPackageBaseCommonUtil};\r
-\r
-namespace ${glPackageBaseCommonS2DaoInternalSqlHandler} {\r
-\r
- public class ${glInternalCommandContextHandler} : ${glInternalBasicHandler} {\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected ICommandContext commandContext;\r
- \r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalCommandContextHandler}(IDataSource dataSource, ICommandFactory commandFactory, ICommandContext commandContext)\r
- : base(dataSource, commandContext.Sql, commandFactory) {\r
- this.commandContext = commandContext;\r
- }\r
-\r
- // ===============================================================================\r
- // Execute\r
- // =======\r
- public int Execute(Object[] args) {\r
- IDbConnection conn = Connection;\r
- try {\r
- return Execute(conn, commandContext);\r
- } finally {\r
- Close(conn);\r
- }\r
- }\r
-\r
- protected int Execute(IDbConnection conn, ICommandContext context) {\r
- LogSql(context.BindVariables, GetArgTypes(context.BindVariables));\r
- IDbCommand cmd = Command(conn);\r
- try {\r
- BindArgs(cmd, context.BindVariables, context.BindVariableTypes);\r
- return ExecuteUpdate(cmd);\r
- } finally {\r
- Close(cmd);\r
- }\r
- }\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System;\r
-using System.Collections;\r
-using System.Data;\r
-using System.Data.SqlTypes;\r
-using System.Reflection;\r
-using Seasar.Extension.ADO;\r
-using Seasar.Extension.ADO.Impl;\r
-using Seasar.Dao;\r
-\r
-namespace ${glPackageBaseCommonS2DaoInternalSqlHandler} {\r
-\r
- public class ${glInternalDeleteAutoHandler} : ${glInternalAbstractAutoHandler} {\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalDeleteAutoHandler}(IDataSource dataSource, ICommandFactory commandFactory, IBeanMetaData beanMetaData, IPropertyType[] propertyTypes)\r
- : base(dataSource, commandFactory, beanMetaData, propertyTypes) {\r
- }\r
- \r
- // ===============================================================================\r
- // Override\r
- // ========\r
- protected override void SetupBindVariables(object bean) {\r
- SetupDeleteBindVariables(bean);\r
- LoggingMessageSqlArgs = _bindVariables;\r
- }\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System;\r
-using System.Collections;\r
-using System.Data;\r
-using System.Data.SqlTypes;\r
-using System.Reflection;\r
-using Seasar.Extension.ADO;\r
-using Seasar.Extension.ADO.Impl;\r
-using Seasar.Dao;\r
-\r
-namespace ${glPackageBaseCommonS2DaoInternalSqlHandler} {\r
-\r
- public class ${glInternalInsertAutoHandler} : ${glInternalAbstractAutoHandler} {\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalInsertAutoHandler}(IDataSource dataSource, ICommandFactory commandFactory, IBeanMetaData beanMetaData, IPropertyType[] propertyTypes)\r
- : base(dataSource, commandFactory, beanMetaData, propertyTypes) {\r
- }\r
- \r
- // ===============================================================================\r
- // Override\r
- // ========\r
- protected override void SetupBindVariables(Object bean) {\r
- SetupInsertBindVariables(bean);\r
- LoggingMessageSqlArgs = _bindVariables;\r
- }\r
-\r
- protected override void PreUpdateBean(Object bean) {\r
- IIdentifierGenerator generator = BeanMetaData.IdentifierGenerator;\r
- if (generator.IsSelfGenerate) {\r
- generator.SetIdentifier(bean, DataSource);\r
- }\r
- }\r
-\r
- protected override void PostUpdateBean(Object bean, int ret) {\r
- IIdentifierGenerator generator = BeanMetaData.IdentifierGenerator;\r
- if (!generator.IsSelfGenerate) {\r
- generator.SetIdentifier(bean, DataSource);\r
- }\r
- UpdateVersionNoIfNeed(bean);\r
- UpdateTimestampIfNeed(bean);\r
- }\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System;\r
-using System.Data;\r
-using System.Data.OleDb;\r
-using System.Data.SqlClient;\r
-using Seasar.Framework.Util;\r
-using Seasar.Extension.ADO;\r
-using Seasar.Extension.ADO.Types;\r
-\r
-using ${glPackageBaseCommonJavaLike};\r
-using ${glPackageBaseCommonS2Dao};\r
-\r
-namespace ${glPackageBaseCommonS2DaoInternalSqlHandler} {\r
-\r
- public class ${glInternalProcedureHandler} : ${glInternalBasicSelectHandler} {\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected readonly InternalProcedureMetaData _procedureMetaData;\r
- \r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalProcedureHandler}(IDataSource dataSource, String sql,\r
- IDataReaderHandler dataReaderHandler, ICommandFactory commandFactory,\r
- IDataReaderFactory dataReaderFactory, InternalProcedureMetaData procedureMetaData)\r
- : base(dataSource, sql, dataReaderHandler, commandFactory, dataReaderFactory) {\r
- this._procedureMetaData = procedureMetaData;\r
- }\r
-\r
- // ===============================================================================\r
- // Execute\r
- // =======\r
- protected override Object Execute(IDbConnection conn, Object[] args, Type[] argTypes) {\r
- Object dto = GetArgumentDto(args);\r
- LogSql(args, argTypes);\r
- IDbCommand dbCommand = null;\r
- try {\r
- try {\r
- dbCommand = PrepareCallableStatement(conn, this.Sql);\r
- } catch (Exception e) {\r
- HandleDbException(e, dbCommand, false);\r
- }\r
- Object returnValue = null;\r
- int additionalParamCount = 0;\r
- if (_procedureMetaData.HasReturnParameterType) {\r
- Type returnType = _procedureMetaData.ReturnParameterType;\r
- String returnParamName = BindReturnValues(dbCommand, "RetValue", GetDbValueType(returnType));\r
- try {\r
- BindParamters(dbCommand, dto);\r
- } catch (Exception e) {\r
- HandleDbException(e, dbCommand, false);\r
- }\r
- ExecuteNonQuery(dbCommand);\r
- IDbDataParameter param = (IDbDataParameter)dbCommand.Parameters[returnParamName];\r
- returnValue = param.Value;\r
- additionalParamCount = 1;\r
- } else {\r
- try {\r
- BindParamters(dbCommand, dto);\r
- } catch (Exception e) {\r
- HandleDbException(e, dbCommand, false);\r
- }\r
- ExecuteNonQuery(dbCommand);\r
- }\r
- try {\r
- return HandleOutParameters(dbCommand, dto, returnValue, additionalParamCount);\r
- } catch (Exception e) {\r
- HandleDbException(e, dbCommand, false);\r
- return null; // Unreachable!\r
- }\r
- } finally {\r
- try {\r
- Close(dbCommand);\r
- } finally {\r
- Close(conn);\r
- }\r
- }\r
- }\r
-\r
- protected Object GetArgumentDto(Object[] args) {\r
- if (args.Length == 0) {\r
- return null;\r
- }\r
- if (args.Length == 1) {\r
- if (args[0] == null) {\r
- throw new IllegalArgumentException("args[0] should not be null!");\r
- }\r
- return args[0];\r
- }\r
- throw new IllegalArgumentException("args");\r
- }\r
-\r
- protected override String GetCompleteSql(Object[] args) { // for Procedure Call\r
- String sql = this.Sql;\r
- Object dto = GetArgumentDto(args);\r
- StringBuilder sb = new StringBuilder(100);\r
- int size = _procedureMetaData.ParameterTypeSize;\r
- if (size == 0 || dto == null) {\r
- return "call " + sql + "()"; // Because the procedure name is SQL at CSharp!\r
- }\r
- StringBuilder tmpSb = new StringBuilder();\r
- for (int i = 0; i < size; i++) {\r
- tmpSb.append(", ?");\r
- }\r
- tmpSb.delete(0, ", ".Length);\r
- sql = "call " + sql + "(" + tmpSb.toString() + ")"; // Because the procedure name is SQL at CSharp!\r
- int pos = 0;\r
- int pos2 = 0;\r
- for (int i = 0; i < size; i++) {\r
- InternalProcedureParameterType ppt = _procedureMetaData.GetParameterType(i);\r
- pos2 = sql.IndexOf('?', pos);\r
- if (pos2 < 0) {\r
- break;\r
- }\r
- sb.append(sql.Substring(pos, (pos2 - pos)));\r
- pos = pos2 + 1;\r
- if (ppt.IsInType) {\r
- sb.append(GetBindVariableText(ppt.GetValue(dto)));\r
- } else {\r
- sb.append(sql.Substring(pos2, 1));\r
- }\r
- }\r
- sb.append(sql.Substring(pos));\r
- return sb.toString();\r
- }\r
-\r
- protected IDbCommand PrepareCallableStatement(IDbConnection conn, String sql) {\r
- if (this.Sql == null) { throw new IllegalStateException("The SQL should not be null!"); }\r
- IDbCommand dbCommand = CommandFactory.CreateCommand(conn, sql);\r
- dbCommand.CommandType = CommandType.StoredProcedure;\r
- return dbCommand;\r
- }\r
-\r
- protected void BindParamters(IDbCommand command, Object dto) {\r
- int size = _procedureMetaData.ParameterTypeSize;\r
- for (int i = 0; i < size; i++) {\r
- InternalProcedureParameterType ppt = _procedureMetaData.GetParameterType(i);\r
- String parameterName = ppt.ParameterName;\r
- InternalBindVariableType vt = GetBindVariableType(command);\r
- switch (vt) {\r
- case InternalBindVariableType.QuestionWithParam:\r
- parameterName = "?" + parameterName;\r
- break;\r
- case InternalBindVariableType.ColonWithParam:\r
- if ("OracleCommand".Equals(command.GetType().Name)) {\r
- parameterName = string.Empty + parameterName;\r
- } else {\r
- parameterName = ":" + parameterName;\r
- }\r
- break;\r
- default:\r
- parameterName = "@" + parameterName;\r
- break;\r
- }\r
-\r
- DbType dbType = GetDbValueType(ppt.ParameterPropertyType);\r
- IDbDataParameter parameter = command.CreateParameter();\r
- parameter.ParameterName = parameterName;\r
- parameter.Direction = ppt.ParameterDirectionType;\r
- parameter.Value = ppt.GetValue(dto);\r
- parameter.DbType = dbType;\r
-\r
- // If this setting is valid on MySQL, the exception occured.\r
- if (!"MySqlCommand".Equals(command.GetType().Name)) {\r
- parameter.Size = 4096;\r
- }\r
-\r
- if ("OleDbCommand".Equals(command.GetType().Name) && dbType == DbType.String) {\r
- OleDbParameter oleDbParam = parameter as OleDbParameter;\r
- oleDbParam.OleDbType = OleDbType.VarChar;\r
- } else if ("SqlCommand".Equals(command.GetType().Name) && dbType == DbType.String) {\r
- SqlParameter sqlDbParam = parameter as SqlParameter;\r
- sqlDbParam.SqlDbType = SqlDbType.VarChar;\r
- }\r
- command.Parameters.Add(parameter);\r
- }\r
- }\r
-\r
- protected InternalBindVariableType GetBindVariableType(IDbCommand cmd) {\r
- String name = cmd.GetType().Name;\r
- if ("SqlCommand".Equals(name) || "DB2Command".Equals(name)) {\r
- return InternalBindVariableType.AtmarkWithParam;\r
- } else if ("OracleCommand".Equals(name)) {\r
- return InternalBindVariableType.ColonWithParam;\r
- } else if ("MySqlCommand".Equals(name)) {\r
- return InternalBindVariableType.QuestionWithParam;\r
- } else if ("NpgsqlCommand".Equals(name)) {\r
- return InternalBindVariableType.ColonWithParam;\r
- } else if ("FbCommand".Equals(name)) {\r
- return InternalBindVariableType.Question;\r
- } else {\r
- return InternalBindVariableType.Question;\r
- }\r
- }\r
-\r
- public enum InternalBindVariableType {\r
- None,\r
- AtmarkWithParam,\r
- Question,\r
- QuestionWithParam,\r
- ColonWithParam\r
- }\r
-\r
- protected String BindReturnValues(IDbCommand command, string parameterName, DbType dbType) {\r
- IDbDataParameter parameter = command.CreateParameter();\r
- parameter.ParameterName = parameterName;\r
- parameter.Direction = ParameterDirection.ReturnValue;\r
- parameter.DbType = dbType;\r
- parameter.Size = 4096;\r
- if ("OleDbCommand".Equals(command.GetType().Name) && dbType == DbType.String) {\r
- OleDbParameter oleDbParam = parameter as OleDbParameter;\r
- oleDbParam.OleDbType = OleDbType.VarChar;\r
- } else if ("SqlDbCommand".Equals(command.GetType().Name) && dbType == DbType.String) {\r
- SqlParameter sqlDbParam = parameter as SqlParameter;\r
- sqlDbParam.SqlDbType = SqlDbType.VarChar;\r
- }\r
- command.Parameters.Add(parameter);\r
- return parameter.ParameterName;\r
- }\r
-\r
- protected DbType GetDbValueType(Type type) {\r
- if (type == typeof(Byte) || type.FullName == "System.Byte&")\r
- return DbType.Byte;\r
- if (type == typeof(SByte) || type.FullName == "System.SByte&")\r
- return DbType.SByte;\r
- if (type == typeof(Int16) || type.FullName == "System.Int16&")\r
- return DbType.Int16;\r
- if (type == typeof(Int32) || type.FullName == "System.Int32&")\r
- return DbType.Int32;\r
- if (type == typeof(Int64) || type.FullName == "System.Int64&")\r
- return DbType.Int64;\r
- if (type == typeof(Single) || type.FullName == "System.Single&")\r
- return DbType.Single;\r
- if (type == typeof(Double) || type.FullName == "System.Double&")\r
- return DbType.Double;\r
- if (type == typeof(Decimal) || type.FullName == "System.Decimal&")\r
- return DbType.Decimal;\r
- if (type == typeof(DateTime) || type.FullName == "System.DateTime&")\r
- return DbType.DateTime;\r
- if (type == ValueTypes.BYTE_ARRAY_TYPE)\r
- return DbType.Binary;\r
- if (type == typeof(String) || type.FullName == "System.String&")\r
- return DbType.String;\r
- if (type == typeof(Boolean) || type.FullName == "System.Boolean&")\r
- return DbType.Boolean;\r
- if (type == typeof(Guid) || type.FullName == "System.Guid&")\r
- return DbType.Guid;\r
- else\r
- return DbType.Object;\r
- }\r
-\r
- protected Object HandleOutParameters(IDbCommand dbCommand, Object dto, Object returnValue, int additionalParamCount) {\r
- if (dto == null) {\r
- return null;\r
- }\r
- int size = _procedureMetaData.ParameterTypeSize;\r
- for (int i = 0; i < size; i++) {\r
- InternalProcedureParameterType ppt = _procedureMetaData.GetParameterType(i);\r
- if (ppt.IsOutType) {\r
- Object value = ((IDataParameter) dbCommand.Parameters[i+additionalParamCount]).Value;\r
- if (value is IDataReader) {// Not support yet\r
- IDataReader reader = (IDataReader) value;\r
- throw new NotImplementedException("The result set of procedure is not implemented: " + reader);\r
- // IDataReaderHandler handler = CreateOutParameterResultSetHandler(ppt, reader);\r
- // try {\r
- // value = handler.Handle(reader);\r
- // } finally {\r
- // if (reader != null) {\r
- // reader.Close();\r
- // }\r
- // }\r
- }\r
- if (!(value is DBNull)) {\r
- ppt.SetValue(dto, value);\r
- }\r
- // [Under Review]: @jflute -- If it's DBNull, what can I do for you?\r
- } else if (ppt.IsReturnType) {\r
- ppt.SetValue(dto, returnValue);\r
- }\r
- }\r
- return dto;\r
- }\r
-\r
- protected IDataReaderHandler CreateOutParameterResultSetHandler(InternalProcedureParameterType ppt, IDataReader reader) {\r
- // return new InternalMapListResultSetHandler();\r
- return null;\r
- }\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System;\r
-using System.Collections;\r
-using System.Data;\r
-using System.Data.SqlTypes;\r
-using System.Reflection;\r
-using Seasar.Extension.ADO;\r
-using Seasar.Extension.ADO.Impl;\r
-using Seasar.Dao;\r
-\r
-using ${glPackageBaseCommonException};\r
-\r
-namespace ${glPackageBaseCommonS2DaoInternalSqlHandler} {\r
-\r
- public class ${glInternalUpdateAutoHandler} : ${glInternalAbstractAutoHandler} {\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected bool checkSingleRowUpdate = true;\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalUpdateAutoHandler}(IDataSource dataSource, ICommandFactory commandFactory, IBeanMetaData beanMetaData, IPropertyType[] propertyTypes)\r
- : base(dataSource, commandFactory, beanMetaData, propertyTypes) {\r
- }\r
- \r
- // ===============================================================================\r
- // Override\r
- // ========\r
- protected override void SetupBindVariables(Object bean) {\r
- SetupUpdateBindVariables(bean);\r
- LoggingMessageSqlArgs = _bindVariables;\r
- }\r
-\r
- protected override void PostUpdateBean(Object bean, int ret) {\r
- if (IsCheckSingleRowUpdate && ret < 1) {\r
- throw CreateEntityAlreadyUpdatedException(bean, ret);\r
- }\r
- UpdateVersionNoIfNeed(bean);\r
- UpdateTimestampIfNeed(bean);\r
- }\r
-\r
- protected virtual ${glEntityAlreadyUpdatedException} CreateEntityAlreadyUpdatedException(Object bean, int rows) {\r
- return new ${glEntityAlreadyUpdatedException}(bean, rows);\r
- }\r
- \r
- // ===============================================================================\r
- // Accessor\r
- // ========\r
- public bool IsCheckSingleRowUpdate {\r
- get { return checkSingleRowUpdate; }\r
- set { checkSingleRowUpdate = value; }\r
- }\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System;\r
-using Seasar.Dao;\r
-using Seasar.Dao.Context;\r
-\r
-namespace ${glPackageBaseCommonS2DaoInternalSqlParser} {\r
-\r
- public class ${glInternalCommandContextCreator} {\r
- \r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected String[] _argNames;\r
- protected Type[] _argTypes;\r
- \r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalCommandContextCreator}(String[] argNames, Type[] argTypes) {\r
- this._argNames = (argNames != null ? argNames : new String[0]);\r
- this._argTypes = (argTypes != null ? argTypes : new Type[0]);\r
- }\r
- \r
- // ===================================================================================\r
- // Create\r
- // ======\r
- public virtual ICommandContext CreateCommandContext(object[] args) {\r
- ICommandContext ctx = NewCommandContext();\r
- if (args != null) {\r
- for (int i = 0; i < args.Length; ++i) {\r
- Type argType = null;\r
- if (args[i] != null) {\r
- if (i < _argTypes.Length) {\r
- argType = _argTypes[i];\r
- } else if (args[i] != null) {\r
- argType = args[i].GetType();\r
- }\r
- }\r
- if (i < _argNames.Length) {\r
- ctx.AddArg(_argNames[i], args[i], argType);\r
- } else {\r
- ctx.AddArg("${database.dollar}" + (i + 1), args[i], argType);\r
- }\r
- }\r
- }\r
- return ctx;\r
- }\r
- \r
- protected virtual ICommandContext NewCommandContext() {\r
- return new CommandContextImpl();\r
- }\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Reflection;\r
-using System.Collections.Generic;\r
-\r
-using Seasar.Extension.ADO;\r
-using Seasar.Extension.ADO.Impl;\r
-using Seasar.Framework.Util;\r
-using Seasar.Dao;\r
-using Seasar.Dao.Node;\r
-using Seasar.Dao.Parser;\r
-\r
-using ${glPackageBaseCommonCBean};\r
-using ${glPackageBaseCommonCBeanOutsidesql};\r
-using ${glPackageBaseCommonCOption};\r
-using ${glPackageBaseCommonException};\r
-using ${glPackageBaseCommonJavaLike};\r
-using ${glPackageBaseCommonS2DaoInternalUtil};\r
-using ${glPackageBaseCommonUtil};\r
-\r
-namespace ${glPackageBaseCommonS2DaoInternalSqlParser} {\r
-\r
- public class ${glInternalSqlParser} : ISqlParser {\r
- \r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected readonly ${glInternalSqlTokenizer} _tokenizer;\r
- protected readonly System.Collections.Stack _nodeStack = new System.Collections.Stack();\r
- protected String _specifiedSql;// Extension!\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalSqlParser}(String sql) {\r
- sql = sql.Trim();\r
- if (sql.EndsWith(";")) {\r
- sql = sql.Substring(0, sql.Length - 1);\r
- }\r
- _specifiedSql = sql;\r
- _tokenizer = new ${glInternalSqlTokenizer}(sql);\r
- }\r
-\r
- // ===============================================================================\r
- // Parse\r
- // =====\r
- public INode Parse() {\r
- Push(new ContainerNode());\r
- while (InternalTokenType.EOF != _tokenizer.Next()) {\r
- ParseToken();\r
- }\r
- return Pop();\r
- }\r
-\r
- protected void ParseToken() {\r
- switch (_tokenizer.TokenType) {\r
- case InternalTokenType.SQL:\r
- ParseSql();\r
- break;\r
- case InternalTokenType.COMMENT:\r
- ParseComment();\r
- break;\r
- case InternalTokenType.ELSE:\r
- ParseElse();\r
- break;\r
- case InternalTokenType.BIND_VARIABLE:\r
- ParseBindVariable();\r
- break;\r
- }\r
- }\r
-\r
- protected void ParseSql() {\r
- string sql = _tokenizer.Token;\r
- if (IsElseMode()) {\r
- sql = sql.Replace("--", string.Empty);\r
- }\r
- INode node = Peek();\r
-\r
- if ((node is InternalIfNode || node is ElseNode) && node.ChildSize == 0) {\r
- ${glInternalSqlTokenizer} st = new ${glInternalSqlTokenizer}(sql);\r
- st.SkipWhitespace();\r
- string token = st.SkipToken();\r
- st.SkipWhitespace();\r
- if ("AND".Equals(token.ToUpper()) || "OR".Equals(token.ToUpper())) {\r
- node.AddChild(new PrefixSqlNode(st.Before, st.After));\r
- } else {\r
- node.AddChild(new SqlNode(sql));\r
- }\r
- } else {\r
- node.AddChild(new SqlNode(sql));\r
- }\r
- }\r
-\r
- protected void ParseComment() {\r
- string comment = _tokenizer.Token;\r
- if (IsTargetComment(comment)) {\r
- if (IsIfComment(comment)) {\r
- ParseIf();\r
- } else if (IsBeginComment(comment)) {\r
- ParseBegin();\r
- } else if (IsEndComment(comment)) {\r
- return;\r
- } else {\r
- ParseCommentBindVariable();\r
- }\r
- } else if (comment != null && 0 < comment.Length) {\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- // [UnderReview]: Should I resolve bind character on scope comment(normal comment)?\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- String before = _tokenizer.Before; // for Hint Clause of Database\r
- Peek().AddChild(new SqlNode(before.Substring(before.LastIndexOf("/*"))));\r
- }\r
- }\r
-\r
- protected void ParseIf() {\r
- string condition = _tokenizer.Token.Substring(2).Trim();\r
- if (StringUtil.IsEmpty(condition)) {\r
- ThrowIfCommentConditionNotFoundException();\r
- }\r
- ContainerNode ifNode = CreateIfNode(condition);\r
- Peek().AddChild(ifNode);\r
- Push(ifNode);\r
- ParseEnd();\r
- }\r
-\r
- protected void ThrowIfCommentConditionNotFoundException() {\r
- String msg = "Look! Read the message below." + GetLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + GetLineSeparator();\r
- msg = msg + "The condition of IF comment was Not Found!" + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Advice]" + GetLineSeparator();\r
- msg = msg + "Please confirm the IF comment expression." + GetLineSeparator();\r
- msg = msg + "It may exist the IF comment that DOESN'T have a condition." + GetLineSeparator();\r
- msg = msg + " For example:" + GetLineSeparator();\r
- msg = msg + " before (x) -- /*IF*/XXX_ID = /*pmb.XxxId*/3/*END*/" + GetLineSeparator();\r
- msg = msg + " after (o) -- /*IF pmb.XxxId != null*/XXX_ID = /*pmb.XxxId*/3/*END*/" + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[IF Comment Expression]" + GetLineSeparator() + _tokenizer.Token + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Specified SQL]" + GetLineSeparator() + _specifiedSql + GetLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new ${glIfCommentConditionNotFoundException}(msg);\r
- }\r
-\r
- protected void ParseBegin() {\r
- BeginNode beginNode = new BeginNode();\r
- Peek().AddChild(beginNode);\r
- Push(beginNode);\r
- ParseEnd();\r
- }\r
-\r
- protected void ParseEnd() {\r
- while (InternalTokenType.EOF != _tokenizer.Next()) {\r
- if (_tokenizer.TokenType == InternalTokenType.COMMENT\r
- && IsEndComment(_tokenizer.Token)) {\r
- Pop();\r
- return;\r
- }\r
- ParseToken();\r
- }\r
- ThrowEndCommentNotFoundException();\r
- }\r
-\r
- protected void ThrowEndCommentNotFoundException() {\r
- String msg = "Look! Read the message below." + GetLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + GetLineSeparator();\r
- msg = msg + "The end comment was Not Found!" + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Advice]" + GetLineSeparator();\r
- msg = msg + "Please confirm the parameter comment logic." + GetLineSeparator();\r
- msg = msg + "It may exist the parameter comment that DOESN'T have an end comment." + GetLineSeparator();\r
- msg = msg + " For example:" + GetLineSeparator();\r
- msg = msg + " before (x) -- /*IF pmb.XxxId != null*/XXX_ID = /*pmb.XxxId*/3" + GetLineSeparator();\r
- msg = msg + " after (o) -- /*IF pmb.XxxId != null*/XXX_ID = /*pmb.XxxId*/3/*END*/" + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Specified SQL]" + GetLineSeparator() + _specifiedSql + GetLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new ${glEndCommentNotFoundException}(msg);\r
- }\r
- \r
- protected void ParseElse() {\r
- INode parent = Peek();\r
- if (!(parent is InternalIfNode)) {\r
- return;\r
- }\r
- InternalIfNode ifNode = (InternalIfNode) Pop();\r
- ElseNode elseNode = new ElseNode();\r
- ifNode.ElseNode = elseNode;\r
- Push(elseNode);\r
- _tokenizer.SkipWhitespace();\r
- }\r
-\r
- protected void ParseCommentBindVariable() {\r
- string expr = _tokenizer.Token;\r
- string s = _tokenizer.SkipToken();\r
- if (expr.StartsWith("${database.dollar}")) {\r
- Peek().AddChild(CreateEmbeddedValueNode(expr.Substring(1), s));\r
- } else {\r
- Peek().AddChild(CreateBindVariableNode(expr, s));\r
- }\r
- }\r
-\r
- protected void ParseBindVariable() {\r
- string expr = _tokenizer.Token;\r
- Peek().AddChild(CreateBindVariableNode(expr, null));\r
- }\r
-\r
- protected AbstractNode CreateEmbeddedValueNode(string expr, String textValue) {\r
- return new InternalEmbeddedValueNode(expr, textValue, _specifiedSql);\r
- }\r
-\r
- protected AbstractNode CreateBindVariableNode(String expr, String textValue) {\r
- return new InternalBindVariableNode(expr, textValue, _specifiedSql);\r
- }\r
-\r
- protected ContainerNode CreateIfNode(string expr) {\r
- return new InternalIfNode(expr, _specifiedSql);\r
- }\r
-\r
- protected INode Pop() {\r
- return (INode) _nodeStack.Pop();\r
- }\r
-\r
- protected INode Peek() {\r
- return (INode) _nodeStack.Peek();\r
- }\r
-\r
- protected void Push(INode node) {\r
- _nodeStack.Push(node);\r
- }\r
-\r
- protected bool IsElseMode() {\r
- for (int i = 0; i < _nodeStack.Count; ++i) {\r
- if (_nodeStack.ToArray()[i] is ElseNode) {\r
- return true;\r
- }\r
- }\r
- return false;\r
- }\r
-\r
- private static bool IsTargetComment(string comment) {\r
- return comment != null && comment.Length > 0\r
- && IsCSharpIdentifierStart(comment.ToCharArray()[0]);\r
- }\r
-\r
- private static bool IsCSharpIdentifierStart(Char c) {\r
- return Char.IsLetterOrDigit(c) || c == '_' || c == '\\' || c == '${database.dollar}' || c == '@';\r
- }\r
-\r
- private static bool IsIfComment(string comment) {\r
- return comment.StartsWith("IF");\r
- }\r
-\r
- private static bool IsBeginComment(string content) {\r
- return content != null && "BEGIN".Equals(content);\r
- }\r
-\r
- private static bool IsEndComment(string content) {\r
- return content != null && "END".Equals(content);\r
- }\r
- \r
- \r
- // ===============================================================================\r
- // Convert\r
- // =======\r
- public static String ConvertTwoWaySql2DisplaySql(String twoWaySql, Object arg) {\r
- String[] argNames = new String[]{"dto"};\r
- Type[] argTypes = new Type[]{arg.GetType()};\r
- Object[] args = new Object[]{arg};\r
- return ConvertTwoWaySql2DisplaySql(twoWaySql, argNames, argTypes, args);\r
- }\r
- \r
- public static String ConvertTwoWaySql2DisplaySql(String twoWaySql, String[] argNames, Type[] argTypes, Object[] args) {\r
- ICommandContext context;\r
- {\r
- ${glInternalSqlParser} parser = new ${glInternalSqlParser}(twoWaySql);\r
- INode node = parser.Parse();\r
- ${glInternalCommandContextCreator} creator = new ${glInternalCommandContextCreator}(argNames, argTypes);\r
- context = creator.CreateCommandContext(args);\r
- node.Accept(context);\r
- }\r
- String preparedSql = context.Sql;\r
- return ${glInternalBindVariableUtil}.GetCompleteSql(preparedSql, context.BindVariables);\r
- }\r
- \r
- // ===============================================================================\r
- // General Helper\r
- // ==============\r
- protected String GetLineSeparator() {\r
- return ${glSimpleSystemUtil}.GetLineSeparator();\r
- }\r
- }\r
-\r
- // -----------------------------------------------------\r
- // BindVariableNode\r
- // ----------------\r
- public class InternalBindVariableNode : AbstractNode {\r
- protected String _expression;\r
- protected String _testValue;\r
- protected String[] _names;\r
- protected String _specifiedSql;\r
-\r
- public InternalBindVariableNode(String expression, String testValue, String specifiedSql) : base () {\r
- _expression = expression;\r
- _testValue = testValue;\r
- _names = expression.Split('.');\r
- _specifiedSql = specifiedSql;\r
- }\r
-\r
- public override void Accept(ICommandContext ctx) {\r
- object value = ctx.GetArg(_names[0]);\r
- Type type = (value != null ? value.GetType() : null);\r
- InternalValueAndType valueAndType = new InternalValueAndType();\r
- valueAndType.TargetValue = value;\r
- valueAndType.TargetType = type;\r
- SetupValueAndType(valueAndType);\r
- \r
- if (valueAndType.TargetValue == null) {\r
- ThrowBindOrEmbeddedParameterNullValueException(valueAndType);\r
- }\r
- if (!IsInScope()) {\r
- // Main Root\r
- ctx.AddSql(valueAndType.TargetValue, valueAndType.TargetType, _expression.Replace('.', '_'));\r
- } else {\r
- if (typeof(System.Collections.IList).IsAssignableFrom(valueAndType.TargetType)) {\r
- System.Collections.IList list = valueAndType.TargetValue as System.Collections.IList;\r
- Array array = new Object[list.Count];\r
- list.CopyTo(array, 0);\r
- BindArray(ctx, array);\r
- } else if (valueAndType.TargetType.IsArray) {\r
- BindArray(ctx, valueAndType.TargetValue);\r
- } else {\r
- ctx.AddSql(valueAndType.TargetValue, valueAndType.TargetType, _expression.Replace('.', '_'));\r
- }\r
- }\r
- if (valueAndType.IsValidRearOption()) {\r
- ctx.AddSql(valueAndType.BuildRearOptionOnSql());\r
- }\r
- }\r
-\r
- protected void SetupValueAndType(InternalValueAndType valueAndType) {\r
- InternalValueAndTypeSetuper setupper = new InternalValueAndTypeSetuper(_expression, _names, _specifiedSql, true);\r
- setupper.SetupValueAndType(valueAndType);\r
- }\r
- \r
- protected void ThrowBindOrEmbeddedParameterNullValueException(InternalValueAndType valueAndType) {\r
- ParameterCommentExceptionProvider.ThrowBindOrEmbeddedParameterNullValueException(_expression, valueAndType.TargetType, _specifiedSql, true);\r
- }\r
- \r
- protected bool IsInScope() {\r
- return _testValue != null && _testValue.StartsWith("(") && _testValue.EndsWith(")");\r
- }\r
- \r
- protected void BindArray(ICommandContext ctx, object arrayArg) {\r
- if (arrayArg == null) {\r
- return;\r
- }\r
- object[] array = arrayArg as object[];\r
- int length = array.Length;\r
- if (length == 0) {\r
- ThrowBindOrEmbeddedParameterEmptyListException();\r
- }\r
- Type type = null;\r
- for (int i = 0; i < length; ++i) {\r
- Object currentElement = array[i];\r
- if (currentElement != null) {\r
- type = currentElement.GetType();\r
- break;\r
- }\r
- }\r
- if (type == null) {\r
- ThrowBindOrEmbeddedParameterNullOnlyListException();\r
- }\r
- ctx.AddSql("(");\r
- int bindCount = 0;\r
- for (int i = 0; i < length; ++i) {\r
- Object currentElement = array[i];\r
- if (currentElement != null) {\r
- ++bindCount;\r
- if (bindCount == 1) {// FirstElement!\r
- ctx.AddSql(currentElement, type, _expression + bindCount);\r
- } else {\r
- ctx.AppendSql(currentElement, type, _expression + bindCount);\r
- }\r
- }\r
- }\r
- ctx.AddSql(")");\r
- }\r
- \r
- protected void ThrowBindOrEmbeddedParameterEmptyListException() {\r
- ParameterCommentExceptionProvider.ThrowBindOrEmbeddedParameterEmptyListException(_expression, _specifiedSql, true);\r
- }\r
- \r
- protected void ThrowBindOrEmbeddedParameterNullOnlyListException() {\r
- ParameterCommentExceptionProvider.ThrowBindOrEmbeddedParameterNullOnlyListException(_expression, _specifiedSql, true);\r
- }\r
- }\r
-\r
- // -----------------------------------------------------\r
- // EmbeddedValueNode\r
- // -----------------\r
- public class InternalEmbeddedValueNode : AbstractNode {\r
- protected String _expression;\r
- protected String _testValue;\r
- protected String[] _names;\r
- protected String _specifiedSql;\r
-\r
- public InternalEmbeddedValueNode(String expression, String testValue, String specifiedSql) : base () {\r
- _expression = expression;\r
- _testValue = testValue;\r
- _names = expression.Split('.');\r
- _specifiedSql = specifiedSql;\r
- }\r
-\r
- public override void Accept(ICommandContext ctx) {\r
- Object value = ctx.GetArg(_names[0]);\r
- Type type = (value != null ? value.GetType() : null);\r
- InternalValueAndType valueAndType = new InternalValueAndType();\r
- valueAndType.TargetValue = value;\r
- valueAndType.TargetType = type;\r
- SetupValueAndType(valueAndType);\r
- \r
- if (valueAndType.TargetValue == null) {\r
- ThrowBindOrEmbeddedParameterNullValueException(valueAndType);\r
- }\r
- if (!IsInScope()) {\r
- // Main Root\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- // [UnderReview]: Should I make an original exception instead of this exception?\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- // if (valueAndType.TargetValue != null && valueAndType.TargetValue.ToString().IndexOf("?") > -1) {\r
- // throw new org.seasar.framework.exception.SRuntimeException("EDAO0023");\r
- // }\r
- ctx.AddSql(valueAndType.TargetValue.ToString());\r
- } else {\r
- if (IsInScope() && typeof(System.Collections.IList).IsAssignableFrom(valueAndType.TargetType)) {\r
- System.Collections.IList list = valueAndType.TargetValue as System.Collections.IList;\r
- Array array = new Object[list.Count];\r
- list.CopyTo(array, 0);\r
- EmbedArray(ctx, array);\r
- } else if (IsInScope() && valueAndType.TargetType.IsArray) {\r
- EmbedArray(ctx, valueAndType.TargetValue);\r
- } else {\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- // [UnderReview]: Should I make an original exception instead of this exception?\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- // if (valueAndType.TargetValue != null && valueAndType.TargetValue.ToString().IndexOf("?") > -1) {\r
- // throw new org.seasar.framework.exception.SRuntimeException("EDAO0023");\r
- // }\r
- ctx.AddSql(valueAndType.TargetValue.ToString());\r
- }\r
- }\r
- if (valueAndType.IsValidRearOption()) {\r
- ctx.AddSql(valueAndType.BuildRearOptionOnSql());\r
- }\r
- }\r
-\r
- protected void SetupValueAndType(InternalValueAndType valueAndType) {\r
- InternalValueAndTypeSetuper setupper = new InternalValueAndTypeSetuper(_expression, _names, _specifiedSql, false);\r
- setupper.SetupValueAndType(valueAndType);\r
- }\r
- \r
- protected void ThrowBindOrEmbeddedParameterNullValueException(InternalValueAndType valueAndType) {\r
- ParameterCommentExceptionProvider.ThrowBindOrEmbeddedParameterNullValueException(_expression, valueAndType.TargetType, _specifiedSql, false);\r
- }\r
- \r
- protected bool IsInScope() {\r
- return _testValue != null && _testValue.StartsWith("(") && _testValue.EndsWith(")");\r
- }\r
- \r
- protected void EmbedArray(ICommandContext ctx, object arrayArg) {\r
- if (arrayArg == null) {\r
- return;\r
- }\r
- object[] array = arrayArg as object[];\r
- int length = array.Length;\r
- if (length == 0) {\r
- ThrowBindOrEmbeddedParameterEmptyListException();\r
- }\r
- String quote = null;\r
- for (int i = 0; i < length; ++i) {\r
- Object currentElement = array[i];\r
- if (currentElement != null) {\r
- quote = !IsNumeric(currentElement) ? "'" : "";\r
- break;\r
- }\r
- }\r
- if (quote == null) {\r
- ThrowBindOrEmbeddedParameterNullOnlyListException();\r
- }\r
- bool existsValidElements = false;\r
- ctx.AddSql("(");\r
- for (int i = 0; i < length; ++i) {\r
- Object currentElement = array[i];\r
- if (currentElement != null) {\r
- if (!existsValidElements) {\r
- ctx.AddSql(quote + currentElement + quote);\r
- existsValidElements = true;\r
- } else {\r
- ctx.AddSql(", " + quote + currentElement + quote);\r
- }\r
- }\r
- }\r
- ctx.AddSql(")");\r
- }\r
-\r
- protected bool IsNumeric(object Expression) {\r
- // Variable to collect the Return value of the TryParse method.\r
- bool isNum;\r
-\r
- // Define variable to collect out parameter of the TryParse method. If the conversion fails, the out parameter is zero.\r
- double retNum;\r
-\r
- // The TryParse method converts a string in a specified style and culture-specific format to its double-precision floating point number equivalent.\r
- // The TryParse method does not generate an exception if the conversion fails. If the conversion passes, True is returned. If it does not, False is returned.\r
- isNum = Double.TryParse(Convert.ToString(Expression), System.Globalization.NumberStyles.Any, System.Globalization.NumberFormatInfo.InvariantInfo, out retNum);\r
- return isNum;\r
- }\r
- \r
- protected void ThrowBindOrEmbeddedParameterEmptyListException() {\r
- ParameterCommentExceptionProvider.ThrowBindOrEmbeddedParameterEmptyListException(_expression, _specifiedSql, false);\r
- }\r
- \r
- protected void ThrowBindOrEmbeddedParameterNullOnlyListException() {\r
- ParameterCommentExceptionProvider.ThrowBindOrEmbeddedParameterNullOnlyListException(_expression, _specifiedSql, false);\r
- }\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Value and Type\r
- // --------------\r
- public class InternalValueAndType {\r
- protected Object _value;\r
- protected Type _type;\r
- protected String _rearOption;\r
- public bool IsValidRearOption() {\r
- return _value != null && _rearOption != null && _rearOption.Trim().Length > 0;\r
- }\r
- public String BuildRearOptionOnSql() {\r
- return " " + _rearOption.Trim() + " ";\r
- }\r
- public Object TargetValue {\r
- get { return _value; }\r
- set { _value = value; }\r
- }\r
- public Type TargetType {\r
- get { return _type; }\r
- set { _type = value; }\r
- }\r
- public String RearOption {\r
- get { return _rearOption; }\r
- set { _rearOption = value; }\r
- }\r
- }\r
-\r
- public class InternalValueAndTypeSetuper {\r
- protected String _expression;\r
- protected String[] _names;\r
- protected String _specifiedSql;\r
- protected bool _bind;\r
- public InternalValueAndTypeSetuper(String expression, String[] names, String specifiedSql, bool bind) {\r
- this._expression = expression;\r
- this._names = names;\r
- this._specifiedSql = specifiedSql;\r
- this._bind = bind;\r
- }\r
-\r
- public void SetupValueAndType(InternalValueAndType valueAndType) {\r
- Object value = valueAndType.TargetValue;\r
- Type type = valueAndType.TargetType;\r
-\r
- // LikeSearchOption handling here is for OutsideSql.\r
- ${glConditionOptionLikeSearchName} likeSearchOption = null;\r
- String rearOption = null;\r
-\r
- for (int pos = 1; pos < _names.Length; ++pos) {\r
- if (value == null) {\r
- break;\r
- }\r
- String currentName = _names[pos];\r
- if (pos == 1) {// at the First Loop\r
- if (HasLikeSearchOption(type, currentName)) {\r
- likeSearchOption = GetLikeSearchOption(type, currentName, value);\r
- }\r
- }\r
- if (value is System.Collections.IDictionary) {\r
- System.Collections.IDictionary map = (System.Collections.IDictionary) value;\r
- value = map[currentName];\r
- if (IsLastLoop4LikeSearch(pos, likeSearchOption) && IsValidStringValue(value)) {// at the Last Loop\r
- value = likeSearchOption.generateRealValue((String) value);\r
- rearOption = likeSearchOption.getRearOption();\r
- }\r
- type = (value != null ? value.GetType() : type);\r
- continue;\r
- }\r
- if (value is NgMap) {\r
- NgMap map = (NgMap) value;\r
- value = map.getAsNg(currentName);\r
- if (IsLastLoop4LikeSearch(pos, likeSearchOption) && IsValidStringValue(value)) {// at the Last Loop\r
- value = likeSearchOption.generateRealValue((String) value);\r
- rearOption = likeSearchOption.getRearOption();\r
- }\r
- type = (value != null ? value.GetType() : type);\r
- continue;\r
- }\r
- PropertyInfo pi = type.GetProperty(currentName);\r
- if (pi != null) {\r
- value = pi.GetValue(value, null);\r
- if (IsLastLoop4LikeSearch(pos, likeSearchOption) && IsValidStringValue(value)) {// at the Last Loop\r
- value = likeSearchOption.generateRealValue((String) value);\r
- rearOption = likeSearchOption.getRearOption();\r
- }\r
- type = (value != null ? value.GetType() : pi.PropertyType);\r
- continue;\r
- }\r
- if (pos == 1 && typeof(${glMapParameterBeanInterfaceName}).IsAssignableFrom(type)) {\r
- ${glMapParameterBeanInterfaceName} pmb = (${glMapParameterBeanInterfaceName})value;\r
- IDictionary<String, Object> map = pmb.ParameterMap;\r
- Object elementValue = (map != null && map.ContainsKey(currentName) ? map[currentName] : null);\r
- if (elementValue != null) {\r
- value = elementValue;\r
- type = elementValue.GetType();\r
- continue;\r
- }\r
- }\r
- ThrowBindOrEmbeddedCommentNotFoundPropertyException(_expression, type, currentName, _specifiedSql, _bind);\r
- }\r
- valueAndType.TargetValue = value;\r
- valueAndType.TargetType = type;\r
- valueAndType.RearOption = rearOption;\r
- }\r
-\r
- // for OutsideSql\r
- protected bool IsLastLoop4LikeSearch(int pos, ${glConditionOptionLikeSearchName} likeSearchOption) {\r
- return _names.Length == (pos + 1) && likeSearchOption != null;\r
- }\r
-\r
- protected bool IsValidStringValue(Object value) {\r
- return value != null && value is String && ((String) value).Length > 0;\r
- }\r
-\r
- // for OutsideSql\r
- protected bool HasLikeSearchOption(Type type, String currentName) {\r
- return type.GetProperty(currentName + "InternalLikeSearchOption") != null;\r
- }\r
-\r
- // for OutsideSql\r
- protected ${glConditionOptionLikeSearchName} GetLikeSearchOption(Type type, String currentName, Object resourceBean) {\r
- PropertyInfo pi = type.GetProperty(currentName + "InternalLikeSearchOption");\r
- ${glConditionOptionLikeSearchName} option = (${glConditionOptionLikeSearchName})pi.GetValue(resourceBean, null);\r
- if (option == null) {\r
- ThrowLikeSearchOptionNotFoundException(resourceBean, currentName);\r
- }\r
- if (option.isSplit()) {\r
- ThrowOutsideSqlLikeSearchOptionSplitUnsupportedException(option, resourceBean, currentName);\r
- }\r
- return option;\r
- }\r
-\r
- protected void ThrowLikeSearchOptionNotFoundException(Object resourceBean, String currentName) {\r
- String msg = "Look! Read the message below." + GetLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + GetLineSeparator();\r
- msg = msg + "The likeSearchOption was Not Found! (Should not be null!)" + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Advice]" + GetLineSeparator();\r
- msg = msg + "Please confirm your method call:" + GetLineSeparator();\r
- String beanName = resourceBean.GetType().Name;\r
- String methodName = "Set" + InitCap(currentName) + "_LikeSearch(value, likeSearchOption);";\r
- msg = msg + " " + beanName + "." + methodName + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Target ParameterBean]" + GetLineSeparator() + resourceBean + GetLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new ${glRequiredOptionNotFoundException}(msg);\r
- }\r
-\r
- // for OutsideSql\r
- protected void ThrowOutsideSqlLikeSearchOptionSplitUnsupportedException(${glConditionOptionLikeSearchName} option, Object resourceBean, String currentName) {\r
- String msg = "Look! Read the message below." + GetLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + GetLineSeparator();\r
- msg = msg + "The splitByXxx() of LikeSearchOption is unsupported at OutsideSql!" + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Advice]" + GetLineSeparator();\r
- msg = msg + "Please confirm your method call:" + GetLineSeparator();\r
- msg = msg + " For example:" + GetLineSeparator();\r
- msg = msg + " before (x):" + GetLineSeparator();\r
- String beanName = resourceBean.GetType().Name;\r
- String methodName = "Set" + InitCap(currentName) + "_LikeSearch(value, likeSearchOption);";\r
- msg = msg + " " + beanName + " pmb = new " + beanName + "();" + GetLineSeparator();\r
- msg = msg + " LikeSearchOption likeSearchOption = new LikeSearchOption().likeContain();" + GetLineSeparator();\r
- msg = msg + " likeSearchOption.SplitBySpace(); // *No! Don't invoke this!" + GetLineSeparator();\r
- msg = msg + " pmb." + methodName + GetLineSeparator();\r
- msg = msg + " after (o):" + GetLineSeparator();\r
- msg = msg + " " + beanName + " pmb = new " + beanName + "();" + GetLineSeparator();\r
- msg = msg + " LikeSearchOption likeSearchOption = new LikeSearchOption().LikeContain();" + GetLineSeparator();\r
- msg = msg + " pmb." + methodName + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Target LikeSearchOption]" + GetLineSeparator() + option + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Target ParameterBean]" + GetLineSeparator() + resourceBean + GetLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new UnsupportedOperationException(msg);\r
- }\r
-\r
- protected String InitCap(String name) {\r
- return ${glSimpleStringUtil}.InitCap(name);\r
- }\r
-\r
- protected virtual void ThrowBindOrEmbeddedCommentNotFoundPropertyException(String expression, Type targetType, String notFoundProperty, String specifiedSql, bool bind) {\r
- String msg = "Look! Read the message below." + GetLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + GetLineSeparator();\r
- msg = msg + "The property on the " + (bind ? "bind variable" : "embedded value") + " comment was Not Found!" + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Advice]" + GetLineSeparator();\r
- msg = msg + "Please confirm the existence of your property on your arguments." + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Parameter Comment Expression]" + GetLineSeparator() + expression + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[NotFound Property]" + GetLineSeparator() + (targetType != null ? targetType.Name + "#" : "") + notFoundProperty + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Specified SQL]" + GetLineSeparator() + specifiedSql + GetLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- if (bind) {\r
- throw new ${glBindVariableCommentNotFoundPropertyException}(msg);\r
- } else {\r
- throw new ${glEmbeddedValueCommentNotFoundPropertyException}(msg);\r
- }\r
- }\r
-\r
- protected String GetLineSeparator() {\r
- return ${glSimpleSystemUtil}.GetLineSeparator();\r
- }\r
- }\r
- \r
- // -----------------------------------------------------\r
- // Exception Provider\r
- // ------------------\r
- public class ParameterCommentExceptionProvider {\r
- public static void ThrowBindOrEmbeddedParameterNullValueException(String expression, Type targetType, String specifiedSql, bool bind) {\r
- String msg = "Look! Read the message below." + GetLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + GetLineSeparator();\r
- msg = msg + "The value of " + (bind ? "bind variable" : "embedded value") + " was Null!" + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Advice]" + GetLineSeparator();\r
- msg = msg + "Is it within the scope of your assumption?" + GetLineSeparator();\r
- msg = msg + "If the answer is YES, please confirm your application logic about the parameter." + GetLineSeparator();\r
- msg = msg + "If the answer is NO, please confirm the logic of parameter comment(especially IF comment)." + GetLineSeparator();\r
- msg = msg + " --> For example:" + GetLineSeparator();\r
- msg = msg + " before -- XXX_ID = /*pmb.XxxId*/3" + GetLineSeparator();\r
- msg = msg + " after -- /*IF pmb.XxxId != null*/XXX_ID = /*pmb.XxxId*/3/*END*/" + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[" + (bind ? "Bind Variable" : "Embedded Value") + " Comment Expression]" + GetLineSeparator() + expression + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Parameter Property Type]" + GetLineSeparator() + targetType + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Specified SQL]" + GetLineSeparator() + specifiedSql + GetLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- if (bind) {\r
- throw new ${glBindVariableParameterNullValueException}(msg);\r
- } else {\r
- throw new ${glEmbeddedValueParameterNullValueException}(msg);\r
- }\r
- }\r
- \r
- public static void ThrowBindOrEmbeddedParameterEmptyListException(String expression, String specifiedSql, bool bind) {\r
- String msg = "Look! Read the message below." + GetLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + GetLineSeparator();\r
- msg = msg + "The list of " + (bind ? "bind variable" : "embedded value") + " was empty!" + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Advice]" + GetLineSeparator();\r
- msg = msg + "Please confirm your application logic." + GetLineSeparator();\r
- msg = msg + " For example:" + GetLineSeparator();\r
- msg = msg + " before (x):" + GetLineSeparator();\r
- msg = msg + " IList<int?> xxxIdList = new List<int?>();" + GetLineSeparator();\r
- msg = msg + " cb.Query().SetXxxId_InScope(xxxIdList);// Or pmb.XxxIdList = xxxIdList;" + GetLineSeparator();\r
- msg = msg + " after (o):" + GetLineSeparator();\r
- msg = msg + " IList<int?> xxxIdList = new List<int?>();" + GetLineSeparator();\r
- msg = msg + " xxxIdList.Add(3);" + GetLineSeparator();\r
- msg = msg + " xxxIdList.Add(7);" + GetLineSeparator();\r
- msg = msg + " cb.Query().setXxxId_InScope(xxxIdList);// Or pmb.XxxIdList = xxxIdList;" + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[" + (bind ? "Bind Variable" : "Embedded Value") + " Comment Expression]" + GetLineSeparator() + expression + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Specified SQL]" + GetLineSeparator() + specifiedSql + GetLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- \r
- public static void ThrowBindOrEmbeddedParameterNullOnlyListException(String expression, String specifiedSql, bool bind) {\r
- String msg = "Look! Read the message below." + GetLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + GetLineSeparator();\r
- msg = msg + "The list of " + (bind ? "bind variable" : "embedded value") + " was 'Null Only List'!" + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Advice]" + GetLineSeparator();\r
- msg = msg + "Please confirm your application logic." + GetLineSeparator();\r
- msg = msg + " For example:" + GetLineSeparator();\r
- msg = msg + " before (x):" + GetLineSeparator();\r
- msg = msg + " IList<int?> xxxIdList = new ArrayList<int?>();" + GetLineSeparator();\r
- msg = msg + " xxxIdList.Add(null);" + GetLineSeparator();\r
- msg = msg + " xxxIdList.Add(null);" + GetLineSeparator();\r
- msg = msg + " cb.Query().SetXxxId_InScope(xxxIdList);// Or pmb.XxxIdList = xxxIdList;" + GetLineSeparator();\r
- msg = msg + " after (o):" + GetLineSeparator();\r
- msg = msg + " IList<int?> xxxIdList = new ArrayList<int?>();" + GetLineSeparator();\r
- msg = msg + " xxxIdList.Add(3);" + GetLineSeparator();\r
- msg = msg + " xxxIdList.Add(7);" + GetLineSeparator();\r
- msg = msg + " cb.Query().SetXxxId_InScope(xxxIdList);// Or pmb.XxxIdList = xxxIdList;" + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[" + (bind ? "Bind Variable" : "Embedded Value") + " Comment Expression]" + GetLineSeparator() + expression + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Specified SQL]" + GetLineSeparator() + specifiedSql + GetLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- \r
- \r
- protected static String GetLineSeparator() {\r
- return ${glSimpleSystemUtil}.GetLineSeparator();\r
- }\r
- }\r
- \r
- // -----------------------------------------------------\r
- // IfNode\r
- // ------\r
- public class InternalIfNode : ContainerNode {\r
- private String _expression;\r
- private ElseNode _elseNode;\r
- private readonly ExpressionUtil _expressionUtil;\r
- private String _specifiedSql;\r
-\r
- public InternalIfNode(String expression, String specifiedSql) {\r
- _expressionUtil = new ExpressionUtil();\r
- _expression = _expressionUtil.parseExpression(expression);\r
- if (_expression == null)\r
- throw new ApplicationException("IllegalBoolExpression=[" + _expression + "]");\r
- this._specifiedSql = specifiedSql;\r
- }\r
-\r
- public string Expression {\r
- get { return _expression; }\r
- }\r
-\r
- public ElseNode ElseNode {\r
- get { return _elseNode; }\r
- set { _elseNode = value; }\r
- }\r
-\r
- public override void Accept(ICommandContext ctx) {\r
- Object result = null;\r
- try {\r
- result = InvokeExpression(_expression, ctx);\r
- } catch (Exception e) {\r
- if (!_expression.Contains("pmb.")) {\r
- ThrowIfCommentWrongExpressionException(_expression, e, _specifiedSql);\r
- }\r
- String replaced = _expression.Replace("pmb.", "pmb.ParameterMap.");\r
- String secondParsedExpression = _expressionUtil.parseExpression(replaced);\r
- try {\r
- result = InvokeExpression(secondParsedExpression, ctx);\r
- } catch (Exception) {\r
- ThrowIfCommentWrongExpressionException(_expression, e, _specifiedSql);\r
- }\r
- if (result == null) {\r
- ThrowIfCommentWrongExpressionException(_expression, e, _specifiedSql);\r
- }\r
- _expression = secondParsedExpression;\r
- }\r
- if (result != null) {\r
- if (Convert.ToBoolean(result)) {\r
- base.Accept(ctx);\r
- ctx.IsEnabled = true;\r
- } else if (_elseNode != null) {\r
- _elseNode.Accept(ctx);\r
- ctx.IsEnabled = true;\r
- }\r
- } else {\r
- ThrowIfCommentNotBooleanResultException(_expression, result, _specifiedSql);\r
- }\r
- }\r
-\r
- protected virtual void ThrowIfCommentWrongExpressionException(String expression, Exception cause, String specifiedSql) {\r
- String msg = "Look! Read the message below." + GetLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + GetLineSeparator();\r
- msg = msg + "The IF comment of your specified SQL was Wrong!" + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Advice]" + GetLineSeparator();\r
- msg = msg + "Please confirm the existence of your property on your arguments." + GetLineSeparator();\r
- msg = msg + "And confirm the IF comment of your specified SQL." + GetLineSeparator();\r
- msg = msg + " --> For example, correct IF comment is as below:" + GetLineSeparator();\r
- msg = msg + " /*IF pmb.XxxId != null*/XXX_ID = .../*END*/" + GetLineSeparator();\r
- msg = msg + " /*IF pmb.Paging*/.../*END*/" + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[IF Comment Expression]" + GetLineSeparator() + expression + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Cause Message]" + GetLineSeparator() + cause.Message + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Specified SQL]" + GetLineSeparator() + specifiedSql + GetLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new ${glIfCommentWrongExpressionException}(msg, cause);\r
- }\r
-\r
- protected virtual void ThrowIfCommentNotBooleanResultException(String expression, Object result, String specifiedSql) {\r
- String msg = "Look! Read the message below." + GetLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + GetLineSeparator();\r
- msg = msg + "The boolean expression on IF comment of your specified SQL was Wrong!" + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Advice]" + GetLineSeparator();\r
- msg = msg + "Please confirm the grammar of your IF comment. Does it really express boolean?" + GetLineSeparator();\r
- msg = msg + "And confirm the existence of your property on your arguments if you use parameterMap." + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[IF Comment Expression]" + GetLineSeparator() + expression + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[IF Comment Result Value]" + GetLineSeparator() + result + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Specified SQL]" + GetLineSeparator() + specifiedSql + GetLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new ${glIfCommentNotBooleanResultException}(msg);\r
- }\r
-\r
- protected virtual String GetLineSeparator() {\r
- return Environment.NewLine;\r
- }\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System;\r
-\r
-using ${glPackageBaseCommonException};\r
-using ${glPackageBaseCommonUtil};\r
-\r
-namespace ${glPackageBaseCommonS2DaoInternalSqlParser} {\r
-\r
- public enum InternalTokenType {\r
- SQL = 0,\r
- COMMENT = 1,\r
- ELSE = 2,\r
- BIND_VARIABLE = 3,\r
- EOF = 4,\r
- }\r
- \r
- public class ${glInternalSqlTokenizer} {\r
- \r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected readonly string _sql;\r
- protected int _position = 0;\r
- protected string _token;\r
- protected InternalTokenType _tokenType = InternalTokenType.SQL;\r
- protected InternalTokenType _nextTokenType = InternalTokenType.SQL;\r
- protected int _bindVariableNum = 0;\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalSqlTokenizer}(string sql) {\r
- _sql = sql;\r
- }\r
-\r
- // ===============================================================================\r
- // Tokenize\r
- // ========\r
- public InternalTokenType Next()\r
- {\r
- if (_position >= _sql.Length)\r
- {\r
- _token = null;\r
- _tokenType = InternalTokenType.EOF;\r
- _nextTokenType = InternalTokenType.EOF;\r
- return _tokenType;\r
- }\r
- switch (_nextTokenType)\r
- {\r
- case InternalTokenType.SQL:\r
- ParseSql();\r
- break;\r
- case InternalTokenType.COMMENT:\r
- ParseComment();\r
- break;\r
- case InternalTokenType.ELSE:\r
- ParseElse();\r
- break;\r
- case InternalTokenType.BIND_VARIABLE:\r
- ParseBindVariable();\r
- break;\r
- default:\r
- ParseEof();\r
- break;\r
- }\r
- return _tokenType;\r
- }\r
-\r
- public string SkipToken()\r
- {\r
- int index = _sql.Length;\r
- char quote = _position < _sql.Length ? _sql.ToCharArray()[_position] : '\0';\r
- bool quoting = quote == '\'' || quote == '(';\r
- if (quote == '(') quote = ')';\r
-\r
- for (int i = quoting ? _position + 1 : _position; i < _sql.Length; ++i)\r
- {\r
- char c = _sql.ToCharArray()[i];\r
- if ((Char.IsWhiteSpace(c) || c == ',' || c == ')' || c == '(')\r
- && !quoting)\r
- {\r
- index = i;\r
- break;\r
- }\r
- else if (c == '/' && i + 1 < _sql.Length\r
- && _sql.ToCharArray()[i + 1] == '*')\r
- {\r
- index = i;\r
- break;\r
- }\r
- else if (c == '-' && i + 1 < _sql.Length\r
- && _sql.ToCharArray()[i + 1] == '-')\r
- {\r
- index = i;\r
- break;\r
- }\r
- else if (quoting && quote == '\'' && c == '\''\r
- && (i + 1 >= _sql.Length || _sql.ToCharArray()[i + 1] != '\''))\r
- {\r
- index = i + 1;\r
- break;\r
- }\r
- else if (quoting && c == quote)\r
- {\r
- index = i + 1;\r
- break;\r
- }\r
- }\r
- _token = _sql.Substring(_position, (index - _position));\r
- _tokenType = InternalTokenType.SQL;\r
- _nextTokenType = InternalTokenType.SQL;\r
- _position = index;\r
- return _token;\r
- }\r
-\r
- public string SkipWhitespace()\r
- {\r
- int index = SkipWhitespace(_position);\r
- _token = _sql.Substring(_position, (index - _position));\r
- _position = index;\r
- return _token;\r
- }\r
-\r
- protected void ParseSql()\r
- {\r
- int commentStartPos = _sql.IndexOf("/*", _position);\r
- int lineCommentStartPos = _sql.IndexOf("--", _position);\r
- int bindVariableStartPos = _sql.IndexOf("?", _position);\r
- int elseCommentStartPos = -1;\r
- int elseCommentLength = -1;\r
-\r
- if (bindVariableStartPos < 0)\r
- {\r
- bindVariableStartPos = _sql.IndexOf("?", _position);\r
- }\r
- if (lineCommentStartPos >= 0)\r
- {\r
- int skipPos = SkipWhitespace(lineCommentStartPos + 2);\r
- if (skipPos + 4 < _sql.Length\r
- && "ELSE" == _sql.Substring(skipPos, ((skipPos + 4) - skipPos)))\r
- {\r
- elseCommentStartPos = lineCommentStartPos;\r
- elseCommentLength = skipPos + 4 - lineCommentStartPos;\r
- }\r
- }\r
- int nextStartPos = GetNextStartPos(commentStartPos,\r
- elseCommentStartPos, bindVariableStartPos);\r
- if (nextStartPos < 0)\r
- {\r
- _token = _sql.Substring(_position);\r
- _nextTokenType = InternalTokenType.EOF;\r
- _position = _sql.Length;\r
- _tokenType = InternalTokenType.SQL;\r
- }\r
- else\r
- {\r
- _token = _sql.Substring(_position, nextStartPos - _position);\r
- _tokenType = InternalTokenType.SQL;\r
- bool needNext = nextStartPos == _position;\r
- if (nextStartPos == commentStartPos)\r
- {\r
- _nextTokenType = InternalTokenType.COMMENT;\r
- _position = commentStartPos + 2;\r
- }\r
- else if (nextStartPos == elseCommentStartPos)\r
- {\r
- _nextTokenType = InternalTokenType.ELSE;\r
- _position = elseCommentStartPos + elseCommentLength;\r
- }\r
- else if (nextStartPos == bindVariableStartPos)\r
- {\r
- _nextTokenType = InternalTokenType.BIND_VARIABLE;\r
- _position = bindVariableStartPos;\r
- }\r
- if (needNext) Next();\r
- }\r
- }\r
-\r
- protected int GetNextStartPos(int commentStartPos, int elseCommentStartPos,\r
- int bindVariableStartPos)\r
- {\r
- int nextStartPos = -1;\r
- if (commentStartPos >= 0)\r
- nextStartPos = commentStartPos;\r
-\r
- if (elseCommentStartPos >= 0\r
- && (nextStartPos < 0 || elseCommentStartPos < nextStartPos))\r
- nextStartPos = elseCommentStartPos;\r
-\r
- if (bindVariableStartPos >= 0\r
- && (nextStartPos < 0 || bindVariableStartPos < nextStartPos))\r
- nextStartPos = bindVariableStartPos;\r
-\r
- return nextStartPos;\r
- }\r
-\r
- protected string NextBindVariableName {\r
- get { return "${database.dollar}" + ++_bindVariableNum; }\r
- }\r
-\r
- protected void ParseComment() {\r
- int commentEndPos = _sql.IndexOf("*/", _position);\r
- if (commentEndPos < 0) {\r
- ThrowEndCommentNotFoundException(_sql.Substring(_position));\r
- }\r
- _token = _sql.Substring(_position, (commentEndPos - _position));\r
- _nextTokenType = InternalTokenType.SQL;\r
- _position = commentEndPos + 2;\r
- _tokenType = InternalTokenType.COMMENT;\r
- }\r
-\r
-\r
- protected void ThrowEndCommentNotFoundException(String expression) {\r
- String msg = "Look! Read the message below." + GetLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + GetLineSeparator();\r
- msg = msg + "The end comment was Not Found!" + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Advice]" + GetLineSeparator();\r
- msg = msg + "Please confirm the parameter comment logic." + GetLineSeparator();\r
- msg = msg + "It may exist the parameter comment that DOESN'T have an end comment." + GetLineSeparator();\r
- msg = msg + " For example:" + GetLineSeparator();\r
- msg = msg + " before (x) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3" + GetLineSeparator();\r
- msg = msg + " after (o) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3/*END*/" + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[End Comment Expected Place]" + GetLineSeparator() + expression + GetLineSeparator();\r
- msg = msg + GetLineSeparator();\r
- msg = msg + "[Specified SQL]" + GetLineSeparator() + _sql + GetLineSeparator();\r
- msg = msg + "* * * * * * * * * */" + GetLineSeparator();\r
- throw new ${glEndCommentNotFoundException}(msg);\r
- }\r
-\r
- protected void ParseBindVariable()\r
- {\r
- _token = NextBindVariableName;\r
- _nextTokenType = InternalTokenType.SQL;\r
- _position++;\r
- _tokenType = InternalTokenType.BIND_VARIABLE;\r
- }\r
-\r
- protected void ParseElse()\r
- {\r
- _token = null;\r
- _nextTokenType = InternalTokenType.SQL;\r
- _tokenType = InternalTokenType.ELSE;\r
- }\r
-\r
- protected void ParseEof()\r
- {\r
- _token = null;\r
- _tokenType = InternalTokenType.EOF;\r
- _nextTokenType = InternalTokenType.EOF;\r
- }\r
-\r
- private int SkipWhitespace(int position)\r
- {\r
- int index = _sql.Length;\r
- for (int i = position; i < _sql.Length; ++i)\r
- {\r
- char c = _sql.ToCharArray()[i];\r
- if (!Char.IsWhiteSpace(c))\r
- {\r
- index = i;\r
- break;\r
- }\r
- }\r
- return index;\r
- }\r
- \r
-\r
- // ===============================================================================\r
- // General Helper\r
- // ==============\r
- protected String GetLineSeparator() {\r
- return ${glSimpleSystemUtil}.GetLineSeparator();\r
- }\r
-\r
- // ===============================================================================\r
- // Accessor\r
- // ========\r
- public string Token\r
- {\r
- get { return _token; }\r
- }\r
-\r
- public string Before\r
- {\r
- get { return _sql.Substring(0, _position); }\r
- }\r
-\r
- public string After\r
- {\r
- get { return _sql.Substring(_position); }\r
- }\r
-\r
- public int Position\r
- {\r
- get { return _position; }\r
- }\r
-\r
- public InternalTokenType TokenType\r
- {\r
- get { return _tokenType; }\r
- }\r
-\r
- public InternalTokenType NextTokenType\r
- {\r
- get { return NextTokenType; }\r
- }\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System;\r
-using System.Data;\r
-using System.Data.SqlTypes;\r
-using System.Reflection;\r
-using System.Text;\r
-using System.Text.RegularExpressions;\r
-using Seasar.Framework.Util;\r
-using Seasar.Extension.ADO;\r
-using Seasar.Extension.ADO.Impl;\r
-\r
-namespace ${glPackageBaseCommonS2DaoInternalUtil} {\r
-\r
- public class ${glInternalBindVariableUtil} {\r
- \r
- // ===============================================================================\r
- // Definition\r
- // ==========\r
- protected static readonly IDbParameterParser _parser = new BasicDbParameterParser();\r
- protected static readonly string sqlLogDateFormat = "yyyy-MM-dd";\r
- protected static readonly string sqlLogDateTimeFormat = "yyyy-MM-dd HH.mm.ss";\r
- \r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- private ${glInternalBindVariableUtil}() {\r
- }\r
-\r
- // ===============================================================================\r
- // CompleteSql\r
- // ===========\r
- public static String GetCompleteSql(String sql, Object[] args) {\r
- if (args == null || args.Length == 0) {\r
- return sql;\r
- }\r
- _parser.Parse(sql);\r
- return ReplaceSql(sql, args);\r
- }\r
-\r
- protected static String ReplaceSql(string sql, object[] args) {\r
- StringBuilder text = new StringBuilder(sql);\r
- for (int startIndex = 0, argsIndex = 0; argsIndex < args.Length; ++argsIndex) {\r
- Match match = _parser.Match(text.ToString(), startIndex);\r
- if (!match.Success) {\r
- break;\r
- }\r
- string newValue = GetBindVariableText(args[argsIndex]);\r
- text.Replace(match.Value, newValue, match.Index, match.Length);\r
- startIndex = match.Index + newValue.Length;\r
- }\r
- return text.ToString();\r
- }\r
-\r
- public static String GetBindVariableText(Object bindVariable) {\r
- if (bindVariable is INullable) {\r
- INullable nullable = bindVariable as INullable;\r
- if (nullable.IsNull) {\r
- return GetBindVariableText(null);\r
- } else {\r
- PropertyInfo pi = bindVariable.GetType().GetProperty("Value");\r
- return GetBindVariableText(pi.GetValue(bindVariable, null));\r
- }\r
- } else if (bindVariable is string) {\r
- return "'" + bindVariable + "'";\r
- } else if (bindVariable == null) {\r
- return "null";\r
- } else if (bindVariable.GetType().IsPrimitive) {\r
- return bindVariable.ToString();\r
- } else if (bindVariable is decimal) {\r
- return bindVariable.ToString();\r
- } else if (bindVariable is DateTime) {\r
- if ((DateTime) bindVariable == ((DateTime) bindVariable).Date) {\r
- return "'" + ((DateTime) bindVariable).ToString(sqlLogDateFormat) + "'";\r
- } else {\r
- return "'" + ((DateTime) bindVariable).ToString(sqlLogDateTimeFormat) + "'";\r
- }\r
- } else if (bindVariable is bool) {\r
- return bindVariable.ToString();\r
- } else if (bindVariable.GetType().IsEnum) {\r
- object o = Convert.ChangeType(bindVariable, Enum.GetUnderlyingType(bindVariable.GetType()));\r
- return o.ToString();\r
- } else {\r
- return "'" + bindVariable + "'";\r
- }\r
- }\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-using System.Text;\r
-\r
-namespace ${glPackageBaseCommonUtil} {\r
-\r
- public class ${glSimpleAssertUtil} {\r
- \r
- // ===================================================================================\r
- // Assert\r
- // ======\r
- // -----------------------------------------------------\r
- // Assert Object\r
- // -------------\r
- public static void AssertObjectNotNull(String variableName, Object value) {\r
- if (variableName == null) {\r
- String msg = "The value should not be null: variableName=" + variableName + " value=" + value;\r
- throw new SystemException(msg);\r
- }\r
- if (value == null) {\r
- String msg = "The value should not be null: variableName=" + variableName;\r
- throw new SystemException(msg);\r
- }\r
- }\r
- \r
- // -----------------------------------------------------\r
- // Assert String\r
- // -------------\r
- public static void AssertStringNotNullAndNotTrimmedEmpty(String variableName, String value) {\r
- AssertObjectNotNull("variableName", variableName);\r
- AssertObjectNotNull("value", value);\r
- if (value.Trim().Length == 0) {\r
- String msg = "The value should not be empty: variableName=" + variableName + " value=" + value;\r
- throw new SystemException(msg);\r
- }\r
- }\r
- }\r
-}\r
+++ /dev/null
-\r
-using System;\r
-\r
-namespace ${glPackageBaseCommonUtil} {\r
-\r
- public class ${glSimpleStringUtil} {\r
- \r
- // ===================================================================================\r
- // String\r
- // ======\r
- public static String Replace(String text, String fromText, String toText) {\r
- if(text == null || fromText == null || toText == null) {\r
- return null;\r
- }\r
- return text.Replace(fromText, toText);\r
- }\r
- \r
- public static String InitCap(String str) {\r
- AssertObjectNotNull("str", str);\r
- return str.Substring(0, 1).ToUpper() + str.Substring(1);\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Assert Object\r
- // -------------\r
- protected static void AssertObjectNotNull(String variableName, Object value) {\r
- if (variableName == null) {\r
- String msg = "The value should not be null: variableName=" + variableName + " value=" + value;\r
- throw new SystemException(msg);\r
- }\r
- if (value == null) {\r
- String msg = "The value should not be null: variableName=" + variableName;\r
- throw new SystemException(msg);\r
- }\r
- }\r
- }\r
-\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System;\r
-using System.Text;\r
-\r
-namespace ${glPackageBaseCommonUtil} {\r
-\r
- public class ${glSimpleSystemUtil} {\r
- \r
- // ===================================================================================\r
- // System\r
- // ======\r
- public static String GetLineSeparator() {\r
- // /- - - - - - - - - - - - - - - - - - - - - -\r
- // Because 'CR + LF' caused many trouble!\r
- // And Now 'LF' have little trouble. \r
- // \r
- // return Environment.NewLine;\r
- // - - - - - - - - - -/\r
- return "\n";\r
- }\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-\r
-using System;\r
-using System.Data;\r
-using System.Text;\r
-using System.Collections;\r
-\r
-namespace ${glPackageBaseCommonUtil} {\r
-\r
- public class ${glTraceViewUtilName} {\r
-\r
- /// <summary>\r
- /// Convert to performance view.\r
- /// </summary>\r
- /// <param name="before">The value of before millisecond. (NotNull)</param>\r
- /// <param name="after">The value of after millisecound. (NotNull)</param>\r
- /// <returns>Performance view. (ex. 1m23s456ms) (NotNull)</returns>\r
- public static String ConvertToPerformanceView(DateTime before, DateTime after) {\r
- long beforeMil = 0;\r
- {\r
- String hour = (before.Hour < 10 ? "0" + before.Hour : "" + before.Hour);\r
- String minute = (before.Minute < 10 ? "0" + before.Minute : "" + before.Minute);\r
- String secound = (before.Second < 10 ? "0" + before.Second : "" + before.Second);\r
- String millisecond = (before.Millisecond < 10 ? "00" + before.Millisecond : (before.Millisecond < 100 ? "0" + before.Millisecond : "" + before.Millisecond));\r
- beforeMil = long.Parse(hour + minute + secound + millisecond);\r
- }\r
- long afterMil = 0;\r
- {\r
- String hour = (after.Hour < 10 ? "0" + after.Hour : "" + after.Hour);\r
- String minute = (after.Minute < 10 ? "0" + after.Minute : "" + after.Minute);\r
- String secound = (after.Second < 10 ? "0" + after.Second : "" + after.Second);\r
- String millisecond = (after.Millisecond < 10 ? "00" + after.Millisecond : (after.Millisecond < 100 ? "0" + after.Millisecond : "" + after.Millisecond));\r
- afterMil = long.Parse(hour + minute + secound + millisecond);\r
- }\r
- long mil = afterMil - beforeMil;\r
- if (mil < 0) {\r
- return "minus mil: " + after + "-" + before;\r
- }\r
-\r
- long sec = mil / 1000;\r
- long min = sec / 60;\r
- sec = sec % 60;\r
- mil = mil % 1000;\r
-\r
- StringBuilder sb = new StringBuilder();\r
- if (min >= 10) { // Minute\r
- sb.Append(min).Append("m");\r
- } else if (min < 10 && min >= 0) {\r
- sb.Append("0").Append(min).Append("m");\r
- }\r
- if (sec >= 10) { // Secound\r
- sb.Append(sec).Append("s");\r
- } else if (sec < 10 && sec >= 0) {\r
- sb.Append("0").Append(sec).Append("s");\r
- }\r
- if (mil >= 100) { // Millisecond\r
- sb.Append(mil).Append("ms");\r
- } else if (mil < 100 && mil >= 10) {\r
- sb.Append("0").Append(mil).Append("ms");\r
- } else if (mil < 10 && mil >= 0) {\r
- sb.Append("00").Append(mil).Append("ms");\r
- }\r
-\r
- return sb.ToString();\r
- }\r
-\r
- /// <summary>\r
- /// Change object array to string view.\r
- /// </summary>\r
- /// <param name="objArray">The array of object. (NotNull)</param>\r
- /// <returns>The string divided with comma. (NotNull: If the argument is null, returns empty string.)</returns>\r
- public static String ConvertObjectArrayToStringView(Object[] objArray) {\r
- if (objArray == null) {\r
- return "";\r
- }\r
- StringBuilder sb = new StringBuilder();\r
- for (int i = 0; i < objArray.Length; i++) {\r
- if (i == 0) {\r
- sb.Append(objArray[i]);\r
- } else {\r
- sb.Append(", ").Append(objArray[i]);\r
- }\r
- }\r
- return sb.ToString();\r
- }\r
- \r
- public static string ToStringView(object target) {\r
- if (target == null) {\r
- return "null";\r
- }\r
- string ret;\r
- if (target is IDictionary) {\r
- ret = ToStringView(target as IDictionary);\r
- } else if (target is IList) {\r
- ret = ToStringView(target as IList);\r
- } else if (target is DataSet) {\r
- ret = ToStringView(target as DataSet);\r
- } else if (target is DataTable) {\r
- ret = ToStringView(target as DataTable);\r
- } else {\r
- ret = target.ToString();\r
- }\r
- return ret;\r
- }\r
-\r
- public static string ToStringView(IDictionary target) {\r
- if (target == null) {\r
- return "null";\r
- }\r
-\r
- StringBuilder buf = new StringBuilder();\r
-\r
- buf.Append("{");\r
- foreach (object key in target.Keys) {\r
- buf.AppendFormat("{0}={1}, ", ToStringView(key), ToStringView(target[key]));\r
- }\r
- if (target.Keys.Count > 0) {\r
- buf.Length -= 2;\r
- }\r
- buf.Append("}");\r
-\r
- return buf.ToString();\r
- }\r
-\r
- public static string ToStringView(IList target) {\r
- if (target == null) {\r
- return "null";\r
- }\r
-\r
- StringBuilder buf = new StringBuilder();\r
- buf.Append("{");\r
- foreach (object o in target) {\r
- buf.Append(ToStringView(o));\r
- buf.Append(", ");\r
- }\r
- if (target.Count > 0) {\r
- buf.Length -= 2;\r
- }\r
- buf.Append("}");\r
-\r
- return buf.ToString();\r
- }\r
-\r
- public static string ToStringView(DataSet target) {\r
- if (target == null) {\r
- return "null";\r
- }\r
-\r
- StringBuilder buf = new StringBuilder();\r
-\r
- foreach (DataTable table in target.Tables) {\r
- buf.Append(ToStringView(table));\r
- buf.Append(Environment.NewLine);\r
- }\r
-\r
- return buf.ToString();\r
- }\r
-\r
- public static string ToStringView(DataTable target) {\r
- if (target == null) {\r
- return "null";\r
- }\r
-\r
- StringBuilder buf = new StringBuilder();\r
-\r
- buf.AppendFormat(target.TableName);\r
- buf.Append(Environment.NewLine);\r
-\r
- DataRowCollection tableRows = target.Rows;\r
- DataColumnCollection tableColumns = target.Columns;\r
- for (int ctrRow = 0; ctrRow < tableRows.Count; ctrRow++) {\r
- DataRow row = tableRows[ctrRow];\r
- buf.AppendFormat("Row #{0}-", ctrRow + 1);\r
- buf.Append(Environment.NewLine);\r
- object[] rowItems = row.ItemArray;\r
-\r
- for (int ctrColumn = 0; ctrColumn < tableColumns.Count; ctrColumn++) {\r
- DataColumn column = tableColumns[ctrColumn];\r
- buf.AppendFormat("\t{0}: {1}", column.ColumnName, rowItems[ctrColumn]);\r
- buf.Append(Environment.NewLine);\r
- }\r
- }\r
- buf.Append(Environment.NewLine);\r
-\r
- return buf.ToString();\r
- }\r
- \r
- }\r
-}\r
+++ /dev/null
-#set ($myClassName = "${myExtendedBhvInterfaceName}")\r
-\r
-using System;\r
-using System.Collections.Generic;\r
-\r
-using Seasar.Quill;\r
-using Seasar.Quill.Attrs;\r
-\r
-using ${glPackageBaseCommon};\r
-using ${glPackageBaseCommonBhv};\r
-using ${glPackageBaseCommonBhvLoad};\r
-using ${glPackageBaseCommonBhvSetup};\r
-using ${glPackageBaseCommonCBean};\r
-using ${glPackageBaseCommonDBMeta};\r
-using ${myDBMetaPackageName};\r
-using ${glPackageExtendedDao};\r
-using ${glPackageExtendedEntity};\r
-using ${glPackageCB};\r
-\r
-#set ($myExtendClassName = "")\r
-#if ($table.isWritable())\r
- #set ($myExtendClassName = "${glBehaviorWritableAbstractName}")\r
-#else\r
- #set ($myExtendClassName = "${glBehaviorReadableAbstractName}")\r
-#end\r
-\r
-namespace ${glPackageExtendedBhv} {\r
-\r
- /// <summary>\r
- /// The behavior of ${table.name}. (partial class for auto-generation)\r
- /// <![CDATA[\r
- /// [primary-key]\r
- /// ${table.primaryKeyNameCommaString}\r
- /// \r
- /// [column]\r
- /// ${table.columnNameCommaString}\r
- /// \r
- /// [sequence]\r
- /// ${table.definedSequenceName}\r
- /// \r
- /// [identity]\r
- /// ${table.identityColumnName}\r
- /// \r
- /// [version-no]\r
- /// ${table.versionNoColumnName}\r
- /// \r
- /// [foreign-table]\r
- /// ${table.foreignTableNameCommaString}\r
- /// \r
- /// [referrer-table]\r
- /// ${table.referrerTableNameCommaString}\r
- /// \r
- /// [foreign-property]\r
- /// ${table.foreignPropertyNameCommaString}\r
- /// \r
- /// [referrer-property]\r
- /// ${table.referrerPropertyNameCommaString}\r
- /// ]]>\r
- /// Author: ${database.ClassAuthor}\r
- /// </summary>\r
- [Implementation]\r
- public partial class ${myClassName} : ${glPackageBaseCommonBhv}.${myExtendClassName} {\r
-\r
- // ===============================================================================\r
- // Definition\r
- // ==========\r
- ${database.behaviorQueryPathBeginMark}\r
- ${database.behaviorQueryPathEndMark}\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected ${myExtendedDaoClassName} _dao;\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${myClassName}() {\r
- }\r
- \r
- // ===============================================================================\r
- // Initialized Mark\r
- // ================\r
- public override bool IsInitialized { get { return _dao != null; } }\r
-\r
- // ===============================================================================\r
- // Table Name\r
- // ==========\r
- public override String TableDbName { get { return "${table.Name}"; } }\r
-\r
- // ===============================================================================\r
- // DBMeta\r
- // ======\r
- public override ${glDBMetaInterfaceName} DBMeta { get { return ${myDBMetaClassName}.GetInstance(); } }\r
- public ${myDBMetaClassName} MyDBMeta { get { return ${myDBMetaClassName}.GetInstance(); } }\r
-\r
- // ===============================================================================\r
- // New Instance\r
- // ============\r
- #region New Instance\r
- public override ${glEntityInterfaceName} NewEntity() { return NewMyEntity(); }\r
- public override ${glConditionBeanInterfaceName} NewConditionBean() { return NewMyConditionBean(); }\r
- public virtual ${myExtendedObjectClassName} NewMyEntity() { return new ${myExtendedObjectClassName}(); }\r
- public virtual ${myConditionBeanClassName} NewMyConditionBean() { return new ${myConditionBeanClassName}(); }\r
- #endregion\r
-\r
- // ===============================================================================\r
- // Count Select\r
- // ============\r
- #region Count Select\r
- public virtual int SelectCount(${myConditionBeanClassName} cb) {\r
- AssertConditionBeanNotNull(cb);\r
- return this.DelegateSelectCount(cb);\r
- }\r
- #endregion\r
-\r
- // ===============================================================================\r
- // Entity Select\r
- // =============\r
- #region Entity Select\r
- public virtual ${myExtendedObjectClassName} SelectEntity(${myConditionBeanClassName} cb) {\r
- AssertConditionBeanNotNull(cb);\r
- IList<${myExtendedObjectClassName}> ls = this.DelegateSelectList(cb);\r
- if (ls.Count == 0) { return null; }\r
- AssertEntitySelectedAsOne(ls, cb);\r
- return (${myExtendedObjectClassName})ls[0];\r
- }\r
-\r
- public virtual ${myExtendedObjectClassName} SelectEntityWithDeletedCheck(${myConditionBeanClassName} cb) {\r
- AssertConditionBeanNotNull(cb);\r
- IList<${myExtendedObjectClassName}> ls = this.DelegateSelectList(cb);\r
- AssertEntityNotDeleted(ls, cb);\r
- AssertEntitySelectedAsOne(ls, cb);\r
- return (${myExtendedObjectClassName})ls[0];\r
- }\r
- #endregion\r
-\r
- // ===============================================================================\r
- // List Select\r
- // ===========\r
- #region List Select\r
- public virtual ${glListResultBeanName}<${myExtendedObjectClassName}> SelectList(${myConditionBeanClassName} cb) {\r
- AssertConditionBeanNotNull(cb);\r
- return new ${glResultBeanBuilderName}<${myExtendedObjectClassName}>(TableDbName).BuildListResultBean(cb, this.DelegateSelectList(cb));\r
- }\r
- #endregion\r
-\r
- // ===============================================================================\r
- // Page Select\r
- // ===========\r
- #region Page Select\r
- public virtual ${glPagingResultBeanName}<${myExtendedObjectClassName}> SelectPage(${myConditionBeanClassName} cb) {\r
- AssertConditionBeanNotNull(cb);\r
- ${glPagingInvokerName}<${myExtendedObjectClassName}> invoker = new ${glPagingInvokerName}<${myExtendedObjectClassName}>(TableDbName);\r
- return invoker.InvokePaging(new InternalSelectPagingHandler(this, cb));\r
- }\r
-\r
- private class InternalSelectPagingHandler : ${glPagingHandlerName}<${myExtendedObjectClassName}> {\r
- protected ${myClassName} _bhv; protected ${myConditionBeanClassName} _cb;\r
- public InternalSelectPagingHandler(${myClassName} bhv, ${myConditionBeanClassName} cb) { _bhv = bhv; _cb = cb; }\r
- public ${glPagingBeanInterfaceName} PagingBean { get { return _cb; } }\r
- public int Count() { return _bhv.SelectCount(_cb); }\r
- public IList<${myExtendedObjectClassName}> Paging() { return _bhv.SelectList(_cb); }\r
- }\r
- #endregion\r
-#if ($table.isUseSequence())\r
-\r
- // ===============================================================================\r
- // Sequence\r
- // ========\r
- public ${table.sequenceReturnType} SelectNextVal() {\r
- return DelegateSelectNextVal();\r
- }\r
-#if ($table.hasOnlyOnePrimaryKey())\r
- protected override void SetupNextValueToPrimaryKey(${glEntityInterfaceName} entity) {// Very Internal\r
- ${myExtendedObjectClassName} myEntity = (${myExtendedObjectClassName})entity;\r
- myEntity.${table.primaryKeyJavaNameAsOne} = SelectNextVal();\r
- }\r
-#end\r
-#end\r
-\r
-#if (${table.hasOnlyOnePrimaryKey()})\r
- // ===============================================================================\r
- // Load Referrer\r
- // =============\r
- #region Load Referrer\r
-#foreach ($referrer in $table.referrerList)\r
-#set ($referrerTable = $referrer.table)\r
-#set ($referrerEntityClassName = "${glProjectPrefix}${referrerTable.javaName}")\r
-#set ($referrerDaoClassName = "${referrerEntityClassName}Dao")\r
-#set ($referrerBhvClassName = "")\r
-#set ($referrerBhvClassName = "${referrerEntityClassName}Bhv")\r
-#set ($referrerCBClassName = "${referrerEntityClassName}${glConditionBeanInitialName}")\r
-#set ($referrerVariableName = "${glChildrenVariablePrefix}${referrer.referrerPropertyNameInitCap}")\r
-#set ($referrerEntityLongClassName = "${glPackageExtendedEntity}.${referrerEntityClassName}")\r
-#set ($genericPKMyEntityMap = "${table.getPrimaryKeyJavaNativeAsOne()}, ${myExtendedObjectClassName}")\r
-#set ($genericPKChildListMap = "${table.getPrimaryKeyJavaNativeAsOne()}, IList<${referrerEntityClassName}>")\r
-#if (!${referrer.isOneToOne()})\r
- public virtual void Load${referrer.referrerPropertyNameInitCap}(IList<${myExtendedObjectClassName}> ${myEntityListVariableName}, ${glConditionBeanSetupperName}<${referrerCBClassName}> conditionBeanSetupper) {\r
- AssertObjectNotNull("${myEntityListVariableName}", ${myEntityListVariableName}); AssertObjectNotNull("conditionBeanSetupper", conditionBeanSetupper);\r
- if (${myEntityListVariableName}.Count == 0) { return; }\r
- Load${referrer.referrerJavaBeansRulePropertyNameInitCap}(${myEntityListVariableName}, new ${glLoadReferrerOptionName}<${referrerCBClassName}, ${referrerEntityClassName}>(conditionBeanSetupper));\r
- }\r
- public virtual void Load${referrer.referrerPropertyNameInitCap}(IList<${myExtendedObjectClassName}> ${myEntityListVariableName}, ${glLoadReferrerOptionName}<${referrerCBClassName}, ${referrerEntityClassName}> loadReferrerOption) {\r
- AssertObjectNotNull("${myEntityListVariableName}", ${myEntityListVariableName}); AssertObjectNotNull("loadReferrerOption", loadReferrerOption);\r
- if (${myEntityListVariableName}.Count == 0) { return; }\r
- ${referrerBhvClassName} referrerBhv = xgetBSFLR().Select<${referrerBhvClassName}>();\r
- HelpLoadReferrerInternally<${myExtendedObjectClassName}, ${table.getPrimaryKeyJavaNativeAsOne()}, ${referrerCBClassName}, ${referrerEntityClassName}>\r
- (${myEntityListVariableName}, loadReferrerOption, new MyInternalLoad${referrer.reffererPropertyNameInitCap}Callback(referrerBhv));\r
- }\r
- protected class MyInternalLoad${referrer.referrerPropertyNameInitCap}Callback : InternalLoadReferrerCallback<${myExtendedObjectClassName}, ${table.getPrimaryKeyJavaNativeAsOne()}, ${referrerCBClassName}, ${referrerEntityClassName}> {\r
- protected ${referrerBhvClassName} referrerBhv;\r
- public MyInternalLoad${referrer.reffererPropertyNameInitCap}Callback(${referrerBhvClassName} referrerBhv) { this.referrerBhv = referrerBhv; }\r
- public ${table.getPrimaryKeyJavaNativeAsOne()} callbackBase_getPrimaryKeyValue(${myExtendedObjectClassName} entity) { return entity.${table.getPrimaryKeyJavaNameAsOne()}; }\r
- public void callbackBase_setReferrerList(${myExtendedObjectClassName} entity, IList<${referrerEntityClassName}> referrerList) { entity.${referrer.referrerPropertyNameInitCap} = referrerList; }\r
- public ${referrerCBClassName} callbackReferrer_newMyConditionBean() { return referrerBhv.NewMyConditionBean(); }\r
- public void callbackReferrer_queryForeignKeyInScope(${referrerCBClassName} cb, IList<${table.getPrimaryKeyJavaNativeAsOne()}> pkList) { cb.Query().Set${referrer.getLocalColumnJavaNameAsOne()}_InScope(pkList); }\r
- public void callbackReferrer_queryAddOrderByForeignKeyAsc(${referrerCBClassName} cb) { cb.Query().AddOrderBy_${referrer.getLocalColumnJavaNameAsOne()}_Asc(); }\r
- public IList<${referrerEntityClassName}> callbackReferrer_selectList(${referrerCBClassName} cb) { return referrerBhv.SelectList(cb); }\r
- public ${table.getPrimaryKeyJavaNativeAsOne()} callbackReferrer_getForeignKeyValue(${referrerEntityClassName} entity) { return entity.${referrer.getLocalColumnJavaNameAsOne()}; }\r
- public void callbackReferrer_setForeignEntity(${referrerEntityClassName} referrerEntity, ${myExtendedObjectClassName} baseEntity) { referrerEntity.${referrer.foreignPropertyNameInitCap} = baseEntity; }\r
- }\r
-#end\r
-#end\r
- #endregion\r
-#end\r
-\r
- // ===============================================================================\r
- // Pullout Foreign\r
- // ===============\r
- #region Pullout Foreign\r
-#foreach ($foreignKeys in $table.foreignKeys)\r
-#set ($foreignEntityClassName = "${foreignKeys.foreignTableExtendedEntityClassName}")\r
- public IList<${foreignEntityClassName}> Pullout${foreignKeys.foreignPropertyNameInitCap}(IList<${myExtendedObjectClassName}> ${myEntityListVariableName}) {\r
- return HelpPulloutInternally<${myExtendedObjectClassName}, ${foreignEntityClassName}>(${myEntityListVariableName}, new MyInternalPullout${foreignKeys.foreignPropertyNameInitCap}Callback());\r
- }\r
- protected class MyInternalPullout${foreignKeys.foreignPropertyNameInitCap}Callback : InternalPulloutCallback<${myExtendedObjectClassName}, ${foreignEntityClassName}> {\r
- public ${foreignEntityClassName} callbackGetForeignEntity(${myExtendedObjectClassName} entity) { return entity.${foreignKeys.foreignPropertyNameInitCap}; }\r
- }\r
-#end\r
-#foreach ($referrer in $table.referrers)\r
- #set ($referrerTable = $referrer.table)\r
- #set ($referrerEntityClassName = "${glProjectPrefix}${referrerTable.javaName}")\r
- #if (${referrer.isOneToOne()})\r
- public IList<${referrerEntityClassName}> Pullout${referrer.referrerPropertyNameInitCapAsOne}(IList<${myExtendedObjectClassName}> ${myEntityListVariableName}) {\r
- return HelpPulloutInternally<${myExtendedObjectClassName}, ${referrerEntityClassName}>(${myEntityListVariableName}, new MyInternalPullout${referrer.referrerPropertyNameInitCap}Callback());\r
- }\r
- protected class MyInternalPullout${referrer.referrerPropertyNameInitCap}Callback : InternalPulloutCallback<${myExtendedObjectClassName}, ${referrerEntityClassName}> {\r
- public ${referrerEntityClassName} callbackGetForeignEntity(${myExtendedObjectClassName} entity) { return entity.${referrer.referrerPropertyNameInitCapAsOne}; }\r
- }\r
- #end\r
-#end\r
- #endregion\r
-\r
-#if ($table.isWritable())\r
-\r
- // ===============================================================================\r
- // Entity Update\r
- // =============\r
- #region Basic Entity Update\r
- public virtual void Insert(${myExtendedObjectClassName} entity) {\r
- AssertEntityNotNull(entity);\r
- this.DelegateInsert(entity);\r
- }\r
-\r
- public virtual void Update(${myExtendedObjectClassName} entity) {\r
- AssertEntityNotNull(entity);\r
- AssertEntityHasVersionNoValue(entity);\r
- AssertEntityHasUpdateDateValue(entity);\r
- int updatedCount = this.DelegateUpdate(entity);\r
- AssertUpdatedEntity(entity, updatedCount);\r
- }\r
-#if ($table.hasOptimisticLock())\r
-\r
- public virtual void UpdateNonstrict(${myExtendedObjectClassName} entity) {\r
- AssertEntityNotNull(entity);\r
- int updatedCount = this.DelegateUpdateNonstrict(entity);\r
- AssertUpdatedEntity(entity, updatedCount);\r
- }\r
-#end\r
-\r
- public void InsertOrUpdate(${myExtendedObjectClassName} entity) {\r
- HelpInsertOrUpdateInternally<${myExtendedObjectClassName}, ${myConditionBeanClassName}>(entity, new MyInternalInsertOrUpdateCallback(this));\r
- }\r
- protected class MyInternalInsertOrUpdateCallback : InternalInsertOrUpdateCallback<${myExtendedObjectClassName}, ${myConditionBeanClassName}> {\r
- protected ${myClassName} _bhv;\r
- public MyInternalInsertOrUpdateCallback(${myClassName} bhv) { _bhv = bhv; }\r
- public void CallbackInsert(${myExtendedObjectClassName} entity) { _bhv.Insert(entity); }\r
- public void CallbackUpdate(${myExtendedObjectClassName} entity) { _bhv.Update(entity); }\r
- public ${myConditionBeanClassName} CallbackNewMyConditionBean() { return _bhv.NewMyConditionBean(); }\r
- public void CallbackSetupPrimaryKeyCondition(${myConditionBeanClassName} cb, ${myExtendedObjectClassName} entity) {\r
-#foreach ($col in $table.primaryKey)\r
- cb.Query().Set${col.javaName}_Equal(entity.${col.javaName});\r
-#end\r
- }\r
- public int CallbackSelectCount(${myConditionBeanClassName} cb) { return _bhv.SelectCount(cb); }\r
- }\r
-#if ($table.hasOptimisticLock())\r
-\r
- public void InsertOrUpdateNonstrict(${myExtendedObjectClassName} entity) {\r
- HelpInsertOrUpdateInternally<${myExtendedObjectClassName}>(entity, new MyInternalInsertOrUpdateNonstrictCallback(this));\r
- }\r
- protected class MyInternalInsertOrUpdateNonstrictCallback : InternalInsertOrUpdateNonstrictCallback<${myExtendedObjectClassName}> {\r
- protected ${myClassName} _bhv;\r
- public MyInternalInsertOrUpdateNonstrictCallback(${myClassName} bhv) { _bhv = bhv; }\r
- public void CallbackInsert(${myExtendedObjectClassName} entity) { _bhv.Insert(entity); }\r
- public void CallbackUpdateNonstrict(${myExtendedObjectClassName} entity) { _bhv.UpdateNonstrict(entity); }\r
- }\r
-#end\r
-\r
- public virtual void Delete(${myExtendedObjectClassName} entity) {\r
- HelpDeleteInternally<${myExtendedObjectClassName}>(entity, new MyInternalDeleteCallback(this));\r
- }\r
- protected class MyInternalDeleteCallback : InternalDeleteCallback<${myExtendedObjectClassName}> {\r
- protected ${myClassName} _bhv;\r
- public MyInternalDeleteCallback(${myClassName} bhv) { _bhv = bhv; }\r
- public int CallbackDelegateDelete(${myExtendedObjectClassName} entity) { return _bhv.DelegateDelete(entity); }\r
- }\r
-#if ($table.hasOptimisticLock())\r
-\r
- public virtual void DeleteNonstrict(${myExtendedObjectClassName} entity) {\r
- HelpDeleteNonstrictInternally<${myExtendedObjectClassName}>(entity, new MyInternalDeleteNonstrictCallback(this));\r
- }\r
- protected class MyInternalDeleteNonstrictCallback : InternalDeleteNonstrictCallback<${myExtendedObjectClassName}> {\r
- protected ${myClassName} _bhv;\r
- public MyInternalDeleteNonstrictCallback(${myClassName} bhv) { _bhv = bhv; }\r
- public int CallbackDelegateDeleteNonstrict(${myExtendedObjectClassName} entity) { return _bhv.DelegateDeleteNonstrict(entity); }\r
- }\r
-\r
- public virtual void DeleteNonstrictIgnoreDeleted(${myExtendedObjectClassName} entity) {\r
- HelpDeleteNonstrictIgnoreDeletedInternally<${myExtendedObjectClassName}>(entity, new MyInternalDeleteNonstrictIgnoreDeletedCallback(this));\r
- }\r
- protected class MyInternalDeleteNonstrictIgnoreDeletedCallback : InternalDeleteNonstrictIgnoreDeletedCallback<${myExtendedObjectClassName}> {\r
- protected ${myClassName} _bhv;\r
- public MyInternalDeleteNonstrictIgnoreDeletedCallback(${myClassName} bhv) { _bhv = bhv; }\r
- public int CallbackDelegateDeleteNonstrict(${myExtendedObjectClassName} entity) { return _bhv.DelegateDeleteNonstrict(entity); }\r
- }\r
-#end\r
- #endregion\r
-#end\r
-\r
- // ===============================================================================\r
- // Query Update\r
- // ============\r
-#if (${table.hasOnlyOnePrimaryKey()})\r
- public int QueryUpdate(${myExtendedObjectClassName} ${myEntityVariableName}, ${myConditionBeanClassName} cb) {\r
- AssertObjectNotNull("${myEntityVariableName}", ${myEntityVariableName}); AssertConditionBeanNotNull(cb);\r
- SetupCommonColumnOfUpdateIfNeeds(${myEntityVariableName});\r
- FilterEntityOfUpdate(${myEntityVariableName}); AssertEntityOfUpdate(${myEntityVariableName});\r
- return this.Dao.UpdateByQuery(cb, ${myEntityVariableName});\r
- }\r
-\r
- public int QueryDelete(${myConditionBeanClassName} cb) {\r
- AssertConditionBeanNotNull(cb);\r
- return this.Dao.DeleteByQuery(cb);\r
- }\r
-#end\r
-\r
- // ===============================================================================\r
- // Optimistic Lock Info\r
- // ====================\r
- protected override bool HasVersionNoValue(${glEntityInterfaceName} entity) {\r
-#if ($table.isUseVersionNo())\r
- return Downcast(entity).${table.versionNoJavaName} != null;\r
-#else\r
- return false;\r
-#end\r
- }\r
-\r
- protected override bool HasUpdateDateValue(${glEntityInterfaceName} entity) {\r
-#if ($table.isUseUpdateDate())\r
- return Downcast(entity).${table.updateDateJavaName} != null;\r
-#else\r
- return false;\r
-#end\r
- }\r
-\r
- // ===============================================================================\r
- // Helper\r
- // ======\r
- protected ${myExtendedObjectClassName} Downcast(${glEntityInterfaceName} entity) {\r
- return (${myExtendedObjectClassName})entity;\r
- }\r
-\r
- // ===============================================================================\r
- // Delegate Method\r
- // ===============\r
- #region Delegate Method\r
- protected int DelegateSelectCount(${myConditionBeanClassName} cb) { AssertConditionBeanNotNull(cb); return this.Dao.SelectCount(cb); }\r
- protected override int DoCallReadCount(${glConditionBeanInterfaceName} cb) { return this.DelegateSelectCount((${myConditionBeanClassName})cb); }\r
- protected IList<${myExtendedObjectClassName}> DelegateSelectList(${myConditionBeanClassName} cb) { AssertConditionBeanNotNull(cb); return this.Dao.SelectList(cb); }\r
- protected override IList<${glEntityInterfaceName}> DoCallReadList(${glConditionBeanInterfaceName} cb) { return (IList<${glEntityInterfaceName}>)this.DelegateSelectList((${myConditionBeanClassName})cb); }\r
-#if ($table.isUseSequence())\r
- protected ${table.sequenceReturnType} DelegateSelectNextVal() { return this.Dao.SelectNextVal(); }\r
-#end\r
-\r
-#if ($table.isWritable())\r
- protected int DelegateInsert(${myExtendedObjectClassName} e) { if (!ProcessBeforeInsert(e)) { return 1; } return this.Dao.Insert(e); }\r
- protected int DelegateUpdate(${myExtendedObjectClassName} e) { if (!ProcessBeforeUpdate(e)) { return 1; } return this.Dao.UpdateModifiedOnly(e); }\r
-#if ($table.hasOptimisticLock())\r
- protected int DelegateUpdateNonstrict(${myExtendedObjectClassName} e) { if (!ProcessBeforeUpdate(e)) { return 1; } return this.Dao.UpdateNonstrictModifiedOnly(e); }\r
-#end\r
- protected int DelegateDelete(${myExtendedObjectClassName} e) { if (!ProcessBeforeDelete(e)) { return 1; } return this.Dao.Delete(e); }\r
-#if ($table.hasOptimisticLock())\r
- protected int DelegateDeleteNonstrict(${myExtendedObjectClassName} e) { if (!ProcessBeforeDelete(e)) { return 1; } return this.Dao.DeleteNonstrict(e); }\r
-#end\r
- protected override int DoCallCreate(${glEntityInterfaceName} e) { return this.DelegateInsert((${myExtendedObjectClassName})e); }\r
- protected override int DoCallModify(${glEntityInterfaceName} e) { return this.DelegateUpdate((${myExtendedObjectClassName})e); }\r
- protected override int DoCallRemove(${glEntityInterfaceName} e) { return this.DelegateDelete((${myExtendedObjectClassName})e); }\r
-#end\r
- #endregion\r
-#if ($table.hasBehaviorFilterBeforeColumn())\r
-\r
- // ===============================================================================\r
- // Filter Override\r
- // ===============\r
- #region Filter Override\r
-#if ($table.hasBehaviorFilterBeforeInsertColumn())\r
- protected override void FilterEntityOfInsert(${glEntityInterfaceName} targetEntity) {\r
- base.FilterEntityOfInsert(targetEntity);\r
- ${myExtendedObjectClassName} entity = (${myExtendedObjectClassName})targetEntity;\r
-#foreach ($column in $table.behaviorFilterBeforeInsertColumnList)\r
- entity.${column.javaName} = ${column.behaviorFilterBeforeInsertColumnExpression};\r
-#end\r
- }\r
-#end\r
-#if ($table.hasBehaviorFilterBeforeUpdateColumn())\r
- protected override void FilterEntityOfUpdate(${glEntityInterfaceName} targetEntity) {\r
- base.FilterEntityOfUpdate(targetEntity);\r
- ${myExtendedObjectClassName} entity = (${myExtendedObjectClassName})targetEntity;\r
-#foreach ($column in $table.behaviorFilterBeforeUpdateColumnList)\r
- entity.${column.javaName} = ${column.behaviorFilterBeforeUpdateColumnExpression};\r
-#end\r
- }\r
-#end\r
- #endregion\r
-#end\r
-\r
- // ===============================================================================\r
- // Accessor\r
- // ========\r
- #region Accessor\r
- public virtual ${myExtendedDaoClassName} Dao {\r
- get { return _dao; }\r
- set { _dao = value; }\r
- }\r
- #endregion\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-#set ($myClassName = "${myExtendedDaoClassName}")\r
-\r
-using System;\r
-using System.Collections.Generic;\r
-\r
-using Seasar.Quill.Attrs;\r
-using Seasar.Dao.Attrs;\r
-\r
-using ${glPackageBaseCommon};\r
-using ${glPackageBaseCommonS2Dao};\r
-using ${myExtendedEntityPackageName};\r
-using ${glPackageCB};\r
-#set ($InterfaceName = "")\r
-#if ($table.hasPrimaryKey())\r
- #set ($InterfaceName = "${glDaoWritableInterfaceName}")\r
-#else\r
- #set ($InterfaceName = "${glDaoReadableInterfaceName}")\r
-#end\r
-\r
-namespace ${myExtendedDaoPackageName} {\r
-\r
- [Implementation]\r
- [S2Dao(typeof(${glS2DaoSetting}))]\r
- [Bean(typeof(${myExtendedObjectClassName}))]\r
- public partial interface ${myClassName} : ${InterfaceName} {\r
- void InitializeDaoMetaData(String methodName);// Very Internal Method!\r
-\r
- int SelectCount(${myConditionBeanClassName} cb);\r
- IList<${myExtendedObjectClassName}> SelectList(${myConditionBeanClassName} cb);\r
-\r
-#if ($table.hasPrimaryKey())\r
- int Insert(${myExtendedObjectClassName} entity);\r
- int UpdateModifiedOnly(${myExtendedObjectClassName} entity);\r
-#if ($table.hasOptimisticLock())\r
- int UpdateNonstrictModifiedOnly(${myExtendedObjectClassName} entity);\r
-#end\r
-#if (${table.hasOnlyOnePrimaryKey()})\r
- int UpdateByQuery(${myConditionBeanClassName} cb, ${myExtendedObjectClassName} entity);\r
-#end\r
- int Delete(${myExtendedObjectClassName} entity);\r
-#if ($table.hasOptimisticLock())\r
- int DeleteNonstrict(${myExtendedObjectClassName} entity);\r
-#end\r
-#if (${table.hasOnlyOnePrimaryKey()})\r
- int DeleteByQuery(${myConditionBeanClassName} cb);// {DBFlute-0.7.9}\r
-#end\r
-#end\r
-#if ($table.isUseSequence())\r
-\r
- ${table.sequenceReturnType} SelectNextVal();\r
-#end\r
- }\r
-}\r
+++ /dev/null
-\r
-#set ($myClassName = "${myExtendedParameterBeanClassName}")\r
-\r
-using System;\r
-using System.Text;\r
-#if ($database.isPmbMetaDataForProcedure($pmbClassName))\r
-\r
-using ${glPackageBaseCommonCBeanOutsidesql};\r
-#end\r
-\r
-namespace ${glPackageExtendedParameterBean} {\r
-\r
- /// <summary>\r
- /// The parametaer-bean of ${pmbClassName}.\r
- /// Author: ${database.ClassAuthor}\r
- /// </summary>\r
- [System.Serializable]\r
-#if ($database.isPmbMetaDataForProcedure($pmbClassName))\r
- public partial class ${myClassName} : ${glProcedurePmbName} {\r
-#else\r
- public partial class ${myClassName} ${database.getPmbMetaDataSuperClassDefinition($pmbClassName)}{\r
-#end\r
-#if ($database.isPmbMetaDataForProcedure($pmbClassName))\r
-\r
- // ===============================================================================\r
- // Definition\r
- // ==========\r
- // -------------------------------------------------\r
- // Procedure Parameter\r
- // -------------------\r
-#foreach ($propertyName in $database.getPmbMetaDataPropertySet($pmbClassName))\r
-#set ($propertyType = $database.getPmbMetaDataPropertyType($pmbClassName, $propertyName))\r
-#set ($columnName = $database.getPmbMetaDataPropertyColumnName($pmbClassName, $propertyName))\r
-#if ($database.isPmbMetaDataPropertyOptionProcedureParameterIn($pmbClassName, $propertyName))\r
- public static readonly String ${propertyName}_PROCEDURE_PARAMETER = "${columnName}, in";\r
-#elseif ($database.isPmbMetaDataPropertyOptionProcedureParameterOut($pmbClassName, $propertyName))\r
- public static readonly String ${propertyName}_PROCEDURE_PARAMETER = "${columnName}, out";\r
-#elseif ($database.isPmbMetaDataPropertyOptionProcedureParameterInOut($pmbClassName, $propertyName))\r
- public static readonly String ${propertyName}_PROCEDURE_PARAMETER = "${columnName}, inout";\r
-#elseif ($database.isPmbMetaDataPropertyOptionProcedureParameterReturn($pmbClassName, $propertyName))\r
- public static readonly String ${propertyName}_PROCEDURE_PARAMETER = "${columnName}, return";\r
-#end\r
-#end\r
-#end\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
-#foreach ($propertyName in $database.getPmbMetaDataPropertySet($pmbClassName))\r
-#set ($propertyType = $database.getPmbMetaDataPropertyType($pmbClassName, $propertyName))\r
- protected ${propertyType} _${propertyName};\r
-#if ($database.isPmbMetaDataPropertyOptionLikeSearch($pmbClassName, $propertyName))\r
- protected ${glPackageBaseCommonCOption}.${glConditionOptionLikeSearchName} _${propertyName}InternalLikeSearchOption;\r
-\r
-#end\r
-#end\r
- \r
-#if ($database.isPmbMetaDataForProcedure($pmbClassName))\r
- // ===============================================================================\r
- // Procedure\r
- // =========\r
- public String ProcedureName { get {\r
- return "${database.getPmbMetaDataProcedureName($pmbClassName)}";\r
- }}\r
-\r
-#end\r
- // ===============================================================================\r
- // Helper\r
- // ======\r
- protected String ConvertEmptyToNullIfString(String value) {\r
- return FilterRemoveEmptyString(value);\r
- }\r
-\r
- protected String FilterRemoveEmptyString(String value) {\r
- return ((value != null && !"".Equals(value)) ? value : null);\r
- }\r
-\r
- // ===============================================================================\r
- // Basic Override\r
- // ==============\r
- public override String ToString() {\r
- String delimiter = ",";\r
- StringBuilder sb = new StringBuilder();\r
-#foreach ($propertyName in $database.getPmbMetaDataPropertySet($pmbClassName))\r
- sb.Append(delimiter).Append(_${propertyName});\r
-#end\r
- if (sb.Length > 0) { sb.Remove(0, delimiter.Length); }\r
- sb.Insert(0, "{").Append("}");\r
- return sb.ToString();\r
- }\r
-\r
- // ===============================================================================\r
- // Accessor\r
- // ========\r
-#foreach ($propertyName in $database.getPmbMetaDataPropertySet($pmbClassName))\r
-#set ($propertyType = $database.getPmbMetaDataPropertyType($pmbClassName, $propertyName))\r
- public ${propertyType} ${database.initCap($propertyName)} {\r
-#if ($propertyType.endsWith("String"))\r
- get { return ($propertyType)ConvertEmptyToNullIfString(_${propertyName}); }\r
-#else\r
- get { return _${propertyName}; }\r
-#end\r
- set { _${propertyName} = value; }\r
- }\r
-#if ($database.isPmbMetaDataPropertyOptionLikeSearch($pmbClassName, $propertyName))\r
-\r
- public void Set${database.initCap($propertyName)}(${propertyType} ${propertyName}, ${glPackageBaseCommonCOption}.${glConditionOptionLikeSearchName} ${propertyName}Option) {\r
- this.${database.initCap($propertyName)} = ${propertyName};\r
- _${propertyName}InternalLikeSearchOption = ${propertyName}Option;\r
- }\r
-\r
- public ${glPackageBaseCommonCOption}.${glConditionOptionLikeSearchName} ${database.initCap($propertyName)}InternalLikeSearchOption { get {\r
- return _${propertyName}InternalLikeSearchOption;\r
- }}\r
-#end\r
-#if ($database.isPmbMetaDataPropertyOptionClassification($pmbClassName, $propertyName))\r
-#set ($classificationName = $database.getPmbMetaDataPropertyOptionClassificationName($pmbClassName, $propertyName))\r
-#foreach ($classificationMap in $database.getPmbMetaDataPropertyOptionClassificationMapList($pmbClassName, $propertyName))\r
-\r
- public void Set${database.initCap($propertyName)}_${classificationMap.get('name')}() {\r
- this.${database.initCap($propertyName)} = ${glPackageBaseCommon}.${glClassificationDefinition}.${database.classificationCodeVariableNamePrefix}${classificationName}_${classificationMap.get('name')};\r
- }\r
-#end\r
-#end\r
-\r
-#end\r
- }\r
-}\r
+++ /dev/null
-#set ($myClassName = "${myExtendedTypeSafeCursorClassName}")\r
-\r
-using System;\r
-using System.Data;\r
-using Seasar.Framework.Util;\r
-\r
-namespace ${myExtendedDaoCursorPackageName} {\r
-\r
- public partial class ${myClassName} {\r
-\r
- // ===============================================================================\r
- // Definition\r
- // ==========\r
- // -------------------------------------------------\r
- // Column DB Name\r
- // --------------\r
-#foreach ($col in $table.columns)\r
- public static readonly String DB_NAME_${col.name} = "$col.name";\r
-#end\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected IDataReader _reader;\r
-\r
- // ===============================================================================\r
- // Prepare\r
- // =======\r
- public virtual void Accept(IDataReader reader) {\r
- this._reader = reader;\r
- }\r
-\r
- // ===============================================================================\r
- // Direct\r
- // ======\r
- public virtual IDataReader Cursor {\r
- get { return _reader; }\r
- }\r
-\r
- // ===============================================================================\r
- // Delegate\r
- // ========\r
- public virtual bool Next() {\r
- return _reader.Read();\r
- }\r
-\r
- // ===============================================================================\r
- // Type Safe Accessor\r
- // ==================\r
-#foreach ($col in $table.columns)\r
- public ${col.javaNative} ${col.javaName} {\r
-#if ($col.isJavaNativeStringObject())\r
- get { return ExtractValueAsString("${col.name}"); }\r
-#end\r
-#if ($col.isJavaNativeBooleanObject())\r
- get { return ExtractValueAsBoolean("${col.name}"); }\r
-#end\r
-#if ($col.isJavaNativeNumberObject())\r
- get { return (${col.javaNative})ExtractValueAsNumber(typeof(${col.javaNative}), "${col.name}"); }\r
-#end\r
-#if ($col.isJavaNativeDateObject())\r
- get { return new ${col.javaNative}(ExtractValueAsDateTime(typeof(${col.javaNative}), "${col.name}")); }\r
-#end\r
-#if ($col.isJavaNativeBinaryObject())\r
- get { return (${col.javaNative})ExtractValueAsObject("${col.name}"); }\r
-#end\r
- }\r
-\r
-#end\r
- // ===============================================================================\r
- // Helper\r
- // ======\r
- protected virtual String ExtractValueAsString(String name) {\r
- return (String)_reader[name];\r
- }\r
-\r
- protected virtual bool? ExtractValueAsBoolean(String name) {\r
- return new bool?((bool)_reader[name]);\r
- }\r
-\r
- protected virtual Object ExtractValueAsNumber(Type type, String name) {\r
- Object objValue = ExtractValueAsObject(name);\r
- if (objValue == null || objValue.Equals(DBNull.Value)) { return null; }\r
- decimal value = DecimalConversionUtil.ToDecimal(objValue);\r
- if (typeof(int?).Equals(type)) { return new int?((int)value); }\r
- if (typeof(long?).Equals(type)) { return new long?((long)value); }\r
- if (typeof(decimal?).Equals(type)) { return new decimal?(value); }\r
- return value;\r
- }\r
-\r
- protected virtual DateTime ExtractValueAsDateTime(Type type, String name) {\r
- return (DateTime)ExtractValueAsObject(name);\r
- }\r
-\r
- protected virtual Object ExtractValueAsObject(String name) {\r
- return _reader[name];\r
- }\r
- }\r
-}\r
+++ /dev/null
-#set ($myClassName = "${myExtendedTypeSafeCursorHandlerClassName}")\r
-\r
-using System;\r
-using System.Data;\r
-using ${glPackageBaseCommonJdbc};\r
-\r
-namespace ${myExtendedDaoCursorPackageName} {\r
-\r
- [System.Serializable]\r
- public partial class ${myClassName} : ${glPackageBaseCommonJdbc}.${glCursorHandlerName} {\r
-\r
- protected ${glCursorFetcherName}<${myExtendedTypeSafeCursorClassName}> _cursorFetcher;\r
-\r
- public ${myClassName}(${glCursorFetcherName}<${myExtendedTypeSafeCursorClassName}> cursorFetcher) {\r
- _cursorFetcher = cursorFetcher;\r
- }\r
-\r
- public virtual Object Handle(IDataReader reader) {\r
- return FetchCursor(reader);\r
- }\r
-\r
- protected virtual Object FetchCursor(IDataReader reader) {\r
- return _cursorFetcher.Invoke(CreateTypeSafeCursor(reader));\r
- }\r
-\r
- protected virtual ${myExtendedTypeSafeCursorClassName} CreateTypeSafeCursor(IDataReader reader) {\r
- ${myExtendedTypeSafeCursorClassName} cursor = new ${myExtendedTypeSafeCursorClassName}();\r
- cursor.Accept(reader);\r
- return cursor;\r
- }\r
- }\r
-}\r
+++ /dev/null
-\r
-#set ($myClassName = "${myExtendedObjectClassName}")\r
-\r
-using System;\r
-using System.Reflection;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-\r
-using ${glPackageBaseCommon};\r
-using ${glPackageBaseCommonCBean};\r
-using ${glPackageBaseCommonDBMeta};\r
-using ${glPackageBaseCommonHelper};\r
-using ${myExtendedEntityPackageName};\r
-using ${myDBMetaPackageName};\r
-\r
-#set ($myEntityInterfaceName = "")\r
-#if (${table.hasAllCommonColumn()})\r
-#set ($myEntityInterfaceName = ${glEntityDefinedCommonColumnInterfaceName})\r
-#else\r
-#set ($myEntityInterfaceName = ${glEntityInterfaceName})\r
-#end\r
-\r
-namespace ${myExtendedEntityPackageName} {\r
-\r
- /// <summary>\r
- /// The entity of ${table.name}. (partial class for auto-generation)\r
- /// <![CDATA[\r
- /// [primary-key]\r
- /// ${table.primaryKeyNameCommaString}\r
- /// \r
- /// [column]\r
- /// ${table.columnNameCommaString}\r
- /// \r
- /// [sequence]\r
- /// ${table.definedSequenceName}\r
- /// \r
- /// [identity]\r
- /// ${table.identityColumnName}\r
- /// \r
- /// [version-no]\r
- /// ${table.versionNoColumnName}\r
- /// \r
- /// [foreign-table]\r
- /// ${table.foreignTableNameCommaString}\r
- /// \r
- /// [referrer-table]\r
- /// ${table.referrerTableNameCommaString}\r
- /// \r
- /// [foreign-property]\r
- /// ${table.foreignPropertyNameCommaString}\r
- /// \r
- /// [referrer-property]\r
- /// ${table.referrerPropertyNameCommaString}\r
- /// ]]>\r
- /// Author: ${database.ClassAuthor}\r
- /// </summary>\r
- [Seasar.Dao.Attrs.Table("${table.AnnotationTableName}")]\r
-#if ($table.isUseUpdateDate())\r
- [Seasar.Dao.Attrs.TimestampProperty("${table.updateDatePropertyName}")]\r
-#end\r
-#if ($table.isUseVersionNo())\r
- [Seasar.Dao.Attrs.VersionNoProperty("${table.versionNoPropertyName}")]\r
-#end\r
- [System.Serializable]\r
- public partial class ${myClassName} : ${myEntityInterfaceName} {\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- #region Attribute\r
-#foreach ($col in $table.columns)\r
-\r
- /// <summary>The value of ${col.uncapitalisedJavaName}. {${col.columnDefinitionLineDisp}}</summary>\r
- protected ${col.JavaNative} _${col.uncapitalisedJavaName};\r
-#end\r
- protected EntityModifiedProperties _modifiedProperties = new EntityModifiedProperties();\r
-#if ($table.hasAllCommonColumn())\r
- protected bool _canCommonColumnAutoSetup = true;\r
-#end\r
- #endregion\r
-\r
- // ===============================================================================\r
- // Table Name\r
- // ==========\r
- public String TableDbName { get { return "${table.name}"; } }\r
- public String TablePropertyName { get { return "${table.javaName}"; } }\r
-\r
-#if ($isSql2Entity)\r
- // ===============================================================================\r
- // DBMeta\r
- // ======\r
- public ${glDBMetaInterfaceName} DBMeta { get { return ${myDBMetaClassName}.GetInstance(); } }\r
-#else\r
- // ===============================================================================\r
- // DBMeta\r
- // ======\r
- public ${glDBMetaInterfaceName} DBMeta { get { return ${glDBMetaInstanceHandlerName}.FindDBMeta(TableDbName); } }\r
-#end\r
-\r
- // ===============================================================================\r
- // Classification Classifying\r
- // ==========================\r
- #region Classify Method\r
-#foreach ($col in $table.Columns)\r
-#if (${col.hasClassification()})\r
-#foreach ($classificationMap in $col.ClassificationMapList)\r
- /// <summary>\r
- /// Classify the value of ${col.uncapitalisedJavaName} as ${classificationMap.get('name')}.\r
- /// <![CDATA[\r
- /// ${classificationMap.get('comment')}\r
- /// ]]>\r
- /// </summary>\r
- public void Classify${col.javaName}${classificationMap.get('name')}() {\r
- String code = ${glPackageBaseCommon}.${glClassificationDefinition}.CODE_${col.ClassificationName}_${classificationMap.get('name')};\r
-#if (${col.isJavaNativeStringObject()})\r
- ${col.javaName} = code;\r
- }\r
-#else\r
- ${col.javaName} = ${col.javaNativeRemovedCSharpNullable}.Parse(code);\r
- }\r
-#end\r
-\r
-#end\r
-#end\r
-#end\r
-\r
- #endregion\r
-\r
- // ===============================================================================\r
- // Classification Determination\r
- // ============================\r
- #region Classification Determination\r
-#foreach ($col in $table.columns)\r
-#if (${col.hasClassification()})\r
- #foreach ($classificationMap in $col.ClassificationMapList)\r
- /// <summary>\r
- /// Is the value of ${col.uncapitalisedJavaName} '${classificationMap.get('name')}'?\r
- /// <![CDATA[\r
- /// The difference of capital letters and small letters is NOT distinguished.\r
- /// If the value is null, this method returns false!\r
- /// ${classificationMap.get('comment')}\r
- /// ]]>\r
- /// </summary>\r
- public bool Is${col.javaName}${classificationMap.get('name')} {\r
- get {\r
- if (_${col.uncapitalisedJavaName} == null) { return false; }\r
- String code = ${glPackageBaseCommon}.${glClassificationDefinition}.CODE_${col.ClassificationName}_${classificationMap.get('name')};\r
- return code.ToLower().Equals(_${col.uncapitalisedJavaName}.ToString().ToLower());\r
- }\r
- }\r
-\r
-#end\r
-#end\r
-#end\r
-\r
- #endregion\r
-\r
- // ===============================================================================\r
- // Classification Name/Alias\r
- // =========================\r
- #region Classification Name/Alias\r
-#foreach ($col in $table.Columns)\r
-#if (${col.hasClassification()})\r
-#if (${col.hasClassificationName()})\r
- public String ${col.javaName}Name {\r
- get {\r
- return ${glPackageBaseCommon}.${glClassificationDefinition}.Find${col.classificationName}Name(_${col.UncapitalisedJavaName} + "");\r
- }\r
- }\r
-#end\r
-#if (${col.hasClassificationAlias()})\r
- public String ${col.javaName}Alias {\r
- get {\r
- return ${glPackageBaseCommon}.${glClassificationDefinition}.Find${col.classificationName}Alias(_${col.UncapitalisedJavaName} + "");\r
- }\r
- }\r
-\r
-#end\r
-#end\r
-#end\r
- #endregion\r
-\r
- // ===============================================================================\r
- // Foreign Property\r
- // ================\r
- #region Foreign Property\r
-#set ($foreignKeyIndex = 0)\r
-#foreach ($foreignKey in $table.foreignKeys)\r
-#set ($foreignEntityClassName = "${glProjectPrefix}${foreignKey.foreignTable.JavaName}")\r
-#set ($foreignVariableName = "${glParentVariablePrefix}${foreignKey.foreignPropertyNameInitCap}")\r
- // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\r
- // Foreign Property = [${foreignKey.foreignPropertyNameInitCap}]\r
- // * * * * * * * * */\r
- protected ${foreignEntityClassName} ${foreignVariableName};\r
- [Seasar.Dao.Attrs.Relno(${foreignKeyIndex}), Seasar.Dao.Attrs.Relkeys("$foreignKey.RelationKeysCommaString")]\r
- public ${foreignEntityClassName} ${foreignKey.foreignPropertyNameInitCap} {\r
- get { return ${foreignVariableName}; }\r
- set { ${foreignVariableName} = value; }\r
- }\r
-\r
-#set ($foreignKeyIndex = $foreignKeyIndex + 1)\r
-#end\r
-#foreach ($referrer in $table.referrerList)\r
-#set ($referrerEntityClassName = "${glProjectPrefix}${referrer.table.JavaName}")\r
-#set ($referrerVariableName = "${glChildrenVariablePrefix}${referrer.referrerPropertyNameAsOne}")\r
-#if (${referrer.isOneToOne()})\r
- // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\r
- // Foreign Property = [${referrer.refererJavaBeansRulePropertyNameInitCapAsOne}]\r
- // * * * * * * * * */\r
- protected ${referrerEntityClassName} ${referrerVariableName};\r
- [Seasar.Dao.Attrs.Relno(${foreignKeyIndex}), Seasar.Dao.Attrs.Relkeys("$referrer.relationKeysCommaStringForOneToOneReferrer")]\r
- public ${referrerEntityClassName} ${referrer.referrerPropertyNameInitCapAsOne} {\r
- get { return ${referrerVariableName}; }\r
- set { ${referrerVariableName} = value; }\r
- }\r
-\r
-#set ($foreignKeyIndex = $foreignKeyIndex + 1)\r
-#end\r
-#end\r
- #endregion\r
-\r
- // ===============================================================================\r
- // Referrer Property\r
- // =================\r
- #region Referrer Property\r
-#foreach ($referrer in $table.referrerList)\r
-#if (!${referrer.isOneToOne()})\r
-#set ($referrerEntityClassName = "${glProjectPrefix}${referrer.table.JavaName}")\r
-#set ($referrerVariableName = "${glChildrenVariablePrefix}${referrer.ReferrerPropertyNameInitCap}")\r
- // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\r
- // Referrer Property = [${referrer.referrerPropertyNameInitCap}]\r
- // * * * * * * * * */\r
- protected IList<${referrerEntityClassName}> $referrerVariableName;\r
- public IList<${referrerEntityClassName}> ${referrer.referrerPropertyNameInitCap} {\r
- get { if (${referrerVariableName} == null) { ${referrerVariableName} = new List<${referrerEntityClassName}>(); } return ${referrerVariableName}; }\r
- set { ${referrerVariableName} = value; }\r
- }\r
-#end\r
-#end\r
-\r
- #endregion\r
-\r
- // ===============================================================================\r
- // Determination\r
- // =============\r
- public bool HasPrimaryKeyValue {\r
- get {\r
-#foreach ($col in $table.primaryKey)\r
- if (_${col.uncapitalisedJavaName} == null) { return false; }\r
-#end\r
- return ${table.hasPrimaryKey()};\r
- }\r
- }\r
-\r
- // ===============================================================================\r
- // Modified Properties\r
- // ===================\r
- public virtual IDictionary<String, Object> ModifiedPropertyNames {\r
- get { return _modifiedProperties.PropertyNames; }\r
- }\r
-\r
- public virtual void ClearModifiedPropertyNames() {\r
- _modifiedProperties.Clear();\r
- }\r
-#if (${table.hasAllCommonColumn()})\r
-\r
- // ===============================================================================\r
- // Common Column Auto Filter\r
- // =========================\r
- public virtual void DisableCommonColumnAutoSetup() {\r
- _canCommonColumnAutoSetup = false;\r
- }\r
- \r
- public virtual bool CanCommonColumnAutoSetup() {// for Framework\r
- return _canCommonColumnAutoSetup;\r
- }\r
-#end\r
-\r
- // ===============================================================================\r
- // Basic Override\r
- // ==============\r
- #region Basic Override\r
-#if ($table.hasPrimaryKey())\r
- public override bool Equals(Object other) {\r
- if (other == null || !(other is $myClassName)) { return false; }\r
- $myClassName otherEntity = ($myClassName)other;\r
-#foreach ($col in $table.primaryKey)\r
- if (this.${col.javaName} == null || !this.${col.javaName}.Equals(otherEntity.${col.javaName})) { return false; }\r
-#end\r
- return true;\r
- }\r
-\r
- public override int GetHashCode() {\r
- int result = 17;\r
-#foreach ($col in $table.primaryKey)\r
-#if (!${col.isJavaNativeNumberObject()})\r
- if (_${col.uncapitalisedJavaName} != null) { result = result + _${col.uncapitalisedJavaName}.GetHashCode(); }\r
-#else\r
- result = result + _${col.uncapitalisedJavaName}.GetHashCode();\r
-#end\r
-#end\r
- return result;\r
- }\r
-#else\r
-\r
- public override bool Equals(Object other) {\r
- if (other == null || !(other is $myClassName)) { return false; }\r
- $myClassName otherEntity = ($myClassName)other;\r
-#foreach ($col in $table.columns)\r
- if (this.${col.javaName} == null || !this.${col.javaName}.Equals(otherEntity.${col.javaName})) { return false; }\r
-#end\r
- return true;\r
- }\r
-\r
- public override int GetHashCode() {\r
- int result = 17;\r
-#foreach ($col in $table.Columns)\r
-#if (!${col.isJavaNativeNumberObject()})\r
- if (_${col.uncapitalisedJavaName} != null) { result = result + _${col.uncapitalisedJavaName}.GetHashCode(); }\r
-#else\r
- result = result + _${col.uncapitalisedJavaName}.GetHashCode();\r
-#end\r
-#end\r
- return result;\r
- }\r
-#end\r
-\r
- public override String ToString() {\r
- String delimiter = ",";\r
- StringBuilder sb = new StringBuilder();\r
-#foreach ($col in $table.columns)\r
- sb.Append(delimiter).Append(this.${col.javaName});\r
-#end\r
- if (sb.Length > 0) { sb.Remove(0, delimiter.Length); }\r
- sb.Insert(0, "{").Append("}");\r
- return sb.ToString();\r
- }\r
-\r
- #endregion\r
-\r
- // ===============================================================================\r
- // Accessor\r
- // ========\r
- #region Accessor\r
-#foreach ($col in $table.columns)\r
-\r
- /// <summary>The property of ${col.uncapitalisedJavaName}. {${col.columnDefinitionLineDisp}}</summary>\r
-#if ($col.isIdentity())\r
- [Seasar.Dao.Attrs.ID("identity")]\r
-#end\r
- [Seasar.Dao.Attrs.Column("${col.Name}")]\r
- public ${col.JavaNative} ${col.javaName} {\r
- get { return _${col.uncapitalisedJavaName}; }\r
- set {\r
- _modifiedProperties.AddPropertyName("${col.javaBeansRulePropertyNameInitCap}");\r
- _${col.uncapitalisedJavaName} = value;\r
- }\r
- }\r
-#end\r
- #endregion\r
- }\r
-}\r
+++ /dev/null
-#set ($myClassName = "${myBaseObjectClassName}")\r
-\r
-using System;\r
-using System.Text;\r
-\r
-namespace ${myBaseEntityPackageName} {\r
-\r
- /**\r
- * The entity of ${table.Name}.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
- public class ${myClassName} {\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
-#foreach ($col in $table.columns)\r
- protected ${col.JavaNative} _${col.UncapitalisedJavaName};\r
-#end\r
-\r
- // ===============================================================================\r
- // Basic Override\r
- // ==============\r
-#if ($table.hasPrimaryKey())\r
- /// <summary>\r
- /// ${database.OverrideComment}\r
- /// If the primary-key of the other is same as this one, returns true.\r
- /// </summary>\r
- /// <param name="other">Other entity.</param>\r
- /// <returns>Comparing result.</returns>\r
- public override bool Equals(Object other) {\r
- if (other == null) {\r
- return false;\r
- }\r
- if (!(other is $myClassName)) {\r
- return false;\r
- }\r
- $myClassName otherEntity = ($myClassName)other;\r
- #foreach ($col in $table.PrimaryKey)\r
-\r
- if (this.${col.JavaName} == null || !this.${col.JavaName}.Equals(otherEntity.${col.JavaName})) {\r
- return false;\r
- }\r
- #end\r
-\r
- return true;\r
- }\r
-\r
- /// <summary>\r
- /// ${database.OverrideComment}\r
- /// Calculates hash-code from primary-key.\r
- /// </summary>\r
- /// <returns>Hash-code from primary-keys.</returns>\r
- public override int GetHashCode() {\r
- int result = 0;\r
- #foreach ($col in $table.PrimaryKey)\r
- #if (!${col.isJavaNativeNumberObject()})\r
-\r
- if (_${col.UncapitalisedJavaName} != null) {\r
- result = result + _${col.UncapitalisedJavaName}.GetHashCode();\r
- }\r
- #else\r
-\r
- result = result + _${col.UncapitalisedJavaName}.GetHashCode();\r
- #end\r
- #end\r
-\r
- return result;\r
- }\r
-#else\r
-\r
- /// <summary>\r
- /// ${database.OverrideComment}\r
- /// If the all-column value of the other is same as this one, returns true.\r
- /// </summary>\r
- /// <param name="other">Other entity.</param>\r
- /// <returns>Comparing result.</returns>\r
- public override bool Equals(Object other) {\r
- if (other == null) {\r
- return false;\r
- }\r
- if (!(other is $myClassName)) {\r
- return false;\r
- }\r
- $myClassName otherEntity = ($myClassName)other;\r
- #foreach ($col in $table.Columns)\r
-\r
- if (this.${col.JavaName} == null || !this.${col.JavaName}.Equals(otherEntity.${col.JavaName})) {\r
- return false;\r
- }\r
- #end\r
-\r
- return true;\r
- }\r
-\r
- /// <summary>\r
- /// ${database.OverrideComment}\r
- /// Calculates hash-code from all-columns.\r
- /// </summary>\r
- /// <returns>Hash-code from all-columns.</returns>\r
- public override int GetHashCode() {\r
- int result = 0;\r
- #foreach ($col in $table.Columns)\r
- #if (!${col.isJavaNativeNumberObject()})\r
-\r
- if (_${col.UncapitalisedJavaName} != null) {\r
- result = result + _${col.UncapitalisedJavaName}.GetHashCode();\r
- }\r
- #else\r
-\r
- result = result + _${col.UncapitalisedJavaName}.GetHashCode();\r
- #end\r
- #end\r
- \r
- return result;\r
- }\r
-#end\r
-\r
- /// <summary>\r
- /// ${database.OverrideComment}\r
- /// </summary>\r
- /// <returns>Column-map. (NotNull)</returns>\r
- public override String ToString() {\r
- String delimiter = ",";\r
- StringBuilder sb = new StringBuilder();\r
-#foreach ($col in $table.Columns)\r
-\r
- sb.Append(delimiter).Append(this.${col.JavaName});\r
-#end\r
-\r
- sb.Remove(0, delimiter.Length);\r
- sb.Insert(0, "{").Append("}");\r
- return sb.ToString();\r
- }\r
-\r
-\r
- // =====================================================================================\r
- // Accessor\r
- // ========\r
-#foreach ($col in $table.columns)\r
- public ${col.JavaNative} ${col.JavaName} {\r
- get { return _${col.UncapitalisedJavaName}; }\r
- set { _${col.UncapitalisedJavaName} = value; }\r
- }\r
-#end\r
- }\r
-}\r
+++ /dev/null
-#set ($myClassName = "${myDBMetaClassName}")\r
-\r
-using System;\r
-using System.Reflection;\r
-\r
-using ${glPackageBaseCommon};\r
-using ${glPackageBaseCommonCBean};\r
-using ${glPackageBaseCommonDBMeta};\r
-using ${glPackageBaseCommonDBMetaInfo};\r
-using ${glPackageBaseCommonJavaLike};\r
-using ${myExtendedEntityPackageName};\r
-#if (${isExistDao})\r
-\r
-using ${myExtendedDaoPackageName};\r
-#end\r
-#if (${isExistConditionBean})\r
-using ${glPackageCB};\r
-\r
-#end\r
-namespace ${myDBMetaPackageName} {\r
-\r
- /// <summary>\r
- /// The DB meta of ${table.name}.\r
- /// Author: ${database.ClassAuthor}\r
- /// </summary>\r
- public class ${myClassName} : ${glDBMetaAbstractName} {\r
-\r
- public static readonly Type ENTITY_TYPE = typeof(${myExtendedObjectClassName});\r
-\r
- private static readonly ${myClassName} _instance = new ${myClassName}();\r
- private ${myClassName}() {\r
- InitializeColumnInfo();\r
- InitializeColumnInfoList();\r
- InitializeEntityPropertySetupper();\r
- }\r
- public static ${myClassName} GetInstance() {\r
- return _instance;\r
- }\r
-\r
- // ===============================================================================\r
- // Table Info\r
- // ==========\r
- #region Table Name\r
- public override String TableDbName { get { return "$table.name"; } }\r
- public override String TablePropertyName { get { return "$table.javaName"; } }\r
- public override String TableSqlName { get { return "$table.tableSqlName"; } }\r
- #endregion\r
-\r
- // ===============================================================================\r
- // Column Info\r
- // ===========\r
-#foreach ($col in $table.columns)\r
- protected ${glColumnInfoName} _column${col.javaName};\r
-#end\r
-\r
-#foreach ($col in $table.columns)\r
- public ${glColumnInfoName} Column${col.javaName} { get { return _column${col.javaName}; } }\r
-#end\r
-\r
- protected void InitializeColumnInfo() {\r
-#foreach ($col in $table.columns)\r
-#if ($col.isVersionNo())\r
- _column${col.javaName} = cci("${col.name}", "${col.javaName}", typeof(${col.javaNative}), ${col.isPrimaryKey()}, ${col.columnSizeSettingExpression}, ${col.columnDecimalDigitsSettingExpression}, OptimisticLockType.VERSION_NO);\r
-#elseif ($col.isUpdateDate())\r
- _column${col.javaName} = cci("${col.name}", "${col.javaName}", typeof(${col.javaNative}), ${col.isPrimaryKey()}, ${col.columnSizeSettingExpression}, ${col.columnDecimalDigitsSettingExpression}, OptimisticLockType.UPDATE_DATE);\r
-#else\r
- _column${col.javaName} = cci("${col.name}", "${col.javaName}", typeof(${col.javaNative}), ${col.isPrimaryKey()}, ${col.columnSizeSettingExpression}, ${col.columnDecimalDigitsSettingExpression});\r
-#end\r
-#end\r
- }\r
-\r
- protected void InitializeColumnInfoList() {\r
- _columnInfoList = new ArrayList<${glColumnInfoName}>();\r
-#foreach ($col in $table.columns)\r
- _columnInfoList.add(Column${col.javaName});\r
-#end\r
- }\r
-\r
- // ===============================================================================\r
- // Name Definition\r
- // ===============\r
- #region Name\r
-\r
- // -------------------------------------------------\r
- // Table\r
- // -----\r
- public static readonly String TABLE_DB_NAME = "$table.name";\r
- public static readonly String TABLE_PROPERTY_NAME = "$table.javaName";\r
-\r
- // -------------------------------------------------\r
- // Column DB-Name\r
- // --------------\r
-#foreach ($col in $table.columns)\r
- public static readonly String DB_NAME_${col.name} = "$col.name";\r
-#end\r
-\r
- // -------------------------------------------------\r
- // Column Property-Name\r
- // --------------------\r
-#foreach ($col in $table.columns)\r
- public static readonly String PROPERTY_NAME_${col.name} = "$col.javaName";\r
-#end\r
-\r
- // -------------------------------------------------\r
- // Foreign Name\r
- // ------------\r
-#foreach ($foreignKeys in $table.foreignKeys)\r
- public static readonly String FOREIGN_PROPERTY_NAME_${foreignKeys.foreignPropertyNameInitCap} = "$foreignKeys.foreignPropertyNameInitCap";\r
-#end\r
-#foreach ($referrer in $table.referrers)\r
-#if ($referrer.isOneToOne())\r
- public static readonly String FOREIGN_PROPERTY_NAME_${referrer.referrerPropertyNameInitCapAsOne} = "$foreignKeys.foreignPropertyNameInitCap";\r
-#end\r
-#end\r
- // -------------------------------------------------\r
- // Referrer Name\r
- // -------------\r
-#foreach ($referrer in $table.referrers)\r
-#if (!$referrer.isOneToOne())\r
- public static readonly String REFERRER_PROPERTY_NAME_${referrer.referrerPropertyNameInitCap} = "$referrer.referrerPropertyNameInitCap";\r
-#end\r
-#end\r
-\r
- // -------------------------------------------------\r
- // DB-Property Mapping\r
- // -------------------\r
- protected static readonly Map<String, String> _dbNamePropertyNameKeyToLowerMap;\r
- protected static readonly Map<String, String> _propertyNameDbNameKeyToLowerMap;\r
-\r
- static ${myClassName}() {\r
- {\r
- Map<String, String> map = new LinkedHashMap<String, String>();\r
- map.put(TABLE_DB_NAME.ToLower(), TABLE_PROPERTY_NAME);\r
-#foreach ($col in $table.columns)\r
- map.put(DB_NAME_${col.name}.ToLower(), PROPERTY_NAME_${col.name});\r
-#end\r
- _dbNamePropertyNameKeyToLowerMap = map;\r
- }\r
-\r
- {\r
- Map<String, String> map = new LinkedHashMap<String, String>();\r
- map.put(TABLE_PROPERTY_NAME.ToLower(), TABLE_DB_NAME);\r
-#foreach ($col in $table.Columns)\r
- map.put(PROPERTY_NAME_${col.name}.ToLower(), DB_NAME_${col.name});\r
-#end\r
- _propertyNameDbNameKeyToLowerMap = map;\r
- }\r
- }\r
-\r
- #endregion\r
-\r
- // ===============================================================================\r
- // Name Map\r
- // ========\r
- #region Name Map\r
- public override Map<String, String> DbNamePropertyNameKeyToLowerMap { get { return _dbNamePropertyNameKeyToLowerMap; } }\r
- public override Map<String, String> PropertyNameDbNameKeyToLowerMap { get { return _propertyNameDbNameKeyToLowerMap; } }\r
- #endregion\r
-\r
- // ===============================================================================\r
- // Type Name\r
- // =========\r
- public override String EntityTypeName { get { return "${myExtendedEntityPackageName}.${myExtendedObjectClassName}"; } }\r
-#if (${isExistDao})\r
- public override String DaoTypeName { get { return "${myExtendedDaoPackageName}.${myExtendedDaoClassName}"; } }\r
-#else\r
- public override String DaoTypeName { get { return null; } }\r
-#end\r
-#if (${isExistConditionBean})\r
- public override String ConditionBeanTypeName { get { return "${glPackageBaseCB}.${myConditionBeanClassName}"; } }\r
-#else\r
- public override String ConditionBeanTypeName { get { return null; } }\r
-#end\r
-#if (${isExistBehavior})\r
- public override String BehaviorTypeName { get { return "${myExtendedBhvPackageName}.${myExtendedBhvInterfaceName}"; } }\r
-#else\r
- public override String BehaviorTypeName { get { return null; } }\r
-#end\r
-\r
- // ===============================================================================\r
- // Object Type\r
- // ===========\r
- public override Type EntityType { get { return ENTITY_TYPE; } }\r
-\r
- // ===============================================================================\r
- // Object Instance\r
- // ===============\r
- public override ${glEntityInterfaceName} NewEntity() { return NewMyEntity(); }\r
- public ${myExtendedObjectClassName} NewMyEntity() { return new ${myExtendedObjectClassName}(); }\r
-#if (${isExistConditionBean})\r
- public override ${glConditionBeanInterfaceName} NewConditionBean() { return NewMyConditionBean(); }\r
-#else\r
- public override ${glConditionBeanInterfaceName} NewConditionBean() {\r
- String msg = "The entity does not have condition-bean. So this method is invalid.";\r
- throw new SystemException(msg + " dbmeta=" + ToString());\r
- }\r
-#end\r
-#if (${isExistConditionBean})\r
- public ${myConditionBeanClassName} NewMyConditionBean() { return new ${myConditionBeanClassName}(); }\r
-#end\r
-\r
- // ===============================================================================\r
- // Unique Info\r
- // ===========\r
- public override ${glUniqueInfoName} PrimaryUniqueInfo {\r
- get {\r
-#if ($table.hasPrimaryKey())\r
- ${glUniqueInfoName} uniqueInfo = new ${glUniqueInfoName}();\r
- uniqueInfo.DBMeta = this;\r
-#foreach ($col in $table.primaryKey)\r
- uniqueInfo.AddUniqueColumnList(new ${glColumnInfoName}(this, "${col.name}", "${col.uncapitalisedJavaName}", typeof(${col.javaNative}), true, ${col.columnSizeSettingExpression}, ${col.columnDecimalDigitsSettingExpression}));\r
-#end\r
- uniqueInfo.IsPrimary = true;\r
- return uniqueInfo;\r
-#else\r
- throw new NotSupportedException("The table doen not have primary key: " + TableDbName);\r
-#end\r
- }\r
- }\r
-\r
- // -------------------------------------------------\r
- // Primary Element\r
- // ---------------\r
- public override bool HasPrimaryKey { get { return ${table.hasPrimaryKey()}; } }\r
- public override bool HasTwoOrMorePrimaryKeys { get { return ${table.hasTwoOrMorePrimaryKeys()}; } }\r
-\r
- // ===============================================================================\r
- // Relation Info\r
- // =============\r
- // -------------------------------------------------\r
- // Foreign Element\r
- // ---------------\r
-#foreach ($foreignKeys in $table.foreignKeys)\r
-#set ($genericsColumnInfoMap = "${glColumnInfoName}, ${glColumnInfoName}")\r
- public ${glForeignInfoName} Foreign${foreignKeys.foreignJavaBeansRulePropertyNameInitCap} { get {\r
- Map<${genericsColumnInfoMap}> map = new LinkedHashMap<${genericsColumnInfoMap}>();\r
-#foreach ($column in $foreignKeys.localColumnList)\r
- map.put(Column${column.javaBeansRulePropertyNameInitCap}, ${foreignKeys.foreignTableDBMetaClassName}.GetInstance().Column${foreignKeys.getForeignColumnByLocalColumn(${column}).javaBeansRulePropertyNameInitCap});\r
-#end\r
- return cfi("${foreignKeys.foreignJavaBeansRulePropertyNameInitCap}", this, ${foreignKeys.foreignTableDBMetaClassName}.GetInstance(), map, ${table.resolveForeignIndex($foreignKeys)}, ${foreignKeys.isOneToOne()});\r
- }}\r
-#end\r
-\r
-#foreach ($referrer in $table.referrers)\r
-#set ($genericsColumnInfoMap = "${glColumnInfoName}, ${glColumnInfoName}")\r
-#if (${referrer.isOneToOne()})\r
- public ${glForeignInfoName} Foreign${referrer.referrerJavaBeansRulePropertyNameAsOneInitCap} { get {\r
- Map<${genericsColumnInfoMap}> map = new LinkedHashMap<${genericsColumnInfoMap}>();\r
-#foreach ($column in $referrer.foreignColumnList)\r
- map.put(Column${column.javaBeansRulePropertyNameInitCap}, ${referrer.referrerTableDBMetaClassName}.GetInstance().Column${referrer.getLocalColumnByForeignColumn(${column}).javaBeansRulePropertyNameInitCap});\r
-#end\r
- return cfi("${referrer.refererJavaBeansRulePropertyNameAsOneInitCap}", this, ${referrer.referrerTableDBMetaClassName}.GetInstance(), map, ${table.resolveReferrerIndexAsOne($referrer)}, ${referrer.isOneToOne()});\r
- }}\r
-#end\r
-#end\r
-\r
- // -------------------------------------------------\r
- // Referrer Element\r
- // ----------------\r
-#foreach ($referrer in $table.referrers)\r
-#if (!${referrer.isOneToOne()})\r
-#set ($genericsColumnInfoMap = "${glColumnInfoName}, ${glColumnInfoName}")\r
-#set ($referrerTable = $referrer.table)\r
- public ${glReferrerInfoName} Referrer${referrer.referrerJavaBeansRulePropertyNameInitCap} { get {\r
- Map<${genericsColumnInfoMap}> map = new LinkedHashMap<${genericsColumnInfoMap}>();\r
-#foreach ($column in $referrer.foreignColumnList)\r
- map.put(Column${column.javaBeansRulePropertyNameInitCap}, ${referrer.referrerTableDBMetaClassName}.GetInstance().Column${referrer.getLocalColumnByForeignColumn(${column}).javaBeansRulePropertyNameInitCap});\r
-#end\r
- return cri("${referrer.referrerJavaBeansRulePropertyNameInitCap}", this, ${referrer.referrerTableDBMetaClassName}.GetInstance(), map, ${referrer.isOneToOne()});\r
- }}\r
-#end\r
-#end\r
-\r
- // ===============================================================================\r
- // Various Info\r
- // ============\r
-#if ($table.isUseSequence())\r
- public override bool HasSequence { get { return true; } }\r
- public override String SequenceNextValSql { get { return "${table.SequenceNextSql}"; } }\r
-#end\r
-#if ($table.isUseVersionNo())\r
- public override bool HasVersionNo { get { return true; } }\r
- public override ${glColumnInfoName} VersionNoColumnInfo { get { return _column${table.versionNoJavaName}; } }\r
-#end\r
-#if ($table.isUseUpdateDate())\r
- public override bool HasUpdateDate { get { return true; } }\r
- public override ${glColumnInfoName} UpdateDateColumnInfo { get { return _column${table.updateDateJavaName}; } }\r
-#end\r
- public override bool HasCommonColumn { get { return ${table.hasAllCommonColumn()}; } }\r
-\r
- // ===============================================================================\r
- // Entity Property Setup\r
- // =====================\r
- protected Map<String, EntityPropertySetupper<${myExtendedObjectClassName}>> _entityPropertySetupperMap = new LinkedHashMap<String, EntityPropertySetupper<${myExtendedObjectClassName}>>();\r
-\r
- protected void InitializeEntityPropertySetupper() {\r
-#foreach ($column in $table.columns)\r
- RegisterEntityPropertySetupper("$column.name", "$column.javaName", new EntityProperty${column.javaName}Setupper(), _entityPropertySetupperMap);\r
-#end\r
- }\r
-\r
- public override bool HasEntityPropertySetupper(String propertyName) {\r
- return _entityPropertySetupperMap.containsKey(propertyName);\r
- }\r
-\r
- public override void SetupEntityProperty(String propertyName, Object entity, Object value) {\r
- EntityPropertySetupper<${myExtendedObjectClassName}> callback = _entityPropertySetupperMap.get(propertyName);\r
- callback.Setup((${myExtendedObjectClassName})entity, value);\r
- }\r
-\r
-#foreach ($col in $table.columns)\r
- public class EntityProperty${col.javaName}Setupper : EntityPropertySetupper<${myExtendedObjectClassName}> {\r
- public void Setup(${myExtendedObjectClassName} entity, Object value) { entity.${col.javaName} = (value != null) ? (${col.javaNative})value : null; }\r
- }\r
-#end\r
- }\r
-}\r
+++ /dev/null
-#set ($myClassName = "${myAbstractBaseConditionQueryClassName}")\r
-\r
-using System;\r
-using System.Collections;\r
-\r
-using ${glPackageBaseCommon};\r
-using ${glPackageBaseCommonCBean};\r
-using ${glPackageBaseCommonCKey};\r
-using ${glPackageBaseCommonCValue};\r
-using ${glPackageBaseCommonSqlClause};\r
-using ${glPackageCB};\r
-\r
-namespace ${glPackageBaseCQ} {\r
-\r
- [System.Serializable]\r
- public abstract class ${myClassName} : ${glConditionQueryAbstractName} {\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${myClassName}(${glConditionQueryInterfaceName} childQuery, ${glSqlClauseName} sqlClause, String aliasName, int nestLevel)\r
- : base(childQuery, sqlClause, aliasName, nestLevel) {}\r
-\r
- // ===============================================================================\r
- // Table Name\r
- // ==========\r
- public override String getTableDbName() { return "${table.name}"; }\r
- public override String getTableSqlName() { return "${table.tableSqlName}"; }\r
-\r
- // ===============================================================================\r
- // Query\r
- // =====\r
-#foreach ($col in $table.columns)\r
- #set ($tmpJavaName = "${col.JavaName}")\r
- #set ($tmpUncapitalisedJavaName = "${col.UncapitalisedJavaName}")\r
- #if (${col.isJavaNativeStringObject()})\r
-\r
- public void Set${tmpJavaName}_Equal($col.JavaNative value) {\r
- reg${tmpJavaName}(CK_EQ, fRES(value));\r
- }\r
- #if ($database.isMakeConditionQueryEqualEmptyString())\r
-\r
- public void Set${tmpJavaName}_Equal_EmptyString() {\r
- reg${tmpJavaName}(CK_EQ, "");\r
- }\r
- #end\r
- #if (${col.hasClassification()})\r
- #foreach ($classificationMap in $col.ClassificationMapList)\r
-\r
- /// <summary>\r
- /// Set the value od ${classificationMap.get('name')} of ${col.UncapitalisedJavaName} as equal. { = }\r
- /// ${database.getMapValue($classificationMap, 'comment')}\r
- /// </summary>\r
- public void Set${tmpJavaName}_Equal_${classificationMap.get('name')}() {\r
- reg${tmpJavaName}(CK_EQ, ${glClassificationDefinition}.CODE_${col.ClassificationName}_${classificationMap.get('name')});\r
- }\r
- #end\r
- #end\r
- #if (${col.isAvailableStringNotEqual()})\r
-\r
- public void Set${tmpJavaName}_NotEqual($col.JavaNative value) {\r
- reg${tmpJavaName}(CK_NE, fRES(value));\r
- }\r
- #if (${col.hasClassification()})\r
- #foreach ($classificationMap in $col.ClassificationMapList)\r
-\r
- /// <summary>\r
- /// Set the value od ${classificationMap.get('name')} of ${col.UncapitalisedJavaName} as notEqual. { != }\r
- /// ${database.getMapValue($classificationMap, 'comment')}\r
- /// </summary>\r
- public void Set${tmpJavaName}_NotEqual_${classificationMap.get('name')}() {\r
- reg${tmpJavaName}(CK_NE, ${glClassificationDefinition}.CODE_${col.ClassificationName}_${classificationMap.get('name')});\r
- }\r
- #end\r
- #end\r
- #end\r
- #if (${col.isAvailableStringGreaterThan()})\r
-\r
- public void Set${tmpJavaName}_GreaterThan($col.JavaNative value) {\r
- reg${tmpJavaName}(CK_GT, fRES(value));\r
- }\r
- #end\r
- #if (${col.isAvailableStringLessThan()})\r
-\r
- public void Set${tmpJavaName}_LessThan($col.JavaNative value) {\r
- reg${tmpJavaName}(CK_LT, fRES(value));\r
- }\r
- #end\r
- #if (${col.isAvailableStringGreaterEqual()})\r
-\r
- public void Set${tmpJavaName}_GreaterEqual($col.JavaNative value) {\r
- reg${tmpJavaName}(CK_GE, fRES(value));\r
- }\r
- #end\r
- #if (${col.isAvailableStringLessEqual()})\r
-\r
- public void Set${tmpJavaName}_LessEqual($col.JavaNative value) {\r
- reg${tmpJavaName}(CK_LE, fRES(value));\r
- }\r
- #end\r
- #if (${col.isAvailableStringPrefixSearch()})\r
-\r
- public void Set${tmpJavaName}_PrefixSearch($col.JavaNative value) {\r
- reg${tmpJavaName}(CK_PS, fRES(value));\r
- }\r
- #end\r
- #if (${col.isAvailableStringLikeSearch()})\r
-\r
- public void Set${tmpJavaName}_LikeSearch($col.javaNative value, ${glPackageBaseCommonCOption}.${glConditionOptionLikeSearchName} likeSearchOption) {\r
- registerLikeSearchQuery(CK_LS, fRES(value), getCValue${tmpJavaName}(), "${col.name}", "${col.javaName}", "${col.uncapitalisedJavaName}", likeSearchOption);\r
- }\r
- #end\r
- #if (${col.isAvailableStringInScope()})\r
-\r
- public void Set${tmpJavaName}_InScope(System.Collections.Generic.IList<${col.JavaNative}> valueList) {\r
- reg${tmpJavaName}(CK_INS, fRESL(cTL<${col.JavaNative}>(valueList)));\r
- }\r
- #end\r
- #if (${col.isAvailableStringNotInScope()})\r
-\r
- public void Set${tmpJavaName}_NotInScope(System.Collections.Generic.IList<${col.JavaNative}> valueList) {\r
- reg${tmpJavaName}(CK_NINS, fRESL(cTL<${col.JavaNative}>(valueList)));\r
- }\r
- #end\r
-#if (${col.isSingleKeyForeignKey()})\r
-#set ($relatedCBClassName = "${col.foreignKey.foreignTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${col.foreignKey.foreignTableExtendedConditionQueryClassName}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_InScopeSubQuery_${col.foreignKey.foreignPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_InScopeSubQuery_${col.foreignKey.foreignPropertyNameInitCap}")\r
-\r
- public void InScope${col.foreignKey.foreignPropertyNameInitCap}(${glSubQuery}<${relatedCBClassName}> subQuery) {\r
- assertObjectNotNull("subQuery<${relatedCBClassName}>", subQuery);\r
- ${relatedCBClassName} cb = new ${relatedCBClassName}(); subQuery.Invoke(cb);\r
- String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.Query());// for saving query-value.\r
- registerInScopeSubQuery(cb.Query(), "${col.Name}", "${col.foreignKey.firstForeignColumnName}", subQueryPropertyName);\r
- }\r
- public abstract String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
-#end\r
-#if (${col.hasSingleKeyReferrer()})\r
-#foreach ($referrer in $col.singleKeyReferrers)\r
-#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#if (${referrer.isOneToOne()})\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_InScopeSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_InScopeSubQuery_${referrer.ReferrerPropertyNameInitCapAsOne}")\r
-#else\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_InScopeSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_InScopeSubQuery_${referrer.ReferrerPropertyNameInitCap}")\r
-#end\r
-\r
- public void InScope${relationPropertyNameInitCap}(${glSubQuery}<${relatedCBClassName}> subQuery) {\r
- assertObjectNotNull("subQuery<${relatedCBClassName}>", subQuery);\r
- ${relatedCBClassName} cb = new ${relatedCBClassName}(); subQuery.Invoke(cb);\r
- String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.Query());\r
- registerInScopeSubQuery(cb.Query(), "${col.Name}", "${referrer.firstLocalColumnName}", subQueryPropertyName);\r
- }\r
- public abstract String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
-#end\r
-#end\r
-#if (${col.hasSingleKeyReferrer()})\r
-#foreach ($referrer in $col.singleKeyReferrers)\r
-#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#if (${referrer.isOneToOne()})\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_NotInScopeSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotInScopeSubQuery_${referrer.ReferrerPropertyNameInitCapAsOne}")\r
-#else\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_NotInScopeSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotInScopeSubQuery_${referrer.ReferrerPropertyNameInitCap}")\r
-#end\r
-\r
- public void NotInScope${relationPropertyNameInitCap}(${glSubQuery}<${relatedCBClassName}> subQuery) {\r
- assertObjectNotNull("subQuery<${relatedCBClassName}>", subQuery);\r
- ${relatedCBClassName} cb = new ${relatedCBClassName}(); subQuery.Invoke(cb);\r
- String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.Query());\r
- registerNotInScopeSubQuery(cb.Query(), "${col.Name}", "${referrer.firstLocalColumnName}", subQueryPropertyName);\r
- }\r
- public abstract String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
-#end\r
-#end\r
-#if (${col.hasSingleKeyReferrer()})\r
-#foreach ($referrer in $col.singleKeyReferrers)\r
-#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#if (${referrer.isOneToOne()})\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_ExistsSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_ExistsSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#else\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_ExistsSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_ExistsSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#end\r
-\r
- public void Exists${relationPropertyNameInitCap}(${glSubQuery}<${relatedCBClassName}> subQuery) {\r
- assertObjectNotNull("subQuery<${relatedCBClassName}>", subQuery);\r
- ${relatedCBClassName} cb = new ${relatedCBClassName}(); subQuery.Invoke(cb);\r
- String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.Query());\r
- registerExistsSubQuery(cb.Query(), "${col.Name}", "${referrer.firstLocalColumnName}", subQueryPropertyName);\r
- }\r
- public abstract String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
-#end\r
-#end\r
-#if (${col.hasSingleKeyReferrer()})\r
-#foreach ($referrer in $col.singleKeyReferrers)\r
-#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#if (${referrer.isOneToOne()})\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_NotExistsSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotExistsSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#else\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_NotExistsSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotExistsSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#end\r
-\r
- public void NotExists${relationPropertyNameInitCap}(${glSubQuery}<${relatedCBClassName}> subQuery) {\r
- assertObjectNotNull("subQuery<${relatedCBClassName}>", subQuery);\r
- ${relatedCBClassName} cb = new ${relatedCBClassName}(); subQuery.Invoke(cb);\r
- String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.Query());\r
- registerNotExistsSubQuery(cb.Query(), "${col.Name}", "${referrer.firstLocalColumnName}", subQueryPropertyName);\r
- }\r
- public abstract String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
-#end\r
-#end\r
-#if (${col.hasSingleKeyReferrer()})\r
-#foreach ($referrer in $col.singleKeyReferrers)\r
-#if (!${referrer.isOneToOne()})\r
-#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_DeriveSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_DeriveSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-\r
- public void xderive${referrer.referrerPropertyNameInitCap}(String function, ${glSubQuery}<${relatedCBClassName}> subQuery, String aliasName) {\r
- assertObjectNotNull("subQuery<${relatedCBClassName}>", subQuery);\r
- ${relatedCBClassName} cb = new ${relatedCBClassName}(); cb.XSetupForDeriveReferrer(); subQuery.Invoke(cb);\r
- String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.Query());// for saving query-value.\r
- registerDeriveSubQuery(function, cb.Query(), "${col.name}", "${referrer.firstLocalColumnName}", subQueryPropertyName, aliasName);\r
- }\r
- abstract public String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
-#end\r
-#end\r
-#end\r
-#end\r
- #if (${col.isJavaNativeNumberObject()})\r
- \r
- public void Set${tmpJavaName}_Equal($col.JavaNative value) {\r
- reg${tmpJavaName}(CK_EQ, value);\r
- }\r
- #if (${col.hasClassification()})\r
- #foreach ($classificationMap in $col.ClassificationMapList)\r
-\r
- /// <summary>\r
- /// Set the value od ${classificationMap.get('name')} of ${col.UncapitalisedJavaName} as equal. { = }\r
- /// ${database.getMapValue($classificationMap, 'comment')}\r
- /// </summary>\r
- public void Set${tmpJavaName}_Equal_${classificationMap.get('name')}() {\r
- String code = ${glClassificationDefinition}.CODE_${col.ClassificationName}_${classificationMap.get('name')};\r
- reg${tmpJavaName}(CK_EQ, ${col.javaNativeRemovedCSharpNullable}.Parse(code));\r
- }\r
- #end\r
- #end\r
- #if (${col.isAvailableNumberNotEqual()})\r
-\r
- public void Set${tmpJavaName}_NotEqual($col.JavaNative value) {\r
- reg${tmpJavaName}(CK_NE, value);\r
- }\r
- #end\r
- #if (${col.isAvailableNumberGreaterThan()})\r
-\r
- public void Set${tmpJavaName}_GreaterThan($col.JavaNative value) {\r
- reg${tmpJavaName}(CK_GT, value);\r
- }\r
- #end\r
- #if (${col.isAvailableNumberLessThan()})\r
-\r
- public void Set${tmpJavaName}_LessThan($col.JavaNative value) {\r
- reg${tmpJavaName}(CK_LT, value);\r
- }\r
- #end\r
- #if (${col.isAvailableNumberGreaterEqual()})\r
-\r
- public void Set${tmpJavaName}_GreaterEqual($col.JavaNative value) {\r
- reg${tmpJavaName}(CK_GE, value);\r
- }\r
- #end\r
- #if (${col.isAvailableNumberLessEqual()})\r
-\r
- public void Set${tmpJavaName}_LessEqual($col.JavaNative value) {\r
- reg${tmpJavaName}(CK_LE, value);\r
- }\r
- #end\r
- #if (${col.isAvailableNumberInScope()})\r
-\r
- public void Set${tmpJavaName}_InScope(System.Collections.Generic.IList<${col.JavaNative}> valueList) {\r
- reg${tmpJavaName}(CK_INS, cTL<${col.JavaNative}>(valueList));\r
- }\r
- #end\r
- #if (${col.isAvailableNumberNotInScope()})\r
-\r
- public void Set${tmpJavaName}_NotInScope(System.Collections.Generic.IList<${col.JavaNative}> valueList) {\r
- reg${tmpJavaName}(CK_NINS, cTL<${col.JavaNative}>(valueList));\r
- }\r
- #end\r
-#if (${col.isSingleKeyForeignKey()})\r
-#set ($relatedCBClassName = "${col.foreignKey.foreignTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${col.foreignKey.foreignTableExtendedConditionQueryClassName}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_InScopeSubQuery_${col.foreignKey.foreignPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_InScopeSubQuery_${col.foreignKey.foreignPropertyNameInitCap}")\r
-\r
- public void InScope${col.foreignKey.foreignPropertyNameInitCap}(${glSubQuery}<${relatedCBClassName}> subQuery) {\r
- assertObjectNotNull("subQuery<${relatedCBClassName}>", subQuery);\r
- ${relatedCBClassName} cb = new ${relatedCBClassName}(); subQuery.Invoke(cb);\r
- String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.Query());// for saving query-value.\r
- registerInScopeSubQuery(cb.Query(), "${col.Name}", "${col.foreignKey.firstForeignColumnName}", subQueryPropertyName);\r
- }\r
- public abstract String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
-#end\r
-#if (${col.hasSingleKeyReferrer()})\r
-#foreach ($referrer in $col.SingleKeyReferrers)\r
-#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#if (${referrer.isOneToOne()})\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_InScopeSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_InScopeSubQuery_${referrer.ReferrerPropertyNameInitCapAsOne}")\r
-#else\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_InScopeSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_InScopeSubQuery_${referrer.ReferrerPropertyNameInitCap}")\r
-#end\r
-\r
- public void InScope${relationPropertyNameInitCap}(${glSubQuery}<${relatedCBClassName}> subQuery) {\r
- assertObjectNotNull("subQuery<${relatedCBClassName}>", subQuery);\r
- ${relatedCBClassName} cb = new ${relatedCBClassName}(); subQuery.Invoke(cb);\r
- String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.Query());\r
- registerInScopeSubQuery(cb.Query(), "${col.Name}", "${referrer.FirstLocalColumnName}", subQueryPropertyName);\r
- }\r
- public abstract String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
-#end\r
-#end\r
-#if (${col.hasSingleKeyReferrer()})\r
-#foreach ($referrer in $col.SingleKeyReferrers)\r
-#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#if (${referrer.isOneToOne()})\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_NotInScopeSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotInScopeSubQuery_${referrer.ReferrerPropertyNameInitCapAsOne}")\r
-#else\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_NotInScopeSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotInScopeSubQuery_${referrer.ReferrerPropertyNameInitCap}")\r
-#end\r
-\r
- public void NotInScope${relationPropertyNameInitCap}(${glSubQuery}<${relatedCBClassName}> subQuery) {\r
- assertObjectNotNull("subQuery<${relatedCBClassName}>", subQuery);\r
- ${relatedCBClassName} cb = new ${relatedCBClassName}(); subQuery.Invoke(cb);\r
- String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.Query());\r
- registerNotInScopeSubQuery(cb.Query(), "${col.Name}", "${referrer.FirstLocalColumnName}", subQueryPropertyName);\r
- }\r
- public abstract String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
-#end\r
-#end\r
-#if (${col.hasSingleKeyReferrer()})\r
-#foreach ($referrer in $col.singleKeyReferrers)\r
-#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#if (${referrer.isOneToOne()})\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_ExistsSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_ExistsSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#else\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_ExistsSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_ExistsSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#end\r
-\r
- public void Exists${relationPropertyNameInitCap}(${glSubQuery}<${relatedCBClassName}> subQuery) {\r
- assertObjectNotNull("subQuery<${relatedCBClassName}>", subQuery);\r
- ${relatedCBClassName} cb = new ${relatedCBClassName}(); subQuery.Invoke(cb);\r
- String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.Query());\r
- registerExistsSubQuery(cb.Query(), "${col.Name}", "${referrer.firstLocalColumnName}", subQueryPropertyName);\r
- }\r
- public abstract String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
-#end\r
-#end\r
-#if (${col.hasSingleKeyReferrer()})\r
-#foreach ($referrer in $col.singleKeyReferrers)\r
-#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#if (${referrer.isOneToOne()})\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_NotExistsSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotExistsSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#else\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_NotExistsSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotExistsSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#end\r
-\r
- public void NotExists${relationPropertyNameInitCap}(${glSubQuery}<${relatedCBClassName}> subQuery) {\r
- assertObjectNotNull("subQuery<${relatedCBClassName}>", subQuery);\r
- ${relatedCBClassName} cb = new ${relatedCBClassName}(); subQuery.Invoke(cb);\r
- String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.Query());\r
- registerNotExistsSubQuery(cb.Query(), "${col.Name}", "${referrer.firstLocalColumnName}", subQueryPropertyName);\r
- }\r
- public abstract String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
-#end\r
-#end\r
-#if (${col.hasSingleKeyReferrer()})\r
-#foreach ($referrer in $col.singleKeyReferrers)\r
-#if (!${referrer.isOneToOne()})\r
-#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_DeriveSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_DeriveSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-\r
- public void xderive${referrer.referrerPropertyNameInitCap}(String function, ${glSubQuery}<${relatedCBClassName}> subQuery, String aliasName) {\r
- assertObjectNotNull("subQuery<${relatedCBClassName}>", subQuery);\r
- ${relatedCBClassName} cb = new ${relatedCBClassName}(); cb.XSetupForDeriveReferrer(); subQuery.Invoke(cb);\r
- String subQueryPropertyName = keep${subQueryPropertyNameInitCap}(cb.Query());// for saving query-value.\r
- registerDeriveSubQuery(function, cb.Query(), "${col.Name}", "${referrer.firstLocalColumnName}", subQueryPropertyName, aliasName);\r
- }\r
- abstract public String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery);\r
-#end\r
-#end\r
-#end\r
-#end\r
-#if (${col.isJavaNativeDateObject()})\r
- public void Set${tmpJavaName}_Equal($col.JavaNative value) {\r
- reg${tmpJavaName}(CK_EQ, value);\r
- }\r
-#if (${col.isAvailableDateNotEqual()})\r
- public void Set${tmpJavaName}_NotEqual($col.JavaNative value) {\r
- reg${tmpJavaName}(CK_NE, value);\r
- }\r
-#end\r
-#if (${col.isAvailableDateGreaterThan()})\r
- public void Set${tmpJavaName}_GreaterThan($col.JavaNative value) {\r
- reg${tmpJavaName}(CK_GT, value);\r
- }\r
-#end\r
-#if (${col.isAvailableDateLessThan()})\r
- public void Set${tmpJavaName}_LessThan($col.JavaNative value) {\r
- reg${tmpJavaName}(CK_LT, value);\r
- }\r
-#end\r
-#if (${col.isAvailableDateGreaterEqual()})\r
- public void Set${tmpJavaName}_GreaterEqual($col.JavaNative value) {\r
- reg${tmpJavaName}(CK_GE, value);\r
- }\r
-#end\r
-#if (${col.isAvailableDateLessEqual()})\r
- public void Set${tmpJavaName}_LessEqual($col.JavaNative value) {\r
- reg${tmpJavaName}(CK_LE, value);\r
- }\r
-#end\r
-#if (${col.isAvailableDateFromTo()} && !${col.isTorqueTypeTime()})\r
- public void Set${tmpJavaName}_FromTo(DateTime? fromDate, DateTime? toDate, ${glPackageBaseCommonCOption}.${glConditionOptionFromToName} fromToOption) {\r
- registerFromToQuery(fromDate, toDate, getCValue${tmpJavaName}(), "${col.name}", "${col.javaName}", "${col.uncapitalisedJavaName}", fromToOption);\r
- }\r
- public void Set${tmpJavaName}_DateFromTo(DateTime? fromDate, DateTime? toDate) {\r
- Set${tmpJavaName}_FromTo(fromDate, toDate, new ${glPackageBaseCommonCOption}.${glConditionOptionDateFromToName}());\r
- }\r
-#end\r
-#end\r
-#if (${col.isJavaNativeBooleanObject()})\r
- \r
- public void Set${tmpJavaName}_Equal($col.JavaNative value) {\r
- reg${tmpJavaName}(CK_EQ, value);\r
- }\r
-#end\r
-#if (!${col.isNotNull()} || ${col.isPrimaryKey()})\r
-\r
- public void Set${tmpJavaName}_IsNull() { reg${tmpJavaName}(CK_ISN, DUMMY_OBJECT); }\r
- public void Set${tmpJavaName}_IsNotNull() { reg${tmpJavaName}(CK_ISNN, DUMMY_OBJECT); }\r
-#end\r
- \r
- protected void reg${tmpJavaName}(${glConditionKeyName} key, Object value) {\r
- registerQuery(key, value, getCValue${tmpJavaName}(), "${col.Name}", "${col.JavaName}", "${col.UncapitalisedJavaName}");\r
- }\r
-\r
- protected void registerInline${tmpJavaName}(${glConditionKeyName} key, Object value) {\r
- registerInlineQuery(key, value, getCValue${tmpJavaName}(), "${col.Name}", "${col.JavaName}", "${col.UncapitalisedJavaName}");\r
- }\r
-\r
- protected abstract ${glConditionValueName} getCValue${tmpJavaName}();\r
-#end\r
-\r
- // ===============================================================================\r
- // Basic Override\r
- // ==============\r
- public override String ToString() { return getSqlClause().getClause(); }\r
- }\r
-}\r
+++ /dev/null
-#set ($myClassName = "${myBaseConditionBeanClassName}")\r
-\r
-using System;\r
-using System.Collections;\r
-\r
-using ${glPackageBaseCommon};\r
-using ${glPackageBaseCommonCBean};\r
-using ${glPackageBaseCommonHelper};\r
-\r
-using ${glPackageCB};\r
-using ${glPackageCQ};\r
-using ${glPackageNss};\r
-\r
-namespace ${glPackageBaseCB} {\r
-\r
- [System.Serializable]\r
- public class ${myClassName} : ${glConditionBeanAbstractName} {\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected ${myConditionQueryClassName} _conditionQuery;\r
-\r
- // ===============================================================================\r
- // Table Name\r
- // ==========\r
- public override String TableDbName { get { return "${table.name}"; } }\r
- public override String TableSqlName { get { return "${table.tableSqlName}"; } }\r
-\r
- // ===============================================================================\r
- // Add OrderBy PK\r
- // ==============\r
- public override ${glConditionBeanInterfaceName} AddOrderBy_PK_Asc() {\r
-#if ($table.hasPrimaryKey())\r
-#foreach ($col in $table.primaryKey)\r
- Query().AddOrderBy_${col.JavaName}_Asc();\r
-#end\r
- return this;\r
-#else\r
- String msg = "This method is unsupported in this table that doesn't have primary key: ";\r
- throw new NotSupportedException(msg + ToString());\r
-#end\r
- }\r
-\r
- /// <summary>${database.ImplementComment}</summary><returns>this. (NotNull)</returns>\r
- public override ${glConditionBeanInterfaceName} AddOrderBy_PK_Desc() {\r
-#if ($table.hasPrimaryKey())\r
-#foreach ($col in $table.PrimaryKey)\r
- Query().AddOrderBy_${col.JavaName}_Desc();\r
-#end\r
- return this;\r
-#else\r
- String msg = "This method is unsupported in this table that doesn't have primary key: ";\r
- throw new NotSupportedException(msg + ToString());\r
-#end\r
- }\r
-\r
- // ===============================================================================\r
- // Query\r
- // =====\r
- public ${myConditionQueryClassName} Query() {\r
- return this.ConditionQuery;\r
- }\r
-\r
- public ${myConditionQueryClassName} ConditionQuery {\r
- get {\r
- if (_conditionQuery == null) {\r
- _conditionQuery = new ${myConditionQueryClassName}(null, this.SqlClause, this.SqlClause.getLocalTableAliasName(), 0);\r
- }\r
- return _conditionQuery;\r
- }\r
- }\r
-\r
- public override ${glPackageBaseCommonCBean}.${glConditionQueryInterfaceName} ConditionQueryAsInterface {\r
- get { return this.ConditionQuery; }\r
- }\r
-\r
- // ===============================================================================\r
- // Union Query\r
- // ===========\r
- public virtual void Union(${glUnionQuery}<${myConditionBeanClassName}> unionQuery) {\r
- ${myConditionBeanClassName} cb = new ${myConditionBeanClassName}(); unionQuery.Invoke(cb);\r
- ${myConditionQueryClassName} cq = cb.Query(); Query().xsetUnionQuery(cq);\r
- }\r
-\r
- public virtual void UnionAll(${glUnionQuery}<${myConditionBeanClassName}> unionQuery) {\r
- ${myConditionBeanClassName} cb = new ${myConditionBeanClassName}(); unionQuery.Invoke(cb);\r
- ${myConditionQueryClassName} cq = cb.Query(); Query().xsetUnionAllQuery(cq);\r
- }\r
-\r
- [System.Obsolete("Use the method 'Union(${glUnionQuery}<${myConditionBeanClassName}> unionQuery")]\r
- public void Union(${myConditionQueryClassName} unionQuery) {\r
- Query().xsetUnionQuery(unionQuery);\r
- }\r
-\r
- [System.Obsolete("Use the method 'UnionAll(${glUnionQuery}<${myConditionBeanClassName}> unionQuery")]\r
- public void UnionAll(${myConditionQueryClassName} unionQuery) {\r
- Query().xsetUnionAllQuery(unionQuery);\r
- }\r
-\r
- public override bool HasUnionQueryOrUnionAllQuery() {\r
- return Query().hasUnionQueryOrUnionAllQuery();\r
- }\r
- \r
- // ===============================================================================\r
- // Setup Select\r
- // ============\r
-#foreach ($foreignKeys in $table.foreignKeys)\r
- #set ($tmpPropertyName = "${foreignKeys.foreignPropertyNameInitCap}")\r
- #set ($tmpPropertyNameInitCap = "${foreignKeys.foreignPropertyNameInitCap}")\r
- #set ($nestSelectSetuppperClassName = "${glProjectPrefix}${foreignKeys.foreignTable.javaName}Nss")\r
-\r
- // /* * * * * * * * * * * * * * * * * * * * * * *\r
- // ForeignTable = [${foreignKeys.foreignTable.Name}]\r
- // ForeignProperty = [${tmpPropertyName}]\r
- // * * * * * * * * */\r
-\r
- protected ${nestSelectSetuppperClassName} _nss${tmpPropertyNameInitCap};\r
- public ${nestSelectSetuppperClassName} Nss${tmpPropertyNameInitCap} {\r
- get {\r
- if (_nss${tmpPropertyNameInitCap} == null) {\r
- _nss${tmpPropertyNameInitCap} = new ${nestSelectSetuppperClassName}(null);// for Dummy\r
- }\r
- return _nss${tmpPropertyNameInitCap};\r
- }\r
- }\r
- public ${nestSelectSetuppperClassName} SetupSelect_${tmpPropertyNameInitCap}() {\r
- String foreignTableAliasName = Query().Query${tmpPropertyNameInitCap}().getRealAliasName();\r
- String localRelationPath = Query().getRelationPath();\r
- this.SqlClause.registerSelectedSelectColumn(foreignTableAliasName, "${table.name}", "${tmpPropertyName}", localRelationPath);\r
- this.SqlClause.registerSelectedForeignInfo(Query().Query${tmpPropertyNameInitCap}().getRelationPath(), "${tmpPropertyName}");\r
- if (_nss${tmpPropertyNameInitCap} == null || !_nss${tmpPropertyNameInitCap}.HasConditionQuery) {\r
- _nss${tmpPropertyNameInitCap} = new ${glPackageNss}.${nestSelectSetuppperClassName}(Query().Query${tmpPropertyNameInitCap}());\r
- }\r
- LimitSelect_Off();\r
- return _nss${tmpPropertyNameInitCap};\r
- }\r
-#end\r
-#foreach ($referrer in $table.referrers)\r
- #if (${referrer.isOneToOne()})\r
- #set ($tmpPropertyName = "${referrer.ReferrerPropertyNameInitCapAsOne}")\r
- #set ($tmpPropertyNameInitCap = "${referrer.ReferrerPropertyNameInitCapAsOne}")\r
- #set ($nestSelectSetuppperClassName = "${referrer.referrerTableNestSelectSetupperClassName}")\r
-\r
- // /* * * * * * * * * * * * * * * * * * * * * * * {as one}\r
- // ReferrerTable = [${referrer.table.name}]\r
- // ReferrerProperty = [${tmpPropertyName}]\r
- // * * * * * * * * */\r
-\r
- protected ${nestSelectSetuppperClassName} _nss${tmpPropertyNameInitCap};\r
- public ${nestSelectSetuppperClassName} Nss${tmpPropertyNameInitCap} {\r
- get {\r
- if (_nss${tmpPropertyNameInitCap} == null) {\r
- _nss${tmpPropertyNameInitCap} = new ${nestSelectSetuppperClassName}(null);// for Dummy\r
- }\r
- return _nss${tmpPropertyNameInitCap};\r
- }\r
- }\r
- public ${nestSelectSetuppperClassName} SetupSelect_${tmpPropertyNameInitCap}() {\r
- String foreignTableAliasName = Query().Query${tmpPropertyNameInitCap}().getRealAliasName();\r
- String localRelationPath = Query().getRelationPath();\r
- this.SqlClause.registerSelectedSelectColumn(foreignTableAliasName, "${table.name}", "${tmpPropertyName}", localRelationPath);\r
- this.SqlClause.registerSelectedForeignInfo(Query().Query${tmpPropertyNameInitCap}().getRelationPath(), "${tmpPropertyName}");\r
- if (_nss${tmpPropertyNameInitCap} == null || !_nss${tmpPropertyNameInitCap}.HasConditionQuery) {\r
- _nss${tmpPropertyNameInitCap} = new ${glPackageNss}.${nestSelectSetuppperClassName}(Query().Query${tmpPropertyNameInitCap}());\r
- }\r
- LimitSelect_Off();\r
- return _nss${tmpPropertyNameInitCap};\r
- }\r
- #end\r
-#end\r
-\r
- // [DBFlute-0.7.4]\r
- // ===============================================================================\r
- // Specify\r
- // =======\r
- protected ${myConditionBeanClassName}Specification _specification;\r
- public ${myConditionBeanClassName}Specification Specify() {\r
- if (_specification == null) { _specification = new ${myConditionBeanClassName}Specification(this, new MySpQyCall(this), _forDeriveReferrer); } return _specification;\r
- }\r
- protected class MySpQyCall : SpQyCall<${myConditionQueryClassName}> {\r
- protected ${myClassName} _myCB;\r
- public MySpQyCall(${myClassName} myCB) { _myCB = myCB; }\r
- public bool has() { return true; } public ${myConditionQueryClassName} qy() { return _myCB.Query(); }\r
- }\r
- }\r
- \r
- public class ${myConditionBeanClassName}Specification : AbstractSpecification<${myConditionQueryClassName}> {\r
- protected SpQyCall<${myConditionQueryClassName}> _myQyCall;\r
-#foreach ($foreignKey in $table.foreignKeys)\r
-#set ($tmpPropertyName = "${foreignKey.foreignPropertyName}")\r
-#set ($tmpPropertyNameInitCap = "${foreignKey.foreignPropertyNameInitCap}")\r
-#set ($tmpCBClassName = "${foreignKey.foreignTableExtendedConditionBeanClassName}")\r
- protected ${tmpCBClassName}Specification _${tmpPropertyName};\r
-#end\r
-#foreach ($referrer in $table.referrers)\r
-#if (${referrer.isOneToOne()})\r
-#set ($tmpPropertyName = "${referrer.referrerPropertyNameAsOne}")\r
-#set ($tmpPropertyNameInitCap = "${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($tmpCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
- protected ${tmpCBClassName}Specification _${tmpPropertyName};\r
-#end\r
-#end\r
- public ${myConditionBeanClassName}Specification(${glConditionBeanInterfaceName} baseCB, SpQyCall<${myConditionQueryClassName}> qyCall, bool forDeriveReferrer) : base(baseCB, qyCall, forDeriveReferrer) { _myQyCall = qyCall; }\r
-#foreach ($col in $table.columns)\r
- public void Column${col.javaName}() { doColumn("${col.name}"); }\r
-#end\r
- protected override void doSpecifyRequiredColumn() {\r
-#foreach ($col in $table.primaryKey)\r
- Column${col.javaName}();// PK\r
-#end\r
-#foreach ($foreignKey in $table.foreignKeys)\r
-#set ($tmpPropertyName = "${foreignKey.foreignPropertyName}")\r
-#set ($tmpPropertyNameInitCap = "${foreignKey.foreignPropertyNameInitCap}")\r
- if (_myQyCall.qy().hasConditionQuery${tmpPropertyNameInitCap}()) {\r
-#foreach ($col in $foreignKey.localColumnList)\r
-#if (!$col.isPrimaryKey())\r
- Column${col.javaName}();// FK\r
-#end\r
-#end\r
- }\r
-#end\r
- }\r
- protected override String getTableDbName() { return "$table.name"; }\r
-#foreach ($foreignKey in $table.foreignKeys)\r
-#set ($tmpPropertyName = "${foreignKey.foreignPropertyName}")\r
-#set ($tmpPropertyNameInitCap = "${foreignKey.foreignPropertyNameInitCap}")\r
-#set ($tmpCBClassName = "${foreignKey.foreignTableExtendedConditionBeanClassName}")\r
-#set ($tmpCQClassName = "${foreignKey.foreignTableExtendedConditionQueryClassName}")\r
- public ${tmpCBClassName}Specification Specify${tmpPropertyNameInitCap}() {\r
- assertForeign("${tmpPropertyName}");\r
- if (_${tmpPropertyName} == null) { _${tmpPropertyName} = new ${tmpCBClassName}Specification(_baseCB, new ${tmpPropertyNameInitCap}SpQyCall(_myQyCall), _forDeriveReferrer); }\r
- return _${tmpPropertyName};\r
- }\r
- public class ${tmpPropertyNameInitCap}SpQyCall : SpQyCall<${tmpCQClassName}> {\r
- protected SpQyCall<${myConditionQueryClassName}> _myQyCall;\r
- public ${tmpPropertyNameInitCap}SpQyCall(SpQyCall<${myConditionQueryClassName}> myQyCall) { _myQyCall = myQyCall; }\r
- public bool has() { return _myQyCall.has() && _myQyCall.qy().hasConditionQuery${tmpPropertyNameInitCap}(); }\r
- public ${tmpCQClassName} qy() { return _myQyCall.qy().Query${tmpPropertyNameInitCap}(); }\r
- }\r
-#end\r
-#foreach ($referrer in $table.referrers)\r
-#if (${referrer.isOneToOne()})\r
-#set ($tmpPropertyName = "${referrer.referrerPropertyNameAsOne}")\r
-#set ($tmpPropertyNameInitCap = "${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($tmpCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
-#set ($tmpCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
- public ${tmpCBClassName}Specification Specify${tmpPropertyNameInitCap}() {\r
- assertForeign("${tmpPropertyName}");\r
- if (_${tmpPropertyName} == null) { _${tmpPropertyName} = new ${tmpCBClassName}Specification(_baseCB, new ${tmpPropertyNameInitCap}SpQyCall(_myQyCall), _forDeriveReferrer); }\r
- return _${tmpPropertyName};\r
- }\r
- public class ${tmpPropertyNameInitCap}SpQyCall : SpQyCall<${tmpCQClassName}> {\r
- protected SpQyCall<${myConditionQueryClassName}> _myQyCall;\r
- public ${tmpPropertyNameInitCap}SpQyCall(SpQyCall<${myConditionQueryClassName}> myQyCall) { _myQyCall = myQyCall; }\r
- public bool has() { return _myQyCall.has() && _myQyCall.qy().hasConditionQuery${tmpPropertyNameInitCap}(); }\r
- public ${tmpCQClassName} qy() { return _myQyCall.qy().Query${tmpPropertyNameInitCap}(); }\r
- }\r
-#end\r
-#end\r
-#foreach ($referrer in $table.singleKeyStringOrIntegerReferrers)\r
-#if (!${referrer.isOneToOne()})\r
-#set ($tmpPropertyName = "${referrer.referrerPropertyName}")\r
-#set ($tmpPropertyNameInitCap = "${referrer.referrerPropertyNameInitCap}")\r
-#set ($tmpCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
-#set ($tmpLocalCQClassName = "${referrer.foreignTableExtendedConditionQueryClassName}")\r
- public RAFunction<${tmpCBClassName}, ${tmpLocalCQClassName}> Derived${tmpPropertyNameInitCap}() {\r
- return new RAFunction<${tmpCBClassName}, ${tmpLocalCQClassName}>(_baseCB, _myQyCall.qy(), delegate(String function, ${glSubQuery}<${tmpCBClassName}> subQuery, ${tmpLocalCQClassName} cq, String aliasName) { cq.xderive${referrer.referrerPropertyNameInitCap}(function, subQuery, aliasName); });\r
- }\r
-#end\r
-#end\r
- }\r
-}\r
+++ /dev/null
-#set ($myClassName = "${myConditionInlineQueryClassName}")\r
-#set ($myCQClassName = "${myBaseConditionQueryClassName}")\r
-\r
-using System;\r
-\r
-using ${glPackageBaseCommonCBean};\r
-using ${glPackageBaseCommonCKey};\r
-using ${glPackageBaseCommonCOption};\r
-using ${glPackageBaseCommonCValue};\r
-using ${glPackageBaseCommonSqlClause};\r
-using ${glPackageBaseCommonJavaLike};\r
-using ${glPackageBaseCQ};\r
-using ${glPackageCQ};\r
-\r
-namespace ${glPackageCIQ} {\r
-\r
- [System.Serializable]\r
- public class ${myClassName} : ${myAbstractBaseConditionQueryClassName} {\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected ${myCQClassName} _myCQ;\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${myClassName}(${glConditionQueryInterfaceName} childQuery, ${glSqlClauseName} sqlClause, String aliasName, int nestLevel, ${myCQClassName} myCQ)\r
- : base(childQuery, sqlClause, aliasName, nestLevel) {\r
- _myCQ = myCQ;\r
- _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign property name.\r
- _relationPath = _myCQ.getRelationPath();// Accept relation path.\r
- }\r
-\r
- \r
- // ===================================================================================\r
- // Override about Register\r
- // =======================\r
- public override void reflectRelationOnUnionQuery(${glConditionQueryInterfaceName} baseQueryAsSuper, ${glConditionQueryInterfaceName} unionQueryAsSuper) {\r
- throw new UnsupportedOperationException("InlineQuery must not need UNION method: " + baseQueryAsSuper + " : " + unionQueryAsSuper);\r
- }\r
- \r
- protected override void setupConditionValueAndRegisterWhereClause(${glConditionKeyName} key, Object value, ${glConditionValueName} cvalue\r
- , String colName, String capPropName, String uncapPropName) {\r
- registerInlineQuery(key, value, cvalue, colName, capPropName, uncapPropName);\r
- }\r
- \r
- protected override void setupConditionValueAndRegisterWhereClause(${glConditionKeyName} key, Object value, ${glConditionValueName} cvalue\r
- , String colName, String capPropName, String uncapPropName, ${glConditionOptionInterfaceName} option) {\r
- registerInlineQuery(key, value, cvalue, colName, capPropName, uncapPropName, option);\r
- }\r
- \r
- protected override void registerWhereClause(String whereClause) {\r
- registerInlineWhereClause(whereClause);\r
- }\r
- \r
- protected override String getInScopeSubQueryRealColumnName(String columnName) {\r
- if (_onClauseInline) {\r
- throw new UnsupportedOperationException("InScopeSubQuery of on-clause is unsupported");\r
- }\r
- return _onClauseInline ? getRealAliasName() + "." + columnName : columnName;\r
- }\r
- \r
- protected override void registerExistsSubQuery(${glConditionQueryInterfaceName} subQuery\r
- , String columnName, String relatedColumnName, String propertyName) {\r
- throw new UnsupportedOperationException("Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery.");\r
- }\r
-\r
-#foreach ($col in $table.columns)\r
-#set ($tmpJavaName = "${col.JavaName}")\r
-#set ($tmpUncapitalisedJavaName = "${col.UncapitalisedJavaName}")\r
-\r
- protected override ${glConditionValueName} getCValue${tmpJavaName}() {\r
- return _myCQ.${tmpJavaName};\r
- }\r
-\r
-#if (${col.isJavaNativeStringObject()})\r
-#if (${col.isSingleKeyForeignKey()})\r
-#set ($relatedCBClassName = "${col.foreignKey.foreignTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${col.foreignKey.foreignTableExtendedConditionQueryClassName}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_InScopeSubQuery_${col.foreignKey.foreignPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_InScopeSubQuery_${col.foreignKey.foreignPropertyNameInitCap}")\r
-\r
- public override String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
- return _myCQ.keep${subQueryPropertyNameInitCap}(subQuery);\r
- }\r
-#end\r
-#if (${col.hasSingleKeyReferrer()})\r
-#foreach ($referrer in $col.singleKeyReferrers)\r
-#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#if (${referrer.isOneToOne()})\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_InScopeSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_InScopeSubQuery_${referrer.ReferrerPropertyNameInitCapAsOne}")\r
-#else\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_InScopeSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_InScopeSubQuery_${referrer.ReferrerPropertyNameInitCap}")\r
-#end\r
-\r
- public override String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
- return _myCQ.keep${subQueryPropertyNameInitCap}(subQuery);\r
- }\r
-#end\r
-#end\r
-#if (${col.hasSingleKeyReferrer()})\r
-#foreach ($referrer in $col.singleKeyReferrers)\r
-#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#if (${referrer.isOneToOne()})\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_NotInScopeSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotInScopeSubQuery_${referrer.ReferrerPropertyNameInitCapAsOne}")\r
-#else\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_NotInScopeSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotInScopeSubQuery_${referrer.ReferrerPropertyNameInitCap}")\r
-#end\r
-\r
- public override String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
- return _myCQ.keep${subQueryPropertyNameInitCap}(subQuery);\r
- }\r
-#end\r
-#end\r
-#if (${col.hasSingleKeyReferrer()})\r
-#foreach ($referrer in $col.singleKeyReferrers)\r
-#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#if (${referrer.isOneToOne()})\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_ExistsSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_ExistsSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#else\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_ExistsSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_ExistsSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#end\r
-\r
- public override String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
- throw new SystemException("ExistsSubQuery at inline() is unsupported! Sorry!");\r
- // _myCQ.keep${subQueryPropertyNameInitCap}(subQuery);\r
- }\r
-#end\r
-#end\r
-#if (${col.hasSingleKeyReferrer()})\r
-#foreach ($referrer in $col.singleKeyReferrers)\r
-#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#if (${referrer.isOneToOne()})\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_NotExistsSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotExistsSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#else\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_NotExistsSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotExistsSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#end\r
-\r
- public override String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
- throw new SystemException("NotExistsSubQuery at inline() is unsupported! Sorry!");\r
- // _myCQ.keep${subQueryPropertyNameInitCap}(subQuery);\r
- }\r
-#end\r
-#end\r
-#if (${col.hasSingleKeyReferrer()})\r
-#foreach ($referrer in $col.singleKeyReferrers)\r
-#if (!${referrer.isOneToOne()})\r
-#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_DeriveSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_DeriveSubQuery_${referrer.referrerPropertyNameInitCap}")\r
- public override String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
- throw new UnsupportedOperationException("DeriveSubQuery at inline() is unsupported! Sorry!");\r
- }\r
-#end\r
-#end\r
-#end\r
-#end\r
-#if (${col.isJavaNativeNumberObject()})\r
-#if (${col.isSingleKeyForeignKey()})\r
-#set ($relatedCBClassName = "${col.foreignKey.foreignTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${col.foreignKey.foreignTableExtendedConditionQueryClassName}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_InScopeSubQuery_${col.foreignKey.foreignPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_InScopeSubQuery_${col.foreignKey.foreignPropertyNameInitCap}")\r
-\r
- public override String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
- return _myCQ.keep${subQueryPropertyNameInitCap}(subQuery);\r
- }\r
-#end\r
-#if (${col.hasSingleKeyReferrer()})\r
-#foreach ($referrer in $col.singleKeyReferrers)\r
-#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#if (${referrer.isOneToOne()})\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_InScopeSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_InScopeSubQuery_${referrer.ReferrerPropertyNameInitCapAsOne}")\r
-#else\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_InScopeSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_InScopeSubQuery_${referrer.ReferrerPropertyNameInitCap}")\r
-#end\r
-\r
- public override String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
- return _myCQ.keep${subQueryPropertyNameInitCap}(subQuery);\r
- }\r
-#end\r
-#end\r
-#if (${col.hasSingleKeyReferrer()})\r
-#foreach ($referrer in $col.singleKeyReferrers)\r
-#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#if (${referrer.isOneToOne()})\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_NotInScopeSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotInScopeSubQuery_${referrer.ReferrerPropertyNameInitCapAsOne}")\r
-#else\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_NotInScopeSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotInScopeSubQuery_${referrer.ReferrerPropertyNameInitCap}")\r
-#end\r
-\r
- public override String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
- return _myCQ.keep${subQueryPropertyNameInitCap}(subQuery);\r
- }\r
-#end\r
-#end\r
-#if (${col.hasSingleKeyReferrer()})\r
-#foreach ($referrer in $col.singleKeyReferrers)\r
-#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#if (${referrer.isOneToOne()})\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_ExistsSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_ExistsSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#else\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_ExistsSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_ExistsSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#end\r
-\r
- public override String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
- throw new SystemException("ExistsSubQuery at inline() is unsupported! Sorry!");\r
- // _myCQ.keep${subQueryPropertyNameInitCap}(subQuery);\r
- }\r
-#end\r
-#end\r
-#if (${col.hasSingleKeyReferrer()})\r
-#foreach ($referrer in $col.singleKeyReferrers)\r
-#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#if (${referrer.isOneToOne()})\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_NotExistsSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotExistsSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#else\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_NotExistsSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotExistsSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#end\r
-\r
- public override String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
- throw new SystemException("NotExistsSubQuery at inline() is unsupported! Sorry!");\r
- // _myCQ.keep${subQueryPropertyNameInitCap}(subQuery);\r
- }\r
-#end\r
-#end\r
-#if (${col.hasSingleKeyReferrer()})\r
-#foreach ($referrer in $col.singleKeyReferrers)\r
-#if (!${referrer.isOneToOne()})\r
-#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_DeriveSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_DeriveSubQuery_${referrer.referrerPropertyNameInitCap}")\r
- public override String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
- throw new UnsupportedOperationException("DeriveSubQuery at inline() is unsupported! Sorry!");\r
- }\r
-#end\r
-#end\r
-#end\r
-#end\r
-#end\r
-\r
- }\r
-}\r
+++ /dev/null
-#set ($myClassName = "${myBaseConditionQueryClassName}")\r
-\r
-using System;\r
-\r
-using ${glPackageBaseCommonCBean};\r
-using ${glPackageBaseCommonCValue};\r
-using ${glPackageBaseCommonSqlClause};\r
-using ${glPackageBaseCommonJavaLike};\r
-using ${glPackageCQ};\r
-using ${glPackageCIQ};\r
-\r
-namespace ${glPackageBaseCQ} {\r
-\r
- [System.Serializable]\r
- public class ${myClassName} : ${myAbstractBaseConditionQueryClassName} {\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected ${myConditionInlineQueryClassName} _inlineQuery;\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${myClassName}(${glConditionQueryInterfaceName} childQuery, ${glSqlClauseName} sqlClause, String aliasName, int nestLevel)\r
- : base(childQuery, sqlClause, aliasName, nestLevel) {}\r
-\r
- // ===============================================================================\r
- // Inline\r
- // ======\r
- public ${myConditionInlineQueryClassName} Inline() {\r
- if (_inlineQuery == null) {\r
- _inlineQuery = new ${myConditionInlineQueryClassName}(getChildQuery(), getSqlClause(), getAliasName(), getNestLevel(), this);\r
- }\r
- _inlineQuery.xsetOnClauseInline(false);\r
- return _inlineQuery;\r
- }\r
- \r
- public ${myConditionInlineQueryClassName} On() {\r
- if (isBaseQuery(this)) { throw new UnsupportedOperationException("Unsupported onClause of Base Table!"); }\r
- ${myConditionInlineQueryClassName} inlineQuery = Inline();\r
- inlineQuery.xsetOnClauseInline(true);\r
- return inlineQuery;\r
- }\r
-\r
- // ===============================================================================\r
- // IncludeAsMine\r
- // =============\r
-#foreach ($col in $table.columns)\r
- [System.Obsolete("Sorry!")]\r
- public void IncludeAsMine_${col.JavaName}(String aliasName) { registerIncludedSelectColumn(aliasName, getRealColumnName("${col.Name}")); }\r
-#end\r
-\r
- // ===============================================================================\r
- // Query\r
- // =====\r
- #foreach ($col in $table.columns)\r
- #set ($tmpJavaName = "${col.JavaName}")\r
- #set ($tmpUncapitalisedJavaName = "${col.UncapitalisedJavaName}")\r
-\r
- protected ${glConditionValueName} _${tmpUncapitalisedJavaName};\r
- public ${glConditionValueName} ${tmpJavaName} {\r
- get { if (_${tmpUncapitalisedJavaName} == null) { _${tmpUncapitalisedJavaName} = new ${glConditionValueName}(); } return _${tmpUncapitalisedJavaName}; }\r
- }\r
- protected override ${glConditionValueName} getCValue${tmpJavaName}() { return this.${tmpJavaName}; }\r
-\r
-#if (${col.isJavaNativeStringObject()})\r
-#if (${col.isSingleKeyForeignKey()})\r
-#set ($relatedCBClassName = "${col.foreignKey.foreignTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${col.foreignKey.foreignTableExtendedConditionQueryClassName}")\r
-#set ($subQueryKeepMapGeneric = "String, ${relatedCQClassName}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_InScopeSubQuery_${col.foreignKey.foreignPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_InScopeSubQuery_${col.foreignKey.foreignPropertyNameInitCap}")\r
-\r
- protected Map<${subQueryKeepMapGeneric}> _${subQueryPropertyName}Map;\r
- public Map<${subQueryKeepMapGeneric}> ${subQueryPropertyNameInitCap} { get { return _${subQueryPropertyName}Map; }}\r
- public override String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
- if (_${subQueryPropertyName}Map == null) { _${subQueryPropertyName}Map = new LinkedHashMap<${subQueryKeepMapGeneric}>(); }\r
- String key = "subQueryMapKey" + (_${subQueryPropertyName}Map.size() + 1);\r
- _${subQueryPropertyName}Map.put(key, subQuery); return "${subQueryPropertyNameInitCap}." + key;\r
- }\r
-#end\r
-#if (${col.hasSingleKeyReferrer()})\r
-#foreach ($referrer in $col.singleKeyReferrers)\r
-#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#set ($subQueryKeepMapGeneric = "String, ${relatedCQClassName}")\r
-#if (${referrer.isOneToOne()})\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_InScopeSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_InScopeSubQuery_${referrer.ReferrerPropertyNameInitCapAsOne}")\r
-#else\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_InScopeSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_InScopeSubQuery_${referrer.ReferrerPropertyNameInitCap}")\r
-#end\r
-\r
- protected Map<${subQueryKeepMapGeneric}> _${subQueryPropertyName}Map;\r
- public Map<${subQueryKeepMapGeneric}> ${subQueryPropertyNameInitCap} { get { return _${subQueryPropertyName}Map; }}\r
- public override String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
- if (_${subQueryPropertyName}Map == null) { _${subQueryPropertyName}Map = new LinkedHashMap<${subQueryKeepMapGeneric}>(); }\r
- String key = "subQueryMapKey" + (_${subQueryPropertyName}Map.size() + 1);\r
- _${subQueryPropertyName}Map.put(key, subQuery); return "${subQueryPropertyNameInitCap}." + key;\r
- }\r
-#end\r
-#end\r
-#if (${col.hasSingleKeyReferrer()})\r
-#foreach ($referrer in $col.singleKeyReferrers)\r
-#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#set ($subQueryKeepMapGeneric = "String, ${relatedCQClassName}")\r
-#if (${referrer.isOneToOne()})\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_NotInScopeSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotInScopeSubQuery_${referrer.ReferrerPropertyNameInitCapAsOne}")\r
-#else\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_NotInScopeSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotInScopeSubQuery_${referrer.ReferrerPropertyNameInitCap}")\r
-#end\r
-\r
- protected Map<${subQueryKeepMapGeneric}> _${subQueryPropertyName}Map;\r
- public Map<${subQueryKeepMapGeneric}> ${subQueryPropertyNameInitCap} { get { return _${subQueryPropertyName}Map; }}\r
- public override String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
- if (_${subQueryPropertyName}Map == null) { _${subQueryPropertyName}Map = new LinkedHashMap<${subQueryKeepMapGeneric}>(); }\r
- String key = "subQueryMapKey" + (_${subQueryPropertyName}Map.size() + 1);\r
- _${subQueryPropertyName}Map.put(key, subQuery); return "${subQueryPropertyNameInitCap}." + key;\r
- }\r
-#end\r
-#end\r
-#if (${col.hasSingleKeyReferrer()})\r
-#foreach ($referrer in $col.singleKeyReferrers)\r
-#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#set ($subQueryKeepMapGeneric = "String, ${relatedCQClassName}")\r
-#if (${referrer.isOneToOne()})\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_ExistsSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_ExistsSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#else\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_ExistsSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_ExistsSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#end\r
-\r
- protected Map<${subQueryKeepMapGeneric}> _${subQueryPropertyName}Map;\r
- public Map<${subQueryKeepMapGeneric}> ${subQueryPropertyNameInitCap} { get { return _${subQueryPropertyName}Map; }}\r
- public override String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
- if (_${subQueryPropertyName}Map == null) { _${subQueryPropertyName}Map = new LinkedHashMap<${subQueryKeepMapGeneric}>(); }\r
- String key = "subQueryMapKey" + (_${subQueryPropertyName}Map.size() + 1);\r
- _${subQueryPropertyName}Map.put(key, subQuery); return "${subQueryPropertyNameInitCap}." + key;\r
- }\r
-#end\r
-#end\r
-#if (${col.hasSingleKeyReferrer()})\r
-#foreach ($referrer in $col.singleKeyReferrers)\r
-#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#set ($subQueryKeepMapGeneric = "String, ${relatedCQClassName}")\r
-#if (${referrer.isOneToOne()})\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_NotExistsSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotExistsSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#else\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_NotExistsSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotExistsSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#end\r
-\r
- protected Map<${subQueryKeepMapGeneric}> _${subQueryPropertyName}Map;\r
- public Map<${subQueryKeepMapGeneric}> ${subQueryPropertyNameInitCap} { get { return _${subQueryPropertyName}Map; }}\r
- public override String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
- if (_${subQueryPropertyName}Map == null) { _${subQueryPropertyName}Map = new LinkedHashMap<${subQueryKeepMapGeneric}>(); }\r
- String key = "subQueryMapKey" + (_${subQueryPropertyName}Map.size() + 1);\r
- _${subQueryPropertyName}Map.put(key, subQuery); return "${subQueryPropertyNameInitCap}." + key;\r
- }\r
-#end\r
-#end\r
-#if (${col.hasSingleKeyReferrer()})\r
-#foreach ($referrer in $col.singleKeyReferrers)\r
-#if (!${referrer.isOneToOne()})\r
-#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_DeriveSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_DeriveSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryKeepMapGeneric = "String, ${relatedCQClassName}")\r
-\r
- protected Map<${subQueryKeepMapGeneric}> _${subQueryPropertyName}Map;\r
- public Map<${subQueryKeepMapGeneric}> ${subQueryPropertyNameInitCap} { get { return _${subQueryPropertyName}Map; }}\r
- public override String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
- if (_${subQueryPropertyName}Map == null) { _${subQueryPropertyName}Map = new LinkedHashMap<${subQueryKeepMapGeneric}>(); }\r
- String key = "subQueryMapKey" + (_${subQueryPropertyName}Map.size() + 1);\r
- _${subQueryPropertyName}Map.put(key, subQuery); return "${subQueryPropertyNameInitCap}." + key;\r
- }\r
-#end\r
-#end\r
-#end\r
-#end\r
-#if (${col.isJavaNativeNumberObject()})\r
-#if (${col.isSingleKeyForeignKey()})\r
-#set ($relatedCBClassName = "${col.foreignKey.foreignTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${col.foreignKey.foreignTableExtendedConditionQueryClassName}")\r
-#set ($subQueryKeepMapGeneric = "String, ${relatedCQClassName}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_InScopeSubQuery_${col.foreignKey.foreignPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_InScopeSubQuery_${col.foreignKey.foreignPropertyNameInitCap}")\r
-\r
- protected Map<${subQueryKeepMapGeneric}> _${subQueryPropertyName}Map;\r
- public Map<${subQueryKeepMapGeneric}> ${subQueryPropertyNameInitCap} { get { return _${subQueryPropertyName}Map; }}\r
- public override String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
- if (_${subQueryPropertyName}Map == null) { _${subQueryPropertyName}Map = new LinkedHashMap<${subQueryKeepMapGeneric}>(); }\r
- String key = "subQueryMapKey" + (_${subQueryPropertyName}Map.size() + 1);\r
- _${subQueryPropertyName}Map.put(key, subQuery); return "${subQueryPropertyNameInitCap}." + key;\r
- }\r
-#end\r
-#if (${col.hasSingleKeyReferrer()})\r
-#foreach ($referrer in $col.singleKeyReferrers)\r
-#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#set ($subQueryKeepMapGeneric = "String, ${relatedCQClassName}")\r
-#if (${referrer.isOneToOne()})\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_InScopeSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_InScopeSubQuery_${referrer.ReferrerPropertyNameInitCapAsOne}")\r
-#else\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_InScopeSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_InScopeSubQuery_${referrer.ReferrerPropertyNameInitCap}")\r
-#end\r
-\r
- protected Map<${subQueryKeepMapGeneric}> _${subQueryPropertyName}Map;\r
- public Map<${subQueryKeepMapGeneric}> ${subQueryPropertyNameInitCap} { get { return _${subQueryPropertyName}Map; }}\r
- public override String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
- if (_${subQueryPropertyName}Map == null) { _${subQueryPropertyName}Map = new LinkedHashMap<${subQueryKeepMapGeneric}>(); }\r
- String key = "subQueryMapKey" + (_${subQueryPropertyName}Map.size() + 1);\r
- _${subQueryPropertyName}Map.put(key, subQuery); return "${subQueryPropertyNameInitCap}." + key;\r
- }\r
-#end\r
-#end\r
-#if (${col.hasSingleKeyReferrer()})\r
-#foreach ($referrer in $col.singleKeyReferrers)\r
-#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#set ($subQueryKeepMapGeneric = "String, ${relatedCQClassName}")\r
-#if (${referrer.isOneToOne()})\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_NotInScopeSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotInScopeSubQuery_${referrer.ReferrerPropertyNameInitCapAsOne}")\r
-#else\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_NotInScopeSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotInScopeSubQuery_${referrer.ReferrerPropertyNameInitCap}")\r
-#end\r
-\r
- protected Map<${subQueryKeepMapGeneric}> _${subQueryPropertyName}Map;\r
- public Map<${subQueryKeepMapGeneric}> ${subQueryPropertyNameInitCap} { get { return _${subQueryPropertyName}Map; }}\r
- public override String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
- if (_${subQueryPropertyName}Map == null) { _${subQueryPropertyName}Map = new LinkedHashMap<${subQueryKeepMapGeneric}>(); }\r
- String key = "subQueryMapKey" + (_${subQueryPropertyName}Map.size() + 1);\r
- _${subQueryPropertyName}Map.put(key, subQuery); return "${subQueryPropertyNameInitCap}." + key;\r
- }\r
-#end\r
-#end\r
-#if (${col.hasSingleKeyReferrer()})\r
-#foreach ($referrer in $col.singleKeyReferrers)\r
-#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#set ($subQueryKeepMapGeneric = "String, ${relatedCQClassName}")\r
-#if (${referrer.isOneToOne()})\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_ExistsSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_ExistsSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#else\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_ExistsSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_ExistsSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#end\r
-\r
- protected Map<${subQueryKeepMapGeneric}> _${subQueryPropertyName}Map;\r
- public Map<${subQueryKeepMapGeneric}> ${subQueryPropertyNameInitCap} { get { return _${subQueryPropertyName}Map; }}\r
- public override String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
- if (_${subQueryPropertyName}Map == null) { _${subQueryPropertyName}Map = new LinkedHashMap<${subQueryKeepMapGeneric}>(); }\r
- String key = "subQueryMapKey" + (_${subQueryPropertyName}Map.size() + 1);\r
- _${subQueryPropertyName}Map.put(key, subQuery); return "${subQueryPropertyNameInitCap}." + key;\r
- }\r
-#end\r
-#end\r
-#if (${col.hasSingleKeyReferrer()})\r
-#foreach ($referrer in $col.singleKeyReferrers)\r
-#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#set ($subQueryKeepMapGeneric = "String, ${relatedCQClassName}")\r
-#if (${referrer.isOneToOne()})\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_NotExistsSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotExistsSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
-#else\r
-#set ($relationPropertyNameInitCap = "${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_NotExistsSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotExistsSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#end\r
-\r
- protected Map<${subQueryKeepMapGeneric}> _${subQueryPropertyName}Map;\r
- public Map<${subQueryKeepMapGeneric}> ${subQueryPropertyNameInitCap} { get { return _${subQueryPropertyName}Map; }}\r
- public override String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
- if (_${subQueryPropertyName}Map == null) { _${subQueryPropertyName}Map = new LinkedHashMap<${subQueryKeepMapGeneric}>(); }\r
- String key = "subQueryMapKey" + (_${subQueryPropertyName}Map.size() + 1);\r
- _${subQueryPropertyName}Map.put(key, subQuery); return "${subQueryPropertyNameInitCap}." + key;\r
- }\r
-#end\r
-#end\r
-#if (${col.hasSingleKeyReferrer()})\r
-#foreach ($referrer in $col.singleKeyReferrers)\r
-#if (!${referrer.isOneToOne()})\r
-#set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
-#set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
-#set ($subQueryPropertyNameInitCap = "${tmpJavaName}_DeriveSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_DeriveSubQuery_${referrer.referrerPropertyNameInitCap}")\r
-#set ($subQueryKeepMapGeneric = "String, ${relatedCQClassName}")\r
-\r
- protected Map<${subQueryKeepMapGeneric}> _${subQueryPropertyName}Map;\r
- public Map<${subQueryKeepMapGeneric}> ${subQueryPropertyNameInitCap} { get { return _${subQueryPropertyName}Map; }}\r
- public override String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
- if (_${subQueryPropertyName}Map == null) { _${subQueryPropertyName}Map = new LinkedHashMap<${subQueryKeepMapGeneric}>(); }\r
- String key = "subQueryMapKey" + (_${subQueryPropertyName}Map.size() + 1);\r
- _${subQueryPropertyName}Map.put(key, subQuery); return "${subQueryPropertyNameInitCap}." + key;\r
- }\r
-#end\r
-#end\r
-#end\r
-#end\r
-\r
- public ${myClassName} AddOrderBy_${tmpJavaName}_Asc() { regOBA("${col.name}");return this; }\r
- public ${myClassName} AddOrderBy_${tmpJavaName}_Desc() { regOBD("${col.name}");return this; }\r
-#end\r
-\r
- // ===============================================================================\r
- // Specified Derived OrderBy\r
- // =========================\r
- public ${myClassName} AddSpecifiedDerivedOrderBy_Asc(String aliasName) { registerSpecifiedDerivedOrderBy_Asc(aliasName); return this; }\r
- public ${myClassName} AddSpecifiedDerivedOrderBy_Desc(String aliasName) { registerSpecifiedDerivedOrderBy_Desc(aliasName); return this; }\r
-\r
- // ===============================================================================\r
- // Union Query\r
- // ===========\r
- public override void reflectRelationOnUnionQuery(${glConditionQueryInterfaceName} baseQueryAsSuper, ${glConditionQueryInterfaceName} unionQueryAsSuper) {\r
-#if ($table.hasForeignKeyOrRefererAsOne())\r
- ${myConditionQueryClassName} baseQuery = (${myConditionQueryClassName})baseQueryAsSuper;\r
- ${myConditionQueryClassName} unionQuery = (${myConditionQueryClassName})unionQueryAsSuper;\r
-#end\r
-#foreach ($foreignKeys in $table.foreignKeys)\r
- if (baseQuery.hasConditionQuery${foreignKeys.foreignPropertyNameInitCap}()) {\r
- unionQuery.Query${foreignKeys.foreignPropertyNameInitCap}().reflectRelationOnUnionQuery(baseQuery.Query${foreignKeys.foreignPropertyNameInitCap}(), unionQuery.Query${foreignKeys.foreignPropertyNameInitCap}());\r
- }\r
-#end\r
-#foreach ($referrer in $table.referrers)\r
-#if (${referrer.isOneToOne()})\r
- if (baseQuery.hasConditionQuery${referrer.referrerPropertyNameInitCapAsOne}()) {\r
- unionQuery.Query${referrer.referrerPropertyNameInitCapAsOne}().reflectRelationOnUnionQuery(baseQuery.Query${referrer.referrerPropertyNameInitCapAsOne}(), unionQuery.Query${referrer.referrerPropertyNameInitCapAsOne}());\r
- }\r
-#end\r
-#end\r
-\r
- }\r
-\r
- \r
- // ===============================================================================\r
- // Foreign Query\r
- // =============\r
-#foreach ($foreignKeys in $table.foreignKeys)\r
-#set ($foreignCQClassName = "${glProjectPrefix}${foreignKeys.foreignTable.JavaName}${glConditionQueryInitialName}")\r
- \r
- // /* * * * * * * * * * * * * * * * * * * * * * *\r
- // ForeignTable = [${foreignKeys.foreignTable.Name}]\r
- // ForeignProperty = [${foreignKeys.foreignPropertyNameInitCap}]\r
- // * * * * * * * * */\r
-\r
- protected ${foreignCQClassName} _conditionQuery${foreignKeys.ForeignPropertyNameInitCap};\r
- public ${foreignCQClassName} ConditionQuery${foreignKeys.ForeignPropertyNameInitCap} {\r
- get {\r
- if (_conditionQuery${foreignKeys.foreignPropertyNameInitCap} == null) {\r
- _conditionQuery${foreignKeys.foreignPropertyNameInitCap} = createQuery${foreignKeys.ForeignPropertyNameInitCap}();\r
- SetupOuterJoin_${foreignKeys.foreignPropertyNameInitCap}();\r
- }\r
- return _conditionQuery${foreignKeys.ForeignPropertyNameInitCap};\r
- }\r
- }\r
- public ${foreignCQClassName} Query${foreignKeys.ForeignPropertyNameInitCap}() { return this.ConditionQuery${foreignKeys.ForeignPropertyNameInitCap}; }\r
- public void SetupOuterJoin_${foreignKeys.ForeignPropertyNameInitCap}() {\r
- Map<String, String> joinOnMap = new LinkedHashMap<String, String>();\r
-#foreach ($columnName in $foreignKeys.LocalColumns)\r
-#set ($localColumn = $table.getColumn($columnName))\r
-#set ($foreignColumnName = $foreignKeys.getLocalForeignMapping().get($columnName))\r
- joinOnMap.put(getRealColumnName("${localColumn.name}"), ConditionQuery${foreignKeys.foreignPropertyNameInitCap}.getRealColumnName("${foreignColumnName}"));\r
-#end\r
-#if ($foreignKeys.hasFixedCondition())\r
- joinOnMap.put("$$fixedCondition$$", prepareFixedCondition("${foreignKeys.fixedCondition}", getRealAliasName(), ConditionQuery${foreignKeys.foreignPropertyNameInitCap}.getRealAliasName()));\r
-#end\r
- getSqlClause().registerOuterJoin(ConditionQuery${foreignKeys.foreignPropertyNameInitCap}.getTableSqlName(), ConditionQuery${foreignKeys.foreignPropertyNameInitCap}.getRealAliasName(), joinOnMap);\r
- }\r
- protected ${foreignCQClassName} createQuery${foreignKeys.ForeignPropertyNameInitCap}() {\r
- String nextRelationPath = resolveNextRelationPath${foreignKeys.foreignPropertyNameInitCap}();\r
- String resolvedAliasName = resolveJoinAliasName(nextRelationPath, getNextNestLevel());\r
- ${foreignCQClassName} cq = new ${foreignCQClassName}(this, getSqlClause(), resolvedAliasName, getNextNestLevel());\r
- cq.xsetForeignPropertyName("${foreignKeys.foreignPropertyName}");\r
- cq.xsetRelationPath(nextRelationPath);\r
- return cq;\r
- }\r
- protected String resolveNextRelationPath${foreignKeys.foreignPropertyNameInitCap}() {\r
- return resolveNextRelationPath("${table.name}", "${foreignKeys.foreignPropertyName}");\r
- }\r
- public bool hasConditionQuery${foreignKeys.ForeignPropertyNameInitCap}() {\r
- return _conditionQuery${foreignKeys.ForeignPropertyNameInitCap} != null;\r
- }\r
- #end\r
-\r
- #foreach ($referrer in $table.Referrers)\r
- #set ($relatedCQClassName = "${glProjectPrefix}${referrer.table.javaName}${glConditionQueryInitialName}")\r
- #if (${referrer.isOneToOne()})\r
-\r
- // /* * * * * * * * * * * * * * * * * * * * * * * {as one}\r
- // ReferrerTable = [${referrer.table.name}]\r
- // ReferrerProperty = [${referrer.referrerPropertyNameInitCapAsOne}]\r
- // * * * * * * * * */\r
-\r
- protected ${relatedCQClassName} _conditionQuery${referrer.ReffererPropertyNameInitCapAsOne};\r
- public ${relatedCQClassName} ConditionQuery${referrer.ReffererPropertyNameInitCapAsOne} {\r
- get {\r
- if (_conditionQuery${referrer.ReffererPropertyNameInitCapAsOne} == null) {\r
- _conditionQuery${referrer.ReffererPropertyNameInitCapAsOne} = createQuery${referrer.ReffererPropertyNameInitCapAsOne}();\r
- SetupOuterJoin_${referrer.ReffererPropertyNameInitCapAsOne}();\r
- }\r
- return _conditionQuery${referrer.ReffererPropertyNameInitCapAsOne};\r
- }\r
- }\r
- public ${relatedCQClassName} Query${referrer.referrerPropertyNameInitCapAsOne}() { return this.ConditionQuery${referrer.ReffererPropertyNameInitCapAsOne}; }\r
- public void SetupOuterJoin_${referrer.ReffererPropertyNameInitCapAsOne}() {\r
- Map<String, String> joinOnMap = new LinkedHashMap<String, String>();\r
-#foreach ($columnName in $referrer.foreignColumns)\r
-#set ($foreignColumn = $table.getColumn($columnName))\r
-#set ($refererColumnName = $referrer.getForeignLocalMapping().get($columnName))\r
- joinOnMap.put(getRealColumnName("${foreignColumn.name}"), ConditionQuery${referrer.referrerPropertyNameInitCapAsOne}.getRealColumnName("${refererColumnName}"));\r
-#end\r
-#if ($referrer.hasFixedCondition())\r
- joinOnMap.put("$$fixedCondition$$", prepareFixedCondition("${referrer.fixedCondition}", getRealAliasName(), ConditionQuery${referrer.referrerPropertyNameInitCapAsOne}.getRealAliasName()));\r
-#end\r
- getSqlClause().registerOuterJoin(ConditionQuery${referrer.referrerPropertyNameInitCapAsOne}.getTableSqlName(), ConditionQuery${referrer.referrerPropertyNameInitCapAsOne}.getRealAliasName(), joinOnMap);\r
- }\r
- protected ${relatedCQClassName} createQuery${referrer.ReffererPropertyNameInitCapAsOne}() {\r
- String nextRelationPath = resolveNextRelationPath${referrer.ReffererPropertyNameInitCapAsOne}();\r
- String resolvedAliasName = resolveJoinAliasName(nextRelationPath, getNextNestLevel());\r
- ${relatedCQClassName} cq = new ${relatedCQClassName}(this, getSqlClause(), resolvedAliasName, getNextNestLevel());\r
- cq.xsetForeignPropertyName("${referrer.referrerPropertyNameAsOne}");\r
- cq.xsetRelationPath(nextRelationPath);\r
- return cq;\r
- }\r
- protected String resolveNextRelationPath${referrer.ReffererPropertyNameInitCapAsOne}() {\r
- return resolveNextRelationPath("${table.name}", "${referrer.referrerPropertyNameAsOne}");\r
- }\r
- public bool hasConditionQuery${referrer.ReffererPropertyNameInitCapAsOne}() {\r
- return _conditionQuery${referrer.ReffererPropertyNameInitCapAsOne} != null;\r
- }\r
-#end\r
-#end\r
-\r
- }\r
-}\r
+++ /dev/null
-#set ($myClassName = "${myConditionBeanClassName}")\r
-\r
-using System;\r
-using System.Collections;\r
-\r
-namespace ${glPackageCB} {\r
-\r
- [System.Serializable]\r
- public class ${myClassName} : ${glPackageBaseCB}.${myBaseConditionBeanClassName} {\r
- }\r
-}\r
+++ /dev/null
-#set ($myClassName = "${myConditionQueryClassName}")\r
-\r
-using System;\r
-using System.Collections;\r
-\r
-using ${glPackageBaseCommon};\r
-using ${glPackageBaseCommonCBean};\r
-using ${glPackageBaseCommonSqlClause};\r
-using ${glPackageBaseCQ};\r
-\r
-namespace ${glPackageCQ} {\r
-\r
- [System.Serializable]\r
- public class ${myClassName} : ${myBaseConditionQueryClassName} {\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- /// <summary>\r
- /// Constructor.\r
- /// </summary>\r
- /// <param name="childQuery">Child query as interface. (Nullable: If null, this is base instance.)</param>\r
- /// <param name="sqlClause">SQL clause instance. (NotNull)</param>\r
- /// <param name="aliasName">My alias name. (NotNull)</param>\r
- /// <param name="nestLevel">Nest level.</param>\r
- public ${myClassName}(${glConditionQueryInterfaceName} childQuery, ${glSqlClauseName} sqlClause, String aliasName, int nestLevel)\r
- : base(childQuery, sqlClause, aliasName, nestLevel) {}\r
-\r
- // ===============================================================================\r
- // Your Orignal\r
- // ============\r
- }\r
-}\r
+++ /dev/null
-#set ($myClassName = "${myNestSelectSetupperClassName}")\r
-\r
-using System;\r
-using ${glPackageCQ};\r
-\r
-namespace ${glPackageNss} {\r
-\r
- public class ${myClassName} {\r
-\r
- // ===============================================================================\r
- // Attribute\r
- // =========\r
- protected ${myConditionQueryClassName} _query;\r
-\r
- // ===============================================================================\r
- // Constructor\r
- // ===========\r
- public ${myClassName}(${myConditionQueryClassName} query) {\r
- _query = query;\r
- }\r
-\r
- // ===============================================================================\r
- // Setup Select\r
- // ============\r
-#foreach ($foreignKeys in $table.foreignKeys)\r
-#set ($tmpPropertyName = "${foreignKeys.foreignPropertyNameInitCap}")\r
-#set ($tmpPropertyNameInitCap = "${foreignKeys.foreignPropertyNameInitCap}")\r
- public ${foreignKeys.foreignTableNestSelectSetupperClassName} With${tmpPropertyNameInitCap}() {\r
- AssertConditionQuery();\r
- String foreignTableAliasName = _query.Query${tmpPropertyNameInitCap}().getRealAliasName();\r
- String localRelationPath = _query.getRelationPath();\r
- _query.getSqlClause().registerSelectedSelectColumn(foreignTableAliasName, "${table.name}", "${tmpPropertyName}", localRelationPath);\r
- _query.getSqlClause().registerSelectedForeignInfo(_query.Query${tmpPropertyNameInitCap}().getRelationPath(), "${tmpPropertyName}");\r
- return new ${foreignKeys.foreignTableNestSelectSetupperClassName}(_query.Query${tmpPropertyNameInitCap}());\r
- }\r
-\r
-#end\r
-#foreach ($referrer in $table.referrers)\r
-#if (${referrer.isOneToOne()})\r
-#set ($tmpPropertyName = "${referrer.ReffererPropertyNameInitCapAsOne}")\r
-#set ($tmpPropertyNameInitCap = "${referrer.ReffererPropertyNameInitCapAsOne}")\r
- public ${referrer.referrerTableNestSelectSetupperClassName} With${tmpPropertyNameInitCap}() {\r
- AssertConditionQuery();\r
- String foreignTableAliasName = _query.Query${tmpPropertyNameInitCap}().getRealAliasName();\r
- String localRelationPath = _query.getRelationPath();\r
- _query.getSqlClause().registerSelectedSelectColumn(foreignTableAliasName, "${table.name}", "${tmpPropertyName}", localRelationPath);\r
- _query.getSqlClause().registerSelectedForeignInfo(_query.Query${tmpPropertyNameInitCap}().getRelationPath(), "${tmpPropertyName}");\r
- return new ${referrer.referrerTableNestSelectSetupperClassName}(_query.Query${tmpPropertyNameInitCap}());\r
- }\r
-\r
-#end\r
-#end\r
- // ===============================================================================\r
- // Helper\r
- // ======\r
- protected void AssertConditionQuery() {\r
- if (!this.HasConditionQuery) { String msg = "The query should not be null."; throw new SystemException(msg); }\r
- }\r
-\r
- // ===============================================================================\r
- // Accessor\r
- // ========\r
- public bool HasConditionQuery {\r
- get { return _query != null; }\r
- }\r
- }\r
-}\r
+++ /dev/null
-#set ($myClassName = "${myExtendedBhvInterfaceName}")\r
-\r
-using System;\r
-using System.Collections.Generic;\r
-\r
-namespace ${glPackageExtendedBhv} {\r
-\r
- partial class $myClassName {\r
- }\r
-}\r
+++ /dev/null
-#set ($myClassName = "${myExtendedParameterBeanClassName}")\r
-\r
-using System;\r
-\r
-namespace ${glPackageExtendedParameterBean} {\r
-\r
- partial class ${myClassName} {\r
- }\r
-}\r
+++ /dev/null
-#set ($myClassName = "${myExtendedDaoClassName}")\r
-\r
-using System;\r
-using System.Collections.Generic;\r
-\r
-namespace ${myExtendedDaoPackageName} {\r
-\r
- partial interface ${myClassName} {\r
- }\r
-}\r
+++ /dev/null
-#set ($myClassName = "${myExtendedTypeSafeCursorClassName}")\r
-\r
-using System;\r
-using System.Data;\r
-\r
-namespace ${myExtendedDaoCursorPackageName} {\r
-\r
- partial class ${myClassName} {\r
- }\r
-}\r
+++ /dev/null
-#set ($myClassName = "${myExtendedTypeSafeCursorHandlerClassName}")\r
-\r
-using System;\r
-using System.Data;\r
-\r
-namespace ${myExtendedDaoCursorPackageName} {\r
-\r
- partial class ${myClassName} {\r
- }\r
-}\r
+++ /dev/null
-#set ($myClassName = "${myExtendedObjectClassName}")\r
-\r
-using System;\r
-using System.Collections.Generic;\r
-\r
-namespace ${myExtendedEntityPackageName} {\r
-\r
- partial class $myClassName {\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommon};\r
-\r
-import java.util.Map;\r
-import java.util.HashMap;\r
-\r
-/**\r
- * Access-Context.\r
- * <p>\r
- * This access-context on the thread should be initialized at the beginning of access.\r
- * The access is various. Web-Access, Batch-Access, JUnit-Access and so on...\r
- * </p>\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glAccessContextName} {\r
-\r
- // ===================================================================================\r
- // Thread Local\r
- // ============\r
- /** The thread-local for this. */\r
- private static final ThreadLocal<${glAccessContextName}> threadLocal = new ThreadLocal<${glAccessContextName}>();\r
-\r
- /**\r
- * Get access-context on thread.\r
- * @return Access-context. (Nullable)\r
- */\r
- public static ${glAccessContextName} getAccessContextOnThread() {\r
- return (${glAccessContextName}) threadLocal.get();\r
- }\r
-\r
- /**\r
- * Set access-context on thread.\r
- * @param accessContext Access-context. (NotNull)\r
- */\r
- public static void setAccessContextOnThread(${glAccessContextName} accessContext) {\r
- if (accessContext == null) {\r
- String msg = "The argument[accessContext] must not be null.";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- threadLocal.set(accessContext);\r
- }\r
-\r
- /**\r
- * Is existing access-context on thread?\r
- * @return Determination.\r
- */\r
- public static boolean isExistAccessContextOnThread() {\r
- return (threadLocal.get() != null);\r
- }\r
-\r
- /**\r
- * Clear access-context on thread.\r
- */\r
- public static void clearAccessContextOnThread() {\r
- threadLocal.set(null);\r
- }\r
-\r
- // ===================================================================================\r
- // Access Information\r
- // ==================\r
- /**\r
- * Get access user on thread.\r
- * <p>\r
- * If it can't get access user from access-context, \r
- * returns 'Anonymous' as default value!\r
- * </p>\r
- * @return Access user. (NotNull)\r
- */\r
- public static String getAccessUserOnThread() {\r
- if (isExistAccessContextOnThread()) {\r
- final ${glAccessContextName} userContextOnThread = getAccessContextOnThread();\r
- final String accessUser = userContextOnThread.getAccessUser();\r
- if (accessUser != null) {\r
- return accessUser;\r
- }\r
- }\r
- return "Anonymous";// as Default\r
- }\r
-\r
- /**\r
- * Get access process on thread.\r
- * <p>\r
- * If it can't get access process from access-context, \r
- * returns 'Anonymous' as default value!\r
- * </p>\r
- * @return Access process. (NotNull)\r
- */\r
- public static String getAccessProcessOnThread() {\r
- if (isExistAccessContextOnThread()) {\r
- final ${glAccessContextName} userContextOnThread = getAccessContextOnThread();\r
- final String accessProcess = userContextOnThread.getAccessProcess();\r
- if (accessProcess != null) {\r
- return accessProcess;\r
- }\r
- }\r
- return "Anonymous";// as Default\r
- }\r
-\r
- /**\r
- * Get access module on thread.\r
- * <p>\r
- * If it can't get access module from access-context, \r
- * returns 'Anonymous' as default value!\r
- * </p>\r
- * @return Access module. (NotNull)\r
- */\r
- public static String getAccessModuleOnThread() {\r
- if (isExistAccessContextOnThread()) {\r
- final ${glAccessContextName} userContextOnThread = getAccessContextOnThread();\r
- final String accessModule = userContextOnThread.getAccessModule();\r
- if (accessModule != null) {\r
- return accessModule;\r
- }\r
- }\r
- return "Anonymous";// as Default\r
- }\r
-\r
- /**\r
- * Get access date on thread.\r
- * <p>\r
- * If it can't get access date from access-context, \r
- * returns application current time as default value!\r
- * </p>\r
- * @return Access date. (NotNull)\r
- */\r
- public static java.util.Date getAccessDateOnThread() {\r
- if (isExistAccessContextOnThread()) {\r
- final ${glAccessContextName} userContextOnThread = getAccessContextOnThread();\r
- final java.util.Date accessDate = userContextOnThread.getAccessDate();\r
- if (accessDate != null) {\r
- return accessDate;\r
- }\r
- if (userContextOnThread.getAccessDateProvider() != null) {\r
- return userContextOnThread.getAccessDateProvider().getAccessDate();\r
- }\r
- }\r
- return new java.util.Date();// as Default\r
- }\r
-\r
- /**\r
- * Get access timestamp on thread.\r
- * <p>\r
- * If it can't get access timestamp from access-context, \r
- * returns application current time as default value!\r
- * </p>\r
- * @return Access timestamp. (NotNull)\r
- */\r
- public static java.sql.Timestamp getAccessTimestampOnThread() {\r
- if (isExistAccessContextOnThread()) {\r
- final ${glAccessContextName} userContextOnThread = getAccessContextOnThread();\r
- final java.sql.Timestamp accessTimestamp = userContextOnThread.getAccessTimestamp();\r
- if (accessTimestamp != null) {\r
- return accessTimestamp;\r
- }\r
- if (userContextOnThread.getAccessTimestampProvider() != null) {\r
- return userContextOnThread.getAccessTimestampProvider().getAccessTimestamp();\r
- }\r
- }\r
- return new java.sql.Timestamp(System.currentTimeMillis());// as Default\r
- }\r
-\r
- /**\r
- * Get access value on thread.\r
- * <p>\r
- * If it can't get access value from access-context, \r
- * returns null as default value!\r
- * </p>\r
- * @param key Key. (NotNull)\r
- * @return Access value. (Nullable)\r
- */\r
- public static Object getAccessValueOnThread(String key) {\r
- if (isExistAccessContextOnThread()) {\r
- final ${glAccessContextName} userContextOnThread = getAccessContextOnThread();\r
- final Map<String, Object> accessValueMap = userContextOnThread.getAccessValueMap();\r
- if (accessValueMap != null) {\r
- return accessValueMap.get(key);\r
- }\r
- }\r
- return null;// as Default\r
- }\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected String accessUser;\r
- protected String accessProcess;\r
- protected String accessModule;\r
- protected java.util.Date accessDate;\r
- protected AccessDateProvider accessDateProvider;\r
- protected java.sql.Timestamp accessTimestamp;\r
- protected AccessTimestampProvider accessTimestampProvider;\r
- protected Map<String, Object> accessValueMap;\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public String getAccessUser() {\r
- return accessUser;\r
- }\r
-\r
- public void setAccessUser(String accessUser) {\r
- this.accessUser = accessUser;\r
- }\r
-\r
- public String getAccessProcess() {\r
- return accessProcess;\r
- }\r
-\r
- public void setAccessProcess(String accessProcess) {\r
- this.accessProcess = accessProcess;\r
- }\r
-\r
- public String getAccessModule() {\r
- return accessModule;\r
- }\r
-\r
- public void setAccessModule(String accessModule) {\r
- this.accessModule = accessModule;\r
- }\r
-\r
- public java.util.Date getAccessDate() {\r
- return accessDate;\r
- }\r
-\r
- public void setAccessDate(java.util.Date accessDate) {\r
- this.accessDate = accessDate;\r
- }\r
-\r
- public AccessDateProvider getAccessDateProvider() {\r
- return accessDateProvider;\r
- }\r
-\r
- public void setAccessDateProvider(AccessDateProvider accessDateProvider) {\r
- this.accessDateProvider = accessDateProvider;\r
- }\r
-\r
- public java.sql.Timestamp getAccessTimestamp() {\r
- return accessTimestamp;\r
- }\r
-\r
- public void setAccessTimestamp(java.sql.Timestamp accessTimestamp) {\r
- this.accessTimestamp = accessTimestamp;\r
- }\r
-\r
- public AccessTimestampProvider getAccessTimestampProvider() {\r
- return accessTimestampProvider;\r
- }\r
-\r
- public void setAccessTimestampProvider(AccessTimestampProvider accessTimestampProvider) {\r
- this.accessTimestampProvider = accessTimestampProvider;\r
- }\r
-\r
- public Map<String, Object> getAccessValueMap() {\r
- return accessValueMap;\r
- }\r
-\r
- public void registerAccessValue(String key, Object value) {\r
- if (accessValueMap == null) {\r
- accessValueMap = new HashMap<String, Object>();\r
- }\r
- accessValueMap.put(key, value);\r
- }\r
-\r
- // ===================================================================================\r
- // Provider Interface\r
- // ==================\r
- /**\r
- * The provider interface of access date.\r
- */\r
- public static interface AccessDateProvider {\r
-\r
- /**\r
- * Get access date.\r
- * @return Access date. (NotNull)\r
- */\r
- public java.util.Date getAccessDate();\r
- }\r
-\r
- /**\r
- * The provider interface of access date.\r
- */\r
- public static interface AccessTimestampProvider {\r
-\r
- /**\r
- * Get access timestamp.\r
- * @return Access timestamp. (NotNull)\r
- */\r
- public java.sql.Timestamp getAccessTimestamp();\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommon};\r
-\r
-import ${glPackageBaseCommonBhv}.${glBehaviorReadableInterfaceName};\r
-\r
-/**\r
- * The entry of DBFlute.\r
- * @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public class ${glBFinderName} {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- protected static String _dbfluteDiconName = "${database.DBFluteDiconFileName}";\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- private ${glBFinderName}() {\r
- }\r
-\r
- // ===================================================================================\r
- // Finder\r
- // ======\r
- public static <BEHAVIOR_TYPE extends ${glBehaviorReadableInterfaceName}> BEHAVIOR_TYPE find(Class<BEHAVIOR_TYPE> behaviorType) {\r
- assertObjectNotNull("behaviorType", behaviorType);\r
- if (!org.seasar.framework.container.factory.SingletonS2ContainerFactory.hasContainer()) {\r
- synchronized (${glBFinderName}.class) {\r
- if (!org.seasar.framework.container.factory.SingletonS2ContainerFactory.hasContainer()) {\r
- final String configFile = _dbfluteDiconName;\r
- if (org.seasar.framework.util.ResourceUtil.isExist(configFile)) {\r
- org.seasar.framework.container.factory.SingletonS2ContainerFactory.setConfigPath(configFile);\r
- org.seasar.framework.container.factory.SingletonS2ContainerFactory.init();\r
- } else {\r
- String msg = "S2Container is not initialized! Confirm your initializer and your dicon files.";\r
- throw new IllegalStateException(msg);\r
- }\r
- }\r
- }\r
- }\r
- final org.seasar.framework.container.S2Container container = org.seasar.framework.container.factory.SingletonS2ContainerFactory.getContainer();\r
- final BEHAVIOR_TYPE behavior = (BEHAVIOR_TYPE)container.getComponent(behaviorType);\r
- return behavior;\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public static void setDBFluteDiconName(String dbfluteDiconName) {\r
- _dbfluteDiconName = dbfluteDiconName;\r
- }\r
- \r
- // ===================================================================================\r
- // General Helper\r
- // ==============\r
- /**\r
- * Assert that the object is not null.\r
- * @param variableName Variable name. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @exception IllegalArgumentException\r
- */\r
- protected static void assertObjectNotNull(String variableName, Object value) {\r
- if (variableName == null) {\r
- String msg = "The value should not be null: variableName=" + variableName + " value=" + value;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (value == null) {\r
- String msg = "The value should not be null: variableName=" + variableName;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-\r
- // ----------------------------------------------------------------\r
- // Assert String\r
- // -------------\r
- /**\r
- * Assert that the entity is not null and not trimmed empty.\r
- * @param variableName Variable name. (NotNull)\r
- * @param value Value. (NotNull)\r
- */\r
- protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, String value) {\r
- assertObjectNotNull("variableName", variableName);\r
- assertObjectNotNull("value", value);\r
- if (value.trim().length() ==0) {\r
- String msg = "The value should not be empty: variableName=" + variableName + " value=" + value;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommon};\r
-\r
-import ${glPackageBaseCommonBhv}.${glBehaviorReadableInterfaceName};\r
-\r
-/**\r
- * The interface of behavior-selector.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glBehaviorSelectorInterfaceName} {\r
-\r
- /**\r
- * Initialize condition-bean meta data. <br />\r
- * If you call this, Hot Deploy of OutsideSql becomes Cool!\r
- */\r
- public void initializeConditionBeanMetaData();\r
- \r
- /**\r
- * Select behavior.\r
- * @param <BEHAVIOR> The type of behavior.\r
- * @param behaviorType Behavior type. (NotNull)\r
- * @return Behavior. (NotNull)\r
- */\r
- public <BEHAVIOR extends ${glBehaviorReadableInterfaceName}> BEHAVIOR select(Class<BEHAVIOR> behaviorType);\r
-\r
- /**\r
- * Select behavior-readable.\r
- * @param tableFlexibleName Table flexible-name. (NotNull)\r
- * @return Behavior-readable. (NotNull)\r
- */\r
- public ${glBehaviorReadableInterfaceName} byName(String tableFlexibleName);\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommon};\r
-\r
-#if ($database.isTargetContainerSeasar())\r
-import org.seasar.framework.container.S2Container;\r
-import org.seasar.framework.container.ComponentNotFoundRuntimeException;\r
-#end\r
-#if ($database.isTargetContainerSpring())\r
-import org.springframework.context.ApplicationContext;\r
-#end\r
-\r
-/**\r
- * The abstract class of cache-selector.\r
- * @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public abstract class ${glCacheAbstractSelector} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
-#if ($database.isTargetContainerSeasar())\r
- /** The container of Seasar. */\r
- protected S2Container _container;\r
-#end\r
-#if ($database.isTargetContainerSpring())\r
- /** The container of Spring. */\r
- protected ApplicationContext _container;\r
-#end\r
-\r
- // ===================================================================================\r
- // Component\r
- // =========\r
- public <COMPONENT> COMPONENT getComponent(Class<COMPONENT> componentType) {\r
- assertObjectNotNull("componentType", componentType);\r
- assertObjectNotNull("_container", _container);\r
-#if ($database.isTargetContainerSeasar())\r
- try {\r
- return (COMPONENT)_container.getComponent(componentType);\r
- } catch (ComponentNotFoundRuntimeException e) { // Normally it doesn't come.\r
- final COMPONENT component;\r
- try {\r
- // for HotDeploy Mode\r
- component = (COMPONENT)_container.getRoot().getComponent(componentType);\r
- } catch (ComponentNotFoundRuntimeException ignored) {\r
- throw e;\r
- }\r
- _container = _container.getRoot(); // Change container.\r
- return component;\r
- }\r
-#end\r
-#if ($database.isTargetContainerSpring())\r
- return (COMPONENT)_container.getBean(initUncap(componentType.getSimpleName()));\r
-#end\r
- }\r
- \r
- // ===================================================================================\r
- // Destroy\r
- // =======\r
- public void destroy() {\r
- _container = null;\r
- }\r
-\r
- // ===================================================================================\r
- // Helper\r
- // ======\r
- protected String initUncap(String str) {\r
- return str.substring(0, 1).toLowerCase() + str.substring(1);\r
- }\r
- \r
- // ===================================================================================\r
- // Assert\r
- // ======\r
- // -----------------------------------------------------\r
- // Assert Object\r
- // -------------\r
- /**\r
- * Assert that the object is not null.\r
- * @param variableName Variable name. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @exception IllegalArgumentException\r
- */\r
- protected void assertObjectNotNull(String variableName, Object value) {\r
- if (variableName == null) {\r
- String msg = "The value should not be null: variableName=" + variableName + " value=" + value;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (value == null) {\r
- String msg = "The value should not be null: variableName=" + variableName;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Assert String\r
- // -------------\r
- /**\r
- * Assert that the entity is not null and not trimmed empty.\r
- * @param variableName Variable name. (NotNull)\r
- * @param value Value. (NotNull)\r
- */\r
- protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, String value) {\r
- assertObjectNotNull("variableName", variableName);\r
- assertObjectNotNull("value", value);\r
- if (value.trim().length() ==0) {\r
- String msg = "The value should not be empty: variableName=" + variableName + " value=" + value;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
-#if ($database.isTargetContainerSeasar())\r
- public void setContainer(S2Container container) {\r
- this._container = container;\r
- }\r
-#end\r
-#if ($database.isTargetContainerSpring())\r
- public void setContainer(ApplicationContext container) {\r
- this._container = container;\r
- }\r
-#end\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommon};\r
-\r
-import java.util.Collection;\r
-import java.util.Map;\r
-import java.util.LinkedHashMap;\r
-\r
-import ${glPackageBaseCommon}.${glDaoReadableInterfaceName};\r
-import ${glPackageBaseCommonBhv}.${glBehaviorReadableInterfaceName};\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInterfaceName};\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInstanceHandlerName};\r
-import ${glPackageBaseCommonUtil}.${glTraceViewUtilName};\r
-\r
-/**\r
- * The implementation of behavior-selector.\r
- * @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public class ${glCacheBehaviorSelectorName} extends ${glCacheAbstractSelector} implements ${glBehaviorSelectorInterfaceName} {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- /** Log-instance. */\r
- private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory.getLog(${glCacheBehaviorSelectorName}.class);\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- /** The cache of behavior. (It's the generic hell!) */\r
- protected Map<Class<? extends ${glBehaviorReadableInterfaceName}>, ${glBehaviorReadableInterfaceName}> _behaviorCache = new LinkedHashMap<Class<? extends ${glBehaviorReadableInterfaceName}>, ${glBehaviorReadableInterfaceName}>();\r
-\r
- // ===================================================================================\r
- // Initialize\r
- // ==========\r
- /**\r
- * Initialize condition-bean meta data. <br />\r
- * If you call this, Hot Deploy of OutsideSql becomes Cool!\r
- */\r
- public void initializeConditionBeanMetaData() {\r
- final Map<String, ${glDBMetaInterfaceName}> dbmetaMap = ${glDBMetaInstanceHandlerName}.getDBMetaMap();\r
- final Collection<${glDBMetaInterfaceName}> dbmetas = dbmetaMap.values();\r
- long before = 0;\r
- if (_log.isInfoEnabled()) {\r
- before = System.currentTimeMillis();\r
- _log.info("/= = = = = = = = = = = = = = = = = initializeConditionBeanMetaData()");\r
- }\r
- for (${glDBMetaInterfaceName} dbmeta : dbmetas) {\r
- final ${glBehaviorReadableInterfaceName} bhv = byName(dbmeta.getTableDbName());\r
- final ${glDaoReadableInterfaceName} dao = bhv.getDaoReadable();\r
- dao.initializeDaoMetaData("selectList");\r
- }\r
- if (_log.isInfoEnabled()) {\r
- long after = System.currentTimeMillis();\r
- _log.info("Initialized Count: " + dbmetas.size());\r
- _log.info("= = = = = = = = = =/ [" + ${glTraceViewUtilName}.convertToPerformanceView(after - before) + "]");\r
- }\r
- }\r
- \r
- // ===================================================================================\r
- // Selector\r
- // ========\r
- /**\r
- * Select behavior.\r
- * @param <BEHAVIOR> The type of behavior.\r
- * @param behaviorType Behavior type. (NotNull)\r
- * @return Behavior. (NotNull)\r
- */\r
- public <BEHAVIOR extends ${glBehaviorReadableInterfaceName}> BEHAVIOR select(Class<BEHAVIOR> behaviorType) {\r
- if (_behaviorCache.containsKey(behaviorType)) {\r
- return (BEHAVIOR)_behaviorCache.get(behaviorType);\r
- }\r
- synchronized (_behaviorCache) {\r
- if (_behaviorCache.containsKey(behaviorType)) {\r
- return (BEHAVIOR)_behaviorCache.get(behaviorType);\r
- }\r
- final BEHAVIOR bhv = (BEHAVIOR)getComponent(behaviorType);\r
- _behaviorCache.put(behaviorType, bhv);\r
- return bhv;\r
- }\r
- }\r
-\r
- /**\r
- * Select behavior-readable by name.\r
- * @param tableFlexibleName Table flexible-name. (NotNull)\r
- * @return Behavior-readable. (NotNull)\r
- */\r
- public ${glBehaviorReadableInterfaceName} byName(String tableFlexibleName) {\r
- assertStringNotNullAndNotTrimmedEmpty("tableFlexibleName", tableFlexibleName);\r
- final ${glDBMetaInterfaceName} dbmeta = ${glDBMetaInstanceHandlerName}.findDBMeta(tableFlexibleName);\r
- return select(getBehaviorType(dbmeta));\r
- }\r
-\r
- /**\r
- * Get behavior-type by dbmeta.\r
- * @param dbmeta Dbmeta. (NotNull)\r
- * @return Behavior-type. (NotNull)\r
- */\r
- protected Class<${glBehaviorReadableInterfaceName}> getBehaviorType(${glDBMetaInterfaceName} dbmeta) {\r
- final String behaviorTypeName = dbmeta.getBehaviorTypeName();\r
- if (behaviorTypeName == null) {\r
- String msg = "The dbmeta.getBehaviorTypeName() should not return null: dbmeta=" + dbmeta;\r
- throw new IllegalStateException(msg);\r
- }\r
- final Class<${glBehaviorReadableInterfaceName}> behaviorType;\r
- try {\r
- behaviorType = (Class<${glBehaviorReadableInterfaceName}>)Class.forName(behaviorTypeName);\r
- } catch (ClassNotFoundException e) {\r
- throw new RuntimeException("The class does not exist: " + behaviorTypeName, e);\r
- }\r
- return behaviorType;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommon};\r
-\r
-import ${glPackageBaseCommon}.${glDaoReadableInterfaceName};\r
-import ${glPackageBaseCommon}.${glDaoSelectorInterfaceName};\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInterfaceName};\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInstanceHandlerName};\r
-\r
-/**\r
- * The implementation of DAO-selector.\r
- * <pre>\r
- * Long long ago this object have cache of DAO and behavior.\r
- * But the cache cause wrong performance when this is initialized.\r
- * So now this object don't have cache.\r
- * </pre>\r
- * @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public class ${glCacheDaoSelectorName} extends ${glCacheAbstractSelector} implements ${glDaoSelectorInterfaceName} {\r
-\r
- // ===================================================================================\r
- // Selector\r
- // ========\r
- /**\r
- * Select DAO.\r
- * @param <DAO> The type of DAO.\r
- * @param daoType DAO type. (NotNull)\r
- * @return DAO. (NotNull)\r
- */\r
- public <DAO extends ${glDaoReadableInterfaceName}> DAO select(Class<DAO> daoType) {\r
- return (DAO)getComponent(daoType);\r
- }\r
-\r
- /**\r
- * Select DAO-readable by name.\r
- * @param tableFlexibleName Table flexible name. (NotNull)\r
- * @return DAO-readable. (NotNull)\r
- */\r
- public ${glDaoReadableInterfaceName} byName(String tableFlexibleName) {\r
- assertStringNotNullAndNotTrimmedEmpty("tableFlexibleName", tableFlexibleName);\r
- final ${glDBMetaInterfaceName} dbmeta = ${glDBMetaInstanceHandlerName}.findDBMeta(tableFlexibleName);\r
- return select(getDaoType(dbmeta));\r
- }\r
-\r
- protected Class<${glDaoReadableInterfaceName}> getDaoType(${glDBMetaInterfaceName} dbmeta) {\r
- final String daoTypeName = dbmeta.getDaoTypeName();\r
- if (daoTypeName == null) {\r
- String msg = "The dbmeta.getDaoTypeName() should not return null: dbmeta=" + dbmeta;\r
- throw new IllegalStateException(msg);\r
- }\r
- final Class<${glDaoReadableInterfaceName}> daoType;\r
- try {\r
- daoType = (Class<${glDaoReadableInterfaceName}>)Class.forName(daoTypeName);\r
- } catch (ClassNotFoundException e) {\r
- throw new RuntimeException("The class does not exist: " + daoTypeName, e);\r
- }\r
- return daoType;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommon};\r
-#set ($myClassName = "${glClassificationDefinition}")\r
-\r
-import java.util.Collections;\r
-import java.util.Map;\r
-import java.util.LinkedHashMap;\r
-#if ($database.isMakeClassificationValueLabelList())\r
-import java.util.List;\r
-import java.util.ArrayList;\r
-import java.util.Iterator;\r
-#end\r
-\r
-/**\r
- * The definition class that has classification.\r
- * @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public class ${myClassName} {\r
-\r
- // ===================================================================================\r
- // Classification Code\r
- // ===================\r
-#foreach ($classificationName in $database.classificationNameList)\r
- #set ($classificationMapList = $database.classificationDefinitionMap.get($classificationName))\r
- #set ($existTop = false)\r
- #if ($database.classificationTopDefinitionMap.containsKey($classificationName))\r
- #set ($classificationTopMap = $database.classificationTopDefinitionMap.get($classificationName))\r
- #set ($existTop = true)\r
- #else\r
- #set ($existTop = false)\r
- #end\r
-\r
- // /- - - - - - - - - - - - - - - - - - - - - - - - - -\r
- // [${classificationName}]\r
-#if ($existTop && $classificationTopMap.containsKey('topComment'))\r
- // $classificationTopMap.get('topComment')\r
-#end\r
- // - - - - - - - - - -/\r
-#if ($existTop && $classificationTopMap.containsKey('topCode'))\r
-\r
- /**\r
- * The classification TOP code of ${classificationName}. <br />\r
-#if ($classificationTopMap.containsKey('topComment'))\r
- * $classificationTopMap.get('topComment')\r
-#end\r
- */\r
- public static final String ${database.classificationTopCodeVariableNamePrefix}${classificationName} = "$classificationTopMap.get('topCode')";\r
-#end\r
-#foreach ($classificationMap in $classificationMapList)\r
-\r
- /**\r
- * The classification code of ${classificationMap.get('name')} on ${classificationName}. <br />\r
-#if ($classificationMap.containsKey('comment'))\r
- * ${classificationMap.get('comment')}\r
-#end\r
- */\r
- public static final String ${database.classificationCodeVariableNamePrefix}${classificationName}_${classificationMap.get('name')} = "$classificationMap.get('code')";\r
-#end\r
-#end\r
-\r
- // ===================================================================================\r
- // Classification CodeNameMap\r
- // ==========================\r
-#foreach ($classificationName in $database.ClassificationNameListValidNameOnly)\r
-#set ($classificationMapList = $database.ClassificationDefinitionMap.get($classificationName))\r
- /** The classification code-name map of ${classificationName}. */\r
- public static final Map<String, String> CODE_NAME_MAP_${classificationName};\r
- static {\r
- final Map<String, String> map = new LinkedHashMap<String, String>();\r
-#foreach ($classificationMap in $classificationMapList)\r
- map.put(${database.classificationCodeVariableNamePrefix}${classificationName}_${classificationMap.get('name')}, "${classificationMap.get('name')}");\r
-#end\r
- CODE_NAME_MAP_${classificationName} = Collections.unmodifiableMap(map);\r
- }\r
- public static String find${classificationName}Name(String code) { return findByCode(code, CODE_NAME_MAP_${classificationName}); }\r
-\r
-#end\r
-#foreach ($classificationName in $database.ClassificationNameListValidAliasOnly)\r
-#set ($classificationMapList = $database.ClassificationDefinitionMap.get($classificationName))\r
- /** The classification code-alias map of ${classificationName}. */\r
- public static final Map<String, String> CODE_ALIAS_MAP_${classificationName};\r
- static {\r
- final Map<String, String> map = new LinkedHashMap<String, String>();\r
-#foreach ($classificationMap in $classificationMapList)\r
- map.put(${database.classificationCodeVariableNamePrefix}${classificationName}_${classificationMap.get('name')}, "${classificationMap.get('alias')}");\r
-#end\r
- CODE_ALIAS_MAP_${classificationName} = Collections.unmodifiableMap(map);\r
- }\r
- public static String find${classificationName}Alias(String code) { return findByCode(code, CODE_ALIAS_MAP_${classificationName}); }\r
-\r
-#end\r
- protected static String findByCode(String code, Map<String, String> map) {\r
- for (String key : map.keySet()) {\r
- if (code.equalsIgnoreCase(key)) {\r
- return map.get(key);\r
- }\r
- }\r
- return null;\r
- }\r
-\r
-#if ($database.isMakeClassificationValueLabelList())\r
- // ===================================================================================\r
- // Classification ValueLabelList\r
- // =============================\r
-#foreach ($classificationName in $database.ClassificationNameListValidNameOnly)\r
- #set ($classificationMapList = $database.ClassificationDefinitionMap.get($classificationName))\r
-\r
- /** The classification code-name map of ${classificationName}. */\r
- public static final List<Map<String, String>> VALUE_LABEL_NAME_LIST_${classificationName};\r
- static {\r
- final List<Map<String, String>> list = new ArrayList<Map<String, String>>();\r
-#foreach ($classificationMap in $classificationMapList)\r
- setupValueLabelElement(list, ${database.classificationCodeVariableNamePrefix}${classificationName}_${classificationMap.get('name')}, "${classificationMap.get('name')}");\r
-#end\r
-\r
- VALUE_LABEL_NAME_LIST_${classificationName} = Collections.unmodifiableList(list);\r
- }\r
- public static List<Map<String, String>> createValueLabelNameList${classificationName}() {\r
- return setupValueLabelList(VALUE_LABEL_NAME_LIST_${classificationName});\r
- }\r
-#end\r
-#foreach ($classificationName in $database.ClassificationNameListValidAliasOnly)\r
- #set ($classificationMapList = $database.ClassificationDefinitionMap.get($classificationName))\r
-\r
- /** The classification code-name map of ${classificationName}. */\r
- public static final List<Map<String, String>> VALUE_LABEL_ALIAS_LIST_${classificationName};\r
- static {\r
- final List<Map<String, String>> list = new ArrayList<Map<String, String>>();\r
-#foreach ($classificationMap in $classificationMapList)\r
- setupValueLabelElement(list, ${database.classificationCodeVariableNamePrefix}${classificationName}_${classificationMap.get('name')}, "${classificationMap.get('alias')}");\r
-#end\r
-\r
- VALUE_LABEL_ALIAS_LIST_${classificationName} = Collections.unmodifiableList(list);\r
- }\r
- public static List<Map<String, String>> createValueLabelAliasList${classificationName}() {\r
- return setupValueLabelList(VALUE_LABEL_ALIAS_LIST_${classificationName});\r
- }\r
-#end\r
-\r
- // ===================================================================================\r
- // Helper\r
- // ======\r
- protected static List<Map<String, String>> setupValueLabelList(List<Map<String, String>> ls) {\r
- final List<Map<String, String>> newList = new ArrayList<Map<String, String>>();\r
- for (final Iterator ite = ls.iterator(); ite.hasNext(); ) {\r
- final Map<String, String> map = (Map<String, String>)ite.next();\r
- final Map<String, String> newMap = new LinkedHashMap<String, String>(map);\r
- newList.add(newMap);\r
- }\r
- return newList;\r
- }\r
-\r
- protected static void setupValueLabelElement(List<Map<String, String>> ls, String value, String label) {\r
- final Map<String, String> map = new LinkedHashMap<String, String>();\r
- map.put("value", value);\r
- map.put("label", label);\r
- ls.add(Collections.unmodifiableMap(map));\r
- }\r
-#end\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommon};\r
-\r
-/**\r
- * The interface of dao-readable.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glDaoReadableInterfaceName} {\r
- public void initializeDaoMetaData(String methodName);// Very Internal Method!\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommon};\r
-\r
-/**\r
- * The interface of DAO-selector.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glDaoSelectorInterfaceName} {\r
-\r
- /**\r
- * Select DAO.\r
- * @param <DAO> The type of DAO.\r
- * @param daoType DAO type. (NotNull)\r
- * @return Dao. (NotNull)\r
- */\r
- public <DAO extends ${glDaoReadableInterfaceName}> DAO select(Class<DAO> daoType);\r
-\r
- /**\r
- * Select DAO-readable by name.\r
- * @param tableFlexibleName Table flexible name. (NotNull)\r
- * @return DAO-readable. (NotNull)\r
- */\r
- public ${glDaoReadableInterfaceName} byName(String tableFlexibleName);\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommon};\r
-\r
-import java.util.List;\r
-\r
-import ${glPackageBaseCommon}.${glEntityInterfaceName};\r
-\r
-/**\r
- * The interface of dao-writable.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glDaoWritableInterfaceName} extends ${glDaoReadableInterfaceName} {\r
-\r
- /**\r
- * Insert one entity that the type is entity-interface.\r
- * @param entity Entity that the type is entity-interface. (NotNull)\r
- * @return Inserted count.\r
- */\r
- public int create(${glEntityInterfaceName} entity);\r
-\r
- /**\r
- * Update one entity that the type is entity-interface.\r
- * @param entity Entity that the type is entity-interface. (NotNull)\r
- * @return Updated count.\r
- */\r
- public int modify(${glEntityInterfaceName} entity);\r
-\r
- /**\r
- * Update one entity that the type is entity-interface. (modified only)\r
- * @param entity Entity that the type is entity-interface. (NotNull)\r
- * @return Updated count.\r
- */\r
- public int modifyModifiedOnly(${glEntityInterfaceName} entity);\r
-\r
- /**\r
- * Delete one entity that the type is entity-interface.\r
- * @param entity Entity that the type is entity-interface. (NotNull)\r
- * @return Deleted count.\r
- */\r
- public int remove(${glEntityInterfaceName} entity);\r
-\r
-#set ($batchUpdateReturnType = "")\r
-#if ($database.isVersionAfter1047())\r
- #set ($batchUpdateReturnType = "int[]")\r
-#else\r
- #set ($batchUpdateReturnType = "int")\r
-#end\r
-\r
- /**\r
- * Insert several entities that the type is entity-interface.\r
- * @param entityList Entity-list that the type is entity-interface. (NotNull)\r
- * @return The array of inserted count.\r
- */\r
- public ${batchUpdateReturnType} createList(List<${glEntityInterfaceName}> entityList);\r
-\r
- /**\r
- * Update several entities that the type is entity-interface.\r
- * @param entityList Entity-list that the type is entity-interface. (NotNull)\r
- * @return The array of updated count.\r
- */\r
- public ${batchUpdateReturnType} modifyList(List<${glEntityInterfaceName}> entityList);\r
-\r
- /**\r
- * Delete several entities that the type is entity-interface.\r
- * @param entityList Entity-list that the type is entity-interface. (NotNull)\r
- * @return The array of deleted count.\r
- */\r
- public ${batchUpdateReturnType} removeList(List<${glEntityInterfaceName}> entityList);\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommon};\r
-\r
-import java.util.Set;\r
-import java.util.LinkedHashSet;\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInterfaceName};\r
-\r
-/**\r
- * The interface of entity.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glEntityInterfaceName} {\r
-\r
- // ===================================================================================\r
- // DBMeta\r
- // ======\r
- /**\r
- * Get the instance of target dbmeta.\r
- * @return DBMeta. (NotNull)\r
- */\r
- public ${glDBMetaInterfaceName} getDBMeta();\r
-\r
- // ===================================================================================\r
- // Table Name\r
- // ==========\r
- /**\r
- * Get table DB name.\r
- * @return Table DB name. (NotNull)\r
- */\r
- public String getTableDbName();\r
-\r
- /**\r
- * Get table property name.\r
- * @return Table property name. (NotNull)\r
- */\r
- public String getTablePropertyName();\r
-\r
- // ===================================================================================\r
- // Determination\r
- // =============\r
- /**\r
- * Has the value of primary-key?\r
- * @return Determination.\r
- */\r
- public boolean hasPrimaryKeyValue();\r
-\r
- // ===================================================================================\r
- // Modified Properties\r
- // ===================\r
- /**\r
- * Get modified property names. (JavaBeansRule)\r
- * @return Modified property names. (NotNull)\r
- */\r
- public Set<String> getModifiedPropertyNames();\r
-\r
- /**\r
- * Clear modified property names.\r
- */\r
- public void clearModifiedPropertyNames();\r
-\r
- /**\r
- * Entity modified properties.\r
- */\r
- public static class EntityModifiedProperties implements java.io.Serializable {\r
-\r
- /** Serial version UID. (Default) */\r
- private static final long serialVersionUID = 1L;\r
-\r
- /** Set of properties. */\r
- protected Set<String> _propertiesSet = new LinkedHashSet<String>();\r
-\r
- /**\r
- * Add property name. (JavaBeansRule)\r
- * @param propertyName Property name. (Nullable)\r
- */\r
- public void addPropertyName(String propertyName) {\r
- _propertiesSet.add(propertyName);\r
- }\r
-\r
- /**\r
- * Get the set of properties.\r
- * @return The set of properties. (NotNull)\r
- */\r
- public Set<String> getPropertyNames() {\r
- return _propertiesSet;\r
- }\r
-\r
- /**\r
- * Is empty?\r
- * @return Determination.\r
- */\r
- public boolean isEmpty() {\r
- return _propertiesSet.isEmpty();\r
- }\r
-\r
- /**\r
- * Clear the set of properties.\r
- */\r
- public void clear() {\r
- _propertiesSet.clear();\r
- }\r
-\r
- /**\r
- * Remove property name from the set. (JavaBeansRule)\r
- * @param propertyName Property name. (Nullable)\r
- */\r
- public void remove(String propertyName) {\r
- _propertiesSet.remove(propertyName);\r
- }\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommon};\r
-\r
-#set ($myClassName = "${glGenMetaDataClassName}")\r
-\r
-/**\r
- * The sigleton class that has generate-meta-data(GenMetaData).\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} {\r
-\r
- /** Singleton instance. */\r
- private static final ${myClassName} _instance = new ${myClassName}();\r
-\r
- /**\r
- * Constructor.\r
- */\r
- private ${myClassName}() {\r
- }\r
-\r
- /**\r
- * Get instance.\r
- *\r
- * @return Singleton instance.\r
- */\r
- public static ${myClassName} getInstance() {\r
- return _instance;\r
- }\r
-\r
- // ===================================================================================\r
- // Basic\r
- // =====\r
- /**\r
- * Get the property-value of targetLanguage.\r
- *\r
- * @return The property-value.\r
- */\r
- public String getTargetLanguage() {\r
- return "${database.TargetLanguage}";\r
- }\r
-\r
- /**\r
- * Get the property-value of templateFileExtension.\r
- *\r
- * @return The property-value.\r
- */\r
- public String getTemplateFileExtension() {\r
- return "${database.TemplateFileExtension}";\r
- }\r
-\r
- /**\r
- * Get the property-value of classFileExtension.\r
- *\r
- * @return The property-value.\r
- */\r
- public String getClassFileExtension() {\r
- return "${database.ClassFileExtension}";\r
- }\r
-\r
- /**\r
- * Get the property-value of templateFileEncoding.\r
- *\r
- * @return The property-value.\r
- */\r
- public String getTemplateEncoding() {\r
- return "${database.TemplateFileEncoding}";\r
- }\r
-\r
- /**\r
- * Get the property-value of classAuthor.\r
- *\r
- * @return The property-value.\r
- */\r
- public String getClassAuthor() {\r
- return "${database.ClassAuthor}";\r
- }\r
-\r
- // ===================================================================================\r
- // Naming\r
- // ======\r
- /**\r
- * Is java name of table same as db name? Answer is ${database.isJavaNameOfTableSameAsDbName()}!\r
- *\r
- * @return The property-value.\r
- */\r
- public boolean isJavaNameOfTableSameAsDbName() {\r
- return ${database.isJavaNameOfTableSameAsDbName()};\r
- }\r
-\r
- /**\r
- * Is java name of column same as db name? Answer is ${database.isJavaNameOfColumnSameAsDbName()}!\r
- *\r
- * @return The property-value.\r
- */\r
- public boolean isJavaNameOfColumnSameAsDbName() {\r
- return ${database.isJavaNameOfColumnSameAsDbName()};\r
- }\r
-\r
- // ===================================================================================\r
- // Prefix\r
- // ======\r
- /**\r
- * Get the property-value of projectPrefix.\r
- *\r
- * @return The property-value.\r
- */\r
- public String getProjectPrefix() {\r
- return "${database.ProjectPrefix}";\r
- }\r
-\r
- /**\r
- * Get the property-value of basePrefix.\r
- *\r
- * @return The property-value.\r
- */\r
- public String getBasePrefix() {\r
- return "${database.BasePrefix}";\r
- }\r
-\r
- // ===================================================================================\r
- // Package\r
- // =======\r
- /**\r
- * Get the property-value of baseCommonPackage.\r
- *\r
- * @return The property-value.\r
- */\r
- public String getBaseCommonPackage() {\r
- return "${database.BaseCommonPackage}";\r
- }\r
-\r
- /**\r
- * Get the property-value of baseBehaviorPackage.\r
- *\r
- * @return The property-value.\r
- */\r
- public String getBaseBehaviorPackage() {\r
- return "${database.BaseBehaviorPackage}";\r
- }\r
-\r
- /**\r
- * Get the property-value of baseDaoPackage.\r
- *\r
- * @return The property-value.\r
- */\r
- public String getBaseDaoPackage() {\r
- return "${database.BaseDaoPackage}";\r
- }\r
-\r
- /**\r
- * Get the property-value of baseEntityPackage.\r
- *\r
- * @return The property-value.\r
- */\r
- public String getBaseEntityPackage() {\r
- return "${database.BaseEntityPackage}";\r
- }\r
-\r
- /**\r
- * Get the property-value of conditionBeanPackage.\r
- *\r
- * @return The property-value.\r
- */\r
- public String getConditionBeanPackage() {\r
- return "${database.ConditionBeanPackage}";\r
- }\r
-\r
- /**\r
- * Get the property-value of extendedDaoPackage.\r
- *\r
- * @return The property-value.\r
- */\r
- public String getExtendedDaoPackage() {\r
- return "${database.ExtendedDaoPackage}";\r
- }\r
-\r
- /**\r
- * Get the property-value of extendedBehaviorPackage.\r
- *\r
- * @return The property-value.\r
- */\r
- public String getExtendedBehaviorPackage() {\r
- return "${database.ExtendedBehaviorPackage}";\r
- }\r
-\r
- /**\r
- * Get the property-value of extendedEntityPackage.\r
- *\r
- * @return The property-value.\r
- */\r
- public String getExtendedEntityPackage() {\r
- return "${database.ExtendedEntityPackage}";\r
- }\r
-\r
- // ===================================================================================\r
- // Optimistic Lock\r
- // ===============\r
- /**\r
- * Get the property-value of updateDateFieldName.\r
- *\r
- * @return The property-value.\r
- */\r
- public String getUpdateDateFieldName() {\r
- return "${database.UpdateDateFieldName}";\r
- }\r
-\r
- /**\r
- * Get the property-value of versionNoFieldName.\r
- *\r
- * @return The property-value.\r
- */\r
- public String getVersionNoFieldName() {\r
- return "${database.VersionNoFieldName}";\r
- }\r
-\r
- // ===================================================================================\r
- // Extract\r
- // =======\r
- /**\r
- * Get the value of 'extractAcceptStartBrace'.\r
- *\r
- * @return The property-value. (NotNull)\r
- */\r
- public String getExtractAcceptStartBrace() {\r
- return "${database.extractAcceptStartBrace}";\r
- }\r
-\r
- /**\r
- * Get the value of 'extractAcceptEndBrace'.\r
- *\r
- * @return The property-value. (NotNull)\r
- */\r
- public String getExtractAcceptEndBrace() {\r
- return "${database.extractAcceptEndBrace}";\r
- }\r
-\r
- /**\r
- * Get the value of 'extractAcceptDelimiter'.\r
- *\r
- * @return The property-value. (NotNull)\r
- */\r
- public String getExtractAcceptDelimiter() {\r
- return "${database.extractAcceptDelimiter}";\r
- }\r
-\r
- /**\r
- * Get the value of 'extractAcceptEqual'.\r
- *\r
- * @return The property-value. (NotNull)\r
- */\r
- public String getExtractAcceptEqual() {\r
- return "${database.extractAcceptEqual}";\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommon};\r
-\r
-import java.util.Map;\r
-import java.util.HashMap;\r
-\r
-/**\r
- * The context of internal map.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInternalMapContextName} {\r
-\r
- // ===================================================================================\r
- // Thread Local\r
- // ============\r
- /** The thread-local for this. */\r
- private static final ThreadLocal<Map<String, Object>> threadLocal = new ThreadLocal<Map<String, Object>>();\r
-\r
- protected static void initialize() {\r
- if (threadLocal.get() != null) {\r
- return;\r
- }\r
- threadLocal.set(new HashMap<String, Object>());\r
- }\r
- \r
- /**\r
- * Get the value of the object by the key.\r
- * @param key The key of the object. (NotNull)\r
- * @return The value of the object. (Nullable)\r
- */\r
- public static Object getObject(String key) {\r
- initialize();\r
- return threadLocal.get().get(key);\r
- }\r
-\r
- /**\r
- * Set the value of the object.\r
- * @param key The key of the object. (NotNull)\r
- * @param value The value of the object. (Nullable)\r
- */\r
- public static void setObject(String key, Object value) {\r
- initialize();\r
- threadLocal.get().put(key, value);\r
- }\r
-\r
- /**\r
- * Is existing internal-map-context on thread?\r
- * \r
- * @return Determination.\r
- */\r
- public static boolean isExistInternalMapContextOnThread() {\r
- return (threadLocal.get() != null);\r
- }\r
-\r
- /**\r
- * Clear internal-map-context on thread.\r
- */\r
- public static void clearInternalMapContextOnThread() {\r
- threadLocal.set(null);\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommon};\r
-\r
-import ${glPackageBaseCommon}.${glDBFluteConfig};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glQLog} {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- /** Log instance. */\r
- private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory.getLog(${glQLog}.class);\r
-\r
- // ===================================================================================\r
- // Logging\r
- // =======\r
- public static void log(String sql) {// Very Internal\r
- if (isQueryLogLevelInfo()) {\r
- _log.info(sql);\r
- } else {\r
- _log.debug(sql);\r
- }\r
- }\r
- \r
- public static boolean isLogEnabled() {\r
- if (isQueryLogLevelInfo()) {\r
- return _log.isInfoEnabled();\r
- } else {\r
- return _log.isDebugEnabled();\r
- }\r
- }\r
- \r
- protected static boolean isQueryLogLevelInfo() {\r
- return ${glDBFluteConfig}.getInstance().isQueryLogLevelInfo();\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommon};\r
-\r
-import ${glPackageBaseCommon}.${glDBFluteConfig};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glXLog} {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- /** Log instance. */\r
- private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory.getLog(${glXLog}.class);\r
-\r
- // ===================================================================================\r
- // Logging\r
- // =======\r
- public static void log(String msg) {// Very Internal\r
- if (isExecuteStatusLogLevelInfo()) {\r
- _log.info(msg);\r
- } else {\r
- _log.debug(msg);\r
- }\r
- }\r
- \r
- public static boolean isLogEnabled() {// Very Internal\r
- if (isExecuteStatusLogLevelInfo()) {\r
- return _log.isInfoEnabled();\r
- } else {\r
- return _log.isDebugEnabled();\r
- }\r
- }\r
- \r
- protected static boolean isExecuteStatusLogLevelInfo() {\r
- return ${glDBFluteConfig}.getInstance().isExecuteStatusLogLevelInfo();\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonAnnotation};\r
-\r
-import java.lang.annotation.ElementType;\r
-import java.lang.annotation.Inherited;\r
-import java.lang.annotation.Retention;\r
-import java.lang.annotation.RetentionPolicy;\r
-import java.lang.annotation.Target;\r
-\r
-@Inherited\r
-@Retention(RetentionPolicy.RUNTIME)\r
-@Target(ElementType.METHOD)\r
-public @interface ${glOutsideSqlAnnotation} {\r
- boolean dynamicBinding() default false;\r
- boolean offsetByCursor() default false;\r
- boolean limitByCursor() default false;\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonBhv};\r
-\r
-#set ($myClassName = "${glBehaviorReadableAbstractName}")\r
-\r
-import java.util.List;\r
-import java.util.ArrayList;\r
-import java.util.Map;\r
-import java.util.HashMap;\r
-import java.util.LinkedHashMap;\r
-import java.util.Set;\r
-import java.util.LinkedHashSet;\r
-\r
-import java.lang.reflect.Method;\r
-import java.lang.reflect.Constructor;\r
-\r
-import ${glPackageBaseCommon}.${glBehaviorSelectorInterfaceName};\r
-import ${glPackageBaseCommon}.${glDaoSelectorInterfaceName};\r
-import ${glPackageBaseCommon}.${glEntityInterfaceName};\r
-import ${glPackageBaseCommonBhvSetup}.${glValueLabelSetupperName};\r
-import ${glPackageBaseCommonBhvSetup}.${glValueLabelBoxName};\r
-import ${glPackageBaseCommonCBean}.${glConditionBeanContextName};\r
-import ${glPackageBaseCommonCBean}.${glConditionBeanInterfaceName};\r
-import ${glPackageBaseCommonCBean}.${glListResultBeanName};\r
-import ${glPackageBaseCommonCBean}.${glPagingHandlerName};\r
-import ${glPackageBaseCommonCBean}.${glPagingInvokerName};\r
-import ${glPackageBaseCommonCBean}.${glPagingBeanInterfaceName};\r
-import ${glPackageBaseCommonCBean}.${glPagingResultBeanName};\r
-import ${glPackageBaseCommonCBeanOutsidesql}.${glOutsideSqlDaoName};\r
-import ${glPackageBaseCommonCBeanOutsidesqlExecutor}.${glOutsideSqlBasicExecutorName};\r
-import ${glPackageBaseCommonBhvBatch}.${glTokenFileOutputOptionName};\r
-import ${glPackageBaseCommonBhvBatch}.${glTokenFileOutputResultName};\r
-import ${glPackageBaseCommonBhvLoad}.${glLoadReferrerOptionName};\r
-import ${glPackageBaseCommonDBMetaInfo}.${glColumnInfoName};\r
-import ${glPackageBaseCommonHelperTokenFile}.${glFileMakingOptionName};\r
-import ${glPackageBaseCommonHelperTokenFile}.${glFileMakingHeaderInfoName};\r
-import ${glPackageBaseCommonHelperTokenFile}.${glFileMakingSimpleFacadeName};\r
-import ${glPackageBaseCommonHelperTokenFileImpl}.${glFileMakingSimpleFacadeImplName};\r
-import ${glPackageBaseCommonUtil}.${glSimpleSystemUtil};\r
-\r
-/**\r
- * The abstract class of behavior-readable.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public abstract class $myClassName implements ${glBehaviorReadableInterfaceName} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- /** Behavior-selector instance. It's basically referred at loadReferrer. (Required for loadReferrer) */\r
- protected ${glBehaviorSelectorInterfaceName} _behaviorSelector;\r
-\r
- /** Dao-selector instance. It's basically referred at loadReferrer. (Required for OutsideSql) */\r
- protected ${glDaoSelectorInterfaceName} _daoSelector;\r
-\r
- // =====================================================================================\r
- // Basic Get All\r
- // =============\r
- /**\r
- * Get count all.\r
- * @return Count all.\r
- */\r
- public int getCountAll() {\r
- return callGetCountAll();\r
- }\r
-\r
- // =====================================================================================\r
- // Count Read\r
- // ==========\r
- /**\r
- * ${database.ImplementComment}\r
- * @param cb Condition-bean. This condition-bean should not be set up about fetch-scope. (NotNull)\r
- * @return Read count. (NotNull)\r
- */\r
- public int readCount(${glConditionBeanInterfaceName} cb) {\r
- assertConditionBeanNotNull(cb);\r
- return callReadCount(cb);\r
- }\r
-\r
- // =====================================================================================\r
- // Entity Read \r
- // ===========\r
- /**\r
- * ${database.ImplementComment}\r
- * @param cb Condition-bean. (NotNull)\r
- * @return Read entity. (Nullalble)\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
- */\r
- public ${glEntityInterfaceName} readEntity(${glConditionBeanInterfaceName} cb) {\r
- assertConditionBeanNotNull(cb);\r
- final List<${glEntityInterfaceName}> ls = readList(cb);\r
- if (ls.isEmpty()) {\r
- return null;\r
- }\r
- assertEntitySelectedAsOne(ls, cb);\r
- return (${glEntityInterfaceName})ls.get(0);\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * \r
- * @param cb Condition-bean. (NotNull)\r
- * @return Read entity. (NotNull)\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
- */\r
- public ${glEntityInterfaceName} readEntityWithDeletedCheck(${glConditionBeanInterfaceName} cb) {\r
- assertConditionBeanNotNull(cb);\r
- final List<${glEntityInterfaceName}> ls = readList(cb);\r
- assertEntityNotDeleted(ls, cb);\r
- assertEntitySelectedAsOne(ls, cb);\r
- return (${glEntityInterfaceName})ls.get(0);\r
- }\r
-\r
- // =====================================================================================\r
- // Entity Read Internal Helper\r
- // ===========================\r
- protected <ENTITY extends ${glEntityInterfaceName}, CB extends ${glConditionBeanInterfaceName}>\r
- ENTITY helpSelectEntityInternally(CB cb, InternalSelectEntityCallback<ENTITY, CB> callback) {\r
- assertConditionBeanNotNull(cb);\r
- cb.checkSafetyResult(1);\r
- List<ENTITY> ls = null;\r
- try {\r
- ls = callback.callbackSelectList(cb);\r
- } catch (${glPackageBaseCommonException}.${glDangerousResultSizeException} e) {\r
- throwEntityDuplicatedException("{Over safetyMaxResultSize '1'}", cb, e);\r
- }\r
- if (ls.isEmpty()) {\r
- return null;\r
- }\r
- assertEntitySelectedAsOne(ls, cb);\r
- return (ENTITY)ls.get(0);\r
- }\r
-\r
- protected static interface InternalSelectEntityCallback<ENTITY extends ${glEntityInterfaceName}, CB extends ${glConditionBeanInterfaceName}> {\r
- public List<ENTITY> callbackSelectList(CB cb);\r
- }\r
-\r
- protected <ENTITY extends ${glEntityInterfaceName}, CB extends ${glConditionBeanInterfaceName}>\r
- ENTITY helpSelectEntityWithDeletedCheckInternally(CB cb, InternalSelectEntityWithDeletedCheckCallback<ENTITY, CB> callback) {\r
- assertConditionBeanNotNull(cb);\r
- cb.checkSafetyResult(1);\r
- List<ENTITY> ls = null;\r
- try {\r
- ls = callback.callbackSelectList(cb);\r
- } catch (${glPackageBaseCommonException}.${glDangerousResultSizeException} e) {\r
- throwEntityDuplicatedException("{Over safetyMaxResultSize '1'}", cb, e);\r
- }\r
- assertEntityNotDeleted(ls, cb);\r
- assertEntitySelectedAsOne(ls, cb);\r
- return (ENTITY)ls.get(0);\r
- }\r
-\r
- protected static interface InternalSelectEntityWithDeletedCheckCallback<ENTITY extends ${glEntityInterfaceName}, CB extends ${glConditionBeanInterfaceName}> {\r
- public List<ENTITY> callbackSelectList(CB cb);\r
- }\r
-\r
- // =====================================================================================\r
- // List Read\r
- // =========\r
- /**\r
- * ${database.ImplementComment}\r
- * @param cb Condition-bean.\r
- * @return List-result-bean. If the select result is zero, it returns empty list. (NotNull)\r
- */\r
- public ${glListResultBeanName}<${glEntityInterfaceName}> readList(${glConditionBeanInterfaceName} cb) {\r
- assertConditionBeanNotNull(cb);\r
- return new ${glPackageBaseCommonCBean}.${glResultBeanBuilderName}<${glEntityInterfaceName}>(getTableDbName()).buildListResultBean(cb, callReadList(cb));\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @param cb Condition-bean. (NotNull)\r
- * @return Read page. (NotNull)\r
- */\r
- public ${glPagingResultBeanName}<${glEntityInterfaceName}> readPage(final ${glConditionBeanInterfaceName} cb) {\r
- assertConditionBeanNotNull(cb);\r
- final ${glPagingInvokerName}<${glEntityInterfaceName}> invoker = new ${glPagingInvokerName}<${glEntityInterfaceName}>(getTableDbName());\r
- final ${glPagingHandlerName}<${glEntityInterfaceName}> handler = new ${glPagingHandlerName}<${glEntityInterfaceName}>() {\r
- public ${glPagingBeanInterfaceName} getPagingBean() { return cb; }\r
- public int count() { return readCount(cb); }\r
- public List<${glEntityInterfaceName}> paging() { return readList(cb); }\r
- };\r
- return invoker.invokePaging(handler);\r
- }\r
-\r
- /**\r
- * Assert that the entity is not deleted.\r
- * @param entity Selected entity. (Nullable)\r
- * @param searchKey4Log Search-key for Logging.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
- */\r
- protected void assertEntityNotDeleted(${glPackageBaseCommon}.${glEntityInterfaceName} entity, Object searchKey4Log) {\r
- if (entity == null) {\r
- throwEntityAlreadyDeletedException(searchKey4Log);\r
- }\r
- }\r
-\r
- /**\r
- * Assert that the entity is not deleted.\r
- * @param ls Selected list. (Nullable)\r
- * @param searchKey4Log Search-key for Logging. (NotNull)\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException}\r
- */\r
- protected void assertEntityNotDeleted(List ls, Object searchKey4Log) {\r
- if (ls == null || ls.isEmpty()) {\r
- throwEntityAlreadyDeletedException(searchKey4Log);\r
- }\r
- }\r
-\r
- /**\r
- * Assert that the entity is selected as one.\r
- * @param ls Selected list. (NotNull)\r
- * @param searchKey4Log Search-key for Logging. (NotNull)\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException}\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException}\r
- */\r
- protected void assertEntitySelectedAsOne(List ls, Object searchKey4Log) {\r
- if (ls == null || ls.isEmpty()) {\r
- throwEntityAlreadyDeletedException(searchKey4Log);\r
- }\r
- if (ls.size() > 1) {\r
- throwEntityDuplicatedException(ls.size() + "", searchKey4Log, null);\r
- }\r
- }\r
-\r
- private void throwEntityAlreadyDeletedException(Object searchKey4Log) {\r
- ${glConditionBeanContextName}.throwEntityAlreadyDeletedException(searchKey4Log);\r
- }\r
-\r
- private void throwEntityDuplicatedException(String resultCountString, Object searchKey4Log, Throwable cause) {\r
- ${glConditionBeanContextName}.throwEntityDuplicatedException(resultCountString, searchKey4Log, cause);\r
- }\r
-\r
- // ===================================================================================\r
- // Various Select\r
- // ==============\r
- public ${glOutsideSqlBasicExecutorName} outsideSql() {\r
- assertDaoSelectorNotNull("outsideSql");\r
- final ${glOutsideSqlDaoName} outsideSqlDao = _daoSelector.select(${glOutsideSqlDaoName}.class);\r
- return new ${glOutsideSqlBasicExecutorName}(outsideSqlDao, getTableDbName());\r
- }\r
-\r
- private void assertDaoSelectorNotNull(String methodName) {\r
- if (_daoSelector == null) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "Not found the selector of dao as behavior's attributed!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "Please confirm the definition of the selector at your 'dbflute.dicon'." + getLineSeparator();\r
- msg = msg + "It is precondition that '" + methodName + "()' needs the selector instance." + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Your Behavior's Attributes]" + getLineSeparator();\r
- msg = msg + " _behaviorSelector : " + _behaviorSelector + getLineSeparator();\r
- msg = msg + " _daoSelector : " + _daoSelector + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */" + getLineSeparator();\r
- throw new IllegalStateException(msg);\r
- }\r
- }\r
-\r
- /**\r
- * Create value-label list.\r
- * @param <ENTITY> The type of entity.\r
- * @param entityList The list of entity. (NotNull)\r
- * @param valueLabelSetupper Value-label-setupper. (NotNull)\r
- * @return Value-label list. (NotNull)\r
- */\r
- public <ENTITY extends ${glEntityInterfaceName}> List<Map<String, Object>> createValueLabelList(List<ENTITY> entityList, ${glValueLabelSetupperName}<ENTITY> valueLabelSetupper) {\r
- final List<Map<String, Object>> valueLabelList = new ArrayList<Map<String, Object>>();\r
- final ${glValueLabelBoxName} box = new ${glValueLabelBoxName}();\r
- for (ENTITY entity : entityList) {\r
- final Map<String, Object> valueLabel = new HashMap<String, Object>();\r
- valueLabelSetupper.setup(box, entity);\r
- valueLabel.put("value", box.getValue());\r
- valueLabel.put("label", box.getLabel());\r
- valueLabelList.add(valueLabel);\r
- }\r
- return valueLabelList;\r
- }\r
-\r
- // ===================================================================================\r
- // Sequence\r
- // ========\r
- /**\r
- * ${database.ImplementComment}\r
- * @return The value of sequence. (NotNull)\r
- */\r
- public ${database.sequenceReturnType} readNextVal() {\r
- try {\r
- final Method method = getClass().getMethod("selectNextVal", new Class[]{});\r
- Object sequenceObject = method.invoke(this, new Object[] {});\r
- if (sequenceObject instanceof ${database.sequenceReturnType}) {\r
- return (${database.sequenceReturnType})sequenceObject;\r
- }\r
- return (${database.sequenceReturnType})helpConvertingSequenceObject(${database.sequenceReturnType}.class, sequenceObject);\r
- } catch (NoSuchMethodException e) {\r
- throw new RuntimeException("The table does not have sequence: " + getTableDbName(), e);\r
- } catch (Exception e) {\r
- throw new RuntimeException("The selectNextVal() of the table threw the exception: " + getTableDbName(), e);\r
- }\r
- }\r
-\r
- protected Object helpConvertingSequenceObject(Class resultClass, Object sequenceObject) {\r
- try {\r
- final Constructor constructor = resultClass.getConstructor(new Class[]{String.class});\r
- return constructor.newInstance(new Object[]{sequenceObject.toString()});\r
- } catch (NoSuchMethodException e) {\r
- } catch (Exception e) {\r
- throw new RuntimeException("The readNextVal() of the table threw the exception: " + getTableDbName(), e);\r
- }\r
- try {\r
- final Method method = resultClass.getMethod("valueOf", new Class[]{long.class});\r
- return method.invoke(null, new Object[]{Long.valueOf(sequenceObject.toString())});\r
- } catch (NoSuchMethodException e) {\r
- } catch (Exception e) {\r
- throw new RuntimeException("The readNextVal() of the table threw the exception: " + getTableDbName(), e);\r
- }\r
- String msg = "Cannot convert sequenceObject to resultClass:";\r
- msg = msg + " resultClass=" + resultClass + " sequenceObjectType=" + sequenceObject.getClass();\r
- throw new IllegalStateException(msg);\r
- }\r
-\r
- // ===================================================================================\r
- // Load Referrer Internal Helper\r
- // =============================\r
- /**\r
- * Help load referrer internally.\r
- * About internal policy, the value of primary key(and others too) is treated as CaseInsensitive.\r
- * @param <LOCAL_ENTITY> The type of base entity.\r
- * @param <PK> The type of primary key.\r
- * @param <REFERRER_CB> The type of referrer condition-bean.\r
- * @param <REFERRER_ENTITY> The type of referrer entity.\r
- * @param localEntityList The list of local entity. (NotNull)\r
- * @param loadReferrerOption The option of loadReferrer. (NotNull)\r
- * @param callback The internal call-back of loadReferrer. (NotNull) \r
- */\r
- protected <LOCAL_ENTITY extends ${glEntityInterfaceName}\r
- , PK\r
- , REFERRER_CB extends ${glConditionBeanInterfaceName}\r
- , REFERRER_ENTITY extends ${glEntityInterfaceName}>\r
- void helpLoadReferrerInternally(List<LOCAL_ENTITY> localEntityList\r
- , ${glLoadReferrerOptionName}<REFERRER_CB, REFERRER_ENTITY> loadReferrerOption\r
- , InternalLoadReferrerCallback<LOCAL_ENTITY, PK, REFERRER_CB, REFERRER_ENTITY> callback) {\r
- doHelpLoadReferrerInternally(localEntityList, loadReferrerOption, callback);\r
- }\r
-\r
- /**\r
- * Do help load referrer internally.\r
- * About internal policy, the value of primary key(and others too) is treated as CaseInsensitive.\r
- * @param <LOCAL_ENTITY> The type of base entity.\r
- * @param <PK> The type of primary key.\r
- * @param <REFERRER_CB> The type of referrer condition-bean.\r
- * @param <REFERRER_ENTITY> The type of referrer entity.\r
- * @param localEntityList The list of local entity. (NotNull)\r
- * @param loadReferrerOption The option of loadReferrer. (NotNull)\r
- * @param callback The internal call-back of loadReferrer. (NotNull) \r
- */\r
- protected <LOCAL_ENTITY extends ${glEntityInterfaceName}\r
- , PK\r
- , REFERRER_CB extends ${glConditionBeanInterfaceName}\r
- , REFERRER_ENTITY extends ${glEntityInterfaceName}>\r
- void doHelpLoadReferrerInternally(List<LOCAL_ENTITY> localEntityList\r
- , ${glLoadReferrerOptionName}<REFERRER_CB, REFERRER_ENTITY> loadReferrerOption\r
- , InternalLoadReferrerCallback<LOCAL_ENTITY, PK, REFERRER_CB, REFERRER_ENTITY> callback) {\r
-\r
- // - - - - - - - - - - -\r
- // Assert pre-condition\r
- // - - - - - - - - - - -\r
- assertBehaviorSelectorNotNull("loadReferrer");\r
- assertObjectNotNull("localEntityList", localEntityList);\r
- assertObjectNotNull("loadReferrerOption", loadReferrerOption);\r
- if (localEntityList.isEmpty()) {\r
- return;\r
- }\r
-\r
- // - - - - - - - - - - - - - -\r
- // Prepare temporary container\r
- // - - - - - - - - - - - - - -\r
- final Map<PK, LOCAL_ENTITY> pkLocalEntityMap = new LinkedHashMap<PK, LOCAL_ENTITY>();\r
- final List<PK> pkList = new ArrayList<PK>();\r
- for (LOCAL_ENTITY localEntity : localEntityList) {\r
- final PK primaryKeyValue = callback.callbackBase_getPrimaryKeyValue(localEntity);\r
- pkList.add(callback.callbackBase_getPrimaryKeyValue(localEntity));\r
- pkLocalEntityMap.put(toLowerCasePrimaryKeyIfString(primaryKeyValue), localEntity);\r
- }\r
-\r
- // - - - - - - - - - - - - - - - -\r
- // Prepare referrer condition bean\r
- // - - - - - - - - - - - - - - - -\r
- final REFERRER_CB cb;\r
- if (loadReferrerOption.getReferrerConditionBean() != null) {\r
- cb = loadReferrerOption.getReferrerConditionBean();\r
- } else {\r
- cb = callback.callbackReferrer_newMyConditionBean();\r
- }\r
-\r
- // - - - - - - - - - - - - - -\r
- // Select the list of referrer\r
- // - - - - - - - - - - - - - -\r
- callback.callbackReferrer_queryForeignKeyInScope(cb, pkList);\r
- loadReferrerOption.delegateKeyConditionExchangingFirstWhereClauseForLastOne(cb);\r
- if (!loadReferrerOption.isStopOrderByKey()) {\r
- callback.callbackReferrer_queryAddOrderByForeignKeyAsc(cb);\r
- cb.getSqlComponentOfOrderByClause().exchangeFirstOrderByElementForLastOne();\r
- }\r
- loadReferrerOption.delegateConditionBeanSettingUp(cb);\r
- final List<REFERRER_ENTITY> referrerList = callback.callbackReferrer_selectList(cb);\r
- loadReferrerOption.delegateEntitySettingUp(referrerList);\r
-\r
- // - - - - - - - - - - - - - - - - - - - - - - - -\r
- // Create the map of {primary key / referrer list}\r
- // - - - - - - - - - - - - - - - - - - - - - - - -\r
- final Map<PK, List<REFERRER_ENTITY>> pkReferrerListMap = new LinkedHashMap<PK, List<REFERRER_ENTITY>>();\r
- for (REFERRER_ENTITY referrerEntity : referrerList) {\r
- final PK referrerListKey;\r
- {\r
- final PK foreignKeyValue = callback.callbackReferrer_getForeignKeyValue(referrerEntity);\r
- referrerListKey = toLowerCasePrimaryKeyIfString(foreignKeyValue);\r
- }\r
- if (!pkReferrerListMap.containsKey(referrerListKey)) {\r
- pkReferrerListMap.put(referrerListKey, new ArrayList<REFERRER_ENTITY>());\r
- }\r
- (pkReferrerListMap.get(referrerListKey)).add(referrerEntity);\r
-\r
- // for Reverse Reference.\r
- final LOCAL_ENTITY localEntity = pkLocalEntityMap.get(referrerListKey);\r
- callback.callbackReferrer_setForeignEntity(referrerEntity, localEntity);\r
- }\r
-\r
- // - - - - - - - - - - - - - - - - - -\r
- // Relate referrer list to base entity\r
- // - - - - - - - - - - - - - - - - - -\r
- for (LOCAL_ENTITY localEntity : localEntityList) {\r
- final PK referrerListKey;\r
- {\r
- final PK primaryKey = callback.callbackBase_getPrimaryKeyValue(localEntity);\r
- referrerListKey = toLowerCasePrimaryKeyIfString(primaryKey);\r
- }\r
- if (pkReferrerListMap.containsKey(referrerListKey)) {\r
- callback.callbackBase_setReferrerList(localEntity, pkReferrerListMap.get(referrerListKey));\r
- } else {\r
- callback.callbackBase_setReferrerList(localEntity, new ArrayList<REFERRER_ENTITY>());\r
- }\r
- }\r
- }\r
-\r
- /**\r
- * To lower case for primary key if the value is string.\r
- * @param <PK> The type of primary key.\r
- * @param value The value of primary key. (Nullable)\r
- * @return The value of primary key. (Nullable)\r
- */\r
- protected <PK> PK toLowerCasePrimaryKeyIfString(PK value) {\r
- return (PK)toLowerCaseIfString(value);\r
- }\r
-\r
- /**\r
- * @param <LOCAL_ENTITY> The type of base entity.\r
- * @param <PK> The type of primary key.\r
- * @param <REFERRER_CB> The type of referrer conditionBean.\r
- * @param <REFERRER_ENTITY> The type of referrer entity.\r
- */\r
- protected static interface InternalLoadReferrerCallback<LOCAL_ENTITY extends ${glEntityInterfaceName}\r
- , PK\r
- , REFERRER_CB extends ${glConditionBeanInterfaceName}\r
- , REFERRER_ENTITY extends ${glEntityInterfaceName}> {\r
- // For Base\r
- public PK callbackBase_getPrimaryKeyValue(LOCAL_ENTITY entity);\r
- public void callbackBase_setReferrerList(LOCAL_ENTITY entity, List<REFERRER_ENTITY> referrerList);\r
-\r
- // For Referrer\r
- public REFERRER_CB callbackReferrer_newMyConditionBean();\r
- public void callbackReferrer_queryForeignKeyInScope(REFERRER_CB cb, List<PK> pkList);\r
- public void callbackReferrer_queryAddOrderByForeignKeyAsc(REFERRER_CB cb);\r
- public List<REFERRER_ENTITY> callbackReferrer_selectList(REFERRER_CB cb);\r
- public PK callbackReferrer_getForeignKeyValue(REFERRER_ENTITY entity);\r
- public void callbackReferrer_setForeignEntity(REFERRER_ENTITY referrerEntity, LOCAL_ENTITY localEntity);\r
- }\r
-\r
- protected ${glBehaviorSelectorInterfaceName} xgetBSFLR() { // getBehaviorSelectorForLoadReferrer() as Internal\r
- assertBehaviorSelectorNotNull("loadReferrer");\r
- return getBehaviorSelector();\r
- }\r
-\r
- private void assertBehaviorSelectorNotNull(String methodName) {\r
- if (_behaviorSelector == null) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "Not found the selector of behavior as behavior's attributed!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "Please confirm the definition of the selector at your 'dbflute.dicon'." + getLineSeparator();\r
- msg = msg + "It is precondition that '" + methodName + "()' needs the selector instance." + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Your Behavior's Attributes]" + getLineSeparator();\r
- msg = msg + " _behaviorSelector : " + _behaviorSelector + getLineSeparator();\r
- msg = msg + " _daoSelector : " + _daoSelector + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */" + getLineSeparator();\r
- throw new IllegalStateException(msg);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Pullout Internal Helper\r
- // =======================\r
- protected <LOCAL_ENTITY extends ${glEntityInterfaceName}, FOREIGN_ENTITY extends ${glEntityInterfaceName}>\r
- List<FOREIGN_ENTITY> helpPulloutInternally(List<LOCAL_ENTITY> localEntityList, InternalPulloutCallback<LOCAL_ENTITY, FOREIGN_ENTITY> callback) {\r
- assertObjectNotNull("localEntityList", localEntityList);\r
- final Set<FOREIGN_ENTITY> foreignSet = new LinkedHashSet<FOREIGN_ENTITY>();\r
- for (LOCAL_ENTITY entity : localEntityList) {\r
- final FOREIGN_ENTITY foreignEntity = callback.callbackGetForeignEntity(entity);\r
- if (foreignEntity == null || foreignSet.contains(foreignEntity)) {\r
- continue;\r
- }\r
- foreignSet.add(foreignEntity);\r
- }\r
- return new ArrayList<FOREIGN_ENTITY>(foreignSet);\r
- }\r
-\r
- protected static interface InternalPulloutCallback<LOCAL_ENTITY extends ${glEntityInterfaceName}, FOREIGN_ENTITY extends ${glEntityInterfaceName}> {\r
- public FOREIGN_ENTITY callbackGetForeignEntity(LOCAL_ENTITY entity);\r
- }\r
-\r
- // ===================================================================================\r
- // Token File\r
- // ==========\r
- public TokenFileOutputExecutor tokenFileOutput() throws java.io.FileNotFoundException, java.io.IOException {\r
- return new TokenFileOutputExecutor();\r
- }\r
-\r
- public class TokenFileOutputExecutor {\r
- /**\r
- * Output token-file from this table records.\r
- * @param cb Condition-bean. (NotNull)\r
- * @param filename Name of the file. (NotNull and NotEmpty)\r
- * @param tokenFileOutputOption token-file-output-option. (NotNull and Required{delimiter and encoding})\r
- * @return Token-file-output-result. (NotNull)\r
- * @throws java.io.FileNotFoundException\r
- * @throws java.io.IOException\r
- */\r
- public ${glTokenFileOutputResultName} outputTokenFile(${glConditionBeanInterfaceName} cb, String filename, ${glTokenFileOutputOptionName} tokenFileOutputOption) throws java.io.FileNotFoundException, java.io.IOException {\r
- assertConditionBeanNotNull(cb);\r
- assertStringNotNullAndNotTrimmedEmpty("filename", filename);\r
- assertObjectNotNull("tokenFileOutputOption", tokenFileOutputOption);\r
-\r
- final List<${glEntityInterfaceName}> ls = readList(cb);\r
- List<List<String>> rowList = new ArrayList<List<String>>();\r
- for (java.util.Iterator ite = ls.iterator(); ite.hasNext(); ) {\r
- final ${glEntityInterfaceName} entity = (${glEntityInterfaceName})ite.next();\r
- final List<String> valueList = getDBMeta().convertToColumnStringValueList(entity);\r
- rowList.add(valueList);\r
- }\r
- final ${glFileMakingSimpleFacadeName} fileMakingSimpleFacade = new ${glFileMakingSimpleFacadeImplName}();\r
- final ${glFileMakingOptionName} fileMakingOption = tokenFileOutputOption.getFileMakingOption();\r
- final ${glFileMakingHeaderInfoName} fileMakingHeaderInfo = new ${glFileMakingHeaderInfoName}();\r
- final List<String> columnDbNameList = new ArrayList<String>();\r
- for (final java.util.Iterator ite = getDBMeta().getColumnInfoList().iterator(); ite.hasNext(); ) {\r
- final ${glColumnInfoName} columnInfo = (${glColumnInfoName})ite.next();\r
- columnDbNameList.add(columnInfo.getColumnDbName());\r
- }\r
- fileMakingHeaderInfo.setColumnNameList(columnDbNameList);\r
- fileMakingOption.setFileMakingHeaderInfo(fileMakingHeaderInfo);\r
- fileMakingSimpleFacade.makeFromRowList(filename, rowList, fileMakingOption);\r
- final ${glTokenFileOutputResultName} tokeFileOutputResult = new ${glTokenFileOutputResultName}();\r
- tokeFileOutputResult.setSelectedList(ls);\r
- return tokeFileOutputResult;\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Delegate Method\r
- // ===============\r
- /**\r
- * ${database.ImplementComment}\r
- * @return All count.\r
- */\r
- protected int callGetCountAll() {\r
- return readCount(newConditionBean());\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return All list. (NotNull)\r
- */\r
- protected List<${glEntityInterfaceName}> callGetListAll() {\r
- return readList(newConditionBean());\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @param cb Condition-bean that the type is condition-bean-interface. (NotNull)\r
- * @return Read count. (NotNull)\r
- */\r
- protected int callReadCount(${glConditionBeanInterfaceName} cb) {\r
- assertConditionBeanNotNull(cb);\r
- final Class[] types = new Class[]{cb.getClass()};\r
- final java.lang.reflect.Method mtd = getMethod(getDaoReadable().getClass(), "selectCount", types);\r
- final Object result = invoke(mtd, getDaoReadable(), new Object[]{cb});\r
- return ((Integer)result).intValue();\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @param cb Condition-bean that the type is condition-bean-interface. (NotNull)\r
- * @return Read list. If the select result is zero, it returns empty list. (NotNull)\r
- */\r
- protected List<${glEntityInterfaceName}> callReadList(${glConditionBeanInterfaceName} cb) {\r
- assertConditionBeanNotNull(cb);\r
- final Class[] types = new Class[]{cb.getClass()};\r
- final Method mtd = getMethod(getDaoReadable().getClass(), "selectList", types);\r
- final Object result = invoke(mtd, getDaoReadable(), new Object[]{cb});\r
- return (List<${glEntityInterfaceName}>)result;\r
- }\r
-\r
- private Method getMethod(Class clazz, String methodName, Class[] argTypes) {\r
- try {\r
- return clazz.getMethod(methodName, argTypes);\r
- } catch (NoSuchMethodException ex) {\r
- String msg = "class=" + clazz + " method=" + methodName + "-" + java.util.Arrays.asList(argTypes);\r
- throw new RuntimeException(msg, ex);\r
- }\r
- }\r
-\r
- private Object invoke(Method method, Object target, Object[] args) {\r
- try {\r
- return method.invoke(target, args);\r
- } catch (java.lang.reflect.InvocationTargetException ex) {\r
- Throwable t = ex.getCause();\r
- if (t instanceof RuntimeException) {\r
- throw (RuntimeException) t;\r
- }\r
- if (t instanceof Error) {\r
- throw (Error) t;\r
- }\r
- String msg = "target=" + target + " method=" + method + "-" + java.util.Arrays.asList(args);\r
- throw new RuntimeException(msg, ex);\r
- } catch (IllegalAccessException ex) {\r
- String msg = "target=" + target + " method=" + method + "-" + java.util.Arrays.asList(args);\r
- throw new RuntimeException(msg, ex);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Optimistic Lock Info\r
- // ====================\r
- protected abstract boolean hasVersionNoValue(${glEntityInterfaceName} entity);\r
- protected abstract boolean hasUpdateDateValue(${glEntityInterfaceName} entity);\r
-\r
- // ===================================================================================\r
- // General Helper\r
- // ==============\r
- /**\r
- * To lower case if the type is String.\r
- * @param obj Object. (Nullable)\r
- * @return Lower object. (Nullable)\r
- */\r
- protected Object toLowerCaseIfString(Object obj) {\r
- if (obj != null && obj instanceof String) {\r
- return ((String)obj).toLowerCase();\r
- }\r
- return obj;\r
- }\r
-\r
- /**\r
- * Get the value of line separator.\r
- * @return The value of line separator. (NotNull)\r
- */\r
- protected String getLineSeparator() {\r
- return ${glSimpleSystemUtil}.getLineSeparator();\r
- }\r
-\r
- protected <ENTITY extends ${glEntityInterfaceName}> ENTITY helpDowncastInternally(${glEntityInterfaceName} entity, Class<ENTITY> clazz) {\r
- assertObjectNotNull("entity", entity);\r
- assertObjectNotNull("clazz", clazz);\r
- try {\r
- return (ENTITY)entity;\r
- } catch (ClassCastException e) {\r
- String msg = "The entity should be " + clazz.getSimpleName() + " but it was: " + entity.getClass();\r
- throw new RuntimeException(msg, e);\r
- }\r
- }\r
-\r
- // ----------------------------------------------------------------\r
- // Assert Object\r
- // -------------\r
- /**\r
- * Assert that the object is not null.\r
- * @param variableName Variable name. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @exception IllegalArgumentException\r
- */\r
- protected void assertObjectNotNull(String variableName, Object value) {\r
- if (variableName == null) {\r
- String msg = "The value should not be null: variableName=" + variableName + " value=" + value;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (value == null) {\r
- String msg = "The value should not be null: variableName=" + variableName;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-\r
- /**\r
- * Assert that the entity is not null.\r
- * @param entity Entity. (NotNull)\r
- */\r
- protected void assertEntityNotNull(${glEntityInterfaceName} entity) {\r
- assertObjectNotNull("entity", entity);\r
- }\r
-\r
- /**\r
- * Assert that the condition-bean is not null.\r
- * @param cb Condition-bean. (NotNull)\r
- */\r
- protected void assertConditionBeanNotNull(${glPackageBaseCommonCBean}.${glConditionBeanInterfaceName} cb) {\r
- assertObjectNotNull("cb", cb);\r
- }\r
-\r
- /**\r
- * Assert that the entity has primary-key value.\r
- * @param entity Entity. (NotNull)\r
- */\r
- protected void assertEntityNotNullAndHasPrimaryKeyValue(${glEntityInterfaceName} entity) {\r
- assertEntityNotNull(entity);\r
- if (!entity.hasPrimaryKeyValue()) {\r
- String msg = "The entity must should primary-key: entity=" + entity;\r
- throw new IllegalArgumentException(msg + entity);\r
- }\r
- }\r
-\r
- // ----------------------------------------------------------------\r
- // Assert String\r
- // -------------\r
- /**\r
- * Assert that the entity is not null and not trimmed empty.\r
- * @param variableName Variable name. (NotNull)\r
- * @param value Value. (NotNull)\r
- */\r
- protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, String value) {\r
- assertObjectNotNull("variableName", variableName);\r
- assertObjectNotNull(variableName, value);\r
- if (value.trim().length() ==0) {\r
- String msg = "The value should not be empty: variableName=" + variableName + " value=" + value;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-\r
- // ----------------------------------------------------------------\r
- // Assert List\r
- // -----------\r
- /**\r
- * Assert that the list is empty.\r
- * @param ls List. (NotNull)\r
- */\r
- protected void assertListNotNullAndEmpty(List ls) {\r
- assertObjectNotNull("ls", ls);\r
- if (!ls.isEmpty()) {\r
- String msg = "The list should be empty: ls=" + ls.toString();\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-\r
- /**\r
- * Assert that the list is not empty.\r
- * @param ls List. (NotNull)\r
- */\r
- protected void assertListNotNullAndNotEmpty(List ls) {\r
- assertObjectNotNull("ls", ls);\r
- if (ls.isEmpty()) {\r
- String msg = "The list should not be empty: ls=" + ls.toString();\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-\r
- /**\r
- * Assert that the list having only one.\r
- * @param ls List. (NotNull)\r
- */\r
- protected void assertListNotNullAndHasOnlyOne(List ls) {\r
- assertObjectNotNull("ls", ls);\r
- if (ls.size() != 1) {\r
- String msg = "The list should contain only one object: ls=" + ls.toString();\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- /**\r
- * Get the selector of behavior.\r
- * @return The select of behavior. (Nullable: But normally NotNull)\r
- */\r
- protected ${glBehaviorSelectorInterfaceName} getBehaviorSelector() {\r
- return _behaviorSelector;\r
- }\r
-\r
- /**\r
- * Set the selector of behavior.\r
- * @param behaviorSelector The selector of behavior. (NotNull)\r
- */\r
- public void setBehaviorSelector(${glBehaviorSelectorInterfaceName} behaviorSelector) {\r
- this._behaviorSelector = behaviorSelector;\r
- }\r
-\r
- /**\r
- * Get the selector of DAO.\r
- * @return The select of DAO. (Nullable: But normally NotNull)\r
- */\r
- protected ${glDaoSelectorInterfaceName} getDaoSelector() {\r
- return _daoSelector;\r
- }\r
-\r
- /**\r
- * Set the selector of DAO.\r
- * @param daoSelector The selector of DAO. (NotNull)\r
- */\r
- public void setDaoSelector(${glDaoSelectorInterfaceName} daoSelector) {\r
- _daoSelector = daoSelector;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonBhv};\r
-\r
-#set ($myClassName = "${glBehaviorWritableAbstractName}")\r
-import java.util.List;\r
-import java.util.ArrayList;\r
-import java.util.Iterator;\r
-\r
-import ${glPackageBaseCommon}.${glEntityInterfaceName};\r
-import ${glPackageBaseCommonCBean}.${glConditionBeanInterfaceName};\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInterfaceName};\r
-import ${glPackageBaseCommonHelper}.${glMapStringBuilderName};\r
-import ${glPackageBaseCommonHelper}.${glMapStringBuilderImplName};\r
-\r
-import ${glPackageBaseCommonBhvBatch}.${glTokenFileReflectionOptionName};\r
-import ${glPackageBaseCommonBhvBatch}.${glTokenFileReflectionResultName};\r
-import ${glPackageBaseCommonBhvBatch}.${glTokenFileReflectionFailureName};\r
-\r
-import ${glPackageBaseCommonHelperTokenFile}.${glFileTokenName};\r
-import ${glPackageBaseCommonHelperTokenFile}.${glFileTokenizingCallbackName};\r
-import ${glPackageBaseCommonHelperTokenFile}.${glFileTokenizingRowResourceName};\r
-import ${glPackageBaseCommonHelperTokenFile}.${glFileTokenizingHeaderInfoName};\r
-import ${glPackageBaseCommonHelperTokenFile}.${glFileTokenizingOptionName};\r
-import ${glPackageBaseCommonHelperTokenFileImpl}.${glFileTokenImplName};\r
-\r
-/**\r
- * The abstract class of behavior-writable.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public abstract class ${myClassName} extends ${glBehaviorReadableAbstractName} implements ${glBehaviorWritableInterfaceName} {\r
-#if ($database.isExistCommonColumnSetupElement())\r
-\r
- /** Log instance. */\r
- private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory.getLog(${myClassName}.class);\r
-#end\r
-\r
-#if ($database.hasCommonColumnSetupResource())\r
- // =====================================================================================\r
- // Attribute\r
- // =========\r
-#foreach ($resource in $database.commonColumnSetupResourceList)\r
- /** The property of ${resource.propertyName}. */\r
- protected ${resource.className} ${resource.propertyVariableName};\r
-\r
- /**\r
- * @return The value of ${resource.propertyName}.\r
- */\r
- public ${resource.className} get${resource.propertyNameInitCap}() {\r
- return ${resource.propertyVariableName};\r
- }\r
-\r
- /**\r
- * @param ${resource.propertyName} The value of ${resource.propertyName}.\r
- */\r
- public void set${resource.propertyNameInitCap}(${resource.className} ${resource.propertyName}) {\r
- this.${resource.propertyVariableName} = ${resource.propertyName};\r
- }\r
-\r
-#end\r
-#end\r
- // ===================================================================================\r
- // Entity Update\r
- // =============\r
- // -----------------------------------------------------\r
- // Create\r
- // ------\r
- /**\r
- * Create.\r
- * @param entity Entity. (NotNull)\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyExistsException} When the entity already exists. (Unique Constraint Violation)\r
- */\r
- public void create(${glEntityInterfaceName} entity) {\r
- doCreate(entity);\r
- }\r
-\r
- protected abstract void doCreate(${glEntityInterfaceName} entity);\r
-\r
- // -----------------------------------------------------\r
- // Modify\r
- // ------\r
- /**\r
- * Modify.\r
- * @param entity Entity. (NotNull)\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyUpdatedException} When the entity has already been updated.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyExistsException} When the entity already exists. (Unique Constraint Violation)\r
- */\r
- public void modify(${glEntityInterfaceName} entity) {\r
- doModify(entity);\r
- }\r
-\r
- protected abstract void doModify(${glEntityInterfaceName} entity);\r
-\r
- /**\r
- * Modify non strict.\r
- * @param entity Entity. (NotNull)\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyExistsException} When the entity already exists. (Unique Constraint Violation)\r
- */\r
- public void modifyNonstrict(${glEntityInterfaceName} entity) {\r
- doModifyNonstrict(entity);\r
- }\r
-\r
- protected abstract void doModifyNonstrict(${glEntityInterfaceName} entity);\r
-\r
- // -----------------------------------------------------\r
- // Create or Modify\r
- // ----------------\r
- /**\r
- * ${database.ImplementComment}\r
- * @param entity Entity. This must contain primary-key value at least(Except use identity). (NotNull)\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyUpdatedException} When the entity has already been updated.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyExistsException} When the entity already exists. (Unique Constraint Violation)\r
- */\r
- public void createOrModify(${glPackageBaseCommon}.${glEntityInterfaceName} entity) {\r
- assertEntityNotNull(entity);\r
- doCreateOrUpdate(entity);\r
- }\r
-\r
- protected abstract void doCreateOrUpdate(${glEntityInterfaceName} entity);\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @param entity Entity. This must contain primary-key value at least(Except use identity). (NotNull)\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyExistsException} When the entity already exists. (Unique Constraint Violation)\r
- */\r
- public void createOrModifyNonstrict(${glPackageBaseCommon}.${glEntityInterfaceName} entity) {\r
- assertEntityNotNull(entity);\r
- doCreateOrUpdateNonstrict(entity);\r
- }\r
-\r
- protected abstract void doCreateOrUpdateNonstrict(${glEntityInterfaceName} entity);\r
-\r
- // -----------------------------------------------------\r
- // Remove\r
- // ------\r
- /**\r
- * Remove.\r
- * @param entity Entity. (NotNull)\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyUpdatedException} When the entity has already been updated.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
- */\r
- public void remove(${glPackageBaseCommon}.${glEntityInterfaceName} entity) {\r
- assertEntityNotNull(entity);\r
- callRemove(entity);\r
- }\r
-\r
- protected abstract void doRemove(${glEntityInterfaceName} entity);\r
-\r
- // ===================================================================================\r
- // Entity Update Internal Helper\r
- // =============================\r
- // -----------------------------------------------------\r
- // Update\r
- // ------\r
- protected <ENTITY extends ${glEntityInterfaceName}> void helpUpdateInternally(ENTITY entity, InternalUpdateCallback<ENTITY> callback) {\r
- assertEntityNotNull(entity);\r
- assertEntityHasVersionNoValue(entity);\r
- assertEntityHasUpdateDateValue(entity);\r
- final int updatedCount = callback.callbackDelegateUpdate(entity);\r
- if (updatedCount == 0) {\r
- String msg = "The entity was Not Found! it has already been deleted: entity=" + entity;\r
- throw new ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException}(msg);\r
- } else if (updatedCount > 1) {\r
- String msg = "The entity was Too Many! it has been duplicated. It should be the only one! But the updatedCount=" + updatedCount;\r
- msg = msg + ": entity=" + entity;\r
- throw new ${glPackageBaseCommonException}.${glEntityDuplicatedException}(msg);\r
- }\r
- }\r
-\r
- protected static interface InternalUpdateCallback<ENTITY extends ${glEntityInterfaceName}> {\r
- public int callbackDelegateUpdate(ENTITY entity);\r
- }\r
-\r
- protected <ENTITY extends ${glEntityInterfaceName}> void helpUpdateNonstrictInternally(ENTITY entity, InternalUpdateNonstrictCallback<ENTITY> callback) {\r
- assertEntityNotNull(entity);\r
- final int updatedCount = callback.callbackDelegateUpdateNonstrict(entity);\r
- if (updatedCount == 0) {\r
- String msg = "The entity was Not Found! it has already been deleted: entity=" + entity;\r
- throw new ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException}(msg);\r
- } else if (updatedCount > 1) {\r
- String msg = "The entity was Too Many! it has been duplicated. It should be the only one! But the updatedCount=" + updatedCount;\r
- msg = msg + ": entity=" + entity;\r
- }\r
- }\r
-\r
- protected static interface InternalUpdateNonstrictCallback<ENTITY extends ${glEntityInterfaceName}> {\r
- public int callbackDelegateUpdateNonstrict(ENTITY entity);\r
- }\r
-\r
- // -----------------------------------------------------\r
- // InsertOrUpdate\r
- // --------------\r
- protected <ENTITY extends ${glEntityInterfaceName}, CB_TYPE extends ${glConditionBeanInterfaceName}>\r
- void helpInsertOrUpdateInternally(ENTITY entity, InternalInsertOrUpdateCallback<ENTITY, CB_TYPE> callback) {\r
- assertEntityNotNull(entity);\r
- if (!entity.hasPrimaryKeyValue()) {\r
- callback.callbackInsert(entity);\r
- } else {\r
- RuntimeException exception = null;\r
- try {\r
- callback.callbackUpdate(entity);\r
- } catch (${glPackageBaseCommonException}.${glEntityAlreadyUpdatedException} e) {\r
- if (e.getRows() == 0) {\r
- exception = e;\r
- }\r
- } catch (${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} e) {\r
- exception = e;\r
- } catch (OptimisticLockColumnValueNullException e) {\r
- exception = e;\r
- }\r
- if (exception != null) {\r
- final CB_TYPE cb = callback.callbackNewMyConditionBean();\r
- cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString(entity));\r
- if (callback.callbackSelectCount(cb) == 0) {\r
- callback.callbackInsert(entity);\r
- } else {\r
- throw exception;\r
- }\r
- }\r
- }\r
- }\r
-\r
- protected static interface InternalInsertOrUpdateCallback<ENTITY extends ${glEntityInterfaceName}, CB_TYPE extends ${glConditionBeanInterfaceName}> {\r
- public void callbackInsert(ENTITY entity);\r
- public void callbackUpdate(ENTITY entity);\r
- public CB_TYPE callbackNewMyConditionBean();\r
- public int callbackSelectCount(CB_TYPE cb);\r
- }\r
-\r
- protected <ENTITY extends ${glEntityInterfaceName}> void helpInsertOrUpdateInternally(ENTITY entity, InternalInsertOrUpdateNonstrictCallback<ENTITY> callback) {\r
- assertEntityNotNull(entity);\r
- if (!entity.hasPrimaryKeyValue()) {\r
- callback.callbackInsert(entity);\r
- } else {\r
- try {\r
- callback.callbackUpdateNonstrict(entity);\r
- } catch (${glPackageBaseCommonException}.${glEntityAlreadyUpdatedException} e) {\r
- callback.callbackInsert(entity);\r
- } catch (${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} e) {\r
- callback.callbackInsert(entity);\r
- }\r
- }\r
- }\r
-\r
- protected static interface InternalInsertOrUpdateNonstrictCallback<ENTITY extends ${glEntityInterfaceName}> {\r
- public void callbackInsert(ENTITY entity);\r
- public void callbackUpdateNonstrict(ENTITY entity);\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Delete\r
- // ------\r
- protected <ENTITY extends ${glEntityInterfaceName}> void helpDeleteInternally(ENTITY entity, InternalDeleteCallback<ENTITY> callback) {\r
- assertEntityNotNull(entity);\r
- assertEntityHasVersionNoValue(entity);\r
- assertEntityHasUpdateDateValue(entity);\r
- final int deletedCount = callback.callbackDelegateDelete(entity);\r
- if (deletedCount == 0) {\r
- String msg = "The entity was Not Found! The entity has already been deleted: entity=" + entity;\r
- throw new ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException}(msg);\r
- } else if (deletedCount > 1) {\r
- String msg = "The deleted entity was duplicated. It should be the only one! But the deletedCount=" + deletedCount;\r
- msg = msg + ": entity=" + entity;\r
- throw new ${glPackageBaseCommonException}.${glEntityDuplicatedException}(msg);\r
- }\r
- }\r
-\r
- protected static interface InternalDeleteCallback<ENTITY extends ${glEntityInterfaceName}> {\r
- public int callbackDelegateDelete(ENTITY entity);\r
- }\r
-\r
- protected <ENTITY extends ${glEntityInterfaceName}> void helpDeleteNonstrictInternally(ENTITY entity, InternalDeleteNonstrictCallback<ENTITY> callback) {\r
- assertEntityNotNull(entity);\r
- final int deletedCount = callback.callbackDelegateDeleteNonstrict(entity);\r
- if (deletedCount == 0) {\r
- String msg = "The entity was Not Found! The entity has already been deleted: entity=" + entity;\r
- throw new ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException}(msg);\r
- } else if (deletedCount > 1) {\r
- String msg = "The deleted entity was duplicated. It should be the only one! But the deletedCount=" + deletedCount;\r
- msg = msg + ": entity=" + entity;\r
- throw new ${glPackageBaseCommonException}.${glEntityDuplicatedException}(msg);\r
- }\r
- }\r
-\r
- protected static interface InternalDeleteNonstrictCallback<ENTITY extends ${glEntityInterfaceName}> {\r
- public int callbackDelegateDeleteNonstrict(ENTITY entity);\r
- }\r
-\r
- protected <ENTITY extends ${glEntityInterfaceName}> void helpDeleteNonstrictIgnoreDeletedInternally(ENTITY entity, InternalDeleteNonstrictIgnoreDeletedCallback<ENTITY> callback) {\r
- assertEntityNotNull(entity);\r
- final int deletedCount = callback.callbackDelegateDeleteNonstrict(entity);\r
- if (deletedCount == 0) {\r
- return;\r
- } else if (deletedCount > 1) {\r
- String msg = "The deleted entity was duplicated. It should be the only one! But the deletedCount=" + deletedCount;\r
- msg = msg + ": entity=" + entity;\r
- throw new ${glPackageBaseCommonException}.${glEntityDuplicatedException}(msg);\r
- }\r
- }\r
-\r
- protected static interface InternalDeleteNonstrictIgnoreDeletedCallback<ENTITY extends ${glEntityInterfaceName}> {\r
- public int callbackDelegateDeleteNonstrict(ENTITY entity);\r
- }\r
-\r
-#set ($batchUpdateReturnType = "")\r
-#if ($database.isVersionAfter1047())\r
- #set ($batchUpdateReturnType = "int[]")\r
-#else\r
- #set ($batchUpdateReturnType = "int")\r
-#end\r
-#set ($batchUpdateReturnValueMethod = "")\r
-#if ($database.isVersionAfter1047())\r
- #set ($batchUpdateReturnValueMethod = ".length")\r
-#else\r
- #set ($batchUpdateReturnValueMethod = "")\r
-#end\r
-\r
- // ===================================================================================\r
- // Lump Update\r
- // ===========\r
- /**\r
- * Lump create the list.\r
- * @param entityList Entity list. (NotNull and NotEmpty)\r
- * @return The array of created count.\r
- */\r
- public ${batchUpdateReturnType} lumpCreate(java.util.List${database.filterGenericsString(${glEntityInterfaceName})} entityList) {\r
- assertListNotNullAndNotEmpty(entityList);\r
- return callCreateList(entityList);\r
- }\r
-\r
- /**\r
- * Lump Modify the list.\r
- * @param entityList Entity list. (NotNull and NotEmpty)\r
- * @return Modified count.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyUpdatedException} If s2dao's version is over 1.0.47 (contains 1.0.47).\r
- */\r
- public ${batchUpdateReturnType} lumpModify(java.util.List${database.filterGenericsString(${glEntityInterfaceName})} entityList) {\r
- assertListNotNullAndNotEmpty(entityList);\r
- return callModifyList(entityList);\r
- }\r
-\r
- /**\r
- * Lump remove the list.\r
- * @param entityList Entity list. (NotNull and NotEmpty)\r
- * @return Removed count.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyUpdatedException} If s2dao's version is over 1.0.47 (contains 1.0.47).\r
- */\r
- public ${batchUpdateReturnType} lumpRemove(java.util.List${database.filterGenericsString(${glEntityInterfaceName})} entityList) {\r
- assertListNotNullAndNotEmpty(entityList);\r
- return callRemoveList(entityList);\r
- }\r
-\r
- /**\r
- * Inject sequence to primary key if it needs.\r
- * @param entity Entity. (NotNull)\r
- */\r
- protected void injectSequenceToPrimaryKeyIfNeeds(${glEntityInterfaceName} entity) {\r
- final ${glDBMetaInterfaceName} dbmeta = entity.getDBMeta();\r
- if (!dbmeta.hasSequence() || dbmeta.hasTwoOrMorePrimaryKeys() || entity.hasPrimaryKeyValue()) {\r
- return;\r
- }\r
- final ${database.sequenceReturnType} sequenceValue = readNextVal();\r
- final String columnDbName = dbmeta.getPrimaryUniqueInfo().getFirstColumn().getColumnDbName();\r
- final java.util.Map${database.filterGenericsString('String, String')} map = new java.util.HashMap${database.filterGenericsString('String, String')}();\r
- map.put(columnDbName, sequenceValue.toString());\r
- dbmeta.acceptPrimaryKeyMap(entity, map);\r
- }\r
-\r
- // =====================================================================================\r
- // Token File\r
- // ==========\r
- public TokenFileReflectionExecutor tokenFileReflection() {\r
- return new TokenFileReflectionExecutor();\r
- }\r
-\r
- public class TokenFileReflectionExecutor {\r
-\r
- /**\r
- * Reflect(insert or update) token-file to this table.\r
- * @param filename Name of the file. (NotNull and NotEmpty)\r
- * @param tokenFileReflectionOption token-file-reflection-option. (NotNull and Required{delimiter and encoding})\r
- * @return Token-file-reflection-result. (NotNull)\r
- * @throws java.io.FileNotFoundException\r
- * @throws java.io.IOException\r
- */\r
- public ${glTokenFileReflectionResultName} reflectTokenFile(String filename, ${glTokenFileReflectionOptionName} tokenFileReflectionOption) throws java.io.FileNotFoundException, java.io.IOException {\r
- assertStringNotNullAndNotTrimmedEmpty("filename", filename);\r
- assertFileTokenReflectionOption(tokenFileReflectionOption);\r
-\r
- final ${glTokenFileReflectionResultName} result = buildTokenFileReflectionResult();\r
- final ${glFileTokenizingCallbackName} fileTokenizingCallback = buildFileTokenReflectionFileTokenizingCallback(tokenFileReflectionOption, result);\r
- final ${glFileTokenizingOptionName} fileTokenizingOption = buildFileTokenReflectionFileTokenizingOption(tokenFileReflectionOption);\r
- final ${glFileTokenName} fileToken = new ${glFileTokenImplName}();\r
- fileToken.tokenize(filename, fileTokenizingCallback, fileTokenizingOption);\r
- return result;\r
- }\r
-\r
- /**\r
- * Reflect(insert or update) token-file to this table.\r
- * @param inputStream Input stream. (NotNull and NotClosed)\r
- * @param tokenFileReflectionOption token-file-reflection-option. (NotNull and Required{delimiter and encoding})\r
- * @return Token-file-reflection-result. (NotNull)\r
- * @throws java.io.FileNotFoundException\r
- * @throws java.io.IOException\r
- */\r
- public ${glTokenFileReflectionResultName} reflectTokenFile(java.io.InputStream inputStream, ${glTokenFileReflectionOptionName} tokenFileReflectionOption) throws java.io.FileNotFoundException, java.io.IOException {\r
- assertObjectNotNull("inputStream", inputStream);\r
- assertFileTokenReflectionOption(tokenFileReflectionOption);\r
-\r
- final ${glTokenFileReflectionResultName} result = buildTokenFileReflectionResult();\r
- final ${glFileTokenizingCallbackName} fileTokenizingCallback = buildFileTokenReflectionFileTokenizingCallback(tokenFileReflectionOption, result);\r
- final ${glFileTokenizingOptionName} fileTokenizingOption = buildFileTokenReflectionFileTokenizingOption(tokenFileReflectionOption);\r
- final ${glFileTokenName} fileToken = new ${glFileTokenImplName}();\r
- fileToken.tokenize(inputStream, fileTokenizingCallback, fileTokenizingOption);\r
- return result;\r
- }\r
-\r
- protected void assertFileTokenReflectionOption(${glTokenFileReflectionOptionName} tokenFileReflectionOption) {\r
- assertObjectNotNull("tokenFileReflectionOption", tokenFileReflectionOption);\r
-\r
- final String encoding = tokenFileReflectionOption.getEncoding();\r
- final String delimiter = tokenFileReflectionOption.getDelimiter();\r
- assertStringNotNullAndNotTrimmedEmpty("encoding", encoding);\r
- assertObjectNotNull("delimiter", delimiter);\r
- }\r
-\r
- protected ${glTokenFileReflectionResultName} buildTokenFileReflectionResult() {\r
- final ${glTokenFileReflectionResultName} result = new ${glTokenFileReflectionResultName}();\r
- final java.util.List${database.filterGenericsString(${glTokenFileReflectionFailureName})} failureList = new java.util.ArrayList${database.filterGenericsString(${glTokenFileReflectionFailureName})}();\r
- result.setFailureList(failureList);\r
- return result;\r
- }\r
-\r
- protected ${glFileTokenizingCallbackName} buildFileTokenReflectionFileTokenizingCallback(${glTokenFileReflectionOptionName} tokenFileReflectionOption, final ${glTokenFileReflectionResultName} result) throws java.io.FileNotFoundException, java.io.IOException {\r
- assertObjectNotNull("tokenFileReflectionOption", tokenFileReflectionOption);\r
-\r
- final String encoding = tokenFileReflectionOption.getEncoding();\r
- final String delimiter = tokenFileReflectionOption.getDelimiter();\r
- final boolean interruptIfError = tokenFileReflectionOption.isInterruptIfError();\r
- assertStringNotNullAndNotTrimmedEmpty("encoding", encoding);\r
- assertObjectNotNull("delimiter", delimiter);\r
- final java.util.List${database.filterGenericsString(${glTokenFileReflectionFailureName})} failureList = result.getFailureList();\r
- assertObjectNotNull("failureList", failureList);\r
-\r
- final ${glFileTokenizingCallbackName} fileTokenizingCallback = new ${glFileTokenizingCallbackName}() {\r
- public void handleRowResource(${glFileTokenizingRowResourceName} fileTokenizingRowResource) {\r
- final ${glFileTokenizingHeaderInfoName} fileTokenizingHeaderInfo = fileTokenizingRowResource.getFileTokenizingHeaderInfo();\r
- final java.util.List${database.filterGenericsString('String')} columnNameList = fileTokenizingHeaderInfo.getColumnNameList();\r
- final java.util.List${database.filterGenericsString('String')} valueList = fileTokenizingRowResource.getValueList();\r
-\r
- // Set up columnNameList of result object.\r
- if (result.getColumnNameList() == null) {\r
- result.setColumnNameList(columnNameList);\r
- }\r
-\r
- ${glEntityInterfaceName} entity = null;\r
- try {\r
- // Create entity by the list of value composed of String.\r
- entity = createEntityByStringValueList(columnNameList, valueList);\r
-\r
- // Create or modify as non-strict.\r
- doCreateOrUpdateNonstrict(entity);\r
-\r
- // Increment successCount of result object.\r
- result.incrementSuccessCount();\r
- } catch (RuntimeException e) {\r
- if (interruptIfError) {\r
- throw e;\r
- }\r
- final ${glTokenFileReflectionFailureName} failure = new ${glTokenFileReflectionFailureName}();\r
- failure.setColumnNameList(columnNameList);\r
- failure.setValueList(valueList);\r
- failure.setRowString(fileTokenizingRowResource.getRowString());\r
- failure.setRowNumber(fileTokenizingRowResource.getRowNumber());\r
- failure.setLineNumber(fileTokenizingRowResource.getLineNumber());\r
- if (entity != null) {\r
- failure.setEntity(entity);\r
- }\r
- failure.setException(e);\r
- failureList.add(failure);\r
- }\r
- }\r
- };\r
- return fileTokenizingCallback;\r
- }\r
-\r
- protected ${glEntityInterfaceName} createEntityByStringValueList(java.util.List${database.filterGenericsString('String')} columnNameList, java.util.List${database.filterGenericsString('String')} valueList) {\r
- final ${glMapStringBuilderName} builder = new ${glMapStringBuilderImplName}();\r
- builder.setMsMapMark(MAP_STRING_MAP_MARK);\r
- builder.setMsStartBrace(MAP_STRING_START_BRACE);\r
- builder.setMsEndBrace(MAP_STRING_END_BRACE);\r
- builder.setMsDelimiter(MAP_STRING_DELIMITER);\r
- builder.setMsEqual(MAP_STRING_EQUAL);\r
- builder.setColumnNameList(columnNameList);\r
- final String mapString = builder.buildFromList(valueList);\r
-\r
- final ${glEntityInterfaceName} entity = getDBMeta().newEntity();\r
- getDBMeta().acceptColumnValueMapString(entity, mapString);\r
- return entity;\r
- }\r
-\r
- protected ${glFileTokenizingOptionName} buildFileTokenReflectionFileTokenizingOption(${glTokenFileReflectionOptionName} tokenFileReflectionOption) throws java.io.FileNotFoundException, java.io.IOException {\r
- assertObjectNotNull("tokenFileReflectionOption", tokenFileReflectionOption);\r
-\r
- final String encoding = tokenFileReflectionOption.getEncoding();\r
- final String delimiter = tokenFileReflectionOption.getDelimiter();\r
- assertStringNotNullAndNotTrimmedEmpty("encoding", encoding);\r
- assertObjectNotNull("delimiter", delimiter);\r
-\r
- final ${glFileTokenizingOptionName} fileTokenizingOption = new ${glFileTokenizingOptionName}();\r
- fileTokenizingOption.setEncoding(encoding);\r
- fileTokenizingOption.setDelimiter(delimiter);\r
- if (tokenFileReflectionOption.isHandleEmptyAsNull()) {\r
- fileTokenizingOption.handleEmptyAsNull();\r
- }\r
- return fileTokenizingOption;\r
- }\r
- }\r
-\r
-\r
- // =====================================================================================\r
- // Delegate Method\r
- // ===============\r
- // -----------------------------------------------------\r
- // Insert\r
- // ------\r
- /**\r
- * ${database.ImplementComment}\r
- * @param entity Entity that the type is entity interface. (NotNull)\r
- * @return Inserted count.\r
- */\r
- protected int callCreate(${glEntityInterfaceName} entity) {\r
- if (!processBeforeInsert(entity)) { return 1;/*as Normal End*/ }\r
- return getDaoWritable().create(entity);\r
- }\r
-\r
- /**\r
- * Process before insert.\r
- * @param entity Entity that the type is entity interface. (NotNull)\r
- * @return Execution Determination. (true: execute / false: non)\r
- */\r
- protected boolean processBeforeInsert(${glEntityInterfaceName} entity) {\r
- if (!determineExecuteInsert(entity)) { return false; }\r
- assertEntityNotNull(entity);// If this table use identity, the entity does not have primary-key.\r
- frameworkFilterEntityOfInsert(entity);\r
- filterEntityOfInsert(entity);\r
- assertEntityOfInsert(entity);\r
- return true;\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Update\r
- // ------\r
- /**\r
- * ${database.ImplementComment}\r
- * {modified only}\r
- * @param entity Entity that the type is entity interface. (NotNull)\r
- * @return Updated count.\r
- */\r
- protected int callModify(${glEntityInterfaceName} entity) {\r
- if (!processBeforeUpdate(entity)) { return 1;/*as Normal End*/ }\r
- return getDaoWritable().modifyModifiedOnly(entity);\r
- }\r
-\r
- /**\r
- * Process before update.\r
- * @param entity Entity that the type is entity interface. (NotNull)\r
- * @return Execution Determination. (true: execute / false: non)\r
- */\r
- protected boolean processBeforeUpdate(${glEntityInterfaceName} entity) {\r
- if (!determineExecuteUpdate(entity)) { return false; }\r
- assertEntityNotNullAndHasPrimaryKeyValue(entity);\r
- frameworkFilterEntityOfUpdate(entity);\r
- filterEntityOfUpdate(entity);\r
- assertEntityOfUpdate(entity);\r
- return true;\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Delete\r
- // ------\r
- /**\r
- * ${database.ImplementComment}\r
- * @param entity Entity that the type is entity interface. (NotNull)\r
- * @return Deleted count.\r
- */\r
- protected int callRemove(${glEntityInterfaceName} entity) {\r
- if (!processBeforeDelete(entity)) { return 1;/*as Normal End*/ }\r
- return getDaoWritable().remove(entity);\r
- }\r
-\r
- /**\r
- * Process before delete.\r
- * @param entity Entity that the type is entity interface. (NotNull)\r
- * @return Execution Determination. (true: execute / false: non)\r
- */\r
- protected boolean processBeforeDelete(${glEntityInterfaceName} entity) {\r
- if (!determineExecuteDelete(entity)) { return false; }\r
- assertEntityNotNullAndHasPrimaryKeyValue(entity);\r
- frameworkFilterEntityOfDelete(entity);\r
- filterEntityOfDelete(entity);\r
- assertEntityOfDelete(entity);\r
- return true;\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Pre-Process Insert\r
- // ------------------\r
- /**\r
- * Determine execution of insert.\r
- * @param entity Entity. (NotNull)\r
- * @return Execution Determination. (true: execute / false: non)\r
- */\r
- protected boolean determineExecuteInsert(${glEntityInterfaceName} entity) {\r
- return true;\r
- }\r
-\r
- /**\r
- * {Framework Method} Filter the entity of insert.\r
- * @param targetEntity Target entity that the type is entity interface. (NotNull)\r
- */\r
- protected void frameworkFilterEntityOfInsert(${glEntityInterfaceName} targetEntity) {\r
-#if ($database.isAvailableBehaviorInsertSequenceInjection())\r
- injectSequenceToPrimaryKeyIfNeeds(targetEntity);\r
-#end\r
- setupCommonColumnOfInsertIfNeeds(targetEntity);\r
- }\r
-\r
- /**\r
- * Set up common columns of insert if it needs.\r
- * @param targetEntity Target entity that the type is entity interface. (NotNull)\r
- */\r
- protected void setupCommonColumnOfInsertIfNeeds(${glEntityInterfaceName} targetEntity) {\r
-#if ($database.isExistCommonColumnSetupElement())\r
- if (!(targetEntity instanceof ${glPackageBaseCommon}.${glEntityDefinedCommonColumnInterfaceName})) {\r
- return;\r
- }\r
- final ${glPackageBaseCommon}.${glEntityDefinedCommonColumnInterfaceName} entity = (${glPackageBaseCommon}.${glEntityDefinedCommonColumnInterfaceName})targetEntity;\r
- if (!entity.canCommonColumnAutoSetup()) {\r
- return;\r
- }\r
- if (_log.isDebugEnabled()) {\r
- String msg = "...Filtering entity of INSERT about the column columns of " + getTableDbName();\r
- msg = msg + ": entity=" + entity.getDBMeta().extractPrimaryKeyMapString(entity, "{", "}", ", ", "=");\r
- _log.debug(msg);\r
- }\r
-#foreach ($columnName in ${database.commonColumnNameList})\r
- #set ($filteredColumnName = ${database.filterCommonColumn(${columnName})})\r
- #set ($entityCommonColumnMap = ${database.commonColumnMap})\r
- #set ($columnType = ${entityCommonColumnMap.get(${columnName})})\r
- #set ($javaNative = ${database.convertJavaNativeByJdbcType(${columnType})})\r
- #set ($javaName = ${database.convertJavaNameByJdbcNameAsColumn(${filteredColumnName})})\r
- #set ($uncapitalisedJavaName = ${database.convertUncapitalisedJavaNameByJdbcNameAsColumn(${filteredColumnName})})\r
- #if (${database.containsValidColumnNameKeyCommonColumnSetupBeforeInsertInterceptorLogicMap(${columnName})})\r
- #set ($logic = ${database.getCommonColumnSetupBeforeInsertInterceptorLogicByColumnName(${columnName})})\r
- #if ($database.isCommonColumnSetupInvokingLogic($logic))\r
- #set ($filteredLogic = $database.removeCommonColumnSetupInvokingMark($logic))\r
-\r
- ${filteredLogic}\r
- #else\r
-\r
- final ${javaNative} ${uncapitalisedJavaName} = ${logic};\r
- entity.set${javaName}(${uncapitalisedJavaName});\r
- #end\r
- #end\r
-#end\r
-#end\r
- }\r
- \r
- /**\r
- * Filter the entity of insert.\r
- * @param targetEntity Target entity that the type is entity interface. (NotNull)\r
- */\r
- protected void filterEntityOfInsert(${glEntityInterfaceName} targetEntity) {\r
- }\r
-\r
- /**\r
- * Assert the entity of insert.\r
- * @param entity Entity that the type is entity interface. (NotNull)\r
- */\r
- protected void assertEntityOfInsert(${glEntityInterfaceName} entity) {\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Pre-Process Update\r
- // ------------------\r
- /**\r
- * Determine execution of update.\r
- * @param entity Entity. (NotNull)\r
- * @return Execution Determination. (true: execute / false: non)\r
- */\r
- protected boolean determineExecuteUpdate(${glEntityInterfaceName} entity) {\r
- return true;\r
- }\r
-\r
- /**\r
- * {Framework Method} Filter the entity of update.\r
- * @param targetEntity Target entity that the type is entity interface. (NotNull)\r
- */\r
- protected void frameworkFilterEntityOfUpdate(${glEntityInterfaceName} targetEntity) {\r
- setupCommonColumnOfUpdateIfNeeds(targetEntity);\r
- }\r
-\r
- /**\r
- * Set up common columns of update if it needs.\r
- * @param targetEntity Target entity that the type is entity interface. (NotNull)\r
- */\r
- protected void setupCommonColumnOfUpdateIfNeeds(${glEntityInterfaceName} targetEntity) {\r
-#if ($database.isExistCommonColumnSetupElement())\r
- if (!(targetEntity instanceof ${glPackageBaseCommon}.${glEntityDefinedCommonColumnInterfaceName})) {\r
- return;\r
- }\r
- final ${glPackageBaseCommon}.${glEntityDefinedCommonColumnInterfaceName} entity = (${glPackageBaseCommon}.${glEntityDefinedCommonColumnInterfaceName})targetEntity;\r
- if (!entity.canCommonColumnAutoSetup()) {\r
- return;\r
- }\r
- if (_log.isDebugEnabled()) {\r
- String msg = "...Filtering entity of UPDATE about the column columns of " + getTableDbName();\r
- msg = msg + ": entity=" + entity.getDBMeta().extractPrimaryKeyMapString(entity, "{", "}", ", ", "=");\r
- _log.debug(msg);\r
- }\r
-#foreach ($columnName in ${database.commonColumnNameList})\r
- #set ($filteredColumnName = ${database.filterCommonColumn(${columnName})})\r
- #set ($entityCommonColumnMap = ${database.CommonColumnMap})\r
- #set ($columnType = ${entityCommonColumnMap.get(${columnName})})\r
- #set ($javaNative = ${database.convertJavaNativeByJdbcType(${columnType})})\r
- #set ($javaName = ${database.convertJavaNameByJdbcNameAsColumn(${filteredColumnName})})\r
- #set ($uncapitalisedJavaName = ${database.convertUncapitalisedJavaNameByJdbcNameAsColumn(${filteredColumnName})})\r
- #if (${database.containsValidColumnNameKeyCommonColumnSetupBeforeUpdateInterceptorLogicMap(${columnName})})\r
- #set ($logic = ${database.getCommonColumnSetupBeforeUpdateInterceptorLogicByColumnName(${columnName})})\r
- #if ($database.isCommonColumnSetupInvokingLogic($logic))\r
- #set ($filteredLogic = $database.removeCommonColumnSetupInvokingMark($logic))\r
-\r
- ${filteredLogic}\r
- #else\r
-\r
- final ${javaNative} ${uncapitalisedJavaName} = ${logic};\r
- entity.set${javaName}(${uncapitalisedJavaName});\r
- #end\r
- #end\r
-#end\r
-#end\r
- }\r
- \r
- /**\r
- * Filter the entity of update.\r
- * @param targetEntity Target entity that the type is entity interface. (NotNull)\r
- */\r
- protected void filterEntityOfUpdate(${glEntityInterfaceName} targetEntity) {\r
- }\r
-\r
- /**\r
- * Assert the entity of update.\r
- * @param entity Entity that the type is entity interface. (NotNull)\r
- */\r
- protected void assertEntityOfUpdate(${glEntityInterfaceName} entity) {\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Pre-Process Delete\r
- // ------------------\r
- /**\r
- * Determine execution of delete.\r
- * @param entity Entity. (NotNull)\r
- * @return Execution Determination. (true: execute / false: non)\r
- */\r
- protected boolean determineExecuteDelete(${glEntityInterfaceName} entity) {\r
- return true;\r
- }\r
-\r
- /**\r
- * {Framework Method} Filter the entity of delete.\r
- * @param targetEntity Target entity that the type is entity interface. (NotNull)\r
- */\r
- protected void frameworkFilterEntityOfDelete(${glEntityInterfaceName} targetEntity) {\r
- }\r
- \r
- /**\r
- * Filter the entity of delete.\r
- * @param targetEntity Target entity that the type is entity interface. (NotNull)\r
- */\r
- protected void filterEntityOfDelete(${glEntityInterfaceName} targetEntity) {\r
- }\r
-\r
- /**\r
- * Assert the entity of delete.\r
- * @param entity Entity that the type is entity interface. (NotNull)\r
- */\r
- protected void assertEntityOfDelete(${glEntityInterfaceName} entity) {\r
- }\r
-\r
-#set ($batchUpdateReturnType = "")\r
-#if ($database.isVersionAfter1047())\r
- #set ($batchUpdateReturnType = "int[]")\r
-#else\r
- #set ($batchUpdateReturnType = "int")\r
-#end\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @param entityList Entity list that the type is entity interface. (NotNull)\r
- * @return Inserted count.\r
- */\r
- public ${batchUpdateReturnType} callCreateList(java.util.List${database.filterGenericsString(${glEntityInterfaceName})} entityList) {\r
- assertObjectNotNull("entityList", entityList);\r
- helpFilterBeforeInsertInternally(entityList);\r
- return getDaoWritable().createList(entityList);\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @param entityList Entity list that the type is entity interface. (NotNull)\r
- * @return Updated count.\r
- */\r
- public ${batchUpdateReturnType} callModifyList(java.util.List${database.filterGenericsString(${glEntityInterfaceName})} entityList) {\r
- assertObjectNotNull("entityList", entityList);\r
- helpFilterBeforeUpdateInternally(entityList);\r
- return getDaoWritable().modifyList(entityList);\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @param entityList Entity list that the type is entity interface. (NotNull)\r
- * @return Deleted count.\r
- */\r
- public ${batchUpdateReturnType} callRemoveList(java.util.List${database.filterGenericsString(${glEntityInterfaceName})} entityList) {\r
- assertObjectNotNull("entityList", entityList);\r
- helpFilterBeforeDeleteInternally(entityList);\r
- return getDaoWritable().removeList(entityList);\r
- }\r
-\r
- protected void assertEntityHasVersionNoValue(${glEntityInterfaceName} entity) {\r
- if (!getDBMeta().hasVersionNo()) {\r
- return;\r
- }\r
- if (hasVersionNoValue(entity)) {\r
- return;\r
- }\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The value of 'version no' on the entity was Not Found!" + getLineSeparator() + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "Please confirm the existence of the value of 'version no' on the entity." + getLineSeparator();\r
- msg = msg + "You called the method in which the check for optimistic lock is indispensable. " + getLineSeparator();\r
- msg = msg + "So 'version no' is required on the entity. " + getLineSeparator();\r
- msg = msg + "In addition, please confirm the necessity of optimistic lock. It might possibly be unnecessary." + getLineSeparator() + getLineSeparator();\r
- msg = msg + "[Entity]" + getLineSeparator();\r
- msg = msg + "entity to string = " + entity + getLineSeparator();\r
- msg = msg + "entity to map = " + entity.getDBMeta().convertToColumnValueMap(entity) + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */" + getLineSeparator();\r
- throw new OptimisticLockColumnValueNullException(msg);\r
- }\r
-\r
- protected void assertEntityHasUpdateDateValue(${glEntityInterfaceName} entity) {\r
- if (!getDBMeta().hasUpdateDate()) {\r
- return;\r
- }\r
- if (hasUpdateDateValue(entity)) {\r
- return;\r
- }\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The value of 'update date' on the entity was Not Found!" + getLineSeparator() + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "Please confirm the existence of the value of 'update date' on the entity." + getLineSeparator();\r
- msg = msg + "You called the method in which the check for optimistic lock is indispensable. " + getLineSeparator();\r
- msg = msg + "So 'update date' is required on the entity. " + getLineSeparator();\r
- msg = msg + "In addition, please confirm the necessity of optimistic lock. It might possibly be unnecessary." + getLineSeparator() + getLineSeparator();\r
- msg = msg + "[Entity]" + getLineSeparator();\r
- msg = msg + "entity to string = " + entity + getLineSeparator();\r
- msg = msg + "entity to map = " + entity.getDBMeta().convertToColumnValueMap(entity) + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */" + getLineSeparator();\r
- throw new OptimisticLockColumnValueNullException(msg);\r
- }\r
-\r
- public static class OptimisticLockColumnValueNullException extends RuntimeException {\r
- private static final long serialVersionUID = 1L;\r
- public OptimisticLockColumnValueNullException(String msg) {\r
- super(msg);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Delegate Method Internal Helper\r
- // ===============================\r
- protected <ENTITY extends ${glEntityInterfaceName}> List<ENTITY> helpFilterBeforeInsertInternally(List<ENTITY> entityList) {\r
- final List<ENTITY> filteredList = new ArrayList<ENTITY>();\r
- for (final Iterator<ENTITY> ite = entityList.iterator(); ite.hasNext(); ) {\r
- final ENTITY entity = ite.next();\r
- if (!processBeforeInsert(entity)) { continue; }\r
- filteredList.add(entity);\r
- }\r
- return filteredList;\r
- }\r
-\r
- protected <ENTITY extends ${glEntityInterfaceName}> List<ENTITY> helpFilterBeforeUpdateInternally(List<ENTITY> entityList) {\r
- final List<ENTITY> filteredList = new ArrayList<ENTITY>();\r
- for (final Iterator<ENTITY> ite = entityList.iterator(); ite.hasNext(); ) {\r
- final ENTITY entity = ite.next();\r
- if (!processBeforeUpdate(entity)) { continue; }\r
- filteredList.add(entity);\r
- }\r
- return filteredList;\r
- }\r
-\r
- protected <ENTITY extends ${glEntityInterfaceName}> List<ENTITY> helpFilterBeforeDeleteInternally(List<ENTITY> entityList) {\r
- final List<ENTITY> filteredList = new ArrayList<ENTITY>();\r
- for (final Iterator<ENTITY> ite = entityList.iterator(); ite.hasNext(); ) {\r
- final ENTITY entity = ite.next();\r
- if (!processBeforeDelete(entity)) { continue; }\r
- filteredList.add(entity);\r
- }\r
- return filteredList;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonBhv};\r
-\r
-import ${glPackageBaseCommon}.${glDaoReadableInterfaceName};\r
-import ${glPackageBaseCommon}.${glEntityInterfaceName};\r
-import ${glPackageBaseCommonCBean}.${glConditionBeanInterfaceName};\r
-import ${glPackageBaseCommonCBean}.${glListResultBeanName};\r
-import ${glPackageBaseCommonCBean}.${glPagingResultBeanName};\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInterfaceName};\r
-\r
-/**\r
- * The interface of behavior-readable.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glBehaviorReadableInterfaceName} {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- /** Map-string map-mark. */\r
- public static final String MAP_STRING_MAP_MARK = "map:";\r
-\r
- /** Map-string list-mark. */\r
- public static final String MAP_STRING_LIST_MARK = "list:";\r
-\r
- /** Map-string start-brace. */\r
- public static final String MAP_STRING_START_BRACE = "${database.extractAcceptStartBrace}";\r
-\r
- /** Map-string end-brace. */\r
- public static final String MAP_STRING_END_BRACE = "${database.extractAcceptEndBrace}";\r
-\r
- /** Map-string delimiter. */\r
- public static final String MAP_STRING_DELIMITER = "${database.extractAcceptDelimiter}";\r
-\r
- /** Map-string equal. */\r
- public static final String MAP_STRING_EQUAL = "${database.extractAcceptEqual}";\r
-\r
- // ===================================================================================\r
- // Table name\r
- // ==========\r
- /**\r
- * Get table db-name.\r
- * @return Table db-name. (NotNull)\r
- */\r
- public String getTableDbName();\r
-\r
- // ===================================================================================\r
- // DBMeta\r
- // ======\r
- /**\r
- * Get dbmeta.\r
- * @return DBMeta. (NotNull)\r
- */\r
- public ${glDBMetaInterfaceName} getDBMeta();\r
-\r
- // ===================================================================================\r
- // Dao Accessor\r
- // ============\r
- /**\r
- * Get dao-readable.\r
- * @return Dao-readable. (NotNull)\r
- */\r
- public ${glDaoReadableInterfaceName} getDaoReadable();\r
-\r
- // ===================================================================================\r
- // New Instance\r
- // ============\r
- /**\r
- * New entity.\r
- * @return Entity. (NotNull)\r
- */\r
- public ${glEntityInterfaceName} newEntity();\r
-\r
- /**\r
- * New condition-bean.\r
- * @return Condition-bean. (NotNull)\r
- */\r
- public ${glConditionBeanInterfaceName} newConditionBean();\r
-\r
- // ===================================================================================\r
- // Basic Get All\r
- // =============\r
- /**\r
- * Get count all.\r
- * @return Count all.\r
- */\r
- public int getCountAll();\r
-\r
- // ===================================================================================\r
- // Basic Read Count\r
- // ================\r
- /**\r
- * Read count by condition-bean.\r
- * <pre>\r
- * If the argument 'condition-bean' is effective about fetch-scope,\r
- * this method invoke select count ignoring the fetch-scope.\r
- * </pre>\r
- * @param cb Condition-bean. This condition-bean should not be set up about fetch-scope. (NotNull)\r
- * @return Read count. (NotNull)\r
- */\r
- public int readCount(${glConditionBeanInterfaceName} cb);\r
-\r
- // ===================================================================================\r
- // Basic Read Entity\r
- // =================\r
- /**\r
- * Read entity by condition-bean.\r
- * @param cb Condition-bean. (NotNull)\r
- * @return Read entity. (Nullalble)\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
- */\r
- public ${glEntityInterfaceName} readEntity(${glConditionBeanInterfaceName} cb);\r
-\r
- /**\r
- * Read simple entity by condition-bean with deleted check.\r
- * @param ${glAttachedCBArgsVariableName} Condition-bean. (NotNull)\r
- * @return Read entity. (NotNull)\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
- */\r
- public ${glEntityInterfaceName} readEntityWithDeletedCheck(${glConditionBeanInterfaceName} ${glAttachedCBArgsVariableName});\r
-\r
- // ===================================================================================\r
- // Basic Read List\r
- // ===============\r
- /**\r
- * Read list as result-bean.\r
- * @param ${glAttachedCBArgsVariableName} Condition-bean. (NotNull)\r
- * @return List-result-bean. If the select result is zero, it returns empty list. (NotNull)\r
- */\r
- public ${glListResultBeanName}${database.filterGenericsString(${glEntityInterfaceName})} readList(${glConditionBeanInterfaceName} ${glAttachedCBArgsVariableName});\r
-\r
- /**\r
- * Read page as result-bean.\r
- * @param ${glAttachedCBArgsVariableName} Condition-bean. (NotNull)\r
- * @return Read page. (NotNull)\r
- */\r
- public ${glPagingResultBeanName}${database.filterGenericsString(${glEntityInterfaceName})} readPage(final ${glConditionBeanInterfaceName} ${glAttachedCBArgsVariableName});\r
-\r
- // ===================================================================================\r
- // Sequence\r
- // ========\r
- /**\r
- * ${database.ImplementComment}\r
- * @return The value of sequence. (NotNull)\r
- */\r
- public ${database.sequenceReturnType} readNextVal();\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonBhv};\r
-\r
-import ${glPackageBaseCommon}.${glDaoWritableInterfaceName};\r
-import ${glPackageBaseCommon}.${glEntityInterfaceName};\r
-\r
-/**\r
- * The interface of behavior-writable.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glBehaviorWritableInterfaceName} extends ${glBehaviorReadableInterfaceName} {\r
-\r
- /**\r
- * Get dao-writable.\r
- * @return Dao-writable. (NotNull)\r
- */\r
- public ${glDaoWritableInterfaceName} getDaoWritable();\r
-\r
- // =====================================================================================\r
- // Basic Entity Update\r
- // ===================\r
- /**\r
- * Create.\r
- * @param entity Entity. (NotNull)\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyExistsException} When the entity already exists. (Unique Constraint Violation)\r
- */\r
- public void create(${glPackageBaseCommon}.${glEntityInterfaceName} entity);\r
-\r
- /**\r
- * Modify.\r
- * @param entity Entity. (NotNull)\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyUpdatedException} When the entity has already been updated.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyExistsException} When the entity already exists. (Unique Constraint Violation)\r
- */\r
- public void modify(${glPackageBaseCommon}.${glEntityInterfaceName} entity);\r
-\r
- /**\r
- * Modify non-strict.\r
- * @param entity Entity. (NotNull)\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyExistsException} When the entity already exists. (Unique Constraint Violation)\r
- */\r
- public void modifyNonstrict(${glEntityInterfaceName} entity);\r
-\r
- /**\r
- * Create or modify. <br />\r
- * {modify: modified only} <br />\r
- * This method is faster than createOrModifyAfterSelect().\r
- * @param entity Entity. This must contain primary-key value at least(Except use identity). (NotNull)\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyUpdatedException} When the entity has already been updated.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyExistsException} When the entity already exists. (Unique Constraint Violation)\r
- */\r
- public void createOrModify(${glPackageBaseCommon}.${glEntityInterfaceName} entity);\r
-\r
- /**\r
- * Create or modify non-strict. <br />\r
- * {modify: modified only} <br />\r
- * This method is faster than createOrModifyAfterSelect().\r
- * @param entity Entity. This must contain primary-key value at least(Except use identity). (NotNull)\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyExistsException} When the entity already exists. (Unique Constraint Violation)\r
- */\r
- public void createOrModifyNonstrict(${glPackageBaseCommon}.${glEntityInterfaceName} entity);\r
-\r
- /**\r
- * Remove.\r
- * @param entity Entity. (NotNull)\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyUpdatedException} When the entity has already been updated.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted.\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
- */\r
- public void remove(${glPackageBaseCommon}.${glEntityInterfaceName} entity);\r
-\r
-#set ($batchUpdateReturnType = "")\r
-#if ($database.isVersionAfter1047())\r
- #set ($batchUpdateReturnType = "int[]")\r
-#else\r
- #set ($batchUpdateReturnType = "int")\r
-#end\r
-\r
- // =====================================================================================\r
- // Basic Batch Update\r
- // ==================\r
- /**\r
- * Lump create the list.\r
- * @param entityList Entity-list. (NotNull and NotEmpty)\r
- * @return The array of created count.\r
- */\r
- public ${batchUpdateReturnType} lumpCreate(java.util.List${database.filterGenericsString(${glEntityInterfaceName})} entityList);\r
-\r
- /**\r
- * Lump Modify the list.\r
- * @param entityList Entity-list. (NotNull and NotEmpty)\r
- * @return Modified count.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyUpdatedException} When the entity has already been updated. And Only when s2dao's version is over 1.0.47 (contains 1.0.47).\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
- */\r
- public ${batchUpdateReturnType} lumpModify(java.util.List${database.filterGenericsString(${glEntityInterfaceName})} entityList);\r
-\r
- /**\r
- * Lump remove the list.\r
- * @param entityList Entity-list. (NotNull and NotEmpty)\r
- * @return Removed count.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyUpdatedException} When the entity has already been updated. And Only when s2dao's version is over 1.0.47 (contains 1.0.47).\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity has been duplicated.\r
- */\r
- public ${batchUpdateReturnType} lumpRemove(java.util.List${database.filterGenericsString(${glEntityInterfaceName})} entityList);\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonBhvBatch};\r
-\r
-import ${glPackageBaseCommonHelperTokenFile}.${glFileMakingOptionName};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glTokenFileOutputOptionName} {\r
-\r
- // =====================================================================================\r
- // Attribute\r
- // =========\r
- protected ${glFileMakingOptionName} _fileMakingOption = new ${glFileMakingOptionName}();\r
-\r
- // =====================================================================================\r
- // Easy-to-Use\r
- // ===========\r
- public ${glTokenFileOutputOptionName} delimitateByComma() {\r
- _fileMakingOption.delimitateByComma();\r
- return this;\r
- }\r
-\r
- public ${glTokenFileOutputOptionName} delimitateByTab() {\r
- _fileMakingOption.delimitateByTab();\r
- return this;\r
- }\r
-\r
- public ${glTokenFileOutputOptionName} encodeAsUTF8() {\r
- _fileMakingOption.encodeAsUTF8();\r
- return this;\r
- }\r
-\r
- public ${glTokenFileOutputOptionName} encodeAsWindows31J() {\r
- _fileMakingOption.encodeAsWindows31J();\r
- return this;\r
- }\r
-\r
- public ${glTokenFileOutputOptionName} separateCrLf() {\r
- _fileMakingOption.separateCrLf();\r
- return this;\r
- }\r
-\r
- public ${glTokenFileOutputOptionName} separateLf() {\r
- _fileMakingOption.separateLf();\r
- return this;\r
- }\r
-\r
- public ${glTokenFileOutputOptionName} goodByeDoubleQuotation() {\r
- _fileMakingOption.goodByeDoubleQuotation();\r
- return this;\r
- }\r
-\r
- // =====================================================================================\r
- // Accessor\r
- // ========\r
- public String getEncoding() {\r
- return _fileMakingOption.getEncoding();\r
- }\r
-\r
- public void setEncoding(String encoding) {\r
- _fileMakingOption.setDelimiter(encoding);\r
- }\r
-\r
- public String getDelimiter() {\r
- return _fileMakingOption.getDelimiter();\r
- }\r
-\r
- public void setDelimiter(String delimiter) {\r
- _fileMakingOption.setDelimiter(delimiter);\r
- }\r
-\r
- public String getLineSeparator() {\r
- return _fileMakingOption.getLineSeparator();\r
- }\r
-\r
- public void setLineSeparator(String lineSeparator) {\r
- _fileMakingOption.setLineSeparator(lineSeparator);\r
- }\r
-\r
- public boolean isGoodByeDoubleQuotation() {\r
- return _fileMakingOption.isGoodByeDoubleQuotation();\r
- }\r
-\r
- public ${glFileMakingOptionName} getFileMakingOption() {\r
- return _fileMakingOption;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonBhvBatch};\r
-\r
-import ${glPackageBaseCommon}.${glEntityInterfaceName};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glTokenFileOutputResultName} {\r
-\r
- // =====================================================================================\r
- // Attribute\r
- // =========\r
- protected java.util.List${database.filterGenericsString(${glEntityInterfaceName})} _selectedList;\r
-\r
- // =====================================================================================\r
- // Accessor\r
- // ========\r
- public java.util.List${database.filterGenericsString(${glEntityInterfaceName})} getSelectedList() {\r
- return _selectedList;\r
- }\r
-\r
- public void setSelectedList(java.util.List${database.filterGenericsString(${glEntityInterfaceName})} selectedList) {\r
- _selectedList = selectedList;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonBhvBatch};\r
-\r
-import ${glPackageBaseCommon}.${glEntityInterfaceName};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glTokenFileReflectionFailureName} {\r
-\r
- // =====================================================================================\r
- // Attribute\r
- // =========\r
- protected java.util.List${database.filterGenericsString('String')} _columnNameList;\r
- protected java.util.List${database.filterGenericsString('String')} _valueList;\r
-\r
- protected String rowString;\r
-\r
- /** The row number. */\r
- protected int _rowNumber;\r
-\r
- /** The line number. */\r
- protected int _lineNumber;\r
-\r
- protected ${glEntityInterfaceName} _entity;\r
- protected Exception _exception;\r
-\r
- // =====================================================================================\r
- // Accessor\r
- // ========\r
- public java.util.List${database.filterGenericsString('String')} getColumnNameList() {\r
- return _columnNameList;\r
- }\r
-\r
- public void setColumnNameList(java.util.List${database.filterGenericsString('String')} columnNameList) {\r
- this._columnNameList = columnNameList;\r
- }\r
-\r
- public java.util.List${database.filterGenericsString('String')} getValueList() {\r
- return _valueList;\r
- }\r
-\r
- public void setValueList(java.util.List${database.filterGenericsString('String')} valueList) {\r
- this._valueList = valueList;\r
- }\r
-\r
- public String getRowString() {\r
- return rowString;\r
- }\r
-\r
- public void setRowString(String rowString) {\r
- this.rowString = rowString;\r
- }\r
-\r
- public int getRowNumber() {\r
- return _rowNumber;\r
- }\r
-\r
- public void setRowNumber(int rowNumber) {\r
- _rowNumber = rowNumber;\r
- }\r
-\r
- public int getLineNumber() {\r
- return _lineNumber;\r
- }\r
-\r
- public void setLineNumber(int lineNumber) {\r
- _lineNumber = lineNumber;\r
- }\r
-\r
- public ${glEntityInterfaceName} getEntity() {\r
- return _entity;\r
- }\r
-\r
- public void setEntity(${glEntityInterfaceName} value) {\r
- _entity = value;\r
- }\r
-\r
- public Exception getException() {\r
- return _exception;\r
- }\r
-\r
- public void setException(Exception value) {\r
- _exception = value;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonBhvBatch};\r
-\r
-import ${glPackageBaseCommonHelperTokenFile}.${glFileTokenizingOptionName};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glTokenFileReflectionOptionName} {\r
-\r
- // =====================================================================================\r
- // Attribute\r
- // =========\r
- protected boolean _interruptIfError;\r
-\r
- protected ${glFileTokenizingOptionName} _fileTokenizingOption = new ${glFileTokenizingOptionName}();\r
-\r
- // =====================================================================================\r
- // Easy-to-Use\r
- // ===========\r
- public ${glTokenFileReflectionOptionName} delimitateByComma() {\r
- _fileTokenizingOption.delimitateByComma();\r
- return this;\r
- }\r
-\r
- public ${glTokenFileReflectionOptionName} delimitateByTab() {\r
- _fileTokenizingOption.delimitateByTab();\r
- return this;\r
- }\r
-\r
- public ${glTokenFileReflectionOptionName} encodeAsUTF8() {\r
- _fileTokenizingOption.encodeAsUTF8();\r
- return this;\r
- }\r
-\r
- public ${glTokenFileReflectionOptionName} encodeAsWindows31J() {\r
- _fileTokenizingOption.encodeAsWindows31J();\r
- return this;\r
- }\r
-\r
- public ${glTokenFileReflectionOptionName} handleEmptyAsNull() {\r
- _fileTokenizingOption.handleEmptyAsNull();\r
- return this;\r
- }\r
-\r
- public ${glTokenFileReflectionOptionName} interruptIfError() {\r
- _interruptIfError = true;\r
- return this;\r
- }\r
-\r
- // =====================================================================================\r
- // Accessor\r
- // ========\r
- public String getDelimiter() {\r
- return _fileTokenizingOption.getDelimiter();\r
- }\r
-\r
- public void setDelimiter(String delimiter) {\r
- _fileTokenizingOption.setDelimiter(delimiter);\r
- }\r
-\r
- public String getEncoding() {\r
- return _fileTokenizingOption.getEncoding();\r
- }\r
-\r
- public void setEncoding(String encoding) {\r
- _fileTokenizingOption.setDelimiter(encoding);\r
- }\r
-\r
- public boolean isHandleEmptyAsNull() {\r
- return _fileTokenizingOption.isHandleEmptyAsNull();\r
- }\r
-\r
- public boolean isInterruptIfError() {\r
- return _interruptIfError;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonBhvBatch};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glTokenFileReflectionResultName} {\r
-\r
- // =====================================================================================\r
- // Attribute\r
- // =========\r
- protected java.util.List${database.filterGenericsString('String')} _columnNameList;\r
- protected int _successCount;\r
- protected java.util.List${database.filterGenericsString(${glTokenFileReflectionFailureName})} _failureList;\r
-\r
- // =====================================================================================\r
- // Easy-to-Use\r
- // ===========\r
- public void incrementSuccessCount() {\r
- ++_successCount;\r
- }\r
-\r
- // =====================================================================================\r
- // Accessor\r
- // ========\r
- public java.util.List${database.filterGenericsString('String')} getColumnNameList() {\r
- return _columnNameList;\r
- }\r
-\r
- public void setColumnNameList(java.util.List${database.filterGenericsString('String')} columnNameList) {\r
- this._columnNameList = columnNameList;\r
- }\r
-\r
- public int getSuccessCount() {\r
- return _successCount;\r
- }\r
-\r
- public void setSuccessCount(int successCount) {\r
- _successCount = successCount;\r
- }\r
-\r
- public java.util.List${database.filterGenericsString(${glTokenFileReflectionFailureName})} getFailureList() {\r
- return _failureList;\r
- }\r
-\r
- public void setFailureList(java.util.List${database.filterGenericsString(${glTokenFileReflectionFailureName})} failureList) {\r
- this._failureList = failureList;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonBhvLoad};\r
-\r
-import ${glPackageBaseCommon}.${glEntityInterfaceName};\r
-import ${glPackageBaseCommonBhvSetup}.${glConditionBeanSetupperName};\r
-import ${glPackageBaseCommonBhvSetup}.${glEntityListSetupperName};\r
-import ${glPackageBaseCommonCBean}.${glConditionBeanInterfaceName};\r
-\r
-/**\r
- * The class of load referrer option.\r
- * \r
- * ${database.filterGenericsParamOutput('<REFERRER_CONDITION_BEAN>', 'The type of referrer condition-bean.')}\r
- * ${database.filterGenericsParamOutput('<REFERRER_ENTITY>', 'The type of referrer entity.')}\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glLoadRefererOptionName}<REFERRER_CONDITION_BEAN extends ${glConditionBeanInterfaceName}, REFERRER_ENTITY extends ${glEntityInterfaceName}> extends ${glLoadReferrerOptionName}<REFERRER_CONDITION_BEAN, REFERRER_ENTITY> {\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glLoadRefererOptionName}() {\r
- }\r
-\r
- public ${glLoadRefererOptionName}(${glConditionBeanSetupperName}<REFERRER_CONDITION_BEAN> conditionBeanSetupper) {\r
- super(conditionBeanSetupper);\r
- }\r
-\r
- public ${glLoadRefererOptionName}(${glConditionBeanSetupperName}<REFERRER_CONDITION_BEAN> conditionBeanSetupper, ${glEntityListSetupperName}<REFERRER_ENTITY> entityListSetupper) {\r
- super(conditionBeanSetupper, entityListSetupper);\r
- }\r
-\r
- public ${glLoadRefererOptionName}(${glLoadReferrerOptionName}<REFERRER_CONDITION_BEAN, REFERRER_ENTITY> option) {\r
- super(option);\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- /**\r
- * @return The condition-bean of referrer.\r
- * @deprecated Sorry! This methid have typo! Please use getRefererConditionBean().\r
- */\r
- public REFERRER_CONDITION_BEAN getReffererConditionBean() {\r
- return super.getReferrerConditionBean();\r
- }\r
-\r
- /**\r
- * @param referrerConditionBean The condition-bean of referrer.\r
- * @deprecated Sorry! This methid have typo! Please use setReferrerConditionBean().\r
- */\r
- public void setReffererConditionBean(REFERRER_CONDITION_BEAN referrerConditionBean) {\r
- super.setReferrerConditionBean(referrerConditionBean);\r
- }\r
-\r
- /**\r
- * @return The condition-bean of referrer.\r
- */\r
- public REFERRER_CONDITION_BEAN getRefererConditionBean() {\r
- return super.getReferrerConditionBean();\r
- }\r
-\r
- /**\r
- * @param referrerConditionBean The condition-bean of referrer.\r
- */\r
- public void setRefererConditionBean(REFERRER_CONDITION_BEAN referrerConditionBean) {\r
- super.setReferrerConditionBean(referrerConditionBean);\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonBhvLoad};\r
-\r
-import java.util.List;\r
-\r
-import ${glPackageBaseCommon}.${glEntityInterfaceName};\r
-import ${glPackageBaseCommonBhvSetup}.${glConditionBeanSetupperName};\r
-import ${glPackageBaseCommonBhvSetup}.${glEntityListSetupperName};\r
-import ${glPackageBaseCommonCBean}.${glConditionBeanInterfaceName};\r
-\r
-/**\r
- * The class of load referrer option.\r
- * ${database.filterGenericsParamOutput('<REFERRER_CONDITION_BEAN>', 'The type of referrer condition-bean.')}\r
- * ${database.filterGenericsParamOutput('<REFERRER_ENTITY>', 'The type of referrer entity.')}\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glLoadReferrerOptionName}<REFERRER_CONDITION_BEAN extends ${glConditionBeanInterfaceName}, REFERRER_ENTITY extends ${glEntityInterfaceName}> {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected ${glConditionBeanSetupperName}<REFERRER_CONDITION_BEAN> _conditionBeanSetupper;\r
-\r
- protected ${glEntityListSetupperName}<REFERRER_ENTITY> _entityListSetupper;\r
-\r
- protected REFERRER_CONDITION_BEAN _referrerConditionBean;\r
-\r
- protected boolean _toLastKeyCondition;\r
-\r
- protected boolean _stopOrderByKey;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glLoadReferrerOptionName}() {\r
- }\r
-\r
- public ${glLoadReferrerOptionName}(${glConditionBeanSetupperName}<REFERRER_CONDITION_BEAN> conditionBeanSetupper) {\r
- this._conditionBeanSetupper = conditionBeanSetupper;\r
- }\r
-\r
- public ${glLoadReferrerOptionName}(${glConditionBeanSetupperName}<REFERRER_CONDITION_BEAN> conditionBeanSetupper, ${glEntityListSetupperName}<REFERRER_ENTITY> entityListSetupper) {\r
- this._conditionBeanSetupper = conditionBeanSetupper;\r
- this._entityListSetupper = entityListSetupper;\r
- }\r
-\r
- public ${glLoadReferrerOptionName}(${glLoadReferrerOptionName}<REFERRER_CONDITION_BEAN, REFERRER_ENTITY> option) {\r
- this._conditionBeanSetupper = option._conditionBeanSetupper;\r
- this._entityListSetupper = option._entityListSetupper;\r
- this._referrerConditionBean = option._referrerConditionBean;\r
- this._toLastKeyCondition = option._toLastKeyCondition;\r
- this._stopOrderByKey = option._stopOrderByKey;\r
- }\r
-\r
- // ===================================================================================\r
- // Easy-to-Use\r
- // ===========\r
- /**\r
- * Specify that the key condition is added as last condition. <br />\r
- * This method is valid only after you use reffererConditionBean and add your original condition to it.\r
- * @return this. (NotNull)\r
- */\r
- public ${glLoadReferrerOptionName}<REFERRER_CONDITION_BEAN, REFERRER_ENTITY> toLastKeyCondition() {\r
- _toLastKeyCondition = true;\r
- return this;\r
- }\r
-\r
- /**\r
- * Specify that it stops adding order-by of the key. <br />\r
- * This method is valid only after you use reffererConditionBean and add your original order-by to it.\r
- * @return this. (NotNull)\r
- */\r
- public ${glLoadReferrerOptionName}<REFERRER_CONDITION_BEAN, REFERRER_ENTITY> stopOrderByKey() {\r
- _stopOrderByKey = true;\r
- return this;\r
- }\r
-\r
- public void delegateKeyConditionExchangingFirstWhereClauseForLastOne(REFERRER_CONDITION_BEAN cb) {// Internal\r
- if (!_toLastKeyCondition) {\r
- cb.getSqlClause().exchangeFirstWhereClauseForLastOne();\r
- }\r
- }\r
-\r
- public void delegateConditionBeanSettingUp(REFERRER_CONDITION_BEAN cb) {// Internal\r
- if (_conditionBeanSetupper != null) {\r
- _conditionBeanSetupper.setup(cb);\r
- }\r
- }\r
-\r
- public void delegateEntitySettingUp(List<REFERRER_ENTITY> entityList) {// Internal\r
- if (_entityListSetupper != null) {\r
- _entityListSetupper.setup(entityList);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public ${glConditionBeanSetupperName}<REFERRER_CONDITION_BEAN> getConditionBeanSetupper() {\r
- return _conditionBeanSetupper;\r
- }\r
-\r
- public void setConditionBeanSetupper(${glConditionBeanSetupperName}<REFERRER_CONDITION_BEAN> conditionBeanSetupper) {\r
- this._conditionBeanSetupper = conditionBeanSetupper;\r
- }\r
-\r
- public ${glEntityListSetupperName}<REFERRER_ENTITY> getEntityListSetupper() {\r
- return _entityListSetupper;\r
- }\r
-\r
- public void setEntityListSetupper(${glEntityListSetupperName}<REFERRER_ENTITY> entityListSetupper) {\r
- this._entityListSetupper = entityListSetupper;\r
- }\r
-\r
- public REFERRER_CONDITION_BEAN getReferrerConditionBean() {\r
- return _referrerConditionBean;\r
- }\r
-\r
- public void setReferrerConditionBean(REFERRER_CONDITION_BEAN referrerConditionBean) {\r
- this._referrerConditionBean = referrerConditionBean;\r
- }\r
-\r
- public boolean isToLastKeyCondition() {\r
- return _toLastKeyCondition;\r
- }\r
-\r
- public boolean isStopOrderByKey() {\r
- return _stopOrderByKey;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonBhvSetup};\r
-\r
-import ${glPackageBaseCommonCBean}.${glConditionBeanInterfaceName};\r
-\r
-/**\r
- * The interface of condition-bean setupper.\r
- * ${database.filterGenericsParamOutput('<CONDITION_BEAN>', 'The type of condition-bean.')}\r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glConditionBeanSetupperName}<CONDITION_BEAN extends ${glConditionBeanInterfaceName}> {\r
-\r
- /**\r
- * Set up condition.\r
- * @param cb Condition-bean. (NotNull)\r
- */\r
- public void setup(CONDITION_BEAN cb);\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonBhvSetup};\r
-\r
-import java.util.List;\r
-\r
-import ${glPackageBaseCommon}.${glEntityInterfaceName};\r
-\r
-/**\r
- * The interface of entity list setupper.\r
- * @param <ENTITY> The type of entity.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glEntityListSetupperName}<ENTITY extends ${glEntityInterfaceName}> {\r
-\r
- /**\r
- * Set up the list of entity.\r
- * @param entityList The list of entity. (NotNull)\r
- */\r
- public void setup(List<ENTITY> entityList);\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonBhvSetup};\r
-\r
-/**\r
- * The class of Value-Label Box.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glValueLabelBoxName} {\r
-\r
- protected Object _value;\r
-\r
- protected String _label;\r
-\r
- public void setValueLabel(Object value, String label) {\r
- this._value = value;\r
- this._label = label;\r
- }\r
-\r
- public Object getValue() {\r
- return _value;\r
- }\r
-\r
- public String getLabel() {\r
- return _label;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonBhvSetup};\r
-\r
-import ${glPackageBaseCommon}.${glEntityInterfaceName};\r
-\r
-/**\r
- * The interface of Value-Label Setupper.\r
- * ${database.filterGenericsParamOutput('<ENTITY>', 'The type of entity.')}\r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glValueLabelSetupperName}<ENTITY extends ${glEntityInterfaceName}> {\r
-\r
- /**\r
- * Set up value-label.\r
- * @param box Value-label box. (NotNull)\r
- * @param entity Entity. (NotNull)\r
- */\r
- public void setup(${glValueLabelBoxName} box, ENTITY entity);\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBean};\r
-\r
-#set ($myClassName = "${glConditionBeanAbstractName}")\r
-import java.util.List;\r
-import java.util.Map;\r
-import java.lang.reflect.Method;\r
-\r
-import ${glPackageBaseCommonCBean}.${glConditionBeanContextName};\r
-import ${glPackageBaseCommonHelper}.${glMapListStringName};\r
-import ${glPackageBaseCommonHelper}.${glMapListStringImplName};\r
-import ${glPackageBaseCommonSqlClause}.${glOrderByClauseName};\r
-import ${glPackageBaseCommonSqlClause}.${glSqlClauseName};\r
-import ${glPackageBaseCommonSqlClause}.${glWhereClauseSimpleFilterInterfaceName};\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInterfaceName};\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInstanceHandlerName};\r
-import ${glPackageBaseCommonDBMetaInfo}.${glColumnInfoName};\r
-import ${glPackageBaseCommonJdbc}.${glStatementConfig};\r
-import ${glPackageBaseCommonUtil}.${glSimpleStringUtil};\r
-import ${glPackageBaseCommonUtil}.${glSimpleSystemUtil};\r
-\r
-/**\r
- * The condition-bean as abstract.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public abstract class ${myClassName} implements ${glConditionBeanInterfaceName} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- /** SQL clause instance. */\r
- protected final ${glSqlClauseName} _sqlClause;\r
- {\r
- _sqlClause = ${glConditionBeanContextName}.createSqlClause(this);\r
- }\r
-\r
- /** Safety max result size. */\r
- protected int _safetyMaxResultSize;\r
- \r
- /** The config of statement. (Nullable) */\r
- protected ${glStatementConfig} _statementConfig;\r
-\r
- // [DBFlute-0.7.4] @jflute -- At the future, I'll implement some check logics by these purpose types.\r
- protected boolean _forDeriveReferrer;\r
- protected boolean _forUnion;\r
- protected boolean _forExistsSubQuery;\r
- protected boolean _forInScopeSubQuery;\r
-\r
- // ===================================================================================\r
- // SqlClause\r
- // =========\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Sql clause. (NotNull)\r
- */\r
- public ${glSqlClauseName} getSqlClause() {\r
- return _sqlClause;\r
- }\r
-\r
- // ===================================================================================\r
- // Where Clause Filter\r
- // ===================\r
- public void addWhereClauseSimpleFilter(${glWhereClauseSimpleFilterInterfaceName} whereClauseSimpleFilter) {\r
- this._sqlClause.addWhereClauseSimpleFilter(whereClauseSimpleFilter);\r
- }\r
-\r
- // ===================================================================================\r
- // ConditionQuery\r
- // ==============\r
- /**\r
- * Get condition query as interface. At the future, change public to protected.\r
- * @return Instance of query as interface. (NotNull)\r
- */\r
- abstract public ${glConditionQueryInterfaceName} getConditionQueryAsInterface();\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return The conditionQuery of the local table as interface. (NotNull)\r
- */\r
- public ${glConditionQueryInterfaceName} localCQ() {\r
- return getConditionQueryAsInterface();\r
- }\r
-\r
- // ===================================================================================\r
- // Accept PrimaryKey\r
- // =================\r
- /**\r
- * ${database.ImplementComment}\r
- * @param primaryKeyMapString Primary-key map. (NotNull and NotEmpty)\r
- */\r
- public void acceptPrimaryKeyMapString(String primaryKeyMapString) {\r
- if (primaryKeyMapString == null) {\r
- String msg = "The argument[primaryKeyMapString] must not be null.";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- final String prefix = MAP_STRING_MAP_MARK + MAP_STRING_START_BRACE;\r
- final String suffix = MAP_STRING_END_BRACE;\r
- if (!primaryKeyMapString.trim().startsWith(prefix)) {\r
- primaryKeyMapString = prefix + primaryKeyMapString;\r
- }\r
- if (!primaryKeyMapString.trim().endsWith(suffix)) {\r
- primaryKeyMapString = primaryKeyMapString + suffix;\r
- }\r
- ${glMapListStringName} mapListString = new ${glMapListStringImplName}();\r
- mapListString.setMapMark(MAP_STRING_MAP_MARK);\r
- mapListString.setListMark(MAP_STRING_LIST_MARK);\r
- mapListString.setDelimiter(MAP_STRING_DELIMITER);\r
- mapListString.setStartBrace(MAP_STRING_START_BRACE);\r
- mapListString.setEndBrace(MAP_STRING_END_BRACE);\r
- mapListString.setEqual(MAP_STRING_EQUAL);\r
- acceptPrimaryKeyMap(mapListString.generateMap(primaryKeyMapString));\r
- }\r
-\r
- protected void checkTypeString(Object value, String propertyName, String typeName) {\r
- if (value == null) {\r
- throw new IllegalArgumentException("The value should not be null: " + propertyName);\r
- }\r
- if (!(value instanceof String)) {\r
- String msg = "The value of " + propertyName + " should be " + typeName + " or String: ";\r
- msg = msg + "valueType=" + value.getClass() + " value=" + value;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-\r
- protected long parseDateStringAsMillis(Object value, String propertyName, String typeName) {\r
- checkTypeString(value, propertyName, typeName);\r
- try {\r
- final String valueString = (String)value;\r
- if (valueString.indexOf("-") >= 0 && valueString.indexOf("-") != valueString.lastIndexOf("-")) {\r
- return java.sql.Timestamp.valueOf(valueString).getTime();\r
- } else {\r
- return getParseDateFormat().parse((String)value).getTime();\r
- }\r
- } catch (java.text.ParseException e) {\r
- String msg = "The value of " + propertyName + " should be " + typeName + ". but: " + value;\r
- throw new RuntimeException(msg + " threw the exception: value=[" + value + "]", e);\r
- } catch (RuntimeException e) {\r
- String msg = "The value of " + propertyName + " should be " + typeName + ". but: " + value;\r
- throw new RuntimeException(msg + " threw the exception: value=[" + value + "]", e);\r
- }\r
- }\r
-\r
- private java.text.DateFormat getParseDateFormat() {\r
- return java.text.DateFormat.getDateTimeInstance();\r
- }\r
-\r
- // ===================================================================================\r
- // Implementation of PagingBean\r
- // ============================\r
- // -----------------------------------------------------\r
- // Paging Determination\r
- // --------------------\r
- // * * * * * * * *\r
- // For SQL Comment\r
- // * * * * * * * *\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Determination.\r
- */\r
- public boolean isPaging() {\r
- String msg = "This method is unsupported on ConditionBean!";\r
- throw new UnsupportedOperationException(msg);\r
- }\r
-\r
- // * * * * * * * *\r
- // For Framework\r
- // * * * * * * * *\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Determination.\r
- */\r
- public boolean isCountLater() {\r
- String msg = "This method is unsupported on ConditionBean!";\r
- throw new UnsupportedOperationException(msg);\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Paging Setting\r
- // --------------\r
- /**\r
- * ${database.ImplementComment}\r
- * @param pageSize The page size per one page. (NotMinus & NotZero)\r
- * @param pageNumber The number of page. It's ONE origin. (NotMinus & NotZero: If it's minus or zero, it treats as one.)\r
- */\r
- public void paging(int pageSize, int pageNumber) {\r
- fetchFirst(pageSize);\r
- fetchPage(pageNumber);\r
- }\r
- \r
- /**\r
- * ${database.ImplementComment}\r
- * @param paging Determination.\r
- */\r
- public void xsetPaging(boolean paging) {// Very Internal!\r
- String msg = "This method is unsupported on ConditionBean!";\r
- throw new UnsupportedOperationException(msg);\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Fetch Setting\r
- // -------------\r
- /**\r
- * ${database.ImplementComment}\r
- * @param fetchSize Fetch-size. (NotMinus & NotZero)\r
- * @return this. (NotNUll)\r
- */\r
- public ${glPagingBeanInterfaceName} fetchFirst(int fetchSize) {\r
- getSqlClause().fetchFirst(fetchSize);\r
- return this;\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @param fetchStartIndex Fetch-start-index. 0 origin. (NotMinus)\r
- * @param fetchSize Fetch-size. (NotMinus & NotZero)\r
- * @return this. (NotNUll)\r
- */\r
- public ${glPagingBeanInterfaceName} fetchScope(int fetchStartIndex, int fetchSize) {\r
- getSqlClause().fetchScope(fetchStartIndex, fetchSize);\r
- return this;\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @param fetchPageNumber Fetch-page-number. 1 origin. (NotMinus & NotZero: If minus or zero, set one.)\r
- * @return this. (NotNull)\r
- */\r
- public ${glPagingBeanInterfaceName} fetchPage(int fetchPageNumber) {\r
- getSqlClause().fetchPage(fetchPageNumber);\r
- return this;\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Fetch Property\r
- // --------------\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Fetch-start-index.\r
- */\r
- public int getFetchStartIndex() {\r
- return getSqlClause().getFetchStartIndex();\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Fetch-size.\r
- */\r
- public int getFetchSize() {\r
- return getSqlClause().getFetchSize();\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Fetch-page-number.\r
- */\r
- public int getFetchPageNumber() {\r
- return getSqlClause().getFetchPageNumber();\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Page start index. 0 origin. (NotMinus)\r
- */\r
- public int getPageStartIndex() {\r
- return getSqlClause().getPageStartIndex();\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Page end index. 0 origin. (NotMinus)\r
- */\r
- public int getPageEndIndex() {\r
- return getSqlClause().getPageEndIndex();\r
- }\r
-\r
- /**\r
- * Is fetch scope effective?\r
- * @return Determiantion.\r
- */\r
- public boolean isFetchScopeEffective() {\r
- return getSqlClause().isFetchScopeEffective();\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Hint Property\r
- // -------------\r
- /**\r
- * Get select-hint. {select [select-hint] * from table...}\r
- * @return select-hint. (NotNull)\r
- */\r
- public String getSelectHint() {\r
- return getSqlClause().getSelectHint();\r
- }\r
-\r
- /**\r
- * Get from-base-table-hint. {select * from table [from-base-table-hint] where ...}\r
- * @return from-base-table-hint. (NotNull)\r
- */\r
- public String getFromBaseTableHint() {\r
- return getSqlClause().getFromBaseTableHint();\r
- }\r
-\r
- /**\r
- * Get from-hint. {select * from table left outer join ... on ... [from-hint] where ...}\r
- * @return from-hint. (NotNull)\r
- */\r
- public String getFromHint() {\r
- return getSqlClause().getFromHint();\r
- }\r
-\r
- /**\r
- * Get sql-suffix. {select * from table where ... order by ... [sql-suffix]}\r
- * @return Sql-suffix. (NotNull)\r
- */\r
- public String getSqlSuffix() {\r
- return getSqlClause().getSqlSuffix();\r
- }\r
-\r
- // ===================================================================================\r
- // Implementation of FetchNarrowingBean\r
- // ====================================\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Fetch start index.\r
- */\r
- public int getFetchNarrowingSkipStartIndex() {\r
- return getSqlClause().getFetchNarrowingSkipStartIndex();\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Fetch size.\r
- */\r
- public int getFetchNarrowingLoopCount() {\r
- return getSqlClause().getFetchNarrowingLoopCount();\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Determination.\r
- */\r
- public boolean isFetchNarrowingSkipStartIndexEffective() {\r
- return !getSqlClause().isFetchStartIndexSupported();\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Determination.\r
- */\r
- public boolean isFetchNarrowingLoopCountEffective() {\r
- return !getSqlClause().isFetchSizeSupported();\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Determiantion.\r
- */\r
- public boolean isFetchNarrowingEffective() {\r
- return getSqlClause().isFetchNarrowingEffective();\r
- }\r
-\r
- /**\r
- * Ignore fetch narrowing. Only checking safety result size is valid. {INTERNAL METHOD}\r
- */\r
- public void ignoreFetchNarrowing() {\r
- String msg = "This method is unsupported on ConditionBean!";\r
- throw new UnsupportedOperationException(msg);\r
- }\r
-\r
- /**\r
- * Restore ignored fetch narrowing. {INTERNAL METHOD}\r
- */\r
- public void restoreIgnoredFetchNarrowing() {\r
- // Do nothing!\r
- }\r
-\r
- /**\r
- * Get safety max result size.\r
- * @return Safety max result size.\r
- */\r
- public int getSafetyMaxResultSize() {\r
- return _safetyMaxResultSize;\r
- }\r
-\r
- /**\r
- * Check safety result.\r
- * @param safetyMaxResultSize Safety max result size. (If zero or minus, ignore checking)\r
- */\r
- public void checkSafetyResult(int safetyMaxResultSize) {\r
- this._safetyMaxResultSize = safetyMaxResultSize;\r
- }\r
-\r
- // ===================================================================================\r
- // Implementation of OrderByBean\r
- // =============================\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Sql component of order-by clause. (NotNull)\r
- */\r
- public ${glOrderByClauseName} getSqlComponentOfOrderByClause() {\r
- return getSqlClause().getSqlComponentOfOrderByClause();\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Order-by clause. (NotNull)\r
- */\r
- public String getOrderByClause() {\r
- return _sqlClause.getOrderByClause();\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return this. (NotNull)\r
- */\r
- public ${glOrderByBeanInterfaceName} clearOrderBy() {\r
- getSqlClause().clearOrderBy();\r
- return this;\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return this. (NotNull)\r
- */\r
- public ${glOrderByBeanInterfaceName} ignoreOrderBy() {\r
- getSqlClause().ignoreOrderBy();\r
- return this;\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return this. (NotNull)\r
- */\r
- public ${glOrderByBeanInterfaceName} makeOrderByEffective() {\r
- getSqlClause().makeOrderByEffective();\r
- return this;\r
- }\r
- \r
- // ===================================================================================\r
- // Limit Select\r
- // ============\r
- /** Is limit-select PK only? */\r
- protected boolean _isLimitSelectPKOnly;\r
-\r
- /**\r
- * Is limit-select PK only?\r
- * @return Determination.\r
- */\r
- public boolean isLimitSelect_PKOnly() {\r
- return _isLimitSelectPKOnly;\r
- }\r
-\r
- /**\r
- * Limit select PK only.\r
- * @return this. (NotNull)\r
- */\r
- public ${glConditionBeanInterfaceName} limitSelect_PKOnly() {\r
- _isLimitSelectPKOnly = true;\r
- return this;\r
- }\r
-\r
- /**\r
- * Limit select off.\r
- * @return this. (NotNull)\r
- */\r
- public ${glConditionBeanInterfaceName} limitSelect_Off() {\r
- _isLimitSelectPKOnly = false;\r
- return this;\r
- }\r
-\r
- // ===================================================================================\r
- // Lock Setting\r
- // ============\r
- /**\r
- * ${database.ImplementComment}\r
- * @return this. (NotNull)\r
- */\r
- public ${glConditionBeanInterfaceName} lockForUpdate() {\r
- getSqlClause().lockForUpdate();\r
- return this;\r
- }\r
- \r
- // ===================================================================================\r
- // Select Count\r
- // ============\r
- /**\r
- * Set up various things for select-count-ignore-fetch-scope. {Internal}\r
- * This method is for INTERNAL. Don't invoke this!\r
- * @return this. (NotNull)\r
- */\r
- public ${glConditionBeanInterfaceName} xsetupSelectCountIgnoreFetchScope() {\r
- _isSelectCountIgnoreFetchScope = true;\r
-\r
- // If the query uses union query, it needs included-select-column.\r
- if (!hasUnionQueryOrUnionAllQuery()) {\r
- getSqlClause().ignoreIncludedSelectColumn();\r
- }\r
-\r
- getSqlClause().ignoreOrderBy();\r
- getSqlClause().ignoreFetchScope();\r
- return this;\r
- }\r
-\r
- /**\r
- * Do after-care for select-count-ignore-fetch-scope. {Internal}\r
- * This method is for INTERNAL. Don't invoke this!\r
- * @return this. (NotNull)\r
- */\r
- public ${glConditionBeanInterfaceName} xafterCareSelectCountIgnoreFetchScope() {\r
- _isSelectCountIgnoreFetchScope = false;\r
-\r
- // If the query uses union query, it needs included-select-column.\r
- if (!hasUnionQueryOrUnionAllQuery()) {\r
- getSqlClause().makeIncludedSelectColumnEffective();\r
- }\r
-\r
- getSqlClause().makeOrderByEffective();\r
- getSqlClause().makeFetchScopeEffective();\r
- return this;\r
- }\r
-\r
- /** Is set up various things for select-count-ignore-fetch-scope? */\r
- protected boolean _isSelectCountIgnoreFetchScope;\r
-\r
- /**\r
- * Is set up various things for select-count-ignore-fetch-scope?\r
- * This method is for INTERNAL. Don't invoke this!\r
- * @return Determination.\r
- */\r
- public boolean isSelectCountIgnoreFetchScope() {\r
- return _isSelectCountIgnoreFetchScope;\r
- }\r
- \r
- // [DBFlute-0.7.4]\r
- // ===================================================================================\r
- // Specify\r
- // =======\r
- protected static abstract class AbstractSpecification<CQ extends ${glConditionQueryInterfaceName}> {\r
- protected ${glConditionBeanInterfaceName} _baseCB;\r
- protected SpQyCall<CQ> _qyCall;\r
- protected CQ _query;\r
- protected boolean _forDeriveReferrer;\r
- protected boolean alreadySpecifyRequiredColumn;\r
- /**\r
- * @param baseCB The condition-bean of base level. (NotNull)\r
- * @param qyCall The callback for condition-query. (NotNull)\r
- * @param forDeriveReferrer Is this for derive referrer?\r
- */\r
- protected AbstractSpecification(${glConditionBeanInterfaceName} baseCB, SpQyCall<CQ> qyCall, boolean forDeriveReferrer) {\r
- _baseCB = baseCB;\r
- _qyCall = qyCall;\r
- _forDeriveReferrer = forDeriveReferrer;\r
- }\r
- protected void doColumn(String columnName) {\r
- assertColumn(columnName);\r
- if (_query == null) { _query = _qyCall.qy(); }\r
- if (!_forDeriveReferrer && !alreadySpecifyRequiredColumn) {\r
- alreadySpecifyRequiredColumn = true;\r
- doSpecifyRequiredColumn();\r
- }\r
- String relationPath = _query.getRelationPath() != null ? _query.getRelationPath() : "";\r
- final String tableAliasName;\r
- if (_query.isBaseQuery(_query)) {\r
- tableAliasName = _baseCB.getSqlClause().getLocalTableAliasName();\r
- } else {\r
- tableAliasName = _baseCB.getSqlClause().resolveJoinAliasName(relationPath, _query.getNestLevel());\r
- }\r
- _baseCB.getSqlClause().specifySelectColumn(tableAliasName, columnName);\r
- }\r
- protected void assertColumn(String columnName) {\r
- if (_query == null && !_qyCall.has()) { throwSpecifyColumnNotSetupSelectColumnException(columnName); }\r
- }\r
- protected void assertForeign(String foreignPropertyName) {\r
- if (_forDeriveReferrer) { throwDeriveReferrerInvalidForeignSpecificationException(foreignPropertyName); }\r
- }\r
- protected abstract void doSpecifyRequiredColumn();\r
- protected abstract String getTableDbName();\r
- \r
- protected void throwSpecifyColumnNotSetupSelectColumnException(String columnName) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "You specified the column that had Not been Set up!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "You should call setupSelect_[ForeignTable]() before calling specify[ForeignTable]().column[TargetColumn]()." + getLineSeparator();\r
- msg = msg + " For example:" + getLineSeparator();\r
- msg = msg + " " + getLineSeparator();\r
- msg = msg + " [Wrong]" + getLineSeparator();\r
- msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + getLineSeparator();\r
- msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator();\r
- msg = msg + " cb.specify().specifyMemberStatus().columnMemberStatusName(); // *No!" + getLineSeparator();\r
- msg = msg + " - - - - - - - - - -/" + getLineSeparator();\r
- msg = msg + " " + getLineSeparator();\r
- msg = msg + " [Good!]" + getLineSeparator();\r
- msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + getLineSeparator();\r
- msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator();\r
- msg = msg + " cb.setupSelect_MemberStatus(); // *Point!" + getLineSeparator();\r
- msg = msg + " cb.specify().specifyMemberStatus().columnMemberStatusName();" + getLineSeparator();\r
- msg = msg + " - - - - - - - - - -/" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[ConditionBean]" + getLineSeparator() + _baseCB.getClass().getName() + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Specified Column]" + getLineSeparator() + getTableDbName() + "." + columnName + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new SpecifyColumnNotSetupSelectColumnException(msg);\r
- }\r
- protected void throwDeriveReferrerInvalidForeignSpecificationException(String foreignPropertyName) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "You specified a foreign table column in spite of derive-sub-query!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "You should specified a local table column at condition-bean for derive-sub-query." + getLineSeparator();\r
- msg = msg + " For example:" + getLineSeparator();\r
- msg = msg + " " + getLineSeparator();\r
- msg = msg + " [Wrong]" + getLineSeparator();\r
- msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + getLineSeparator();\r
- msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator();\r
- msg = msg + " cb.specify().derivePurchaseList().max(new SubQuery<PurchaseCB>() {" + getLineSeparator();\r
- msg = msg + " public void query(PurchaseCB subCB) {" + getLineSeparator();\r
- msg = msg + " subCB.specify().specifyProduct().columnProductName(); // *No!" + getLineSeparator();\r
- msg = msg + " }" + getLineSeparator();\r
- msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + getLineSeparator();\r
- msg = msg + " - - - - - - - - - -/" + getLineSeparator();\r
- msg = msg + " " + getLineSeparator();\r
- msg = msg + " [Good!]" + getLineSeparator();\r
- msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + getLineSeparator();\r
- msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator();\r
- msg = msg + " cb.specify().derivePurchaseList().max(new SubQuery<PurchaseCB>() {" + getLineSeparator();\r
- msg = msg + " public void query(PurchaseCB subCB) {" + getLineSeparator();\r
- msg = msg + " subCB.specify().columnPurchaseDatetime();// *Point!" + getLineSeparator();\r
- msg = msg + " }" + getLineSeparator();\r
- msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + getLineSeparator();\r
- msg = msg + " - - - - - - - - - -/" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Specified Foreign Property]" + getLineSeparator() + foreignPropertyName + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new DeriveReferrerInvalidForeignSpecificationException(msg);\r
- }\r
- protected String getLineSeparator() {\r
- return ${glSimpleSystemUtil}.getLineSeparator();\r
- }\r
- }\r
- \r
- protected static interface SpQyCall<CQ extends ${glConditionQueryInterfaceName}> {\r
- public boolean has(); \r
- public CQ qy(); \r
- }\r
- \r
- public static class SpecifyColumnNotSetupSelectColumnException extends RuntimeException {\r
- private static final long serialVersionUID = 1L;\r
- public SpecifyColumnNotSetupSelectColumnException(String msg) {\r
- super(msg);\r
- }\r
- }\r
- \r
- public static class DeriveReferrerInvalidForeignSpecificationException extends RuntimeException {\r
- private static final long serialVersionUID = 1L;\r
- public DeriveReferrerInvalidForeignSpecificationException(String msg) {\r
- super(msg);\r
- }\r
- }\r
-\r
- public static class RAFunction<REFERRER_CB extends ${glConditionBeanInterfaceName}, LOCAL_CQ extends ${glConditionQueryInterfaceName}> {\r
- protected ${glConditionBeanInterfaceName} _baseCB;\r
- protected LOCAL_CQ _localCQ;\r
- protected RAQSetupper<REFERRER_CB, LOCAL_CQ> _querySetupper;\r
- public RAFunction(${glConditionBeanInterfaceName} baseCB, LOCAL_CQ localCQ, RAQSetupper<REFERRER_CB, LOCAL_CQ> querySetupper) {\r
- _baseCB = baseCB;\r
- _localCQ = localCQ;\r
- _querySetupper = querySetupper;\r
- }\r
- public void max(${glSubQuery}<REFERRER_CB> subQuery, String aliasName) {\r
- assertAliasName(aliasName);\r
- _querySetupper.setup("max", subQuery, _localCQ, aliasName.trim());\r
- }\r
- public void min(${glSubQuery}<REFERRER_CB> subQuery, String aliasName) {\r
- assertAliasName(aliasName);\r
- _querySetupper.setup("min", subQuery, _localCQ, aliasName.trim());\r
- }\r
- public void sum(${glSubQuery}<REFERRER_CB> subQuery, String aliasName) {\r
- assertAliasName(aliasName);\r
- _querySetupper.setup("sum", subQuery, _localCQ, aliasName.trim());\r
- }\r
- public void avg(${glSubQuery}<REFERRER_CB> subQuery, String aliasName) {\r
- assertAliasName(aliasName);\r
- _querySetupper.setup("avg", subQuery, _localCQ, aliasName.trim());\r
- }\r
- public void count(${glSubQuery}<REFERRER_CB> subQuery, String aliasName) {\r
- assertAliasName(aliasName);\r
- _querySetupper.setup("count", subQuery, _localCQ, aliasName.trim());\r
- }\r
-\r
- protected void assertAliasName(String aliasName) {\r
- if (aliasName == null || aliasName.trim().length() == 0) {\r
- throwDeriveReferrerInvalidAliasNameException();\r
- }\r
- ${glDBMetaInterfaceName} dbmeta = ${glDBMetaInstanceHandlerName}.findDBMeta(_baseCB.getTableDbName());\r
- Method[] methods = dbmeta.getEntityType().getMethods();\r
- String targetMethodName = "set" + replaceString(aliasName, "_", "").toLowerCase();\r
- boolean existsSetterMethod = false;\r
- for (Method method : methods) {\r
- if (!method.getName().startsWith("set")) {\r
- continue;\r
- }\r
- if (targetMethodName.equals(method.getName().toLowerCase())) {\r
- existsSetterMethod = true;\r
- break;\r
- }\r
- }\r
- if (!existsSetterMethod) {\r
- throwDeriveReferrerEntityPropertyNotFoundException(aliasName, dbmeta.getEntityType());\r
- }\r
- }\r
- protected void throwDeriveReferrerInvalidAliasNameException() {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The alias name for derive-referrer was Invalid!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "You should set valid alias name. {NotNull, NotEmpty}" + getLineSeparator();\r
- msg = msg + " For example:" + getLineSeparator();\r
- msg = msg + " " + getLineSeparator();\r
- msg = msg + " [Wrong]" + getLineSeparator();\r
- msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + getLineSeparator();\r
- msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator();\r
- msg = msg + " cb.specify().derivePurchaseList().max(new SubQuery<PurchaseCB>() {" + getLineSeparator();\r
- msg = msg + " public void query(PurchaseCB subCB) {" + getLineSeparator();\r
- msg = msg + " subCB.specify().columnPurchaseDatetime();" + getLineSeparator();\r
- msg = msg + " }" + getLineSeparator();\r
- msg = msg + " }, null); // *No! {null, \"\", \" \"} are NG!" + getLineSeparator();\r
- msg = msg + " - - - - - - - - - -/" + getLineSeparator();\r
- msg = msg + " " + getLineSeparator();\r
- msg = msg + " [Good!]" + getLineSeparator();\r
- msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + getLineSeparator();\r
- msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator();\r
- msg = msg + " cb.specify().derivePurchaseList().max(new SubQuery<PurchaseCB>() {" + getLineSeparator();\r
- msg = msg + " public void query(PurchaseCB subCB) {" + getLineSeparator();\r
- msg = msg + " subCB.specify().columnPurchaseDatetime();" + getLineSeparator();\r
- msg = msg + " }" + getLineSeparator();\r
- msg = msg + " }, \"LATEST_PURCHASE_DATETIME\"); // *Point!" + getLineSeparator();\r
- msg = msg + " - - - - - - - - - -/" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Local Table]" + getLineSeparator() + _localCQ.getTableDbName() + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new DeriveReferrerInvalidAliasNameException(msg);\r
- }\r
- protected void throwDeriveReferrerEntityPropertyNotFoundException(String aliasName, Class<?> entityType) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "A property for derive-referrer was Not Found in the entity!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "You should implement a property(setter and getter) in the entity." + getLineSeparator();\r
- msg = msg + "Or you should confirm whether the alias name has typo or not." + getLineSeparator();\r
- msg = msg + " For example:" + getLineSeparator();\r
- msg = msg + " " + getLineSeparator();\r
- msg = msg + " [ConditionBean Invoking]" + getLineSeparator();\r
- msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + getLineSeparator();\r
- msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator();\r
- msg = msg + " cb.specify().derivePurchaseList().max(new SubQuery<PurchaseCB>() {" + getLineSeparator();\r
- msg = msg + " public void query(PurchaseCB subCB) {" + getLineSeparator();\r
- msg = msg + " subCB.specify().columnPurchaseDatetime();" + getLineSeparator();\r
- msg = msg + " }" + getLineSeparator();\r
- msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + getLineSeparator();\r
- msg = msg + " - - - - - - - - - -/" + getLineSeparator();\r
- msg = msg + " " + getLineSeparator();\r
- msg = msg + " [Extended Entity]" + getLineSeparator();\r
- msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + getLineSeparator();\r
- msg = msg + " // At the entity of Purchase..." + getLineSeparator();\r
- msg = msg + " protected Date _latestPurchaseDatetime;" + getLineSeparator();\r
- msg = msg + " public Date getLatestPurchaseDatetime() {" + getLineSeparator();\r
- msg = msg + " return _latestPurchaseDatetime;" + getLineSeparator();\r
- msg = msg + " }" + getLineSeparator();\r
- msg = msg + " public void setLatestPurchaseDatetime(Date latestPurchaseDatetime) {" + getLineSeparator();\r
- msg = msg + " _latestPurchaseDatetime = latestPurchaseDatetime;" + getLineSeparator();\r
- msg = msg + " }" + getLineSeparator();\r
- msg = msg + " - - - - - - - - - -/" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Alias Name]" + getLineSeparator() + aliasName + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Target Entity]" + getLineSeparator() + entityType + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new DeriveReferrerEntityPropertyNotFoundException(msg);\r
- }\r
- protected String replaceString(String text, String fromText, String toText) {\r
- return ${glSimpleStringUtil}.replace(text, fromText, toText);\r
- }\r
- protected String getLineSeparator() {\r
- return ${glSimpleSystemUtil}.getLineSeparator();\r
- }\r
- }\r
-\r
- public static interface RAQSetupper<REFERRER_CB extends ${glConditionBeanInterfaceName}, LOCAL_CQ extends ${glConditionQueryInterfaceName}> {\r
- public void setup(String function, ${glSubQuery}<REFERRER_CB> subQuery, LOCAL_CQ cq, String aliasName);\r
- }\r
- \r
- public static class DeriveReferrerInvalidAliasNameException extends RuntimeException {\r
- private static final long serialVersionUID = 1L;\r
- public DeriveReferrerInvalidAliasNameException(String msg) {\r
- super(msg);\r
- }\r
- }\r
- \r
- public static class DeriveReferrerEntityPropertyNotFoundException extends RuntimeException {\r
- private static final long serialVersionUID = 1L;\r
- public DeriveReferrerEntityPropertyNotFoundException(String msg) {\r
- super(msg);\r
- }\r
- }\r
-\r
- // =====================================================================================\r
- // Statement Config\r
- // ================\r
- /**\r
- * @param statementConfig The config of statement. (Nullable)\r
- */\r
- public void configure(${glStatementConfig} statementConfig) {\r
- _statementConfig = statementConfig;\r
- }\r
- \r
- /**\r
- * @return The config of statement. (Nullable)\r
- */\r
- public ${glStatementConfig} getStatementConfig() {\r
- return _statementConfig;\r
- }\r
-#if ($database.isMakeDeprecated())\r
-\r
- // ===================================================================================\r
- // Format SQL\r
- // ==========\r
- /** @deprecated Sorry! ConditionBean must be formatted as default.*/\r
- public void formatSql() {\r
- getSqlClause().makeFormatClauseEffective();\r
- }\r
-\r
- /**\r
- * @return Is the SQL formatted?\r
- * @deprecated Sorry! ConditionBean must be formatted as default.\r
- */\r
- public boolean isFormatSql() {\r
- return getSqlClause().isFormatClauseEffective();\r
- }\r
-#end\r
-#if ($database.isAvailableDatabaseDependency())\r
-#if ($database.isDatabaseDB2())\r
-\r
- // [DBFlute-0.7.9]\r
- // ===================================================================================\r
- // Isolation Level\r
- // ===============\r
- // *Database Dependency\r
- public void lockWithRR() {\r
- if (helpIsSqlClauseDb2()) {\r
- helpGettingSqlClauseDb2().lockWithRR();\r
- }\r
- }\r
-\r
- public void lockWithRS() {\r
- if (helpIsSqlClauseDb2()) {\r
- helpGettingSqlClauseDb2().lockWithRS();\r
- }\r
- }\r
-\r
- public void lockWithCS() {\r
- if (helpIsSqlClauseDb2()) {\r
- helpGettingSqlClauseDb2().lockWithCS();\r
- }\r
- }\r
-\r
- public void lockWithUR() {\r
- if (helpIsSqlClauseDb2()) {\r
- helpGettingSqlClauseDb2().lockWithUR();\r
- }\r
- }\r
-\r
- protected boolean helpIsSqlClauseDb2() {\r
- return getSqlClause() instanceof ${glPackageBaseCommonSqlClause}.${glSqlClauseInterfaceName}Db2;\r
- }\r
-\r
- protected ${glPackageBaseCommonSqlClause}.${glSqlClauseInterfaceName}Db2 helpGettingSqlClauseDb2() {\r
- return (${glPackageBaseCommonSqlClause}.${glSqlClauseInterfaceName}Db2)getSqlClause();\r
- }\r
-#end\r
-#end\r
-\r
- // ===================================================================================\r
- // Assist Helper\r
- // =============\r
- protected void doSetupSelect(SsCall callback) {\r
- String foreignPropertyName = callback.qf().getForeignPropertyName();\r
- assertSetupSelectBeforeUnion(foreignPropertyName);\r
- limitSelect_Off();\r
- String foreignTableAliasName = callback.qf().getRealAliasName();\r
- String localRelationPath = localCQ().getRelationPath();\r
- getSqlClause().registerSelectedSelectColumn(foreignTableAliasName, getTableDbName(), foreignPropertyName, localRelationPath);\r
- getSqlClause().registerSelectedForeignInfo(callback.qf().getRelationPath(), foreignPropertyName);\r
- }\r
- \r
- protected static interface SsCall {\r
- public ${glConditionQueryInterfaceName} qf();\r
- }\r
- \r
- // ===================================================================================\r
- // Assert Helper\r
- // =============\r
- protected void assertPrimaryKeyMap(Map<String, ? extends Object> primaryKeyMap) {\r
- if (primaryKeyMap == null) {\r
- String msg = "The argument[primaryKeyMap] must not be null.";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (primaryKeyMap.isEmpty()) {\r
- String msg = "The argument[primaryKeyMap] must not be empty.";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- List<${glColumnInfoName}> columnInfoList = ${glDBMetaInstanceHandlerName}.findDBMeta(getTableDbName()).getPrimaryUniqueInfo().getUniqueColumnList();\r
- for (${glColumnInfoName} columnInfo : columnInfoList) {\r
- String columnDbName = columnInfo.getColumnDbName();\r
- if (!primaryKeyMap.containsKey(columnDbName)) {\r
- String msg = "The primaryKeyMap must have the value of " + columnDbName;\r
- throw new IllegalStateException(msg + ": primaryKeyMap --> " + primaryKeyMap);\r
- }\r
- }\r
- }\r
-\r
- protected void assertSetupSelectBeforeUnion(String foreignPropertyName) {\r
- if (hasUnionQueryOrUnionAllQuery()) {\r
- throwSetupSelectAfterUnionException(this.getClass().getSimpleName(), foreignPropertyName);\r
- }\r
- }\r
- \r
- protected void throwSetupSelectAfterUnionException(String className, String foreignPropertyName) {\r
- String methodName = "setupSelect_" + initCap(foreignPropertyName) + "()";\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "You should NOT call " + methodName + " after calling union()!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + methodName + " should be called before calling union()." + getLineSeparator();\r
- msg = msg + " For example:" + getLineSeparator();\r
- msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + getLineSeparator();\r
- msg = msg + " " + className + " cb = new " + className + "();" + getLineSeparator();\r
- msg = msg + " cb." + methodName + "; // You shuold call here!" + getLineSeparator();\r
- msg = msg + " cb.query().setXxx...;" + getLineSeparator();\r
- msg = msg + " cb.union(new UnionQuery<" + className + ">() {" + getLineSeparator();\r
- msg = msg + " public void query(" + className + " unionCB) {" + getLineSeparator();\r
- msg = msg + " unionCB.query().setXxx...;" + getLineSeparator();\r
- msg = msg + " }" + getLineSeparator();\r
- msg = msg + " });" + getLineSeparator();\r
- msg = msg + " // You should not call setupSelect after calling union()!" + getLineSeparator();\r
- msg = msg + " // cb." + methodName + ";" + getLineSeparator();\r
- msg = msg + " - - - - - - - - - -/" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[SetupSelect Method]" + getLineSeparator() + methodName + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[ConditionBean SQL]" + getLineSeparator() + toDisplaySql() + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */" + getLineSeparator();\r
- throw new IllegalStateException(msg);\r
- }\r
- \r
- // ===================================================================================\r
- // General Helper\r
- // ==============\r
- protected String initCap(String str) {\r
- return ${glSimpleStringUtil}.initCap(str);\r
- }\r
- \r
- protected String getLineSeparator() {\r
- return ${glSimpleSystemUtil}.getLineSeparator();\r
- }\r
-\r
- // ===================================================================================\r
- // Display SQL\r
- // ===========\r
- /**\r
- * Convert this conditionBean to SQL for display.\r
- * @return SQL for display. (NotNull and NotEmpty)\r
- */\r
- public String toDisplaySql() {\r
- return ${glConditionBeanContextName}.convertConditionBean2DisplaySql(this);\r
- }\r
- \r
- // [DBFlute-0.7.4]\r
- // ===================================================================================\r
- // Purpose Type\r
- // ============\r
- public void xsetupForDeriveReferrer() {\r
- _forDeriveReferrer = true;\r
- }\r
-\r
- public void xsetupForUnion() {\r
- _forUnion = true;\r
- }\r
-\r
- public void xsetupForExistsSubQuery() {\r
- _forExistsSubQuery = true;\r
- }\r
-\r
- public void xsetupForInScopeSubQuery() {\r
- _forInScopeSubQuery = true;\r
- }\r
-\r
- // ===================================================================================\r
- // Basic Override\r
- // ==============\r
- /**\r
- * The override.\r
- * @return SQL for display. (NotNull)\r
- */\r
- public String toString() {\r
- try {\r
- return toDisplaySql();\r
- } catch (RuntimeException e) {\r
- return getSqlClause().getClause();\r
- }\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBean};\r
-\r
-#set ($myClassName = "${glConditionQueryAbstractName}")\r
-import java.util.Collection;\r
-import java.util.List;\r
-import java.util.ArrayList;\r
-import java.util.Map;\r
-import java.util.LinkedHashMap;\r
-import java.util.Iterator;\r
-import java.lang.reflect.Method;\r
-import java.lang.reflect.InvocationTargetException;\r
-\r
-import ${glPackageBaseCommonCKey}.${glConditionKeyName};\r
-import ${glPackageBaseCommonCOption}.${glConditionOptionInterfaceName};\r
-import ${glPackageBaseCommonCOption}.${glConditionOptionFromToName};\r
-import ${glPackageBaseCommonCOption}.${glConditionOptionLikeSearchName};\r
-import ${glPackageBaseCommonCOption}.${glConditionOptionInScopeName};\r
-import ${glPackageBaseCommonCValue}.${glConditionValueName};\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInterfaceName};\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInstanceHandlerName};\r
-import ${glPackageBaseCommonSqlClause}.${glSqlClauseName};\r
-import ${glPackageBaseCommonException}.${glRequiredOptionNotFoundException};\r
-import ${glPackageBaseCommonUtil}.${glSimpleStringUtil};\r
-import ${glPackageBaseCommonUtil}.${glSimpleSystemUtil};\r
-import ${glPackageBaseCommonUtil}.${glTraceViewUtilName};\r
-\r
-/**\r
- * The abstract class of condition-query.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public abstract class ${myClassName} implements ${glConditionQueryInterfaceName} {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- protected static final ${glConditionKeyName} CK_EQ = ${glConditionKeyName}.CK_EQUAL;\r
- protected static final ${glConditionKeyName} CK_NE = ${glConditionKeyName}.CK_NOT_EQUAL;\r
- protected static final ${glConditionKeyName} CK_GE = ${glConditionKeyName}.CK_GREATER_EQUAL;\r
- protected static final ${glConditionKeyName} CK_GT = ${glConditionKeyName}.CK_GREATER_THAN;\r
- protected static final ${glConditionKeyName} CK_LE = ${glConditionKeyName}.CK_LESS_EQUAL;\r
- protected static final ${glConditionKeyName} CK_LT = ${glConditionKeyName}.CK_LESS_THAN;\r
- protected static final ${glConditionKeyName} CK_PS = ${glConditionKeyName}.CK_PREFIX_SEARCH;\r
- protected static final ${glConditionKeyName} CK_LS = ${glConditionKeyName}.CK_LIKE_SEARCH;\r
- protected static final ${glConditionKeyName} CK_INS = ${glConditionKeyName}.CK_IN_SCOPE;\r
- protected static final ${glConditionKeyName} CK_NINS = ${glConditionKeyName}.CK_NOT_IN_SCOPE;\r
- protected static final ${glConditionKeyName} CK_ISN = ${glConditionKeyName}.CK_IS_NULL;\r
- protected static final ${glConditionKeyName} CK_ISNN = ${glConditionKeyName}.CK_IS_NOT_NULL;\r
-\r
- /** Condition value for DUMMY. */\r
- protected static final ${glConditionValueName} DUMMY_CONDITION_VALUE = new ${glConditionValueName}();\r
-\r
- /** Object for DUMMY. */\r
- protected static final Object DUMMY_OBJECT = new Object();\r
- \r
- /** The property of condition-query. */\r
- protected static final String CQ_PROPERTY = "conditionQuery";\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- /** SQL clause. */\r
- protected final ${glSqlClauseName} _sqlClause;\r
-\r
- /** My alias name. */\r
- protected final String _aliasName;\r
-\r
- /** The level of nest. */\r
- protected final int _nestLevel;\r
- \r
- /** The level of subQuery. */\r
- protected int _subQueryLevel;\r
-\r
- // -----------------------------------------------------\r
- // Foreign Info\r
- // ------------\r
- /** The property name of foreign. */\r
- protected String _foreignPropertyName;\r
-\r
- /** The path of relation. */\r
- protected String _relationPath;\r
-\r
- /** The query of child. */\r
- protected final ${glConditionQueryInterfaceName} _childQuery;\r
-\r
- // -----------------------------------------------------\r
- // Inline\r
- // ------\r
- /** Is it the inline for on-clause. (Property for Inline Only) */\r
- protected boolean _onClauseInline;\r
- \r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- /**\r
- * Constructor.\r
- * @param childQuery Child query. (Nullable: If null, this is base instance.)\r
- * @param sqlClause SQL clause instance. (NotNull)\r
- * @param aliasName My alias name. (NotNull)\r
- * @param nestLevel Nest level.\r
- */\r
- public ${myClassName}(${glConditionQueryInterfaceName} childQuery, ${glSqlClauseName} sqlClause, String aliasName, int nestLevel) {\r
- _childQuery = childQuery;\r
- _sqlClause = sqlClause;\r
- _aliasName = aliasName;\r
- _nestLevel = nestLevel;\r
- }\r
-\r
- // ===================================================================================\r
- // Important Accessor\r
- // ==================\r
- /**\r
- * Get child query.\r
- * @return Child query. (Nullable)\r
- */\r
- public ${glConditionQueryInterfaceName} getChildQuery() {\r
- return _childQuery;\r
- }\r
-\r
- /**\r
- * Get sql clause.\r
- * @return Sql clause. (NotNull)\r
- */\r
- public ${glSqlClauseName} getSqlClause() {\r
- return _sqlClause;\r
- }\r
-\r
- /**\r
- * Get alias name.\r
- * @return Alias name. (NotNull)\r
- */\r
- public String getAliasName() {\r
- return _aliasName;\r
- }\r
-\r
- /**\r
- * Get nest level.\r
- * @return Nest level.\r
- */\r
- public int getNestLevel() {\r
- return _nestLevel;\r
- }\r
-\r
- /**\r
- * Get next nest level.\r
- * @return Next nest level.\r
- */\r
- public int getNextNestLevel() {\r
- return _nestLevel+1;\r
- }\r
-\r
- /**\r
- * Is base query?\r
- * @param query Condition query. (NotNull)\r
- * @return Determination.\r
- */\r
- public boolean isBaseQuery(${glConditionQueryInterfaceName} query) {\r
- return (query.getChildQuery() == null);\r
- }\r
-\r
- /**\r
- * Get the level of subQuery.\r
- * @return The level of subQuery.\r
- */\r
- public int getSubQueryLevel() {\r
- return _subQueryLevel;\r
- }\r
- \r
- // -----------------------------------------------------\r
- // Real Name\r
- // ---------\r
- /**\r
- * Get real alias name(that has nest level mark).\r
- * @return Real alias name.\r
- */\r
- public String getRealAliasName() {\r
- return getAliasName();\r
- }\r
-\r
- /**\r
- * Get real column name(with real alias name).\r
- * @param columnName Column name without alias name. This should not contain comma. (NotNull)\r
- * @return Real column name.\r
- */\r
- public String getRealColumnName(String columnName) {\r
- assertColumnName(columnName);\r
- return buildRealColumnName(getRealAliasName(), columnName);\r
- }\r
-\r
- /**\r
- * Build real column name.\r
- * @param aliasName Alias name. (NotNull)\r
- * @param columnName Column name. (NotNull)\r
- * @return Real column name. (NotNull)\r
- */\r
- protected String buildRealColumnName(String aliasName, String columnName) {\r
- return aliasName + "." + columnName;\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Foreign Info\r
- // ------------\r
- public String getForeignPropertyName() {\r
- return _foreignPropertyName;\r
- }\r
-\r
- public void xsetForeignPropertyName(String foreignPropertyName) {\r
- this._foreignPropertyName = foreignPropertyName;\r
- }\r
-\r
- public String getRelationPath() {\r
- return _relationPath;\r
- }\r
-\r
- public void xsetRelationPath(String relationPath) {\r
- this._relationPath = relationPath;\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Inline\r
- // ------\r
- public void xsetOnClauseInline(boolean onClauseInline) {\r
- _onClauseInline = onClauseInline;\r
- }\r
- \r
- // ===================================================================================\r
- // Location\r
- // ========\r
- /**\r
- * Get location.\r
- * @param columnPropertyName Column property name.\r
- * @param key Condition key.\r
- * @return Next nest level.\r
- */\r
- protected String getLocation(String columnPropertyName, ${glConditionKeyName} key) {\r
- return getLocationBase(columnPropertyName) + "." + key.getConditionKey();\r
- }\r
-\r
- protected String getLocationBase() {\r
- final StringBuffer sb = new StringBuffer();\r
- ${glConditionQueryInterfaceName} query = this;\r
- while (true) {\r
- if (query.isBaseQuery(query)) {\r
- sb.insert(0, CQ_PROPERTY + ".");\r
- break;\r
- } else {\r
- final String foreignPropertyName = query.getForeignPropertyName();\r
- if (foreignPropertyName == null) {\r
- String msg = "The foreignPropertyName of the query should not be null:";\r
- msg = msg + " query=" + query;\r
- throw new IllegalStateException(msg);\r
- }\r
- sb.insert(0, CQ_PROPERTY + initCap(foreignPropertyName) + ".");\r
- }\r
- query = query.getChildQuery();\r
- }\r
- return sb.toString();\r
- }\r
-\r
- protected String getLocationBase(String columnPropertyName) {\r
- return getLocationBase() + columnPropertyName;\r
- }\r
-\r
- // ===================================================================================\r
- // Union Query\r
- // ===========\r
- /** The map of union query. */\r
- protected Map<String, ${glConditionQueryInterfaceName}> _unionQueryMap;\r
-\r
- /**\r
- * Get the map of union query.\r
- * @return The map of union query. (NotNull)\r
- */\r
- public Map<String, ${glConditionQueryInterfaceName}> getUnionQueryMap() {// for Internal\r
- if (_unionQueryMap == null) {\r
- _unionQueryMap = new LinkedHashMap<String, ${glConditionQueryInterfaceName}>();\r
- }\r
- return _unionQueryMap;\r
- }\r
-\r
- /**\r
- * Set union query. {Internal}\r
- * @param unionQuery Union query. (NotNull)\r
- */\r
- public void xsetUnionQuery(${glConditionQueryInterfaceName} unionQuery) {\r
- xsetupUnion(unionQuery, false, getUnionQueryMap());\r
- }\r
-\r
- /** The map of union all query. */\r
- protected Map<String, ${glConditionQueryInterfaceName}> _unionAllQueryMap;\r
-\r
- /**\r
- * Get the map of union all query.\r
- * @return The map of union all query. (NotNull)\r
- */\r
- public Map<String, ${glConditionQueryInterfaceName}> getUnionAllQueryMap() {// for Internal\r
- if (_unionAllQueryMap == null) {\r
- _unionAllQueryMap = new LinkedHashMap<String, ${glConditionQueryInterfaceName}>();\r
- }\r
- return _unionAllQueryMap;\r
- }\r
-\r
- /**\r
- * Set union all query. {Internal}\r
- * @param unionAllQuery Union all query. (NotNull)\r
- */\r
- public void xsetUnionAllQuery(${glConditionQueryInterfaceName} unionAllQuery) {\r
- xsetupUnion(unionAllQuery, true, getUnionAllQueryMap());\r
- }\r
-\r
- protected void xsetupUnion(${glConditionQueryInterfaceName} unionQuery, boolean unionAll, Map<String, ${glConditionQueryInterfaceName}> unionQueryMap) {\r
- if (unionQuery == null) {\r
- String msg = "The argument[unionQuery] should not be null.";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- reflectRelationOnUnionQuery(this, unionQuery);// Reflect Relation!\r
- getSqlClause().copyIncludedSelectColumn(unionQuery.getSqlClause());// Reflect IncludedSelectColumn!\r
- if (getSqlClause().isFormatClauseEffective()) {\r
- unionQuery.getSqlClause().makeFormatClauseEffective();// Reflect FormatClause!\r
- }\r
- String key = (unionAll ? "unionAllQuery" : "unionQuery") + unionQueryMap.size();\r
- unionQueryMap.put(key, unionQuery);\r
- registerUnionQuery(unionQuery, unionAll, (unionAll ? "unionAllQueryMap" : "unionQueryMap") + "." + key);\r
- }\r
-\r
- /**\r
- * Reflect relation on union query.\r
- * @param baseQueryAsSuper Base query as super. (NotNull)\r
- * @param unionQueryAsSuper Union query as super. (NotNull)\r
- */\r
- abstract protected void reflectRelationOnUnionQuery(${glConditionQueryInterfaceName} baseQueryAsSuper, ${glConditionQueryInterfaceName} unionQueryAsSuper);\r
-\r
- /**\r
- * Has union query or union all query?\r
- * @return Determination.\r
- */\r
- public boolean hasUnionQueryOrUnionAllQuery() {\r
- return (_unionQueryMap != null && !_unionQueryMap.isEmpty()) || (_unionAllQueryMap != null && !_unionAllQueryMap.isEmpty());\r
- }\r
-\r
- /**\r
- * Get the list of union query.\r
- * @return The list of union query. (NotNull)\r
- */\r
- public List<${glConditionQueryInterfaceName}> getUnionQueryList() {\r
- if (_unionQueryMap == null) { return new ArrayList<${glConditionQueryInterfaceName}>(); }\r
- return new ArrayList<${glConditionQueryInterfaceName}>(_unionQueryMap.values());\r
- }\r
-\r
- /**\r
- * Get the list of union all query.\r
- * @return The list of union all query. (NotNull)\r
- */\r
- public List<${glConditionQueryInterfaceName}> getUnionAllQueryList() {\r
- if (_unionAllQueryMap == null) { return new ArrayList<${glConditionQueryInterfaceName}>(); }\r
- return new ArrayList<${glConditionQueryInterfaceName}>(_unionAllQueryMap.values());\r
- }\r
-\r
- // ===================================================================================\r
- // Register\r
- // ========\r
- // -----------------------------------------------------\r
- // Include-As-Mine\r
- // ---------------\r
- /**\r
- * Register included-select-column.\r
- * @param aliasName Alias name. This should not contain comma. (NotNull)\r
- * @param realColumnName Real column name. This should not contain comma. (NotNull)\r
- * @deprecated Unsupported!\r
- */\r
- protected void registerIncludedSelectColumn(String aliasName, String realColumnName) {\r
- throw new UnsupportedOperationException();\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Query\r
- // -----\r
- protected void registerQuery(${glConditionKeyName} key, Object value, ${glConditionValueName} cvalue\r
- , String colName, String capPropName, String uncapPropName) {\r
- if (key.isValidRegistration(cvalue, value, key.getConditionKey() + " of " + getRealAliasName() + "." + colName)) {\r
- setupConditionValueAndRegisterWhereClause(key, value, cvalue, colName, capPropName, uncapPropName);\r
- }\r
- }\r
-\r
- protected void registerQuery(${glConditionKeyName} key, Object value, ${glConditionValueName} cvalue\r
- , String colName, String capPropName, String uncapPropName, ${glConditionOptionInterfaceName} option) {\r
- if (key.isValidRegistration(cvalue, value, key.getConditionKey() + " of " + getRealAliasName() + "." + colName)) {\r
- setupConditionValueAndRegisterWhereClause(key, value, cvalue, colName, capPropName, uncapPropName, option);\r
- }\r
- }\r
-\r
- // -----------------------------------------------------\r
- // FromTo Query\r
- // ------------\r
- protected void registerFromToQuery(java.util.Date fromDate, java.util.Date toDate, ${glConditionValueName} cvalue\r
- , String colName, String capPropName, String uncapPropName, ${glConditionOptionFromToName} option) {\r
- {\r
- final java.util.Date filteredFromDate = option.filterFromDate(fromDate);\r
- final ${glConditionKeyName} fromKey = option.getFromDateConditionKey();\r
- if (fromKey.isValidRegistration(cvalue, filteredFromDate, fromKey.getConditionKey() + " of " + getRealAliasName() + "." + uncapPropName)) {\r
- setupConditionValueAndRegisterWhereClause(fromKey, filteredFromDate, cvalue, colName, capPropName, uncapPropName);\r
- }\r
- }\r
- {\r
- final java.util.Date filteredToDate = option.filterToDate(toDate);\r
- final ${glConditionKeyName} toKey = option.getToDateConditionKey();\r
- if (toKey.isValidRegistration(cvalue, filteredToDate, toKey.getConditionKey() + " of " + getRealAliasName() + "." + uncapPropName)) {\r
- setupConditionValueAndRegisterWhereClause(toKey, filteredToDate, cvalue, colName, capPropName, uncapPropName);\r
- }\r
- }\r
- }\r
-\r
- // -----------------------------------------------------\r
- // LikeSearch Query\r
- // ----------------\r
- @SuppressWarnings("deprecation")\r
- protected void registerLikeSearchQuery(${glConditionKeyName} key\r
- , String value\r
- , ${glConditionValueName} cvalue\r
- , String colName\r
- , String capPropName\r
- , String uncapPropName\r
- , ${glConditionOptionLikeSearchName} option) {\r
- final String validationMsg = key.getConditionKey() + " of " + getRealAliasName() + "." + colName;\r
- if (!key.isValidRegistration(cvalue, value, validationMsg)) {\r
- return;\r
- }\r
- if (option == null) {\r
- throwLikeSearchOptionNotFoundException(capPropName, value);\r
- return;// Unreachable!\r
- }\r
- if (value == null || !option.isSplit()) {\r
- // As Normal Condition.\r
- setupConditionValueAndRegisterWhereClause(key, value, cvalue, colName, capPropName, uncapPropName, option);\r
- return;\r
- }\r
- // - - - - - - - - -\r
- // Use splitByXxx().\r
- // - - - - - - - - -\r
- final String[] strArray = option.generateSplitValueArray(value);\r
- if (!option.isAsOrSplit()) {\r
- // As 'and' Condition\r
- for (int i = 0; i < strArray.length; i++) {\r
- final String currentValue = strArray[i];\r
- setupConditionValueAndRegisterWhereClause(key, currentValue, cvalue, colName, capPropName, uncapPropName, option);\r
- \r
- // Callback for LikeAsOr!\r
- final List<${glConditionOptionLikeSearchName}.LikeAsOrCallback> callbackList = option.getLikeAsOrCallbackList();\r
- if (!callbackList.isEmpty()) {\r
- getSqlClause().makeAdditionalConditionAsOrEffective();\r
- for (Iterator<${glConditionOptionLikeSearchName}.LikeAsOrCallback> ite = callbackList.iterator(); ite.hasNext();) {\r
- final ${glConditionOptionLikeSearchName}.LikeAsOrCallback likeAsOrCallback = (${glConditionOptionLikeSearchName}.LikeAsOrCallback) ite.next();\r
- final String additionalTargetPropertyName = likeAsOrCallback.getAdditionalTargetPropertyName();\r
- final String filteredValue = likeAsOrCallback.filterValue(currentValue);\r
- final ${glConditionOptionLikeSearchName} optionDeepCopy = (${glConditionOptionLikeSearchName}) option.createDeepCopy();\r
- optionDeepCopy.clearLikeAsOrCallback();\r
- final ${glConditionOptionLikeSearchName} filteredOption = likeAsOrCallback.filterOption(optionDeepCopy);\r
- invokeSetterLikeSearch(additionalTargetPropertyName, filteredValue, filteredOption);\r
- }\r
- getSqlClause().ignoreAdditionalConditionAsOr();\r
- }\r
- }\r
- } else {\r
- // As 'or' Condition\r
- for (int i = 0; i < strArray.length; i++) {\r
- final String currentValue = strArray[i];\r
- if (i == 0) {\r
- setupConditionValueAndRegisterWhereClause(key, currentValue, cvalue, colName, capPropName, uncapPropName, option);\r
- } else {\r
- getSqlClause().makeAdditionalConditionAsOrEffective();\r
- invokeSetterLikeSearch(uncapPropName, currentValue, option);\r
- }\r
- }\r
- \r
- // @jflute -- Callback for LikeAsOr!\r
- // final List<${glConditionOptionLikeSearchName}.LikeAsOrCallback> callbackList = option.getLikeAsOrCallbackList();\r
- // ...\r
- \r
- getSqlClause().ignoreAdditionalConditionAsOr();\r
- }\r
- }\r
-\r
- protected void throwLikeSearchOptionNotFoundException(String capPropName, String value) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The likeSearchOption was Not Found! (Should not be null!)" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "Please confirm your method call:" + getLineSeparator();\r
- final String beanName = getClass().getSimpleName();\r
- final String methodName = "set" + capPropName + "_LikeSearch('" + value + "', likeSearchOption);";\r
- msg = msg + " " + beanName + "." + methodName + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */" + getLineSeparator();\r
- throw new ${glRequiredOptionNotFoundException}(msg);\r
- }\r
- \r
- protected void invokeSetterLikeSearch(String columnFlexibleName, Object value, ${glConditionOptionLikeSearchName} option) {\r
- if (value == null) {\r
- return;\r
- }\r
- final ${glDBMetaInterfaceName} dbmeta = ${glDBMetaInstanceHandlerName}.findDBMeta(getTableDbName());\r
- final String columnCapPropName = initCap(dbmeta.findPropertyName(columnFlexibleName));\r
- final String methodName = "set" + columnCapPropName + "_LikeSearch";\r
- Method method = null;\r
- try {\r
- method = this.getClass().getMethod(methodName, new Class[]{value.getClass(), ${glConditionOptionLikeSearchName}.class});\r
- } catch (NoSuchMethodException e) {\r
- String msg = "The columnFlexibleName is not existing in this table: columnFlexibleName=" + columnFlexibleName;\r
- msg = msg + " tableName=" + getTableDbName() + " methodName=" + methodName;\r
- throw new RuntimeException(msg, e);\r
- }\r
- try {\r
- method.invoke(this, new Object[]{value, option});\r
- } catch (IllegalAccessException e) {\r
- throw new RuntimeException(e);\r
- } catch (InvocationTargetException e) {\r
- throw new RuntimeException(e.getCause());\r
- }\r
- }\r
-\r
- // -----------------------------------------------------\r
- // InScope Query\r
- // -------------\r
- protected void registerInScopeQuery(${glConditionKeyName} key, String value, ${glConditionValueName} cvalue\r
- , String colName, String capPropName, String uncapPropName, ${glConditionOptionInScopeName} option) {\r
- if (key.isValidRegistration(cvalue, value, key.getConditionKey() + " of " + getRealAliasName() + "." + colName)) {\r
- if (value != null && option.isSplit()) {\r
- final String[] strArray = option.generateSplitValueArray(value);\r
- final List<String> realValueList = new ArrayList<String>();\r
- for (int i=0; i < strArray.length; i++) {\r
- final String currentValue = strArray[i];\r
- realValueList.add(currentValue);\r
- }\r
- setupConditionValueAndRegisterWhereClause(key, realValueList, cvalue, colName, capPropName, uncapPropName, option);\r
- } else {\r
- setupConditionValueAndRegisterWhereClause(key, value, cvalue, colName, capPropName, uncapPropName, option);\r
- }\r
- }\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Inline Query\r
- // ------------\r
- protected void registerInlineQuery(${glConditionKeyName} key, Object value, ${glConditionValueName} cvalue\r
- , String colName, String capPropName, String uncapPropName) {\r
- if (key.isValidRegistration(cvalue, value, key.getConditionKey() + " of " + getRealAliasName() + "." + colName)) {\r
- key.setupConditionValue(cvalue, value, getLocation(uncapPropName, key));// If Java, it is necessary to use uncapPropName!\r
- if (isBaseQuery(this)) {\r
- getSqlClause().registerBaseTableInlineWhereClause(colName, key, cvalue);\r
- } else {\r
- getSqlClause().registerOuterJoinInlineWhereClause(getRealAliasName(), colName, key, cvalue, _onClauseInline);\r
- }\r
- }\r
- }\r
-\r
- protected void registerInlineQuery(${glConditionKeyName} key, Object value, ${glConditionValueName} cvalue\r
- , String colName, String capPropName, String uncapPropName, ${glConditionOptionInterfaceName} option) {\r
- if (key.isValidRegistration(cvalue, value, key.getConditionKey() + " of " + getRealAliasName() + "." + colName)) {\r
- key.setupConditionValue(cvalue, value, getLocation(uncapPropName, key), option);// If Java, it is necessary to use uncapPropName!\r
- if (isBaseQuery(this)) {\r
- getSqlClause().registerBaseTableInlineWhereClause(colName, key, cvalue, option);\r
- } else {\r
- getSqlClause().registerOuterJoinInlineWhereClause(getRealAliasName(), colName, key, cvalue, option, _onClauseInline);\r
- }\r
- }\r
- }\r
-\r
- // -----------------------------------------------------\r
- // InScopeSubQuery\r
- // ---------------\r
- // {Modified at DBFlute-0.7.5}\r
- protected void registerInScopeSubQuery(${glConditionQueryInterfaceName} subQuery\r
- , String columnName, String relatedColumnName, String propertyName) {\r
- registerInScopeSubQuery(subQuery, columnName, relatedColumnName, propertyName, null);\r
- }\r
-\r
- protected void registerNotInScopeSubQuery(${glConditionQueryInterfaceName} subQuery\r
- , String columnName, String relatedColumnName, String propertyName) {\r
- registerInScopeSubQuery(subQuery, columnName, relatedColumnName, propertyName, "not");\r
- }\r
-\r
- protected void registerInScopeSubQuery(${glConditionQueryInterfaceName} subQuery\r
- , String columnName, String relatedColumnName, String propertyName\r
- , String inScopeOption) {\r
- assertObjectNotNull("InScopeSubQyery(" + columnName + ")", subQuery);\r
- inScopeOption = inScopeOption != null ? inScopeOption + " " : "";\r
- String realColumnName = getInScopeSubQueryRealColumnName(columnName);\r
- String subQueryClause = getInScopeSubQuerySql(subQuery, relatedColumnName, propertyName);\r
- String clause = null;\r
- if (getSqlClause().isFormatClauseEffective()) {\r
- String ln = getLineSeparator();\r
- int subQueryLevel = subQuery.getSubQueryLevel();\r
- String subQueryIdentity = propertyName + "[" + subQueryLevel + "]";\r
- String beginMark = getSqlClause().resolveSubQueryBeginMark(subQueryIdentity) + ln;\r
- String endMark = getSqlClause().resolveSubQueryEndMark(subQueryIdentity);\r
- String endIndent = " ";\r
- clause = realColumnName + " " + inScopeOption + "in (" + beginMark + subQueryClause + ln + endIndent + ")" + endMark;\r
- } else {\r
- clause = realColumnName + " " + inScopeOption + "in (" + subQueryClause + ")";\r
- }\r
- registerWhereClause(clause);\r
- }\r
-\r
- protected String getInScopeSubQueryRealColumnName(String columnName) {\r
- return getRealColumnName(columnName);\r
- }\r
-\r
- protected String getInScopeSubQuerySql(${glConditionQueryInterfaceName} subQuery\r
- , String relatedColumnName, String propertyName) {\r
- String selectClause = "select " + getSqlClause().getLocalTableAliasName() + "." + relatedColumnName;\r
- String fromWhereClause = subQuery.getSqlClause().getClauseFromWhereWithUnionTemplate();\r
- fromWhereClause = replaceString(fromWhereClause, ".conditionQuery.", "." + getLocationBase(propertyName) + ".");// Very Important!\r
- \r
- // Replace template marks. These are very important!\r
- fromWhereClause = replaceString(fromWhereClause, getSqlClause().getUnionSelectClauseMark(), selectClause);\r
- fromWhereClause = replaceString(fromWhereClause, getSqlClause().getUnionWhereClauseMark(), "");\r
- fromWhereClause = replaceString(fromWhereClause, getSqlClause().getUnionWhereFirstConditionMark(), "");\r
- \r
- return selectClause + " " + fromWhereClause;\r
- }\r
-\r
- // -----------------------------------------------------\r
- // ExistsSubQuery\r
- // --------------\r
- // {Modified at DBFlute-0.7.5}\r
- protected void registerExistsSubQuery(${glConditionQueryInterfaceName} subQuery\r
- , String columnName, String relatedColumnName, String propertyName) {\r
- registerExistsSubQuery(subQuery, columnName, relatedColumnName, propertyName, null);\r
- }\r
-\r
- protected void registerNotExistsSubQuery(${glConditionQueryInterfaceName} subQuery\r
- , String columnName, String relatedColumnName, String propertyName) {\r
- registerExistsSubQuery(subQuery, columnName, relatedColumnName, propertyName, "not");\r
- }\r
-\r
- protected void registerExistsSubQuery(${glConditionQueryInterfaceName} subQuery\r
- , String columnName, String relatedColumnName, String propertyName\r
- , String existsOption) {\r
- assertObjectNotNull("ExistsSubQyery(" + columnName + ")", subQuery);\r
- existsOption = existsOption != null ? existsOption + " " : "";\r
- String realColumnName = getExistsSubQueryRealColumnName(columnName);\r
- String subQueryClause = getExistsSubQuerySql(subQuery, realColumnName, relatedColumnName, propertyName);\r
- String clause = null;\r
- if (getSqlClause().isFormatClauseEffective()) {\r
- String ln = getLineSeparator();\r
- int subQueryLevel = subQuery.getSubQueryLevel();\r
- String subQueryIdentity = propertyName + "[" + subQueryLevel + "]";\r
- String beginMark = getSqlClause().resolveSubQueryBeginMark(subQueryIdentity) + ln;\r
- String endMark = getSqlClause().resolveSubQueryEndMark(subQueryIdentity);\r
- String endIndent = " ";\r
- clause = existsOption + "exists (" + beginMark + subQueryClause + ln + endIndent + ")" + endMark;\r
- } else {\r
- clause = existsOption + "exists (" + subQueryClause + ")";\r
- }\r
- registerWhereClause(clause);\r
- }\r
-\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \r
- // *Unsupport ExistsSubQuery as inline because it's so dangerous.\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \r
-\r
- protected String getExistsSubQueryRealColumnName(String columnName) {\r
- return getRealColumnName(columnName);\r
- }\r
-\r
- protected String getExistsSubQuerySql(${glConditionQueryInterfaceName} subQuery\r
- , String realColumnName, String relatedColumnName, String propertyName) {\r
- int subQueryLevel = subQuery.getSubQueryLevel();\r
- if (_subQueryLevel <= subQueryLevel) {\r
- _subQueryLevel = subQueryLevel + 1;\r
- }\r
- String tableAliasName = "dfsublocal_" + subQueryLevel;\r
- String selectClause = "select " + tableAliasName + "." + relatedColumnName;\r
- String fromWhereClause = subQuery.getSqlClause().getClauseFromWhereWithWhereUnionTemplate();\r
- fromWhereClause = replaceString(fromWhereClause, "dflocal", tableAliasName);// Very Important!\r
- fromWhereClause = replaceString(fromWhereClause, ".conditionQuery.", "." + getLocationBase(propertyName) + ".");// Very Important!\r
- \r
- String joinCondition = tableAliasName + "." + relatedColumnName + " = " + realColumnName;\r
- String firstConditionAfter = " and ";\r
- if (getSqlClause().isFormatClauseEffective()) {\r
- firstConditionAfter = getLineSeparator() + " and ";\r
- }\r
- \r
- // Replace template marks. These are very important!\r
- fromWhereClause = replaceString(fromWhereClause, getSqlClause().getWhereClauseMark(), "where " + joinCondition);\r
- fromWhereClause = replaceString(fromWhereClause, getSqlClause().getWhereFirstConditionMark(), joinCondition + firstConditionAfter);\r
- fromWhereClause = replaceString(fromWhereClause, getSqlClause().getUnionSelectClauseMark(), selectClause);\r
- fromWhereClause = replaceString(fromWhereClause, getSqlClause().getUnionWhereClauseMark(), "where " + joinCondition);\r
- fromWhereClause = replaceString(fromWhereClause, getSqlClause().getUnionWhereFirstConditionMark(), joinCondition + firstConditionAfter);\r
- \r
- return selectClause + " " + fromWhereClause;\r
- }\r
-\r
- // [DBFlute-0.7.4]\r
- // -----------------------------------------------------\r
- // DeriveSubQuery\r
- // --------------\r
- protected void registerDeriveSubQuery(String function, ${glConditionQueryInterfaceName} subQuery\r
- , String columnName, String relatedColumnName\r
- , String propertyName, String aliasName) {\r
- assertObjectNotNull("DeriveSubQuery(" + columnName + ")", subQuery);\r
- final String realColumnName = getDeriveSubQueryRealColumnName(columnName);\r
- final String subQueryClause = getDeriveSubQuerySql(function, subQuery, realColumnName, relatedColumnName, propertyName, aliasName);\r
- final String clause;\r
- if (getSqlClause().isFormatClauseEffective()) {\r
- final String ln = getLineSeparator();\r
- final int subQueryLevel = subQuery.getSubQueryLevel();\r
- final String subQueryIdentity = propertyName + "[" + subQueryLevel + "]";\r
- final String beginMark = getSqlClause().resolveSubQueryBeginMark(subQueryIdentity) + ln;\r
- final String endMark = getSqlClause().resolveSubQueryEndMark(subQueryIdentity);\r
- final String endIndent = " ";\r
- clause = "(" + beginMark + subQueryClause + ln + endIndent + ") as " + aliasName + endMark;\r
- } else {\r
- clause = "(" + subQueryClause + ") as " + aliasName;\r
- }\r
- getSqlClause().specifyDeriveSubQuery(aliasName, clause);\r
- }\r
-\r
- protected String getDeriveSubQueryRealColumnName(String columnName) {\r
- return getRealColumnName(columnName);\r
- }\r
-\r
- protected String getDeriveSubQuerySql(String function, ${glConditionQueryInterfaceName} subQuery\r
- , String realColumnName, String relatedColumnName\r
- , String propertyName, String aliasName) {\r
- final int subQueryLevel = subQuery.getSubQueryLevel();\r
- if (_subQueryLevel <= subQueryLevel) {\r
- _subQueryLevel = subQueryLevel + 1;\r
- }\r
- final String tableAliasName = "dfsublocal_" + subQueryLevel;\r
- final String deriveColumnName = subQuery.getSqlClause().getSpecifiedColumnNameAsOne();\r
- if (deriveColumnName == null || deriveColumnName.trim().length() == 0) {\r
- throwDeriveReferrerInvalidColumnSpecificationException(function, aliasName);\r
- }\r
- assertDeriveReferrerColumnType(function, subQuery, deriveColumnName);\r
- subQuery.getSqlClause().clearSpecifiedSelectColumn();\r
- final String selectClause = "select " + function + "(" + tableAliasName + "." + deriveColumnName + ")";\r
- String fromWhereClause = subQuery.getSqlClause().getClauseFromWhereWithWhereUnionTemplate();\r
- fromWhereClause = replaceString(fromWhereClause, "dflocal", tableAliasName);// Very Important!\r
- fromWhereClause = replaceString(fromWhereClause, ".conditionQuery.", "." + getLocationBase(propertyName) + ".");// Very Important!\r
- \r
- final String joinCondition = tableAliasName + "." + relatedColumnName + " = " + realColumnName;\r
- String firstConditionAfter = " and ";\r
- if (getSqlClause().isFormatClauseEffective()) {\r
- firstConditionAfter = getLineSeparator() + " and ";\r
- }\r
- \r
- // Replace template marks. These are very important!\r
- fromWhereClause = replaceString(fromWhereClause, getSqlClause().getWhereClauseMark(), "where " + joinCondition);\r
- fromWhereClause = replaceString(fromWhereClause, getSqlClause().getWhereFirstConditionMark(), joinCondition + firstConditionAfter);\r
- fromWhereClause = replaceString(fromWhereClause, getSqlClause().getUnionSelectClauseMark(), selectClause);\r
- fromWhereClause = replaceString(fromWhereClause, getSqlClause().getUnionWhereClauseMark(), "where " + joinCondition);\r
- fromWhereClause = replaceString(fromWhereClause, getSqlClause().getUnionWhereFirstConditionMark(), joinCondition + firstConditionAfter);\r
- \r
- return selectClause + " " + fromWhereClause;\r
- }\r
-\r
- protected void throwDeriveReferrerInvalidColumnSpecificationException(String function, String aliasName) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The specified the column for derive-referrer was Invalid!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + " You should call specify().column[TargetColumn]() only once." + getLineSeparator();\r
- msg = msg + " For example:" + getLineSeparator();\r
- msg = msg + " " + getLineSeparator();\r
- msg = msg + " [Wrong]" + getLineSeparator();\r
- msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + getLineSeparator();\r
- msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator();\r
- msg = msg + " cb.specify().derivePurchaseList()." + function + "(new SubQuery<PurchaseCB>() {" + getLineSeparator();\r
- msg = msg + " public void query(PurchaseCB subCB) {" + getLineSeparator();\r
- msg = msg + " // *No! It's empty!" + getLineSeparator();\r
- msg = msg + " }" + getLineSeparator();\r
- msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + getLineSeparator();\r
- msg = msg + " - - - - - - - - - -/" + getLineSeparator();\r
- msg = msg + " " + getLineSeparator();\r
- msg = msg + " [Wrong]" + getLineSeparator();\r
- msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + getLineSeparator();\r
- msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator();\r
- msg = msg + " cb.specify().derivePurchaseList()." + function + "(new SubQuery<PurchaseCB>() {" + getLineSeparator();\r
- msg = msg + " public void query(PurchaseCB subCB) {" + getLineSeparator();\r
- msg = msg + " subCB.specify().columnPurchaseDatetime();" + getLineSeparator();\r
- msg = msg + " subCB.specify().columnPurchaseCount(); // *No! It's duplicated!" + getLineSeparator();\r
- msg = msg + " }" + getLineSeparator();\r
- msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + getLineSeparator();\r
- msg = msg + " - - - - - - - - - -/" + getLineSeparator();\r
- msg = msg + " " + getLineSeparator();\r
- msg = msg + " [Good!]" + getLineSeparator();\r
- msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + getLineSeparator();\r
- msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator();\r
- msg = msg + " cb.specify().derivePurchaseList()." + function + "(new SubQuery<PurchaseCB>() {" + getLineSeparator();\r
- msg = msg + " public void query(PurchaseCB subCB) {" + getLineSeparator();\r
- msg = msg + " subCB.specify().columnPurchaseDatetime(); // *Point!" + getLineSeparator();\r
- msg = msg + " }" + getLineSeparator();\r
- msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + getLineSeparator();\r
- msg = msg + " - - - - - - - - - -/" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Alias Name]" + getLineSeparator() + aliasName + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new DeriveReferrerInvalidColumnSpecificationException(msg);\r
- }\r
-\r
- public static class DeriveReferrerInvalidColumnSpecificationException extends RuntimeException {\r
- private static final long serialVersionUID = 1L;\r
- public DeriveReferrerInvalidColumnSpecificationException(String msg) {\r
- super(msg);\r
- }\r
- }\r
- \r
- protected void assertDeriveReferrerColumnType(String function, ${glConditionQueryInterfaceName} subQuery, String deriveColumnName) {\r
- final ${glDBMetaInterfaceName} dbmeta = ${glDBMetaInstanceHandlerName}.findDBMeta(subQuery.getTableDbName());\r
- final Class<?> deriveColumnType = dbmeta.findColumnInfo(deriveColumnName).getPropertyType();\r
- if ("sum".equalsIgnoreCase(function) || "avg".equalsIgnoreCase(function)) {\r
- if (!Number.class.isAssignableFrom(deriveColumnType)) {\r
- throwDeriveReferrerUnmatchedColumnTypeException(function, deriveColumnName, deriveColumnType);\r
- }\r
- }\r
- }\r
-\r
- protected void throwDeriveReferrerUnmatchedColumnTypeException(String function, String deriveColumnName, Class<?> deriveColumnType) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The type of the specified the column unmatched with the function!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "You should confirm the list as follow:" + getLineSeparator();\r
- msg = msg + " max() : String, Number, Date" + getLineSeparator();\r
- msg = msg + " min() : String, Number, Date" + getLineSeparator();\r
- msg = msg + " sum() : Number" + getLineSeparator();\r
- msg = msg + " avg() : Number" + getLineSeparator();\r
- msg = msg + " count() : String, Number, Date" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Function]" + getLineSeparator() + function + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Derive Column]" + getLineSeparator() + deriveColumnName + "(" + deriveColumnType.getName() + ")" + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new DeriveReferrerUnmatchedColumnTypeException(msg);\r
- }\r
-\r
- public static class DeriveReferrerUnmatchedColumnTypeException extends RuntimeException {\r
- private static final long serialVersionUID = 1L;\r
- public DeriveReferrerUnmatchedColumnTypeException(String msg) {\r
- super(msg);\r
- }\r
- }\r
- \r
- // -----------------------------------------------------\r
- // Where Clause\r
- // ------------\r
- protected void setupConditionValueAndRegisterWhereClause(${glConditionKeyName} key, Object value, ${glConditionValueName} cvalue\r
- , String colName, String capPropName, String uncapPropName) {\r
- key.setupConditionValue(cvalue, value, getLocation(uncapPropName, key));// If Java, it is necessary to use uncapPropName!\r
- getSqlClause().registerWhereClause(getRealColumnName(colName), key, cvalue);\r
- }\r
-\r
- protected void setupConditionValueAndRegisterWhereClause(${glConditionKeyName} key, Object value, ${glConditionValueName} cvalue\r
- , String colName, String capPropName, String uncapPropName, ${glConditionOptionInterfaceName} option) {\r
- key.setupConditionValue(cvalue, value, getLocation(uncapPropName, key), option);// If Java, it is necessary to use uncapPropName!\r
- getSqlClause().registerWhereClause(getRealColumnName(colName), key, cvalue, option);\r
- }\r
-\r
- protected void registerWhereClause(String whereClause) {\r
- getSqlClause().registerWhereClause(whereClause);\r
- }\r
-\r
- protected void registerInlineWhereClause(String whereClause) {\r
- if (isBaseQuery(this)) {\r
- getSqlClause().registerBaseTableInlineWhereClause(whereClause);\r
- } else {\r
- getSqlClause().registerOuterJoinInlineWhereClause(getRealAliasName(), whereClause, _onClauseInline);\r
- }\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Union Query\r
- // -----------\r
- public void registerUnionQuery(${glConditionQueryInterfaceName} unionQuery, boolean unionAll, String unionQueryPropertyName) {\r
- final String unionQueryClause = getUnionQuerySql(unionQuery, unionQueryPropertyName);\r
- \r
- // At the future, building SQL will be moved to sqlClause.\r
- getSqlClause().registerUnionQuery(unionQueryClause, unionAll);\r
- }\r
-\r
- protected String getUnionQuerySql(${glConditionQueryInterfaceName} unionQuery, String unionQueryPropertyName) {\r
- final String fromClause = unionQuery.getSqlClause().getFromClause();\r
- final String whereClause = unionQuery.getSqlClause().getWhereClause();\r
- final String unionQueryClause;\r
- if (whereClause.trim().length() <= 0) {\r
- unionQueryClause = fromClause + " " + getSqlClause().getUnionWhereClauseMark();\r
- } else {\r
- final int whereIndex = whereClause.indexOf("where ");\r
- if (whereIndex < 0) {\r
- String msg = "The whereClause should have 'where' string: " + whereClause;\r
- throw new IllegalStateException(msg);\r
- }\r
- final int clauseIndex = whereIndex + "where ".length();\r
- final String mark = getSqlClause().getUnionWhereFirstConditionMark();\r
- unionQueryClause = fromClause + " " + whereClause.substring(0, clauseIndex) + mark + whereClause.substring(clauseIndex);\r
- }\r
- final String oldStr = ".conditionQuery.";\r
- final String newStr = ".conditionQuery." + unionQueryPropertyName + ".";\r
- return replaceString(unionQueryClause, oldStr, newStr);// Very Important!\r
- }\r
-\r
- // -----------------------------------------------------\r
- // OrderBy\r
- // -------\r
- public void withNullsFirst() {// is User Public!\r
- getSqlClause().addNullsFirstToPreviousOrderBy();\r
- }\r
- \r
- public void withNullsLast() {// is User Public!\r
- getSqlClause().addNullsLastToPreviousOrderBy();\r
- }\r
-\r
- protected void registerSpecifiedDerivedOrderBy_Asc(String aliasName) {\r
- if (!getSqlClause().hasSpecifiedDeriveSubQuery(aliasName)) {\r
- throwSpecifiedDerivedOrderByAliasNameNotFoundException(aliasName);\r
- }\r
- getSqlClause().registerOrderBy(aliasName, null, true);\r
- }\r
-\r
- protected void registerSpecifiedDerivedOrderBy_Desc(String aliasName) {\r
- if (!getSqlClause().hasSpecifiedDeriveSubQuery(aliasName)) {\r
- throwSpecifiedDerivedOrderByAliasNameNotFoundException(aliasName);\r
- }\r
- getSqlClause().registerOrderBy(aliasName, null, false);\r
- }\r
-\r
- protected void throwSpecifiedDerivedOrderByAliasNameNotFoundException(String aliasName) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The aliasName was Not Found in specified alias names." + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "You should specified an alias name that is the same as one in specify-derived-referrer." + getLineSeparator();\r
- msg = msg + " For example:" + getLineSeparator();\r
- msg = msg + " " + getLineSeparator();\r
- msg = msg + " [Wrong]" + getLineSeparator();\r
- msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + getLineSeparator();\r
- msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator();\r
- msg = msg + " cb.specify().derivePurchaseList().max(new SubQuery<PurchaseCB>() {" + getLineSeparator();\r
- msg = msg + " public void query(PurchaseCB subCB) {" + getLineSeparator();\r
- msg = msg + " subCB.specify().specifyProduct().columnProductName(); // *No!" + getLineSeparator();\r
- msg = msg + " }" + getLineSeparator();\r
- msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + getLineSeparator();\r
- msg = msg + " cb.query().addSpecifiedDerivedOrderBy_Desc(\"WRONG_NAME_DATETIME\");" + getLineSeparator();\r
- msg = msg + " - - - - - - - - - -/" + getLineSeparator();\r
- msg = msg + " " + getLineSeparator();\r
- msg = msg + " [Good!]" + getLineSeparator();\r
- msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + getLineSeparator();\r
- msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator();\r
- msg = msg + " cb.specify().derivePurchaseList().max(new SubQuery<PurchaseCB>() {" + getLineSeparator();\r
- msg = msg + " public void query(PurchaseCB subCB) {" + getLineSeparator();\r
- msg = msg + " subCB.specify().columnPurchaseDatetime();// *Point!" + getLineSeparator();\r
- msg = msg + " }" + getLineSeparator();\r
- msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + getLineSeparator();\r
- msg = msg + " cb.query().addSpecifiedDerivedOrderBy_Desc(\"LATEST_PURCHASE_DATETIME\");" + getLineSeparator();\r
- msg = msg + " - - - - - - - - - -/" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Not Found Alias Name]" + getLineSeparator() + aliasName + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new SpecifiedDerivedOrderByAliasNameNotFoundException(msg);\r
- }\r
-\r
- public static class SpecifiedDerivedOrderByAliasNameNotFoundException extends RuntimeException {\r
- private static final long serialVersionUID = 1L;\r
- public SpecifiedDerivedOrderByAliasNameNotFoundException(String msg) {\r
- super(msg);\r
- }\r
- }\r
-\r
- protected void registerOrderBy(String columnName, boolean ascOrDesc) {\r
- getSqlClause().registerOrderBy(getRealColumnName(columnName), null, ascOrDesc);\r
- }\r
-\r
- protected void regOBA(String columnName) {\r
- registerOrderBy(columnName, true);\r
- }\r
-\r
- protected void regOBD(String columnName) {\r
- registerOrderBy(columnName, false);\r
- }\r
- \r
- // ===================================================================================\r
- // Name Resolver\r
- // =============\r
- /**\r
- * Resolve join alias name.\r
- * @param relationPath Relation path. (NotNull)\r
- * @param nestLevel Nest level.\r
- * @return Resolved join alias name. (NotNull)\r
- */\r
- protected String resolveJoinAliasName(String relationPath, int nestLevel) {\r
- return getSqlClause().resolveJoinAliasName(relationPath, nestLevel);\r
- }\r
-\r
- protected String resolveNestLevelExpression(String name) {\r
- return getSqlClause().resolveNestLevelExpression(name, getNestLevel());\r
- }\r
-\r
- protected String resolveNextRelationPath(String tableName, String relationPropertyName) {\r
- final int relationNo = getSqlClause().resolveRelationNo(tableName, relationPropertyName);\r
- String nextRelationPath = "_" + relationNo;\r
- if (_relationPath != null) {\r
- nextRelationPath = _relationPath + nextRelationPath;\r
- }\r
- return nextRelationPath;\r
- }\r
- \r
- // ===================================================================================\r
- // Fixed Condition\r
- // ===============\r
- protected String prepareFixedCondition(String fixedCondition, String localAliasName, String foreignAliasName) {\r
- fixedCondition = replaceString(fixedCondition, "$$alias$$", foreignAliasName);\r
- fixedCondition = replaceString(fixedCondition, "$$foreignAlias$$", foreignAliasName);\r
- fixedCondition = replaceString(fixedCondition, "$$localAlias$$", localAliasName);\r
- return fixedCondition;\r
- }\r
-\r
- // ===================================================================================\r
- // Reflection Invoking\r
- // ===================\r
- /**\r
- * ${database.ImplementComment}\r
- * @param columnFlexibleName The flexible name of the column. (NotNull and NotEmpty)\r
- * @return The conditionValue. (NotNull)\r
- */\r
- public ${glConditionValueName} invokeValue(String columnFlexibleName) {\r
- assertStringNotNullAndNotTrimmedEmpty("columnFlexibleName", columnFlexibleName);\r
- final ${glDBMetaInterfaceName} dbmeta = ${glDBMetaInstanceHandlerName}.findDBMeta(getTableDbName());\r
- final String columnCapPropName = initCap(dbmeta.findPropertyName(columnFlexibleName));\r
- final String methodName = "get" + columnCapPropName;\r
- final Method method = helpGettingCQMethod(this, methodName, new Class<?>[]{}, columnFlexibleName);\r
- return (${glConditionValueName})helpInvokingCQMethod(this, method, new Object[]{});\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @param columnFlexibleName The flexible name of the column allowed to contain relations. (NotNull and NotEmpty)\r
- * @param conditionKeyName The name of the conditionKey. (NotNull)\r
- * @param value The value of the condition. (NotNull)\r
- */\r
- public void invokeQuery(String columnFlexibleName, String conditionKeyName, Object value) {\r
- assertStringNotNullAndNotTrimmedEmpty("columnFlexibleName", columnFlexibleName);\r
- assertStringNotNullAndNotTrimmedEmpty("conditionKeyName", conditionKeyName);\r
- if (value == null) {\r
- return;\r
- }\r
- final PropertyNameCQContainer container = helpExtractingPropertyNameCQContainer(columnFlexibleName);\r
- final String propertyName = container.getPropertyName();\r
- final ${glConditionQueryInterfaceName} cq = container.getConditionQuery();\r
- final ${glDBMetaInterfaceName} dbmeta = ${glDBMetaInstanceHandlerName}.findDBMeta(cq.getTableDbName());\r
- final String columnCapPropName = initCap(dbmeta.findPropertyName(propertyName));\r
- final String methodName = "set" + columnCapPropName + "_" + initCap(conditionKeyName);\r
- final Method method = helpGettingCQMethod(cq, methodName, new Class<?>[]{value.getClass()}, propertyName);\r
- helpInvokingCQMethod(cq, method, new Object[]{value});\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @param columnFlexibleName The flexible name of a column allowed to contain relations. (NotNull and NotEmpty)\r
- * @param isAsc Is it ascend?\r
- */\r
- public void invokeOrderBy(String columnFlexibleName, boolean isAsc) {\r
- assertStringNotNullAndNotTrimmedEmpty("columnFlexibleName", columnFlexibleName);\r
- final PropertyNameCQContainer container = helpExtractingPropertyNameCQContainer(columnFlexibleName);\r
- final String propertyName = container.getPropertyName();\r
- final ${glConditionQueryInterfaceName} cq = container.getConditionQuery();\r
- final String ascDesc = isAsc ? "Asc" : "Desc";\r
- final ${glDBMetaInterfaceName} dbmeta = ${glDBMetaInstanceHandlerName}.findDBMeta(cq.getTableDbName());\r
- final String columnCapPropName = initCap(dbmeta.findPropertyName(propertyName));\r
- final String methodName = "addOrderBy_" + columnCapPropName + "_" + ascDesc;\r
- final Method method = helpGettingCQMethod(cq, methodName, new Class<?>[]{}, propertyName);\r
- helpInvokingCQMethod(cq, method, new Object[]{});\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @param foreignPropertyName The property name of foreign. (NotNull and NotEmpty)\r
- * @return The conditionQuery of foreign as interface. (NotNull)\r
- */\r
- public ${glConditionQueryInterfaceName} invokeForeignCQ(String foreignPropertyName) {\r
- assertStringNotNullAndNotTrimmedEmpty("foreignPropertyName", foreignPropertyName);\r
- final String methodName = "query" + initCap(foreignPropertyName);\r
- final Method method = helpGettingCQMethod(this, methodName, new Class<?>[]{}, foreignPropertyName);\r
- return (${glConditionQueryInterfaceName})helpInvokingCQMethod(this, method, new Object[]{});\r
- }\r
-\r
- private PropertyNameCQContainer helpExtractingPropertyNameCQContainer(String name) {\r
- final String[] strings = name.split("\\.");\r
- final int length = strings.length;\r
- String propertyName = null;\r
- ${glConditionQueryInterfaceName} cq = this;\r
- int index = 0;\r
- for (String element : strings) {\r
- if (length == (index+1)) {// at last loop!\r
- propertyName = element;\r
- break;\r
- }\r
- cq = cq.invokeForeignCQ(element);\r
- ++index;\r
- }\r
- return new PropertyNameCQContainer(propertyName, cq);\r
- }\r
-\r
- private static class PropertyNameCQContainer {\r
- protected String _propertyName;\r
- protected ${glConditionQueryInterfaceName} _cq;\r
- public PropertyNameCQContainer(String propertyName, ${glConditionQueryInterfaceName} cq) {\r
- this._propertyName = propertyName;\r
- this._cq = cq;\r
- }\r
- public String getPropertyName() {\r
- return _propertyName;\r
- }\r
- public ${glConditionQueryInterfaceName} getConditionQuery() {\r
- return _cq;\r
- }\r
- }\r
-\r
- private Method helpGettingCQMethod(${glConditionQueryInterfaceName} cq, String methodName, Class<?>[] argTypes, String property) {\r
- try {\r
- return cq.getClass().getMethod(methodName, argTypes);\r
- } catch (NoSuchMethodException e) {\r
- String msg = "The method is not existing:";\r
- msg = msg + " methodName=" + methodName;\r
- msg = msg + " argTypes=" + convertObjectArrayToStringView(argTypes);\r
- msg = msg + " tableName=" + cq.getTableDbName();\r
- msg = msg + " property=" + property;\r
- throw new IllegalStateException(msg, e);\r
- }\r
- }\r
-\r
- private Object helpInvokingCQMethod(${glConditionQueryInterfaceName} cq, Method method, Object[] args) {\r
- try {\r
- return method.invoke(cq, args);\r
- } catch (IllegalAccessException e) {\r
- throw new IllegalStateException(e);\r
- } catch (InvocationTargetException e) {\r
- throw new IllegalStateException(e.getCause());\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Assist Helper\r
- // =============\r
- /**\r
- * @param value Query-value-string. (Nullable)\r
- * @return Filtered value. (Nullable)\r
- */\r
- protected String fRES(String value) {\r
- return filterRemoveEmptyString(value);\r
- }\r
-\r
- /**\r
- * @param value Query-value-string. (Nullable)\r
- * @return Filtered value. (Nullable)\r
- */\r
- private String filterRemoveEmptyString(String value) {\r
- return ((value != null && !"".equals(value)) ? value : null);\r
- }\r
- \r
- /**\r
- * @param col Target collection. (Nullable)\r
- * @param <PROPERTY_TYPE> The type of property.\r
- * @return List. (Nullable: If the argument is null, returns null.)\r
- */\r
- protected <PROPERTY_TYPE> List<PROPERTY_TYPE> cTL(Collection<PROPERTY_TYPE> col) {\r
- return convertToList(col);\r
- }\r
- \r
- /**\r
- * @param col Target collection. (Nullable)\r
- * @param <PROPERTY_TYPE> The type of property.\r
- * @return List. (Nullable: If the argument is null, returns null.)\r
- */\r
- private <PROPERTY_TYPE> List<PROPERTY_TYPE> convertToList(Collection<PROPERTY_TYPE> col) {\r
- if (col == null) {\r
- return null;\r
- }\r
- if (col instanceof List) {\r
- return filterRemoveNullOrEmptyValueFromList((List<PROPERTY_TYPE>)col);\r
- }\r
- return filterRemoveNullOrEmptyValueFromList(new ArrayList<PROPERTY_TYPE>(col));\r
- }\r
-\r
- private <PROPERTY_TYPE> List<PROPERTY_TYPE> filterRemoveNullOrEmptyValueFromList(List<PROPERTY_TYPE> ls) {\r
- if (ls == null) {\r
- return null;\r
- }\r
- List<PROPERTY_TYPE> newList = new ArrayList<PROPERTY_TYPE>();\r
- for (Iterator<PROPERTY_TYPE> ite = ls.iterator(); ite.hasNext(); ) {\r
- final PROPERTY_TYPE element = ite.next();\r
- if (element == null) {\r
- continue;\r
- }\r
- if (element instanceof String) {\r
- if (((String)element).length() == 0) {\r
- continue;\r
- }\r
- }\r
- newList.add(element);\r
- }\r
- return newList;\r
- }\r
- \r
- public void doNss(NssCall callback) {// Very Internal\r
- String foreignPropertyName = callback.qf().getForeignPropertyName();\r
- String foreignTableAliasName = callback.qf().getRealAliasName();\r
- getSqlClause().registerSelectedSelectColumn(foreignTableAliasName, getTableDbName(), foreignPropertyName, getRelationPath());\r
- getSqlClause().registerSelectedForeignInfo(callback.qf().getRelationPath(), foreignPropertyName);\r
- }\r
- \r
- public static interface NssCall {// Very Internal\r
- public ${glConditionQueryInterfaceName} qf();\r
- }\r
-\r
- protected void registerOuterJoin(${glConditionQueryInterfaceName} cq, Map<String, String> joinOnMap) {\r
- getSqlClause().registerOuterJoin(cq.getTableSqlName(), cq.getRealAliasName(), joinOnMap);\r
- }\r
- \r
- // ===================================================================================\r
- // General Helper\r
- // ==============\r
- protected final String replaceString(String text, String fromText, String toText) {\r
- return ${glSimpleStringUtil}.replace(text, fromText, toText);\r
- }\r
-\r
- protected String initCap(String str) {\r
- return ${glSimpleStringUtil}.initCap(str);\r
- }\r
-\r
- protected String getLineSeparator() {\r
- return ${glSimpleSystemUtil}.getLineSeparator();\r
- }\r
-\r
- protected String convertObjectArrayToStringView(Object[] objArray) {\r
- return ${glTraceViewUtilName}.convertObjectArrayToStringView(objArray);\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Collection Generator\r
- // --------------------\r
- protected <KEY, VALUE> LinkedHashMap<KEY, VALUE> newLinkedHashMap() {\r
- return new LinkedHashMap<KEY, VALUE>();\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Assert Object\r
- // -------------\r
- /**\r
- * Assert that the object is not null.\r
- * @param variableName Variable name. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @exception IllegalArgumentException\r
- */\r
- protected void assertObjectNotNull(String variableName, Object value) {\r
- if (variableName == null) {\r
- String msg = "The value should not be null: variableName=" + variableName + " value=" + value;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (value == null) {\r
- String msg = "The value should not be null: variableName=" + variableName;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-\r
- /**\r
- * Assert that the column-name is not null and is not empty and does not contain comma.\r
- * @param columnName Column-name. (NotNull)\r
- * @exception IllegalArgumentException\r
- */\r
- protected void assertColumnName(String columnName) {\r
- if (columnName == null) {\r
- String msg = "The columnName should not be null.";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (columnName.trim().length() == 0) {\r
- String msg = "The columnName should not be empty-string.";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (columnName.indexOf(",") >= 0) {\r
- String msg = "The columnName should not contain comma ',': " + columnName;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-\r
- /**\r
- * Assert that the alias-name is not null and is not empty and does not contain comma.\r
- * @param aliasName Alias-name. (NotNull)\r
- * @exception IllegalArgumentException\r
- */\r
- protected void assertAliasName(String aliasName) {\r
- if (aliasName == null) {\r
- String msg = "The aliasName should not be null.";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (aliasName.trim().length() == 0) {\r
- String msg = "The aliasName should not be empty-string.";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (aliasName.indexOf(",") >= 0) {\r
- String msg = "The aliasName should not contain comma ',': " + aliasName;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Assert String\r
- // -------------\r
- /**\r
- * Assert that the entity is not null and not trimmed empty.\r
- * @param variableName Variable name. (NotNull)\r
- * @param value Value. (NotNull)\r
- */\r
- protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, String value) {\r
- assertObjectNotNull("variableName", variableName);\r
- assertObjectNotNull("value", value);\r
- if (value.trim().length() ==0) {\r
- String msg = "The value should not be empty: variableName=" + variableName + " value=" + value;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
- \r
- // ===================================================================================\r
- // Basic Override\r
- // ==============\r
- @Override\r
- public String toString() {\r
- return getClass().getSimpleName() + ":{aliasName=" + _aliasName + ", nestLevel=" + _nestLevel\r
- + ", subQueryLevel=" + _subQueryLevel + ", foreignPropertyName=" + _foreignPropertyName\r
- + ", relationPath=" + _relationPath + ", onClauseInline=" + _onClauseInline + "}";\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBean};\r
-\r
-import ${glPackageBaseCommonSqlClause}.${glSqlClauseName};\r
-import ${glPackageBaseCommonJdbc}.${glStatementConfig};\r
-\r
-/**\r
- * The interface of condition-bean.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glConditionBeanInterfaceName} extends ${glPagingBeanInterfaceName} {\r
-\r
- // =====================================================================================\r
- // Definition\r
- // ==========\r
- /** Map-string map-mark. */\r
- public static final String MAP_STRING_MAP_MARK = "map:";\r
-\r
- /** Map-string list-mark. */\r
- public static final String MAP_STRING_LIST_MARK = "list:";\r
-\r
- /** Map-string start-brace. */\r
- public static final String MAP_STRING_START_BRACE = "${database.extractAcceptStartBrace}";\r
-\r
- /** Map-string end-brace. */\r
- public static final String MAP_STRING_END_BRACE = "${database.extractAcceptEndBrace}";\r
-\r
- /** Map-string delimiter. */\r
- public static final String MAP_STRING_DELIMITER = "${database.extractAcceptDelimiter}";\r
-\r
- /** Map-string equal. */\r
- public static final String MAP_STRING_EQUAL = "${database.extractAcceptEqual}";\r
-\r
- // ===================================================================================\r
- // Table Name\r
- // ==========\r
- /**\r
- * Get table DB-name.\r
- * @return Table DB-name. (NotNull)\r
- */\r
- public String getTableDbName();\r
-\r
- /**\r
- * Get table SQL-name.\r
- * @return Table SQL-name. (NotNull)\r
- */\r
- public String getTableSqlName();\r
-\r
- // ===================================================================================\r
- // SqlClause\r
- // =========\r
- /**\r
- * Get SQL-clause instance.\r
- * @return SQL-clause. (NotNull)\r
- */\r
- public ${glSqlClauseName} getSqlClause();\r
-\r
- // ===================================================================================\r
- // PrimaryKey Map\r
- // ==============\r
- /**\r
- * Accept primary-key map-string.\r
- * @param primaryKeyMap Primary-key map. (NotNull and NotEmpty)\r
- */\r
- public void acceptPrimaryKeyMap(java.util.Map${database.filterGenericsString('String, ? extends Object')} primaryKeyMap);\r
-\r
- /**\r
- * Accept primary-key map-string. Delimiter is at-mark and semicolon.\r
- * @param primaryKeyMapString Primary-key map. (NotNull and NotEmpty)\r
- */\r
- public void acceptPrimaryKeyMapString(String primaryKeyMapString);\r
-\r
- // ===================================================================================\r
- // OrderBy Setting\r
- // ===============\r
- /**\r
- * Add order-by PrimaryKey asc. {order by primaryKey1 asc, primaryKey2 asc...}\r
- * @return this. (NotNull)\r
- */\r
- public ${glConditionBeanInterfaceName} addOrderBy_PK_Asc();\r
-\r
- /**\r
- * Add order-by PrimaryKey desc. {order by primaryKey1 desc, primaryKey2 desc...}\r
- * @return this. (NotNull)\r
- */\r
- public ${glConditionBeanInterfaceName} addOrderBy_PK_Desc();\r
-\r
- // ===================================================================================\r
- // Query\r
- // =====\r
- /**\r
- * Get condition-query as interface.\r
- * @return Instance of query as interface. (NotNull)\r
- * @deprecated\r
- */\r
- public ${glConditionQueryInterfaceName} getConditionQueryAsInterface();\r
-\r
- /**\r
- * Get the conditionQuery of the local table as interface.\r
- * @return The conditionQuery of the local table as interface. (NotNull)\r
- */\r
- public ${glConditionQueryInterfaceName} localCQ();\r
-\r
- // ===================================================================================\r
- // Union Query\r
- // ===========\r
- /**\r
- * Has union query or union all query?\r
- * @return Determination.\r
- */\r
- public boolean hasUnionQueryOrUnionAllQuery();\r
-\r
- // ===================================================================================\r
- // Limit Select\r
- // ============\r
- /**\r
- * Limit select PK only. This is OLD style. You can do the same thing by specify().\r
- * @return this. (NotNull)\r
- */\r
- public ${glConditionBeanInterfaceName} limitSelect_PKOnly();\r
-\r
- /**\r
- * Limit select off.\r
- * @return this. (NotNull)\r
- */\r
- public ${glConditionBeanInterfaceName} limitSelect_Off();\r
-\r
- /**\r
- * Is limit-select PK only?\r
- * @return Determination.\r
- */\r
- public boolean isLimitSelect_PKOnly();\r
-\r
- // =====================================================================================\r
- // Lock Setting\r
- // ============\r
- /**\r
- * Lock for update.\r
- * <p>\r
- * If you invoke this, your SQL lock target records for update.\r
- * It depends whether this method supports this on the database type.\r
- * </p>\r
- * @return this. (NotNull)\r
- */\r
- public ${glConditionBeanInterfaceName} lockForUpdate();\r
-\r
- // =====================================================================================\r
- // Select Count\r
- // ============\r
- /**\r
- * Set up various things for select-count-ignore-fetch-scope. {Internal}\r
- * This method is for INTERNAL. Don't invoke this!\r
- * @return this. (NotNull)\r
- */\r
- public ${glConditionBeanInterfaceName} xsetupSelectCountIgnoreFetchScope();\r
-\r
- /**\r
- * Do after-care for select-count-ignore-fetch-scope. {Internal}\r
- * This method is for INTERNAL. Don't invoke this!\r
- * @return this. (NotNull)\r
- */\r
- public ${glConditionBeanInterfaceName} xafterCareSelectCountIgnoreFetchScope();\r
-\r
- /**\r
- * Is set up various things for select-count-ignore-fetch-scope? {Internal}\r
- * This method is for INTERNAL. Don't invoke this!\r
- * @return Determination.\r
- */\r
- public boolean isSelectCountIgnoreFetchScope();\r
- \r
- // =====================================================================================\r
- // Statement Config\r
- // ================\r
- /**\r
- * @param statementConfig The config of statement. (Nullable)\r
- */\r
- public void configure(${glStatementConfig} statementConfig);\r
- \r
- /**\r
- * @return The config of statement. (Nullable)\r
- */\r
- public ${glStatementConfig} getStatementConfig();\r
-#if ($database.isMakeDeprecated())\r
-\r
- // ===================================================================================\r
- // Format SQL\r
- // ==========\r
- /** @deprecated Sorry! ConditionBean must be formatted as default.*/\r
- public void formatSql();\r
-\r
- /**\r
- * @return Is the SQL formatted?\r
- * @deprecated Sorry! ConditionBean must be formatted as default.\r
- */\r
- public boolean isFormatSql();\r
-#end\r
-\r
- // ===================================================================================\r
- // Display SQL\r
- // ===========\r
- /**\r
- * Convert this conditionBean to SQL for display.\r
- * @return SQL for display. (NotNull and NotEmpty)\r
- */\r
- public String toDisplaySql();\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBean};\r
-\r
-import java.util.Collections;\r
-import java.util.Map;\r
-import java.util.LinkedHashMap;\r
-\r
-import org.apache.commons.logging.Log;\r
-import org.apache.commons.logging.LogFactory;\r
-\r
-import ${glPackageBaseCommon}.${glDBFluteConfig};\r
-import ${glPackageBaseCommonSqlClause}.*;\r
-import ${glPackageBaseCommonS2DaoInternalSqlParser}.${glInternalSqlParser};\r
-import ${glPackageBaseCommonUtil}.${glSimpleSystemUtil};\r
-\r
-/**\r
- * Condition-Bean context.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glConditionBeanContextName} {\r
-\r
- /** Log instance. */\r
- private static final Log _log = LogFactory.getLog(${glConditionBeanContextName}.class);\r
-\r
- // ===================================================================================\r
- // Thread Local\r
- // ============\r
- /** The thread-local for this. */\r
- private static final ThreadLocal<${glConditionBeanInterfaceName}> _threadLocal = new ThreadLocal${database.filterGenericsString(${glConditionBeanInterfaceName})}();\r
-\r
- /**\r
- * Get condition-bean on thread.\r
- * @return Condition-bean context. (Nullable)\r
- */\r
- public static ${glConditionBeanInterfaceName} getConditionBeanOnThread() {\r
- return (${glConditionBeanInterfaceName})_threadLocal.get();\r
- }\r
-\r
- /**\r
- * Set condition-bean on thread.\r
- * @param cb Condition-bean. (NotNull)\r
- */\r
- public static void setConditionBeanOnThread(${glConditionBeanInterfaceName} cb) {\r
- if (cb == null) {\r
- String msg = "The argument[cb] must not be null.";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- _threadLocal.set(cb);\r
- }\r
-\r
- /**\r
- * Is existing condition-bean on thread?\r
- * @return Determination.\r
- */\r
- public static boolean isExistConditionBeanOnThread() {\r
- return (_threadLocal.get() != null);\r
- }\r
-\r
- /**\r
- * Clear condition-bean on thread.\r
- */\r
- public static void clearConditionBeanOnThread() {\r
- _threadLocal.set(null);\r
- }\r
-\r
- // ===================================================================================\r
- // Initialize against the ClassLoader Headache\r
- // ===========================================\r
- @SuppressWarnings("unused")\r
- public static void initialize() {\r
- boolean debugEnabled = _log.isDebugEnabled();\r
- // Against the ClassLoader Headache!\r
- final StringBuilder sb = new StringBuilder();\r
- {\r
- final Class<?> clazz = ${glPackageBaseCommonCBean}.${glSimplePagingBeanName}.class;\r
- if (debugEnabled) { sb.append(" ...Loading class of " + clazz.getName() + " by " + clazz.getClassLoader().getClass()).append(getLineSeparator()); }\r
- }\r
- {\r
- Class<?> clazz = ${glPackageBaseCommonCOption}.${glConditionOptionFromToName}.class;\r
- clazz = ${glPackageBaseCommonCOption}.${glConditionOptionLikeSearchName}.class;\r
- clazz = ${glPackageBaseCommonCOption}.${glConditionOptionInScopeName}.class;\r
- clazz = ${glPackageBaseCommonCBeanGrouping}.${glGroupingOptionName}.class;\r
- clazz = ${glPackageBaseCommonCBeanGrouping}.${glGroupingRowEndDeterminerName}.class;\r
- clazz = ${glPackageBaseCommonCBeanGrouping}.${glGroupingRowResourceName}.class;\r
- clazz = ${glPackageBaseCommonCBeanGrouping}.${glGroupingRowSetupperName}.class;\r
- clazz = ${glPackageBaseCommonCBeanPagenavi}.${glPageNumberLinkName}.class;\r
- clazz = ${glPackageBaseCommonCBeanPagenavi}.${glPageNumberLinkSetupperName}.class;\r
-#if ($database.isVersionAfter1047())\r
- clazz = ${glPackageBaseCommonJdbc}.${glCursorHandlerName}.class;\r
-#end\r
- if (debugEnabled) { sb.append(" ...Loading class of ...and so on"); }\r
- }\r
- if (debugEnabled) { \r
- _log.debug("{Initialize against the ClassLoader Headache}" + getLineSeparator() + sb);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Type Determination\r
- // ==================\r
- /**\r
- * Is the argument condition-bean?\r
- * @param dtoInstance DTO instance.\r
- * @return Determination.\r
- */\r
- public static boolean isTheArgumentConditionBean(final Object dtoInstance) {\r
- if (dtoInstance instanceof ${glConditionBeanInterfaceName}) {\r
- return true;\r
- } else {\r
- return false;\r
- }\r
- }\r
-\r
- /**\r
- * Is the type condition-bean?\r
- * @param dtoClass DtoClass.\r
- * @return Determination.\r
- */\r
- public static boolean isTheTypeConditionBean(final Class<?> dtoClass) {\r
- if (${glConditionBeanInterfaceName}.class.isAssignableFrom(dtoClass)) {\r
- return true;\r
- } else {\r
- return false;\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Product Name\r
- // ============\r
- public static final String DB_NAME_DERBY = "derby";\r
- public static final String DB_NAME_H2 = "h2";\r
- public static final String DB_NAME_ORACLE = "oracle";\r
- public static final String DB_NAME_MYSQL = "mysql";\r
- public static final String DB_NAME_POSTGRESQL = "postgresql";\r
- public static final String DB_NAME_FIREBIRD = "firebird";\r
- public static final String DB_NAME_MSSQL = "mssql";\r
- public static final String DB_NAME_SYBASE = "sybase";\r
- public static final String DB_NAME_DB2 = "db2";\r
-\r
- protected static final Map<String, String> _driverHintDatabaseProductNameMap;\r
- static {\r
- final Map<String, String> tmpMap = Collections.synchronizedMap(new LinkedHashMap<String, String>());\r
- tmpMap.put("org.apache.derby", DB_NAME_DERBY);\r
- tmpMap.put("org.h2", DB_NAME_H2);\r
- tmpMap.put("oracle", DB_NAME_ORACLE);\r
- tmpMap.put("mysql", DB_NAME_MYSQL);\r
- tmpMap.put("postgresql", DB_NAME_POSTGRESQL);\r
- tmpMap.put("firebird", DB_NAME_FIREBIRD);\r
- tmpMap.put("sqlserver", DB_NAME_MSSQL);\r
- tmpMap.put("sybase", DB_NAME_SYBASE);\r
- tmpMap.put("db2", DB_NAME_DB2);\r
- _driverHintDatabaseProductNameMap = java.util.Collections.unmodifiableMap(tmpMap);\r
- }\r
-\r
- public static boolean setupDatabaseProductNameByDriverClassName(String driverClassName) {\r
- final java.util.Set<String> keySet = _driverHintDatabaseProductNameMap.keySet();\r
- for (final java.util.Iterator<String> ite = keySet.iterator(); ite.hasNext(); ) {\r
- final String driverHint = (String)ite.next();\r
- if (driverClassName.indexOf(driverHint) >= 0) {\r
- final String databaseProductName = (String)_driverHintDatabaseProductNameMap.get(driverHint);\r
- setDatabaseProductName(databaseProductName);\r
- return true;\r
- }\r
- }\r
- return false;\r
- }\r
-\r
- /** The database product name. */\r
- private static String _databaseProductName;\r
-\r
- /**\r
- * Get database product name.\r
- * @return Database product name.\r
- */\r
- public static String getDatabaseProductName() {\r
- return _databaseProductName;\r
- }\r
-\r
- /**\r
- * Set database product name.\r
- * @param name Database product name. (NotNull)\r
- */\r
- public static void setDatabaseProductName(String name) {\r
- if (_databaseProductName != null) {\r
- String msg = "Already set up: current=" + _databaseProductName + " your=" + name;\r
- throw new IllegalStateException(msg);\r
- }\r
- _databaseProductName = name;\r
- }\r
-\r
- // ===================================================================================\r
- // SqlClause Creator\r
- // =================\r
- /**\r
- * Create SQL-clause. {for condition-bean}\r
- * @param cb Condition-bean. (NotNull) \r
- * @return SQL-clause. (NotNull)\r
- */\r
- public static ${glSqlClauseName} createSqlClause(${glConditionBeanInterfaceName} cb) {\r
- final String tableSqlName = cb.getTableSqlName();\r
- final ${glSqlClauseName} sqlClause = createSqlClause(tableSqlName);\r
- if (${glDBFluteConfig}.getInstance().isConditionBeanFormatSql()) {\r
- sqlClause.makeFormatClauseEffective();\r
- }\r
- return sqlClause;\r
- }\r
-\r
- /**\r
- * Create SQL-clause. {for SimplePagingBean}\r
- * @param tableDbName The DB name of table. (NotNull) \r
- * @return SQL-clause. (NotNull)\r
- */\r
- public static ${glSqlClauseName} createSqlClause(String tableDbName) {\r
- final String databaseProductName = getDatabaseProductName();\r
- if (databaseProductName == null) {\r
- return new ${glSqlClauseName}${database.DaoGenDbName}(tableDbName);\r
- }\r
- final String name = databaseProductName.toLowerCase();\r
- if (name.equalsIgnoreCase(DB_NAME_DERBY)) {\r
- return new ${glSqlClauseName}Derby(tableDbName);\r
- } else if (name.equalsIgnoreCase(DB_NAME_H2)) {\r
- return new ${glSqlClauseName}H2(tableDbName);\r
- } else if (name.equalsIgnoreCase(DB_NAME_ORACLE)) {\r
- return new ${glSqlClauseName}Oracle(tableDbName);\r
- } else if (name.equalsIgnoreCase(DB_NAME_FIREBIRD)) {\r
- return new ${glSqlClauseName}Firebird(tableDbName);\r
- } else if (name.equalsIgnoreCase(DB_NAME_MYSQL)) {\r
- return new ${glSqlClauseName}MySql(tableDbName);\r
- } else if (name.equalsIgnoreCase(DB_NAME_POSTGRESQL)) {\r
- return new ${glSqlClauseName}PostgreSql(tableDbName);\r
- } else if (name.equalsIgnoreCase(DB_NAME_MSSQL)) {\r
- return new ${glSqlClauseName}SqlServer(tableDbName);\r
- } else if (name.equalsIgnoreCase(DB_NAME_DB2)) {\r
- return new ${glSqlClauseName}Db2(tableDbName);\r
- } else {\r
- return new ${glSqlClauseName}${database.DaoGenDbName}(tableDbName);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Exception Handling\r
- // ==================\r
- public static void throwEntityAlreadyDeletedException(Object searchKey4Log) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The entity was Not Found! it has already been deleted!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "Please confirm the existence of your target record on your database." + getLineSeparator();\r
- msg = msg + "Does the target record really created before this operation?" + getLineSeparator();\r
- msg = msg + "Has the target record been deleted by other thread?" + getLineSeparator();\r
- msg = msg + "It is precondition that the record exists on your database." + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- if (searchKey4Log != null && searchKey4Log instanceof ${glConditionBeanInterfaceName}) {\r
- final ${glConditionBeanInterfaceName} cb = (${glConditionBeanInterfaceName})searchKey4Log;\r
- msg = msg + "[Executed SQL for Display]" + getLineSeparator() + cb.toDisplaySql() + getLineSeparator();\r
- } else {\r
- msg = msg + "[Search Condition]" + getLineSeparator() + searchKey4Log + getLineSeparator();\r
- }\r
- msg = msg + "* * * * * * * * * */";\r
- throw new ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException}(msg);\r
- }\r
-\r
- public static void throwEntityDuplicatedException(String resultCountString, Object searchKey4Log, Throwable cause) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The entity was Too Many! it has been duplicated. It should be the only one! But the resultCount=" + resultCountString + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "Please confirm your search condition. Does it really select the only one?" + getLineSeparator();\r
- msg = msg + "Please confirm your database. Does it really exist the only one?" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- if (searchKey4Log != null && searchKey4Log instanceof ${glConditionBeanInterfaceName}) {\r
- final ${glConditionBeanInterfaceName} cb = (${glConditionBeanInterfaceName})searchKey4Log;\r
- msg = msg + "[Executed SQL for Display]" + getLineSeparator() + cb.toDisplaySql() + getLineSeparator();\r
- } else {\r
- msg = msg + "[Search Condition]" + getLineSeparator() + searchKey4Log + getLineSeparator();\r
- }\r
- msg = msg + "* * * * * * * * * */";\r
- if (cause != null) {\r
- throw new ${glPackageBaseCommonException}.${glEntityDuplicatedException}(msg, cause);\r
- } else {\r
- throw new ${glPackageBaseCommonException}.${glEntityDuplicatedException}(msg);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Display SQL\r
- // ===========\r
- public static String convertConditionBean2DisplaySql(${glConditionBeanInterfaceName} cb) {\r
- final String twoWaySql;\r
- if (cb.isLimitSelect_PKOnly()) {\r
- twoWaySql = cb.getSqlClause().getClausePKOnly();\r
- } else {\r
- twoWaySql = cb.getSqlClause().getClause();\r
- }\r
- return ${glInternalSqlParser}.convertTwoWaySql2DisplaySql(twoWaySql, cb);\r
- }\r
-\r
- // [DBFlute-0.7.7]\r
- // ===================================================================================\r
- // Unique Constraint\r
- // =================\r
- /**\r
- * Is the SQLException from unique constraint? {Use both SQLState and ErrorCode}\r
- * @param sqlState SQLState of the SQLException. (Nullable)\r
- * @param errorCode ErrorCode of the SQLException. (Nullable)\r
- * @return Is the SQLException from unique constraint?\r
- */\r
- public static boolean isUniqueConstraintException(String sqlState, Integer errorCode) {\r
- return createSqlClause("dummy").isUniqueConstraintException(sqlState, errorCode);\r
- }\r
-\r
- // [DBFlute-0.7.8]\r
- // ===================================================================================\r
- // Database Type\r
- // =============\r
- /**\r
- * Is the database Oracle?\r
- * @return Is the database Oracle?\r
- */\r
- public static boolean isOracle() {\r
- return createSqlClause("dummy") instanceof ${glSqlClauseName}Oracle;\r
- }\r
-\r
- /**\r
- * Is the database PostgreSQL?\r
- * @return Is the database PostgreSQL?\r
- */\r
- public static boolean isPostgreSql() {\r
- return createSqlClause("dummy") instanceof ${glSqlClauseName}PostgreSql;\r
- }\r
-\r
- // ===================================================================================\r
- // Helper\r
- // ======\r
- /**\r
- * Get the value of line separator.\r
- * @return The value of line separator. (NotNull)\r
- */\r
- protected static String getLineSeparator() {\r
- return ${glSimpleSystemUtil}.getLineSeparator();\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBean};\r
-\r
-import ${glPackageBaseCommonCValue}.${glConditionValueName};\r
-import ${glPackageBaseCommonSqlClause}.${glSqlClauseName};\r
-\r
-/**\r
- * The condition-query as interface.\r
- * @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public interface ${glConditionQueryInterfaceName} {\r
-\r
- // ===================================================================================\r
- // Important Accessor\r
- // ==================\r
- /**\r
- * Get table DB-name.\r
- * @return Table DB-name. (NotNull)\r
- */\r
- public String getTableDbName();\r
- \r
- /**\r
- * Get table SQL-name.\r
- * @return Table SQL-name. (NotNull)\r
- */\r
- public String getTableSqlName();\r
-\r
- /**\r
- * Get real alias name(that has nest level mark).\r
- * @return Real alias name. (NotNull)\r
- */\r
- public String getRealAliasName();\r
-\r
- /**\r
- * Get real column name(with real alias name).\r
- * @param columnName Column name without alias name. (NotNull)\r
- * @return Real column name. (NotNull)\r
- */\r
- public String getRealColumnName(String columnName);\r
-\r
- /**\r
- * Get child query.\r
- * @return Child query. (Nullable)\r
- */\r
- public ${glConditionQueryInterfaceName} getChildQuery();\r
-\r
- /**\r
- * Get sql clause.\r
- * @return Sql clause. (NotNull)\r
- */\r
- public ${glSqlClauseName} getSqlClause();\r
-\r
- /**\r
- * Get alias name.\r
- * @return Alias name. (NotNull)\r
- */\r
- public String getAliasName();\r
-\r
- /**\r
- * Get nest level.\r
- * @return Nest level.\r
- */\r
- public int getNestLevel();\r
-\r
- /**\r
- * Get next nest level.\r
- * @return Next nest level.\r
- */\r
- public int getNextNestLevel();\r
-\r
- /**\r
- * Is base query?\r
- * @param query Condition query. (NotNull)\r
- * @return Determination.\r
- */\r
- public boolean isBaseQuery(${glConditionQueryInterfaceName} query);\r
-\r
- /**\r
- * Get the level of subQuery.\r
- * @return The level of subQuery.\r
- */\r
- public int getSubQueryLevel();\r
- \r
- /**\r
- * Get the property name of foreign relation.\r
- * @return The property name of foreign relation. (NotNull)\r
- */\r
- public String getForeignPropertyName();\r
-\r
- /**\r
- * Get the path of foreign relation.\r
- * @return The path of foreign relation. (NotNull)\r
- */\r
- public String getRelationPath();\r
-\r
- // ===================================================================================\r
- // Reflection Invoking\r
- // ===================\r
- /**\r
- * Invoke getting value.\r
- * @param columnFlexibleName The flexible name of the column. (NotNull and NotEmpty)\r
- * @return The conditionValue. (NotNull)\r
- */\r
- public ${glConditionValueName} invokeValue(String columnFlexibleName);\r
-\r
- /**\r
- * Invoke setting query. {ResolveRelation}\r
- * @param columnFlexibleName The flexible name of the column allowed to contain relations. (NotNull and NotEmpty)\r
- * @param conditionKeyName The name of the conditionKey. (NotNull)\r
- * @param value The value of the condition. (NotNull)\r
- */\r
- public void invokeQuery(String columnFlexibleName, String conditionKeyName, Object value);\r
-\r
- /**\r
- * Invoke adding orderBy. {ResolveRelation}\r
- * @param columnFlexibleName The flexible name of the column allowed to contain relations. (NotNull and NotEmpty)\r
- * @param isAsc Is it ascend?\r
- */\r
- public void invokeOrderBy(String columnFlexibleName, boolean isAsc);\r
-\r
- /**\r
- * Invoke getting foreign conditionQuery.\r
- * @param foreignPropertyName The property name of the foreign relation. (NotNull and NotEmpty)\r
- * @return The conditionQuery of the foreign relation as interface. (NotNull)\r
- */\r
- public ${glConditionQueryInterfaceName} invokeForeignCQ(String foreignPropertyName);\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBean};\r
-\r
-/**\r
- * The bean of fetch narrowing.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glFetchNarrowingBeanInterfaceName} {\r
-\r
- /**\r
- * Get fetch start index.\r
- * \r
- * @return Fetch start index.\r
- */\r
- public int getFetchNarrowingSkipStartIndex();\r
-\r
- /**\r
- * Get fetch size.\r
- * \r
- * @return Fetch size.\r
- */\r
- public int getFetchNarrowingLoopCount();\r
-\r
- /**\r
- * Is fetch start index supported?\r
- * \r
- * @return Determination.\r
- */\r
- public boolean isFetchNarrowingSkipStartIndexEffective();\r
-\r
- /**\r
- * Is fetch size supported?\r
- * \r
- * @return Determination.\r
- */\r
- public boolean isFetchNarrowingLoopCountEffective();\r
-\r
- /**\r
- * Is fetch-narrowing effective?\r
- * \r
- * @return Determination.\r
- */\r
- public boolean isFetchNarrowingEffective();\r
-\r
- /**\r
- * Ignore fetch narrowing. Only checking safety result size is valid. {INTERNAL METHOD}\r
- */\r
- public void ignoreFetchNarrowing();\r
-\r
- /**\r
- * Restore ignored fetch narrowing. {INTERNAL METHOD}\r
- */\r
- public void restoreIgnoredFetchNarrowing();\r
-\r
- /**\r
- * Get safety max result size.\r
- * \r
- * @return Safety max result size.\r
- */\r
- public int getSafetyMaxResultSize();\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBean};\r
-\r
-/**\r
- * Fetch-Narrowing-Bean context. (referring to s2pager)\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glFetchNarrowingBeanContextName} {\r
-\r
- /** The thread-local for this. */\r
- private static ThreadLocal${database.filterGenericsString(${glFetchNarrowingBeanInterfaceName})} _threadLocal = new ThreadLocal${database.filterGenericsString(${glFetchNarrowingBeanInterfaceName})}();\r
-\r
- /**\r
- * Get fetch-narrowing-bean on thread.\r
- * @return Condition-bean context. (Nullable)\r
- */\r
- public static ${glFetchNarrowingBeanInterfaceName} getFetchNarrowingBeanOnThread() {\r
- return (${glFetchNarrowingBeanInterfaceName})_threadLocal.get();\r
- }\r
-\r
- /**\r
- * Set fetch-narrowing-bean on thread.\r
- * @param ${glAttachedCBArgsVariableName} Condition-bean. (NotNull)\r
- */\r
- public static void setFetchNarrowingBeanOnThread(${glFetchNarrowingBeanInterfaceName} ${glAttachedCBArgsVariableName}) {\r
- if (${glAttachedCBArgsVariableName} == null) {\r
- String msg = "The argument[${glAttachedCBArgsVariableName}] must not be null.";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- _threadLocal.set(${glAttachedCBArgsVariableName});\r
- }\r
-\r
- /**\r
- * Is existing fetch-narrowing-bean on thread?\r
- * @return Determination.\r
- */\r
- public static boolean isExistFetchNarrowingBeanOnThread() {\r
- return (_threadLocal.get() != null);\r
- }\r
-\r
- /**\r
- * Clear fetch-narrowing-bean on thread.\r
- */\r
- public static void clearFetchNarrowingBeanOnThread() {\r
- _threadLocal.set(null);\r
- }\r
-\r
- /**\r
- * Is the argument fetch-narrowing-bean?\r
- * @param dtoInstance Dto instance.\r
- * @return Determination.\r
- */\r
- public static boolean isTheArgumentFetchNarrowingBean(final Object dtoInstance) {\r
- if (dtoInstance instanceof ${glFetchNarrowingBeanInterfaceName}) {\r
- return true;\r
- } else {\r
- return false;\r
- }\r
- }\r
-\r
- /**\r
- * Is the type fetch-narrowing-bean?\r
- * @param dtoClass DtoClass.\r
- * @return Determination.\r
- */\r
- public static boolean isTheTypeFetchNarrowingBean(final Class<?> dtoClass) {\r
- if (${glFetchNarrowingBeanInterfaceName}.class.isAssignableFrom(dtoClass)) {\r
- return true;\r
- } else {\r
- return false;\r
- }\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBean};\r
-#set ($myClassName = "${glListResultBeanName}")\r
-#set ($selectedListArgumentGenericDefinition = "${glEntityInterfaceName}")\r
-\r
-import java.io.Serializable;\r
-import java.util.Collection;\r
-import java.util.List;\r
-import java.util.ArrayList;\r
-import java.util.Iterator;\r
-import java.util.ListIterator;\r
-\r
-import ${glPackageBaseCommonCBeanGrouping}.${glGroupingOptionName};\r
-import ${glPackageBaseCommonCBeanGrouping}.${glGroupingRowEndDeterminerName};\r
-import ${glPackageBaseCommonCBeanGrouping}.${glGroupingRowResourceName};\r
-import ${glPackageBaseCommonCBeanGrouping}.${glGroupingRowSetupperName};\r
-import ${glPackageBaseCommonCBeanMapping}.${glEntityDtoMapperName};\r
-import ${glPackageBaseCommonSqlClause}.${glOrderByClauseName};\r
-\r
-/**\r
- * The result bean for list.\r
- * @param <ENTITY> The type of entity for the element of selected list.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName}<ENTITY> implements List<ENTITY>, Serializable {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- /** Serial version UID. (Default) */\r
- private static final long serialVersionUID = 1L;\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- /** The value of table db-name. (Nullable: If it's null, it means 'Not Selected Yet'.) */\r
- protected String _tableDbName;\r
-\r
- /** The value of all record count. */\r
- protected int _allRecordCount;\r
-\r
- /** The list of selected entity. (NotNull) */\r
- protected List<ENTITY> _selectedList = new ArrayList<ENTITY>();\r
-\r
- /** The clause of order-by. (NotNull) */\r
- protected ${glOrderByClauseName} _orderByClause = new ${glOrderByClauseName}();\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- /**\r
- * Constructor.\r
- */\r
- public ${myClassName}() {\r
- }\r
-\r
- // ===================================================================================\r
- // Grouping\r
- // ========\r
- /**\r
- * Group the list. This method needs the property 'selectedList' only.\r
- * @param <ROW> The type of row.\r
- * @param groupingRowSetupper The setupper of grouping row. (NotNull)\r
- * @param groupingOption The option of grouping. (NotNull and it requires the breakCount or the determiner)\r
- * @return The grouped list. (NotNull)\r
- */\r
- public <ROW> List<ROW> groupingList(${glGroupingRowSetupperName}<ROW, ENTITY> groupingRowSetupper, ${glGroupingOptionName}<ENTITY> groupingOption) {\r
- final List<ROW> groupingList = new ArrayList<ROW>();\r
- ${glGroupingRowEndDeterminerName}<ENTITY> rowEndDeterminer = groupingOption.getGroupingRowEndDeterminer();\r
- if (rowEndDeterminer == null) {\r
- rowEndDeterminer = new ${glGroupingRowEndDeterminerName}<ENTITY>() {\r
- public boolean determine(${glGroupingRowResourceName}<ENTITY> rowResource, ENTITY nextEntity) {\r
- return rowResource.isSizeUpBreakCount();\r
- }\r
- }; // as Default\r
- }\r
- ${glGroupingRowResourceName}<ENTITY> rowResource = new ${glGroupingRowResourceName}<ENTITY>();\r
- int breakCount = groupingOption.getElementCount();\r
- int rowElementIndex = 0;\r
- int allElementIndex = 0;\r
- for (ENTITY entity : _selectedList) {\r
- // Set up row resource.\r
- rowResource.addGroupingRowList(entity);\r
- rowResource.setElementCurrentIndex(rowElementIndex);\r
- rowResource.setBreakCount(breakCount);\r
-\r
- if (_selectedList.size() == (allElementIndex + 1)) { // Last Loop!\r
- // Set up the object of grouping row!\r
- final ROW groupingRowObject = groupingRowSetupper.setup(rowResource);\r
-\r
- // Register!\r
- groupingList.add(groupingRowObject);\r
- break;\r
- }\r
-\r
- // Not last loop so the nextElement must exist.\r
- final ENTITY nextElement = _selectedList.get(allElementIndex + 1);\r
-\r
- // Do at row end.\r
- if (rowEndDeterminer.determine(rowResource, nextElement)) { // Determine the row end!\r
- // Set up the object of grouping row!\r
- final ROW groupingRowObject = groupingRowSetupper.setup(rowResource);\r
-\r
- // Register!\r
- groupingList.add(groupingRowObject);\r
-\r
- // Initialize!\r
- rowResource = new ${glGroupingRowResourceName}<ENTITY>();\r
- rowElementIndex = 0;\r
- ++allElementIndex;\r
- continue;\r
- }\r
- ++rowElementIndex;\r
- ++allElementIndex;\r
- }\r
- return groupingList;\r
- }\r
-\r
- // ===================================================================================\r
- // Mapping\r
- // =======\r
- public <DTO> ${myClassName}<DTO> mappingList(${glEntityDtoMapperName}<ENTITY, DTO> entityDtoMapper) {\r
- final ${myClassName}<DTO> mappingList = new ${myClassName}<DTO>();\r
- for (ENTITY entity : _selectedList) {\r
- mappingList.add(entityDtoMapper.map(entity));\r
- }\r
- mappingList.setTableDbName(getTableDbName());\r
- mappingList.setAllRecordCount(getAllRecordCount());\r
- mappingList.setOrderByClause(getOrderByClause());\r
- return mappingList;\r
- }\r
-\r
- // ===================================================================================\r
- // Determination\r
- // =============\r
- /**\r
- * Has this result selected?\r
- * @return Determination. {Whether table DB name is not null}\r
- */\r
- public boolean isSelectedResult() {\r
- return _tableDbName != null;\r
- }\r
-\r
- // ===================================================================================\r
- // Basic Override\r
- // ==============\r
- /**\r
- * @return Hash-code from primary-keys.\r
- */\r
- public int hashCode() {\r
- if (_selectedList == null) {\r
- return super.hashCode();\r
- }\r
- return _selectedList.hashCode();\r
- }\r
-\r
- /**\r
- * @param other Other entity. (Nullable)\r
- * @return Comparing result. If other is null, returns false.\r
- */\r
- public boolean equals(Object other) {\r
- if (_selectedList == null) {\r
- return false;\r
- }\r
- if (other == null) {\r
- return false;\r
- }\r
- if (!(other instanceof List)) {\r
- return false;\r
- }\r
- return _selectedList.equals(other);\r
- }\r
-\r
- /**\r
- * @return The view string of all attribute values. (NotNull)\r
- */\r
- @Override\r
- public String toString() {\r
- final StringBuilder sb = new StringBuilder();\r
- sb.append("{").append(_tableDbName);\r
- sb.append(",").append(_allRecordCount);\r
- sb.append(",").append(_orderByClause != null ? _orderByClause.getOrderByClause() : null);\r
- sb.append(",").append(_selectedList);\r
- sb.append("}");\r
- return sb.toString();\r
- }\r
-\r
- // ===================================================================================\r
- // List Elements\r
- // =============\r
- public boolean add(ENTITY o) {\r
- return _selectedList.add(o);\r
- }\r
-\r
- public boolean addAll(Collection<? extends ENTITY> c) {\r
- return _selectedList.addAll(c);\r
- }\r
-\r
- public void clear() {\r
- _selectedList.clear();\r
- }\r
-\r
- public boolean contains(Object o) {\r
- return _selectedList.contains(o);\r
- }\r
-\r
- public boolean containsAll(Collection<?> c) {\r
- return _selectedList.containsAll(c);\r
- }\r
-\r
- public boolean isEmpty() {\r
- return _selectedList.isEmpty();\r
- }\r
-\r
- public Iterator<ENTITY> iterator() {\r
- return _selectedList.iterator();\r
- }\r
-\r
- public boolean remove(Object o) {\r
- return _selectedList.remove(o);\r
- }\r
-\r
- public boolean removeAll(Collection<?> c) {\r
- return _selectedList.removeAll(c);\r
- }\r
-\r
- public boolean retainAll(Collection<?> c) {\r
- return _selectedList.retainAll(c);\r
- }\r
-\r
- public int size() {\r
- return _selectedList.size();\r
- }\r
-\r
- public Object[] toArray() {\r
- return _selectedList.toArray();\r
- }\r
-\r
- public <TYPE> TYPE[] toArray(TYPE[] a) {\r
- return _selectedList.toArray(a);\r
- }\r
-\r
- public void add(int index, ENTITY element) {\r
- _selectedList.add(index, element);\r
- }\r
-\r
- public boolean addAll(int index, Collection<? extends ENTITY> c) {\r
- return _selectedList.addAll(index, c);\r
- }\r
-\r
- public ENTITY get(int index) {\r
- return _selectedList.get(index);\r
- }\r
-\r
- public int indexOf(Object o) {\r
- return _selectedList.indexOf(o);\r
- }\r
-\r
- public int lastIndexOf(Object o) {\r
- return _selectedList.lastIndexOf(o);\r
- }\r
-\r
- public ListIterator<ENTITY> listIterator() {\r
- return _selectedList.listIterator();\r
- }\r
-\r
- public ListIterator<ENTITY> listIterator(int index) {\r
- return _selectedList.listIterator(index);\r
- }\r
-\r
- public ENTITY remove(int index) {\r
- return _selectedList.remove(index);\r
- }\r
-\r
- public ENTITY set(int index, ENTITY element) {\r
- return _selectedList.set(index, element);\r
- }\r
-\r
- public List<ENTITY> subList(int fromIndex, int toIndex) {\r
- return _selectedList.subList(fromIndex, toIndex);\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- /**\r
- * Get the value of tableDbName.\r
- * @return The value of tableDbName. (Nullable: If it's null, it means 'Not Selected Yet'.)\r
- */\r
- public String getTableDbName() {\r
- return _tableDbName;\r
- }\r
-\r
- /**\r
- * Set the value of tableDbName.\r
- * @param tableDbName The value of tableDbName. (NotNull)\r
- */\r
- public void setTableDbName(String tableDbName) {\r
- _tableDbName = tableDbName;\r
- }\r
-\r
- /**\r
- * Get the value of allRecordCount.\r
- * @return The value of allRecordCount.\r
- */\r
- public int getAllRecordCount() {\r
- return _allRecordCount;\r
- }\r
-\r
- /**\r
- * Set the value of allRecordCount.\r
- * @param allRecordCount The value of allRecordCount.\r
- */\r
- public void setAllRecordCount(int allRecordCount) {\r
- _allRecordCount = allRecordCount;\r
- }\r
-\r
- /**\r
- * Get the value of selectedList.\r
- * @return Selected list. (NotNull)\r
- */\r
- public List<ENTITY> getSelectedList() {\r
- return _selectedList;\r
- }\r
-\r
- /**\r
- * Set the value of selectedList.\r
- * @param selectedList Selected list. (NotNull: If you set null, it ignores it.)\r
- */\r
- public void setSelectedList(List<ENTITY> selectedList) {\r
- if (selectedList == null) { return; } // Not allowed to set null value to the selected list\r
- _selectedList = selectedList;\r
- }\r
-\r
- /**\r
- * Get the value of orderByClause.\r
- * @return The value of orderByClause. (NotNull)\r
- */\r
- public ${glOrderByClauseName} getOrderByClause() {\r
- return _orderByClause;\r
- }\r
-\r
- /**\r
- * Set the value of orderByClause.\r
- * @param orderByClause The value of orderByClause. (NotNull: If you set null, it ignores it.)\r
- */\r
- public void setOrderByClause(${glOrderByClauseName} orderByClause) {\r
- if (orderByClause == null) { return; } // Not allowed to set null value to the selected list\r
- _orderByClause = orderByClause;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBean};\r
-\r
-import java.util.Map;\r
-\r
-/**\r
- * The bean of map parameter.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glMapParameterBeanInterfaceName} {\r
-\r
- /**\r
- * Get the map of parameter.\r
- * @return The map of parameter. (Nullable)\r
- */\r
- public Map<String, Object> getParameterMap();\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBean};\r
-\r
-import ${glPackageBaseCommonSqlClause}.${glOrderByClauseName};\r
-\r
-/**\r
- * The order-by-bean as interface.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glOrderByBeanInterfaceName} extends ${glSelectResourceInterfaceName} {\r
-\r
- /**\r
- * Get sql component of order-by clause.\r
- * \r
- * @return Sql component of order-by clause. (NotNull)\r
- */\r
- public ${glOrderByClauseName} getSqlComponentOfOrderByClause();\r
-\r
- /**\r
- * Get order-by clause.\r
- * \r
- * @return Order-by clause. (NotNull)\r
- */\r
- public String getOrderByClause();\r
-\r
- /**\r
- * Clear order-by.\r
- * \r
- * @return this. (NotNull)\r
- */\r
- public ${glOrderByBeanInterfaceName} clearOrderBy();\r
-\r
- /**\r
- * Ignore order-by.\r
- * \r
- * @return this. (NotNull)\r
- */\r
- public ${glOrderByBeanInterfaceName} ignoreOrderBy();\r
-\r
- /**\r
- * Make order-by effective.\r
- * \r
- * @return this. (NotNull)\r
- */\r
- public ${glOrderByBeanInterfaceName} makeOrderByEffective();\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBean};\r
-\r
-/**\r
- * The bean of paging.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glPagingBeanInterfaceName} extends ${glFetchNarrowingBeanInterfaceName}, ${glOrderByBeanInterfaceName} {\r
-\r
- // ===================================================================================\r
- // Paging Determination\r
- // ====================\r
- // * * * * * * * *\r
- // For SQL Comment\r
- // * * * * * * * *\r
- /**\r
- * Is the execution for paging(NOT count)?\r
- * @return Determination.\r
- */\r
- public boolean isPaging();\r
-\r
- // * * * * * * * *\r
- // For Framework\r
- // * * * * * * * *\r
- /**\r
- * Is the count executed later?\r
- * @return Determination.\r
- */\r
- public boolean isCountLater();\r
-\r
- // ===================================================================================\r
- // Paging Setting\r
- // ==============\r
- /**\r
- * Set up paging resources.\r
- * @param pageSize The page size per one page. (NotMinus & NotZero)\r
- * @param pageNumber The number of page. It's ONE origin. (NotMinus & NotZero: If it's minus or zero, it treats as one.)\r
- */\r
- public void paging(int pageSize, int pageNumber);\r
-\r
- /**\r
- * Set whether the execution for paging(NOT count). {INTERNAL METHOD}\r
- * @param paging Determination.\r
- */\r
- public void xsetPaging(boolean paging);\r
-\r
- // ===================================================================================\r
- // Fetch Setting\r
- // =============\r
- /**\r
- * Fetch first. <br />\r
- * If you invoke this, your SQL returns [fetch-size] records from first.\r
- * @param fetchSize The size of fetch. (NotMinus & NotZero)\r
- * @return this. (NotNull)\r
- */\r
- public ${glPagingBeanInterfaceName} fetchFirst(int fetchSize);\r
-\r
- /**\r
- * Fetch scope. <br />\r
- * If you invoke this, your SQL returns [fetch-size] records from [fetch-start-index].\r
- * @param fetchStartIndex The start index of fetch. 0 origin. (NotMinus)\r
- * @param fetchSize The size of fetch. (NotMinus & NotZero)\r
- * @return this. (NotNull)\r
- */\r
- public ${glPagingBeanInterfaceName} fetchScope(int fetchStartIndex, int fetchSize);\r
-\r
- /**\r
- * Fetch page. <br />\r
- * When you invoke this, it is normally necessary to invoke 'fetchFirst()' or 'fetchScope()' ahead of that. <br />\r
- * But you also can use default-fetch-size without invoking 'fetchFirst()' or 'fetchScope()'. <br />\r
- * If you invoke this, your SQL returns [fetch-size] records from [fetch-start-index] calculated by [fetch-page-number].\r
- * @param fetchPageNumber The page number of fetch. 1 origin. (NotMinus & NotZero: If minus or zero, set one.)\r
- * @return this. (NotNull)\r
- */\r
- public ${glPagingBeanInterfaceName} fetchPage(int fetchPageNumber);\r
-\r
- // ===================================================================================\r
- // Fetch Property\r
- // ==============\r
- /**\r
- * Get fetch-start-index.\r
- * @return Fetch-start-index.\r
- */\r
- public int getFetchStartIndex();\r
-\r
- /**\r
- * Get fetch-size.\r
- * @return Fetch-size.\r
- */\r
- public int getFetchSize();\r
-\r
- /**\r
- * Get fetch-page-number.\r
- * @return Fetch-page-number.\r
- */\r
- public int getFetchPageNumber();\r
-\r
- /**\r
- * Get page start index.\r
- * @return Page start index. 0 origin. (NotMinus)\r
- */\r
- public int getPageStartIndex();\r
-\r
- /**\r
- * Get page end index.\r
- * @return Page end index. 0 origin. (NotMinus)\r
- */\r
- public int getPageEndIndex();\r
-\r
- /**\r
- * Is fetch scope effective?\r
- * @return Determination.\r
- */\r
- public boolean isFetchScopeEffective();\r
-\r
- // ===================================================================================\r
- // Hint Property\r
- // =============\r
- // * * * * * * * *\r
- // For SQL Comment\r
- // * * * * * * * *\r
- /**\r
- * Get select-hint. {select [select-hint] * from table...}\r
- * @return Select-hint. (NotNull)\r
- */\r
- public String getSelectHint();\r
-\r
- /**\r
- * Get from-hint. {select * from table [from-hint] where ...}\r
- * @return From-hint. (NotNull)\r
- */\r
- public String getFromHint();\r
-\r
- /**\r
- * Get sql-suffix. {select * from table where ... order by ... [sql-suffix]}\r
- * @return Sql-suffix. (NotNull)\r
- */\r
- public String getSqlSuffix();\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBean};\r
-\r
-import java.util.List;\r
-\r
-/**\r
- * The handler of paging.\r
- * @param <ENTITY> The type of entity.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glPagingHandlerName}<ENTITY> {\r
-\r
- /**\r
- * Get the bean of paging.\r
- * @return The bean of paging. (NotNull)\r
- */\r
- public ${glPagingBeanInterfaceName} getPagingBean();\r
-\r
- /**\r
- * Execute SQL for count.\r
- * @return The count of execution.\r
- */\r
- public int count();\r
-\r
- /**\r
- * Execute SQL for paging.\r
- * @return The list of entity. (NotNull)\r
- */\r
- public List<ENTITY> paging();\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBean};\r
-\r
-import java.util.List;\r
-\r
-/**\r
- * The invoker of paging.\r
- * @param <ENTITY> The type of entity.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glPagingInvokerName}<ENTITY> {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected String _tableDbName;\r
- protected boolean _countLater;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glPagingInvokerName}(String tableDbName) {\r
- _tableDbName = tableDbName;\r
- }\r
-\r
- // ===================================================================================\r
- // Invoke\r
- // ======\r
- /**\r
- * Invoke select-page by handler.\r
- * @param handler The handler of paging. (NotNull)\r
- * @return The result bean of paging. (NotNull)\r
- */\r
- public ${glPagingResultBeanName}<ENTITY> invokePaging(${glPagingHandlerName}<ENTITY> handler) {\r
- assertObjectNotNull("handler", handler);\r
- final ${glPagingBeanInterfaceName} pagingBean = handler.getPagingBean();\r
- assertObjectNotNull("handler.getPagingBean()", pagingBean);\r
- if (!pagingBean.isFetchScopeEffective()) {\r
- String msg = "The paging bean is not effective about fetch-scope!";\r
- msg = msg + " When you select page, you should set up fetch-scope of paging bean(Should invoke fetchFirst() and fetchPage()!).";\r
- msg = msg + " The paging bean is: " + pagingBean;\r
- throw new IllegalStateException(msg);\r
- }\r
- final int allRecordCount;\r
- final List<ENTITY> selectedList;\r
- if (_countLater) {\r
- selectedList = handler.paging();\r
- allRecordCount = handler.count();\r
- } else {\r
- allRecordCount = handler.count();\r
- selectedList = handler.paging();\r
- }\r
- final ${glPagingResultBeanName}<ENTITY> rb = new ${glResultBeanBuilderName}<ENTITY>(_tableDbName).buildPagingResultBean(pagingBean, allRecordCount, selectedList);\r
- if (isNecessaryToReadPageAgain(rb)) {\r
- pagingBean.fetchPage(rb.getAllPageCount());\r
- final int reAllRecordCount = handler.count();\r
- final java.util.List<ENTITY> reSelectedList = handler.paging();\r
- return new ${glResultBeanBuilderName}<ENTITY>(_tableDbName).buildPagingResultBean(pagingBean, reAllRecordCount, reSelectedList);\r
- } else {\r
- return rb;\r
- }\r
- }\r
-\r
- /**\r
- * Is it necessary to read page again?\r
- * @param rb The result bean of paging. (NotNull)\r
- * @return Determination.\r
- */\r
- protected boolean isNecessaryToReadPageAgain(${glPagingResultBeanName}<ENTITY> rb) {\r
- return rb.getAllRecordCount() > 0 && rb.getSelectedList().isEmpty();\r
- }\r
-\r
- // ===================================================================================\r
- // Option\r
- // ======\r
- public ${glPagingInvokerName}<ENTITY> countLater() {\r
- _countLater = true; return this;\r
- }\r
-\r
- // ===================================================================================\r
- // Helper\r
- // ======\r
- /**\r
- * Assert that the object is not null.\r
- * @param variableName Variable name. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @exception IllegalArgumentException\r
- */\r
- protected void assertObjectNotNull(String variableName, Object value) {\r
- if (variableName == null) {\r
- String msg = "The value should not be null: variableName=" + variableName + " value=" + value;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (value == null) {\r
- String msg = "The value should not be null: variableName=" + variableName;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBean};\r
-#set ($myClassName = "${glPagingResultBeanName}")\r
-\r
-import ${glPackageBaseCommonCBeanMapping}.${glEntityDtoMapperName};\r
-import ${glPackageBaseCommonCBeanPagenaviGroup}.${glPageGroupBeanName};\r
-import ${glPackageBaseCommonCBeanPagenaviGroup}.${glPageGroupOptionName};\r
-import ${glPackageBaseCommonCBeanPagenaviRange}.${glPageRangeBeanName};\r
-import ${glPackageBaseCommonCBeanPagenaviRange}.${glPageRangeOptionName};\r
-\r
-/**\r
- * The result bean of paging.\r
- * @param <ENTITY> The type of entity for the element of selected list.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName}<ENTITY> extends ${glListResultBeanName}<ENTITY> {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- /** Serial version UID. (Default) */\r
- private static final long serialVersionUID = 1L;\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- // -----------------------------------------------------\r
- // Page Basic Info\r
- // ---------------\r
- /** The value of current page number. */\r
- protected int _pageSize;\r
-\r
- /** The value of current page number. */\r
- protected int _currentPageNumber;\r
-\r
- // -----------------------------------------------------\r
- // Page Group\r
- // ----------\r
- /** The value of page-group bean. */\r
- protected ${glPageGroupBeanName} _pageGroupBean;\r
-\r
- /** The value of page-group option. */\r
- protected ${glPageGroupOptionName} _pageGroupOption;\r
-\r
- // -----------------------------------------------------\r
- // Page Range\r
- // ----------\r
- /** The value of page-range bean. */\r
- protected ${glPageRangeBeanName} _pageRangeBean;\r
-\r
- /** The value of page-range option. */\r
- protected ${glPageRangeOptionName} _pageRangeOption;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- /**\r
- * Constructor.\r
- */\r
- public ${myClassName}() {\r
- }\r
-\r
- // ===================================================================================\r
- // Calculated Property\r
- // ===================\r
- /**\r
- * Get the value of allPageCount that is calculated.\r
- * @return The value of allPageCount.\r
- */\r
- public int getAllPageCount() {\r
- return calculateAllPageCount(_allRecordCount, _pageSize);\r
- }\r
-\r
- /**\r
- * Get the value of currentStartRecordNumber that is calculated.\r
- * @return The value of currentStartRecordNumber.\r
- */\r
- public int getCurrentStartRecordNumber() {\r
- return calculateCurrentStartRecordNumber(_currentPageNumber, _pageSize);\r
- }\r
-\r
- /**\r
- * Get the value of currentEndRecordNumber that is calculated.\r
- * @return The value of currentEndRecordNumber.\r
- */\r
- public int getCurrentEndRecordNumber() {\r
- return calculateCurrentEndRecordNumber(_currentPageNumber, _pageSize);\r
- }\r
- \r
- // ===================================================================================\r
- // Page Group/Range\r
- // ================\r
- // -----------------------------------------------------\r
- // Page Group\r
- // ----------\r
- /**\r
- * Get the value of pageGroupSize.\r
- * @return The value of pageGroupSize.\r
- */\r
- public int getPageGroupSize() {\r
- return _pageGroupOption != null ? _pageGroupOption.getPageGroupSize() : 0;\r
- }\r
-\r
- /**\r
- * Set the value of pageGroupSize.\r
- * @param pageGroupSize The value of pageGroupSize.\r
- */\r
- public void setPageGroupSize(int pageGroupSize) {\r
- final ${glPageGroupOptionName} option = new ${glPageGroupOptionName}();\r
- option.setPageGroupSize(pageGroupSize);\r
- setPageGroupOption(option);\r
- }\r
-\r
- /**\r
- * Set the value of pageGroupOption.\r
- * @param pageGroupOption The value of pageGroupOption. (Nullable)\r
- */\r
- public void setPageGroupOption(${glPageGroupOptionName} pageGroupOption) {\r
- _pageGroupOption = pageGroupOption;\r
- }\r
-\r
- /**\r
- * Get the value of pageGroupBean.\r
- * @return The value of pageGroupBean. (NotNull)\r
- */\r
- public ${glPageGroupBeanName} pageGroup() {\r
- assertPageGroupValid();\r
- if (_pageGroupBean == null) {\r
- _pageGroupBean = new ${glPageGroupBeanName}();\r
- }\r
- _pageGroupBean.setPageGroupOption(_pageGroupOption);\r
- _pageGroupBean.setCurrentPageNumber(getCurrentPageNumber());\r
- _pageGroupBean.setAllPageCount(getAllPageCount());\r
- return _pageGroupBean;\r
- }\r
-\r
- protected void assertPageGroupValid() {\r
- if (_pageGroupOption == null) {\r
- String msg = "The pageGroupOption should not be null. Please invoke setPageGroupOption().";\r
- throw new IllegalStateException(msg);\r
- }\r
- if (_pageGroupOption.getPageGroupSize() == 0) {\r
- String msg = "The pageGroupSize should be greater than 1. But the value is zero.";\r
- msg = msg + " pageGroupSize=" + _pageGroupOption.getPageGroupSize();\r
- throw new IllegalStateException(msg);\r
- }\r
- if (_pageGroupOption.getPageGroupSize() == 1) {\r
- String msg = "The pageGroupSize should be greater than 1. But the value is one.";\r
- msg = msg + " pageGroupSize=" + _pageGroupOption.getPageGroupSize();\r
- throw new IllegalStateException(msg);\r
- }\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Page Range\r
- // ----------\r
- /**\r
- * Get the value of pageRangeSize.\r
- * @return The value of pageRangeSize.\r
- */\r
- public int getPageRangeSize() {\r
- return _pageRangeOption != null ? _pageRangeOption.getPageRangeSize() : 0;\r
- }\r
-\r
- /**\r
- * Set the value of pageRangeSize.\r
- * @param pageRangeSize The value of pageRangeSize.\r
- */\r
- public void setPageRangeSize(int pageRangeSize) {\r
- final ${glPageRangeOptionName} option = new ${glPageRangeOptionName}();\r
- option.setPageRangeSize(pageRangeSize);\r
- setPageRangeOption(option);\r
- }\r
-\r
- /**\r
- * Set the value of pageRangeOption.\r
- * @param pageRangeOption The value of pageRangeOption. (Nullable)\r
- */\r
- public void setPageRangeOption(${glPageRangeOptionName} pageRangeOption) {\r
- this._pageRangeOption = pageRangeOption;\r
- }\r
-\r
- /**\r
- * Get the value of pageRangeBean.\r
- * @return The value of pageRangeBean. (NotNull)\r
- */\r
- public ${glPageRangeBeanName} pageRange() {\r
- assertPageRangeValid();\r
- if (_pageRangeBean == null) {\r
- _pageRangeBean = new ${glPageRangeBeanName}();\r
- }\r
- _pageRangeBean.setPageRangeOption(_pageRangeOption);\r
- _pageRangeBean.setCurrentPageNumber(getCurrentPageNumber());\r
- _pageRangeBean.setAllPageCount(getAllPageCount());\r
- return _pageRangeBean;\r
- }\r
-\r
- protected void assertPageRangeValid() {\r
- if (_pageRangeOption == null) {\r
- String msg = "The pageRangeOption should not be null. Please invoke setPageRangeOption().";\r
- throw new IllegalStateException(msg);\r
- }\r
- final int pageRangeSize = _pageRangeOption.getPageRangeSize();\r
- if (pageRangeSize == 0) {\r
- String msg = "The pageRangeSize should be greater than 1. But the value is zero.";\r
- throw new IllegalStateException(msg);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Determination\r
- // =============\r
- /**\r
- * Is existing previous page?\r
- * Using values are currentPageNumber.\r
- * @return Determination.\r
- */\r
- public boolean isExistPrePage() {\r
- return (_allRecordCount > 0 && _currentPageNumber > 1);\r
- }\r
-\r
- /**\r
- * Is existing next page?\r
- * Using values are currentPageNumber and allPageCount.\r
- * @return Determination.\r
- */\r
- public boolean isExistNextPage() {\r
- return (_allRecordCount > 0 && _currentPageNumber < getAllPageCount());\r
- }\r
-\r
- // ===================================================================================\r
- // Mapping\r
- // =======\r
- public <DTO> ${myClassName}<DTO> mappingList(${glEntityDtoMapperName}<ENTITY, DTO> entityDtoMapper) {\r
- final ${glListResultBeanName}<DTO> ls = super.mappingList(entityDtoMapper);\r
- final ${myClassName}<DTO> mappingList = new ${myClassName}<DTO>();\r
- mappingList.setSelectedList(ls.getSelectedList());\r
- mappingList.setTableDbName(getTableDbName());\r
- mappingList.setAllRecordCount(getAllRecordCount());\r
- mappingList.setOrderByClause(getOrderByClause());\r
- mappingList.setPageSize(getPageSize());\r
- mappingList.setCurrentPageNumber(getCurrentPageNumber());\r
- mappingList.setPageRangeOption(_pageRangeOption);\r
- mappingList.setPageGroupOption(_pageGroupOption);\r
- return mappingList;\r
- }\r
-\r
- // ===================================================================================\r
- // Calculate(Internal)\r
- // ===================\r
- /**\r
- * Calculate all page count.\r
- * @param allRecordCount All record count.\r
- * @param pageSize Fetch-size.\r
- * @return All page count.\r
- */\r
- protected int calculateAllPageCount(int allRecordCount, int pageSize) {\r
- if (allRecordCount == 0) {\r
- return 1;\r
- }\r
- int pageCountBase = (allRecordCount / pageSize);\r
- if (allRecordCount % pageSize > 0) {\r
- pageCountBase++;\r
- }\r
- return pageCountBase;\r
- }\r
-\r
- protected int calculateCurrentStartRecordNumber(int currentPageNumber, int pageSize) {\r
- return ((currentPageNumber - 1) * pageSize) + 1;\r
- }\r
-\r
- protected int calculateCurrentEndRecordNumber(int currentPageNumber, int pageSize) {\r
- return calculateCurrentStartRecordNumber(currentPageNumber, pageSize) + _selectedList.size() - 1;\r
- }\r
-\r
- // ===================================================================================\r
- // Basic Override\r
- // ==============\r
- /**\r
- * @return The view string of all attribute values. (NotNull)\r
- */\r
- @Override\r
- public String toString() {\r
- final StringBuilder sb = new StringBuilder();\r
- sb.append("{").append(getCurrentPageNumber()).append("/").append(getAllPageCount());\r
- sb.append(" of ").append(getAllRecordCount());\r
- sb.append(" ").append(isExistPrePage()).append("/").append(isExistNextPage());\r
- if (_pageGroupOption != null) {\r
- sb.append(" group:{").append(getPageGroupSize()).append(",").append(pageGroup().createPageNumberList()).append("}");\r
- }\r
- if (_pageRangeOption != null) {\r
- sb.append(" range:{").append(getPageRangeSize()).append(",").append(_pageRangeOption.isFillLimit());\r
- sb.append(",").append(pageRange().createPageNumberList()).append("}");\r
- }\r
- sb.append(" list=").append(getSelectedList() != null ? Integer.valueOf(getSelectedList().size()) : null);\r
- sb.append(" page=").append(getPageSize());\r
- sb.append("}");\r
- sb.append(":selectedList=").append(getSelectedList());\r
- return sb.toString();\r
- }\r
- \r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- /**\r
- * Get the value of pageSize.\r
- * @return The value of pageSize.\r
- */\r
- public int getPageSize() {\r
- return _pageSize;\r
- }\r
-\r
- /**\r
- * Set the value of pageSize.\r
- * @param pageSize The value of pageSize.\r
- */\r
- public void setPageSize(int pageSize) {\r
- _pageSize = pageSize;\r
- }\r
-\r
- /**\r
- * Get the value of currentPageNumber.\r
- * @return The value of currentPageNumber.\r
- */\r
- public int getCurrentPageNumber() {\r
- return _currentPageNumber;\r
- }\r
-\r
- /**\r
- * Set the value of currentPageNumber.\r
- * @param currentPageNumber The value of currentPageNumber.\r
- */\r
- public void setCurrentPageNumber(int currentPageNumber) {\r
- _currentPageNumber = currentPageNumber;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBean};\r
-\r
-import java.util.List;\r
-\r
-/**\r
- * The builder of result bean.\r
- * @param <ENTITY> The type of entity.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glResultBeanBuilderName}<ENTITY> {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected String _tableDbName;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glResultBeanBuilderName}(String tableDbName) {\r
- _tableDbName = tableDbName;\r
- }\r
-\r
- // ===================================================================================\r
- // Builder\r
- // =======\r
- /**\r
- * Build the result bean of list without order-by clause. {for Various}\r
- * @param selectedList Selected list. (NotNull)\r
- * @return The result bean of list. (NotNull)\r
- */\r
- public ${glListResultBeanName}<ENTITY> buildListResultBean(List<ENTITY> selectedList) {\r
- ${glListResultBeanName}<ENTITY> rb = new ${glListResultBeanName}<ENTITY>();\r
- rb.setTableDbName(_tableDbName);\r
- rb.setAllRecordCount(selectedList.size());\r
- rb.setSelectedList(selectedList);\r
- return rb;\r
- }\r
-\r
- /**\r
- * Build the result bean of list. {for CB}\r
- * @param cb The condition-bean. (NotNull)\r
- * @param selectedList Selected list. (NotNull)\r
- * @return The result bean of list. (NotNull)\r
- */\r
- public ${glListResultBeanName}<ENTITY> buildListResultBean(${glConditionBeanInterfaceName} cb, List<ENTITY> selectedList) {\r
- ${glListResultBeanName}<ENTITY> rb = new ${glListResultBeanName}<ENTITY>();\r
- rb.setTableDbName(_tableDbName);\r
- rb.setAllRecordCount(selectedList.size());\r
- rb.setSelectedList(selectedList);\r
- rb.setOrderByClause(cb.getSqlComponentOfOrderByClause());\r
- return rb;\r
- }\r
-\r
- /**\r
- * Build the result bean of paging. {for Paging}\r
- * @param pb The bean of paging. (NotNull)\r
- * @param allRecordCount All record count.\r
- * @param selectedList The list of selected entity. (NotNull)\r
- * @return The result bean of paging. (NotNull)\r
- */\r
- public ${glPagingResultBeanName}<ENTITY> buildPagingResultBean(${glPagingBeanInterfaceName} pb, int allRecordCount, List<ENTITY> selectedList) {\r
- ${glPagingResultBeanName}<ENTITY> rb = new ${glPagingResultBeanName}<ENTITY>();\r
- rb.setTableDbName(_tableDbName);\r
- rb.setAllRecordCount(allRecordCount);\r
- rb.setSelectedList(selectedList);\r
- rb.setOrderByClause(pb.getSqlComponentOfOrderByClause());\r
- rb.setPageSize(pb.getFetchSize());\r
- rb.setCurrentPageNumber(pb.getFetchPageNumber());\r
- return rb;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBean};\r
-\r
-/**\r
- * The select-resource as marker-interface.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glSelectResourceInterfaceName} {\r
-\r
- /**\r
- * Check safety result.\r
- * \r
- * @param safetyMaxResultSize Safety max result size. (If zero or minus, ignore checking)\r
- */\r
- public void checkSafetyResult(int safetyMaxResultSize);\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBean};\r
-\r
-import ${glPackageBaseCommonSqlClause}.${glOrderByClauseName};\r
-import ${glPackageBaseCommonSqlClause}.${glSqlClauseName};\r
-\r
-/**\r
- * @deprecated\r
- */\r
-public class ${glSimpleOrderByBeanName} implements ${glOrderByBeanInterfaceName} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- /** SQL clause instance. */\r
- protected final ${glSqlClauseName} _sqlClause;\r
- {\r
- _sqlClause = ${glConditionBeanContextName}.createSqlClause("Dummy");\r
- }\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- /**\r
- * Constructor.\r
- */\r
- public ${glSimpleOrderByBeanName}() {\r
- }\r
-\r
- // ===================================================================================\r
- // SqlClause\r
- // =========\r
- /**\r
- * Get sql-clause.\r
- * \r
- * @return Sql clause. (NotNull)\r
- */\r
- protected ${glSqlClauseName} getSqlClause() {\r
- return _sqlClause;\r
- }\r
-\r
- // ===================================================================================\r
- // Select Resource\r
- // ===============\r
- /**\r
- * Check safety result.\r
- * \r
- * @param safetyMaxResultSize Safety max result size. (If zero or minus, ignore checking)\r
- */\r
- public void checkSafetyResult(int safetyMaxResultSize) {\r
- throw new UnsupportedOperationException();\r
- }\r
-\r
- // ===================================================================================\r
- // OrderBy\r
- // =======\r
- /**\r
- * ${database.ImplementComment}\r
- * \r
- * @return Sql component of order-by clause. (NotNull)\r
- */\r
- public ${glOrderByClauseName} getSqlComponentOfOrderByClause() {\r
- return getSqlClause().getSqlComponentOfOrderByClause();\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * \r
- * @return Order-by clause. (NotNull)\r
- */\r
- public String getOrderByClause() {\r
- return getSqlClause().getOrderByClause();\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * \r
- * @return this. (NotNull)\r
- */\r
- public ${glOrderByBeanInterfaceName} clearOrderBy() {\r
- getSqlClause().clearOrderBy();\r
- return this;\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * \r
- * @return this. (NotNull)\r
- */\r
- public ${glOrderByBeanInterfaceName} ignoreOrderBy() {\r
- getSqlClause().ignoreOrderBy();\r
- return this;\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * \r
- * @return this. (NotNull)\r
- */\r
- public ${glOrderByBeanInterfaceName} makeOrderByEffective() {\r
- getSqlClause().makeOrderByEffective();\r
- return this;\r
- }\r
-#if ($database.isMakeRecentlyDeprecated())\r
- /**\r
- * Register order-by-asc.\r
- * \r
- * @param orderByProperty Order-by-property. 'aliasName.columnName/aliasName.columnName/...' (NotNull)\r
- * @return this. (NotNull)\r
- * @deprecated\r
- */\r
- public ${glOrderByBeanInterfaceName} registerOrderByAsc(String orderByProperty) {\r
- getSqlClause().registerOrderBy(orderByProperty, orderByProperty, true);\r
- return this;\r
- }\r
-\r
- /**\r
- * Register order-by-desc.\r
- * \r
- * @param orderByProperty Order-by-property. 'aliasName.columnName/aliasName.columnName/...' (NotNull)\r
- * @return this. (NotNull)\r
- * @deprecated\r
- */\r
- public ${glOrderByBeanInterfaceName} registerOrderByDesc(String orderByProperty) {\r
- getSqlClause().registerOrderBy(orderByProperty, orderByProperty, false);\r
- return this;\r
- }\r
-\r
- /**\r
- * Reverse order-by or Override order-by asc.\r
- * \r
- * @param orderByProperty Order-by-property. 'aliasName.columnName/aliasName.columnName/...' (NotNull)\r
- * @return this. (NotNull)\r
- * @deprecated\r
- */\r
- public ${glOrderByBeanInterfaceName} reverseOrderBy_Or_OverrideOrderByAsc(String orderByProperty) {\r
- getSqlClause().reverseOrderBy_Or_OverrideOrderBy(orderByProperty, orderByProperty, true);\r
- return this;\r
- }\r
-\r
- /**\r
- * Reverse order-by or Override order-by desc.\r
- * \r
- * @param orderByProperty Order-by-property. 'aliasName.columnName/aliasName.columnName/...' (NotNull)\r
- * @return this. (NotNull)\r
- * @deprecated\r
- */\r
- public ${glOrderByBeanInterfaceName} reverseOrderBy_Or_OverrideOrderByDesc(String orderByProperty) {\r
- getSqlClause().reverseOrderBy_Or_OverrideOrderBy(orderByProperty, orderByProperty, false);\r
- return this;\r
- }\r
-#end\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBean};\r
-\r
-import java.util.Map;\r
-import java.util.LinkedHashMap;\r
-import ${glPackageBaseCommonSqlClause}.${glSqlClauseName};\r
-import ${glPackageBaseCommonSqlClause}.${glOrderByClauseName};\r
-\r
-/**\r
- * The simple pagingBean.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glSimplePagingBeanName} implements ${glPagingBeanInterfaceName}, ${glMapParameterBeanInterfaceName} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- /** SQL clause instance. */\r
- protected final ${glSqlClauseName} _sqlClause;\r
- {\r
- _sqlClause = ${glConditionBeanContextName}.createSqlClause("Dummy");\r
- }\r
-\r
- /** The map of parameter. (Nullable) */\r
- protected Map<String, Object> _parameterMap;\r
-\r
- /** Safety max result size. */\r
- protected int _safetyMaxResultSize;\r
-\r
- /** Is the execution for paging(NOT count)? */\r
- protected boolean _paging = true;\r
-\r
- /** Is the count executed later? */\r
- protected boolean _countLater;\r
-\r
- /** Is fetch narrowing valid? */\r
- protected boolean _fetchNarrowing = true;\r
-\r
- /** The map for parameter. */\r
- protected Map<String, Object> _map;\r
-\r
- // ===================================================================================\r
- // Implementation of PagingBean\r
- // ============================\r
- // -----------------------------------------------------\r
- // Paging Determination\r
- // --------------------\r
- // * * * * * * * *\r
- // For SQL Comment\r
- // * * * * * * * *\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Determination.\r
- */\r
- public boolean isPaging() {\r
- return _paging;\r
- }\r
-\r
- // * * * * * * * *\r
- // For Framework\r
- // * * * * * * * *\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Determination.\r
- */\r
- public boolean isCountLater() {\r
- return _countLater;\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Paging Setting\r
- // --------------\r
- /**\r
- * ${database.ImplementComment}\r
- * @param pageSize The page size per one page. (NotMinus & NotZero)\r
- * @param pageNumber The number of page. It's ONE origin. (NotMinus & NotZero: If it's minus or zero, it treats as one.)\r
- */\r
- public void paging(int pageSize, int pageNumber) {\r
- fetchFirst(pageSize);\r
- fetchPage(pageNumber);\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment} {INTERNAL METHOD: Don't Invoke This!}\r
- * @param paging Determination.\r
- */\r
- public void xsetPaging(boolean paging) {\r
- if (paging) {\r
- getSqlClause().makeFetchScopeEffective();\r
- } else {\r
- getSqlClause().ignoreFetchScope();\r
- }\r
- this._paging = paging;\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Fetch Setting\r
- // -------------\r
- /**\r
- * ${database.ImplementComment}\r
- * @param fetchSize Fetch-size. (NotMinus & NotZero)\r
- * @return this. (NotNull)\r
- */\r
- public ${glPagingBeanInterfaceName} fetchFirst(int fetchSize) {\r
- getSqlClause().fetchFirst(fetchSize);\r
- return this;\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @param fetchStartIndex Fetch-start-index. 0 origin. (NotMinus)\r
- * @param fetchSize Fetch-size. (NotMinus & NotZero)\r
- * @return this. (NotNull)\r
- */\r
- public ${glPagingBeanInterfaceName} fetchScope(int fetchStartIndex, int fetchSize) {\r
- getSqlClause().fetchScope(fetchStartIndex, fetchSize);\r
- return this;\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @param fetchPageNumber Fetch-page-number. 1 origin. (NotMinus & NotZero: If minus or zero, set one.)\r
- * @return this. (NotNull)\r
- */\r
- public ${glPagingBeanInterfaceName} fetchPage(int fetchPageNumber) {\r
- getSqlClause().fetchPage(fetchPageNumber);\r
- return this;\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Fetch Property\r
- // --------------\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Fetch-start-index.\r
- */\r
- public int getFetchStartIndex() {\r
- return getSqlClause().getFetchStartIndex();\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Fetch-size.\r
- */\r
- public int getFetchSize() {\r
- return getSqlClause().getFetchSize();\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Fetch-page-number.\r
- */\r
- public int getFetchPageNumber() {\r
- return getSqlClause().getFetchPageNumber();\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Page start index. 0 origin. (NotMinus)\r
- */\r
- public int getPageStartIndex() {\r
- return getSqlClause().getPageStartIndex();\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Page end index. 0 origin. (NotMinus)\r
- */\r
- public int getPageEndIndex() {\r
- return getSqlClause().getPageEndIndex();\r
- }\r
-\r
- /**\r
- * Is fetch scope effective?\r
- * @return Determination.\r
- */\r
- public boolean isFetchScopeEffective() {\r
- return getSqlClause().isFetchScopeEffective();\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Hint Property\r
- // -------------\r
- /**\r
- * Get select-hint. {select [select-hint] * from table...}\r
- * @return Select-hint. (NotNull)\r
- */\r
- public String getSelectHint() {\r
- return getSqlClause().getSelectHint();\r
- }\r
-\r
- /**\r
- * Get from-base-table-hint. {select * from table [from-base-table-hint] where ...}\r
- * @return from-base-table-hint. (NotNull)\r
- */\r
- public String getFromBaseTableHint() {\r
- return getSqlClause().getFromBaseTableHint();\r
- }\r
-\r
- /**\r
- * Get from-hint. {select * from table [from-hint] where ...}\r
- * @return From-hint. (NotNull)\r
- */\r
- public String getFromHint() {\r
- return getSqlClause().getFromHint();\r
- }\r
-\r
- /**\r
- * Get sql-suffix. {select * from table where ... order by ... [sql-suffix]}\r
- * @return Sql-suffix. (NotNull)\r
- */\r
- public String getSqlSuffix() {\r
- return getSqlClause().getSqlSuffix();\r
- }\r
-\r
- // ===================================================================================\r
- // Implementation of FetchNarrowingBean\r
- // ====================================\r
- /**\r
- * Get fetch-narrowing start-index.\r
- * @return Fetch-narrowing start-index.\r
- */\r
- public int getFetchNarrowingSkipStartIndex() {\r
- return getSqlClause().getFetchNarrowingSkipStartIndex();\r
- }\r
-\r
- /**\r
- * Get fetch-narrowing size.\r
- * @return Fetch-narrowing size.\r
- */\r
- public int getFetchNarrowingLoopCount() {\r
- return getSqlClause().getFetchNarrowingLoopCount();\r
- }\r
-\r
- /**\r
- * Is fetch start index supported?\r
- * @return Determination.\r
- */\r
- public boolean isFetchNarrowingSkipStartIndexEffective() {\r
- return !getSqlClause().isFetchStartIndexSupported();\r
- }\r
-\r
- /**\r
- * Is fetch size supported?\r
- * @return Determination.\r
- */\r
- public boolean isFetchNarrowingLoopCountEffective() {\r
- return !getSqlClause().isFetchSizeSupported();\r
- }\r
-\r
- /**\r
- * Is fetch-narrowing effective?\r
- * @return Determination.\r
- */\r
- public boolean isFetchNarrowingEffective() {\r
- return _fetchNarrowing && getSqlClause().isFetchNarrowingEffective();\r
- }\r
-\r
- /**\r
- * Ignore fetch narrowing. Only checking safety result size is valid. {INTERNAL METHOD}\r
- */\r
- public void ignoreFetchNarrowing() {\r
- _fetchNarrowing = false;\r
- }\r
-\r
- /**\r
- * Restore ignored fetch narrowing. {INTERNAL METHOD}\r
- */\r
- public void restoreIgnoredFetchNarrowing() {\r
- _fetchNarrowing = true;\r
- }\r
-\r
- /**\r
- * Get safety max result size.\r
- * @return Safety max result size.\r
- */\r
- public int getSafetyMaxResultSize() {\r
- return _safetyMaxResultSize;\r
- }\r
-\r
- // ===================================================================================\r
- // Implementation of OrderByBean\r
- // =============================\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Sql component of order-by clause. (NotNull)\r
- */\r
- public ${glOrderByClauseName} getSqlComponentOfOrderByClause() {\r
- return getSqlClause().getSqlComponentOfOrderByClause();\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Order-by clause. (NotNull)\r
- */\r
- public String getOrderByClause() {\r
- return getSqlClause().getOrderByClause();\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return this. (NotNull)\r
- */\r
- public ${glOrderByBeanInterfaceName} clearOrderBy() {\r
- getSqlClause().clearOrderBy();\r
- return this;\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return this. (NotNull)\r
- */\r
- public ${glOrderByBeanInterfaceName} ignoreOrderBy() {\r
- getSqlClause().ignoreOrderBy();\r
- return this;\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return this. (NotNull)\r
- */\r
- public ${glOrderByBeanInterfaceName} makeOrderByEffective() {\r
- getSqlClause().makeOrderByEffective();\r
- return this;\r
- }\r
-\r
- // ===================================================================================\r
- // Implementation of SelectResource\r
- // ================================\r
- /**\r
- * Check safety result.\r
- * @param safetyMaxResultSize Safety max result size. (If zero or minus, ignore checking)\r
- */\r
- public void checkSafetyResult(int safetyMaxResultSize) {\r
- this._safetyMaxResultSize = safetyMaxResultSize;\r
- }\r
-\r
- // ===================================================================================\r
- // Implementation of MapParameterBean\r
- // ==================================\r
- /**\r
- * Get the map of parameter.\r
- * @return The map of parameter. (Nullable)\r
- */\r
- public Map<String, Object> getParameterMap() {\r
- return _parameterMap;\r
- }\r
-\r
- /**\r
- * Add the parameter to the map.\r
- * @param key The key of parameter. (NotNull)\r
- * @param value The value of parameter. (Nullable)\r
- */\r
- public void addParameter(String key, Object value) {\r
- if (_parameterMap == null) {\r
- _parameterMap = new LinkedHashMap<String, Object>();\r
- }\r
- _parameterMap.put(key, value);\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- // -----------------------------------------------------\r
- // SqlClause\r
- // ---------\r
- /**\r
- * Get sqlClause.\r
- * @return SqlClause. (NotNull)\r
- */\r
- protected ${glSqlClauseName} getSqlClause() {\r
- return _sqlClause;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBean};\r
-\r
-public interface ${glSubQuery}<SUB_CB extends ${glConditionBeanInterfaceName}> {\r
- public void query(SUB_CB subCB);\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBean};\r
-\r
-public interface ${glUnionQuery}<UNION_CB extends ${glConditionBeanInterfaceName}> {\r
- public void query(UNION_CB unionCB);\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCKey};\r
-\r
-#set ($myClassName = "${glConditionKeyName}")\r
-import java.util.List;\r
-\r
-import ${glPackageBaseCommonCOption}.${glConditionOptionInterfaceName};\r
-import ${glPackageBaseCommonCValue}.${glConditionValueName};\r
-\r
-/**\r
- * The abstract class of condition-key.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public abstract class ${myClassName} {\r
-\r
- /** Mark of replaced value. */\r
- public static final String MARK_OF_REPLACED_VALUE = "ReplacedValue";\r
-\r
- /** The condition key of equal. */\r
- public static final ${myClassName} CK_EQUAL = new ${myClassName}Equal();\r
-\r
- /** The condition key of notEqual. */\r
- public static final ${myClassName} CK_NOT_EQUAL = new ${myClassName}NotEqual();\r
-\r
- /** The condition key of greaterThan. */\r
- public static final ${myClassName} CK_GREATER_THAN = new ${myClassName}GreaterThan();\r
-\r
- /** The condition key of lessrThan. */\r
- public static final ${myClassName} CK_LESS_THAN = new ${myClassName}LessThan();\r
-\r
- /** The condition key of greaterEqual. */\r
- public static final ${myClassName} CK_GREATER_EQUAL = new ${myClassName}GreaterEqual();\r
-\r
- /** The condition key of lessEqual. */\r
- public static final ${myClassName} CK_LESS_EQUAL = new ${myClassName}LessEqual();\r
-\r
- /** The condition key of prefixSearch. */\r
- public static final ${myClassName} CK_PREFIX_SEARCH = new ${myClassName}PrefixSearch();\r
-\r
- /** The condition key of likeSearch. */\r
- public static final ${myClassName} CK_LIKE_SEARCH = new ${myClassName}LikeSearch();\r
-\r
- /** The condition key of inScope. */\r
- public static final ${myClassName} CK_IN_SCOPE = new ${myClassName}InScope();\r
-\r
- /** The condition key of notInScope. */\r
- public static final ${myClassName} CK_NOT_IN_SCOPE = new ${myClassName}NotInScope();\r
-\r
- /** The condition key of isNull. */\r
- public static final ${myClassName} CK_IS_NULL = new ${myClassName}IsNull();\r
-\r
- /** The condition key of isNotNull. */\r
- public static final ${myClassName} CK_IS_NOT_NULL = new ${myClassName}IsNotNull();\r
-\r
- /** Dummy-object for IsNull and IsNotNull and so on... */\r
- protected static final Object DUMMY_OBJECT = new Object();\r
-\r
- /** Condition-key. */\r
- protected String _conditionKey;\r
-\r
- /** Operand. */\r
- protected String _operand;\r
-\r
- /**\r
- * Get condition-key.\r
- * @return Condition-key.\r
- */\r
- public String getConditionKey() {\r
- return _conditionKey;\r
- }\r
-\r
- /**\r
- * Get operand.\r
- * @return Operand.\r
- */\r
- public String getOperand() {\r
- return _operand;\r
- }\r
-\r
- /**\r
- * Is valid registration?\r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param callerName Caller name. (NotNull)\r
- * @return Determination.\r
- */\r
- abstract public boolean isValidRegistration(${glConditionValueName} conditionValue, Object value, String callerName);\r
-\r
- /**\r
- * Add where clause.\r
- * @param conditionList Condition list. (NotNull)\r
- * @param columnName Column name. (NotNull)\r
- * @param value Condition value. (NotNull)\r
- * @return this.\r
- */\r
- public ${myClassName} addWhereClause(java.util.List<String> conditionList, String columnName, ${glConditionValueName} value) {\r
- if (value == null) {\r
- String msg = "Argument[value] must not be null:";\r
- throw new IllegalArgumentException(msg + " value=" + value + " this.toString()=" + toString());\r
- }\r
- doAddWhereClause(conditionList, columnName, value);\r
- return this;\r
- }\r
-\r
- /**\r
- * Add where clause.\r
- * @param conditionList Condition list. (NotNull)\r
- * @param columnName Column name. (NotNull)\r
- * @param value Condition value. (NotNull)\r
- * @param option Condition option. (NotNull)\r
- * @return this.\r
- */\r
- public ${myClassName} addWhereClause(java.util.List<String> conditionList, String columnName, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option) {\r
- if (value == null) {\r
- String msg = "Argument[value] must not be null:";\r
- throw new IllegalArgumentException(msg + " value=" + value + " this.toString()=" + toString());\r
- }\r
- doAddWhereClause(conditionList, columnName, value, option);\r
- return this;\r
- }\r
-\r
- /**\r
- * Do add where clause.\r
- * @param conditionList Condition list. (NotNull)\r
- * @param columnName Column name. (NotNull)\r
- * @param value Condition value. (NotNull)\r
- */\r
- abstract protected void doAddWhereClause(List<String> conditionList, String columnName, ${glConditionValueName} value);\r
-\r
- /**\r
- * Do add where clause.\r
- * @param conditionList Condition list. (NotNull)\r
- * @param columnName Column name. (NotNull)\r
- * @param value Condition value. (NotNull)\r
- * @param option Condition option. (NotNull)\r
- */\r
- abstract protected void doAddWhereClause(List<String> conditionList, String columnName, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option);\r
-\r
- /**\r
- * Setup condition value.\r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (Nullable)\r
- * @param location Location. (Nullable)\r
- * @return Condition value. (The same as argument[conditionValue]) (NotNull)\r
- */\r
- public ${glConditionValueName} setupConditionValue(${glConditionValueName} conditionValue, Object value, String location) {\r
- if (conditionValue == null) {\r
- String msg = "Argument[conditionValue] must not be null:";\r
- throw new IllegalArgumentException(msg + " value=" + value + " this.toString()=" + toString());\r
- }\r
- doSetupConditionValue(conditionValue, value, location);\r
- return conditionValue;\r
- }\r
-\r
- /**\r
- * Setup condition value.\r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (Nullable)\r
- * @param location Location. (Nullable)\r
- * @param option Condition option. (NotNull)\r
- * @return Condition value. (The same as argument[conditionValue]) (NotNull)\r
- */\r
- public ${glConditionValueName} setupConditionValue(${glConditionValueName} conditionValue, Object value, String location, ${glConditionOptionInterfaceName} option) {\r
- if (conditionValue == null) {\r
- String msg = "Argument[conditionValue] must not be null:";\r
- throw new IllegalArgumentException(msg + " value=" + value + " this.toString()=" + toString());\r
- }\r
- doSetupConditionValue(conditionValue, value, location, option);\r
- return conditionValue;\r
- }\r
-\r
- /**\r
- * Do setup condition value.\r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param location Location. (NotNull)\r
- */\r
- abstract protected void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location);\r
-\r
- /**\r
- * Do setup condition value.\r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param location Location. (NotNull)\r
- * @param option Condition option. (NotNull)\r
- */\r
- abstract protected void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location, ${glConditionOptionInterfaceName} option);\r
-\r
- /**\r
- * Build bind clause. (for s2dao)\r
- * @param columnName Column name. (NotNull)\r
- * @param location Location. (NotNull)\r
- * @return Bind clause. (NotNull)\r
- */\r
- protected String buildBindClause(String columnName, String location) {\r
- return columnName + " " + getOperand() + " " + "/*dto." + location + "*/null";\r
- }\r
-\r
- /**\r
- * Build bind clause. (for s2dao)\r
- * @param columnName Column name. (NotNull)\r
- * @param location Location. (NotNull)\r
- * @param rearOption Rear option. (NotNull)\r
- * @return Bind clause. (NotNull)\r
- */\r
- protected String buildBindClauseWithRearOption(String columnName, String location, String rearOption) {\r
- return columnName + " " + getOperand() + " " + "/*dto." + location + "*/null" + rearOption;\r
- }\r
-\r
- /**\r
- * Build bind clause. (for s2dao)\r
- * @param columnName Column name. (NotNull)\r
- * @param location Location. (NotNull)\r
- * @param dummyValue Dummy value. (NotNull)\r
- * @return Bind clause. (NotNull)\r
- */\r
- protected String buildBindClause(String columnName, String location, String dummyValue) {\r
- return columnName + " " + getOperand() + " " + "/*dto." + location + "*/" + dummyValue;\r
- }\r
-\r
- /**\r
- * Build clause without value.\r
- * @param columnName Column name. (NotNull)\r
- * @return Clause without value. (NotNull)\r
- */\r
- protected String buildClauseWithoutValue(String columnName) {\r
- return columnName + " " + getOperand();\r
- }\r
-\r
- /**\r
- * Get wild-card.\r
- * @return Wild-card.\r
- */\r
- protected String getWildCard() {\r
- return "${database.wildCard}";\r
- }\r
-\r
- /**\r
- * ${database.OverrideComment}\r
- * Returns hash-code of this condition-key string.\r
- * \r
- * @return HashCode.\r
- */\r
- public int hashCode() {\r
- return getConditionKey().hashCode();\r
- }\r
-\r
- /**\r
- * ${database.OverrideComment}\r
- * If the condition-key of the other is same as this one, returns true.\r
- * \r
- * @param other Other entity. (Nullable)\r
- * @return Comparing result. If other is null, returns false.\r
- */\r
- public boolean equals(Object other) {\r
- if (other instanceof ${myClassName}) {\r
- if (this.getConditionKey().equals(((${myClassName})other).getConditionKey())) {\r
- return true;\r
- }\r
- }\r
- return false;\r
- }\r
-\r
- /**\r
- * ${database.OverrideComment}\r
- * \r
- * @return View-string of condition key information.\r
- */\r
- public String toString() {\r
- return "${myClassName}: " + getConditionKey() + " " + getOperand() + " wild-card=[" + getWildCard() + "]";\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCKey};\r
-\r
-#set ($myClassName = "${glConditionKeyName}Equal")\r
-\r
-import org.apache.commons.logging.Log;\r
-import org.apache.commons.logging.LogFactory;\r
-\r
-import ${glPackageBaseCommonCOption}.${glConditionOptionInterfaceName};\r
-import ${glPackageBaseCommonCValue}.${glConditionValueName};\r
-\r
-/**\r
- * The condition-key of equal.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} extends ${glConditionKeyName} {\r
-\r
- /** Log-instance. */\r
- private static final Log _log = LogFactory.getLog(${myClassName}.class);\r
-\r
- /**\r
- * Constructor.\r
- */\r
- protected ${myClassName}() {\r
- _conditionKey = "equal";\r
- _operand = "=";\r
- }\r
-\r
- /**\r
- * Is valid registration?\r
- * \r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param callerName Caller name. (NotNull)\r
- * @return Determination.\r
- */\r
- public boolean isValidRegistration(${glConditionValueName} conditionValue, Object value, String callerName) {\r
- if (value == null) {\r
- return false;\r
- }\r
- if (conditionValue.hasEqual()) {\r
- if (conditionValue.equalEqual(value)) {\r
- _log.debug("The value has already registered at " + callerName + ": value=" + value);\r
- return false;\r
- } else {\r
- conditionValue.overrideEqual(value);\r
- return false;\r
- }\r
- }\r
- return true;\r
- }\r
-\r
- /**\r
- * This method implements super#doAddWhereClause().\r
- * \r
- * @param conditionList Condition list. (NotNull)\r
- * @param columnName Column name. (NotNull)\r
- * @param value Condition value. (NotNull)\r
- */\r
- protected void doAddWhereClause(java.util.List<String> conditionList, String columnName, ${glConditionValueName} value) {\r
- if (value.getEqual() == null) {\r
- return;\r
- }\r
- conditionList.add(buildBindClause(columnName, value.getEqualLocation()));\r
- }\r
-\r
- /**\r
- * This method implements super#doAddWhereClause().\r
- * \r
- * @param conditionList Condition list. (NotNull)\r
- * @param columnName Column name. (NotNull)\r
- * @param value Condition value. (NotNull)\r
- * @param option Condition option. (NotNull)\r
- */\r
- protected void doAddWhereClause(java.util.List<String> conditionList, String columnName, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doAddWhereClause with condition-option is unsupported!!!");\r
- }\r
-\r
- /**\r
- * This method implements super#doSetupConditionValue().\r
- * \r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param location Location. (NotNull)\r
- */\r
- protected void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location) {\r
- conditionValue.setEqual(value).setEqualLocation(location);\r
- }\r
-\r
- /**\r
- * This method implements super#doSetupConditionValue().\r
- * \r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param location Location. (NotNull)\r
- * @param option Condition option. (NotNull)\r
- */\r
- protected void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doSetupConditionValue with condition-option is unsupported!!!");\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCKey};\r
-\r
-#set ($myClassName = "${glConditionKeyName}GreaterEqual")\r
-\r
-import org.apache.commons.logging.Log;\r
-import org.apache.commons.logging.LogFactory;\r
-\r
-import ${glPackageBaseCommonCOption}.${glConditionOptionInterfaceName};\r
-import ${glPackageBaseCommonCValue}.${glConditionValueName};\r
-\r
-/**\r
- * The condition-key of greaterEqual.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} extends ${glConditionKeyName} {\r
-\r
- /** Log-instance. */\r
- private static final Log _log = LogFactory.getLog(${myClassName}.class);\r
-\r
- /**\r
- * Constructor.\r
- */\r
- protected ${myClassName}() {\r
- _conditionKey = "greaterEqual";\r
- _operand = ">=";\r
- }\r
-\r
- /**\r
- * Is valid registration?\r
- * \r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param callerName Caller name. (NotNull)\r
- * @return Determination.\r
- */\r
- public boolean isValidRegistration(${glConditionValueName} conditionValue, Object value, String callerName) {\r
- if (value == null) {\r
- return false;\r
- }\r
- if (conditionValue.hasGreaterEqual()) {\r
- if (conditionValue.equalGreaterEqual(value)) {\r
- _log.debug("The value has already registered at " + callerName + ": value=" + value);\r
- return false;\r
- } else {\r
- conditionValue.overrideGreaterEqual(value);\r
- return false;\r
- }\r
- }\r
- return true;\r
- }\r
-\r
- /**\r
- * This method implements super#doAddWhereClause().\r
- * \r
- * @param conditionList Condition list. (NotNull)\r
- * @param columnName Column name. (NotNull)\r
- * @param value Condition value. (NotNull)\r
- */\r
- protected void doAddWhereClause(java.util.List${database.filterGenericsString('String')} conditionList, String columnName, ${glConditionValueName} value) {\r
- if (value.getGreaterEqual() == null) {\r
- return;\r
- }\r
- conditionList.add(buildBindClause(columnName, value.getGreaterEqualLocation()));\r
- }\r
-\r
- /**\r
- * This method implements super#doAddWhereClause().\r
- * \r
- * @param conditionList Condition list. (NotNull)\r
- * @param columnName Column name. (NotNull)\r
- * @param value Condition value. (NotNull)\r
- * @param option Condition option. (NotNull)\r
- */\r
- protected void doAddWhereClause(java.util.List${database.filterGenericsString('String')} conditionList, String columnName, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doAddWhereClause that has ConditionOption is unsupported!!!");\r
- }\r
-\r
- /**\r
- * This method implements super#doSetupConditionValue().\r
- * \r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param location Location. (NotNull)\r
- */\r
- protected void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location) {\r
- conditionValue.setGreaterEqual(value).setGreaterEqualLocation(location);\r
- }\r
-\r
- /**\r
- * This method implements super#doSetupConditionValue().\r
- * \r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param location Location. (NotNull)\r
- * @param option Condition option. (NotNull)\r
- */\r
- protected void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doSetupConditionValue with condition-option is unsupported!!!");\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCKey};\r
-\r
-#set ($myClassName = "${glConditionKeyName}GreaterThan")\r
-\r
-import org.apache.commons.logging.Log;\r
-import org.apache.commons.logging.LogFactory;\r
-\r
-import ${glPackageBaseCommonCOption}.${glConditionOptionInterfaceName};\r
-import ${glPackageBaseCommonCValue}.${glConditionValueName};\r
-\r
-/**\r
- * The condition-key of greaterThan.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} extends ${glConditionKeyName} {\r
-\r
- /** Log-instance. */\r
- private static final Log _log = LogFactory.getLog(${myClassName}.class);\r
-\r
- /**\r
- * Constructor.\r
- */\r
- protected ${myClassName}() {\r
- _conditionKey = "greaterThan";\r
- _operand = ">";\r
- }\r
-\r
- /**\r
- * Is valid registration?\r
- * \r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param callerName Caller name. (NotNull)\r
- * @return Determination.\r
- */\r
- public boolean isValidRegistration(${glConditionValueName} conditionValue, Object value, String callerName) {\r
- if (value == null) {\r
- return false;\r
- }\r
- if (conditionValue.hasGreaterThan()) {\r
- if (conditionValue.equalGreaterThan(value)) {\r
- _log.debug("The value has already registered at " + callerName + ": value=" + value);\r
- return false;\r
- } else {\r
- conditionValue.overrideGreaterThan(value);\r
- return false;\r
- }\r
- }\r
- return true;\r
- }\r
-\r
- /**\r
- * This method implements super#doAddWhereClause().\r
- * \r
- * @param conditionList Condition list. (NotNull)\r
- * @param columnName Column name. (NotNull)\r
- * @param value Condition value. (NotNull)\r
- */\r
- protected void doAddWhereClause(java.util.List${database.filterGenericsString('String')} conditionList, String columnName, ${glConditionValueName} value) {\r
- if (value.getGreaterThan() == null) {\r
- return;\r
- }\r
- conditionList.add(buildBindClause(columnName, value.getGreaterThanLocation()));\r
- }\r
-\r
- /**\r
- * This method implements super#doAddWhereClause().\r
- * \r
- * @param conditionList Condition list. (NotNull)\r
- * @param columnName Column name. (NotNull)\r
- * @param value Condition value. (NotNull)\r
- * @param option Condition option. (NotNull)\r
- */\r
- protected void doAddWhereClause(java.util.List${database.filterGenericsString('String')} conditionList, String columnName, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doAddWhereClause that has ConditionOption is unsupported!!!");\r
- }\r
-\r
- /**\r
- * This method implements super#doSetupConditionValue().\r
- * \r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param location Location. (NotNull)\r
- */\r
- protected void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location) {\r
- conditionValue.setGreaterThan(value).setGreaterThanLocation(location);\r
- }\r
-\r
- /**\r
- * This method implements super#doSetupConditionValue().\r
- * \r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param location Location. (NotNull)\r
- * @param option Condition option. (NotNull)\r
- */\r
- protected void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doSetupConditionValue with condition-option is unsupported!!!");\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCKey};\r
-\r
-#set ($myClassName = "${glConditionKeyName}InScope")\r
-\r
-import org.apache.commons.logging.Log;\r
-import org.apache.commons.logging.LogFactory;\r
-\r
-import ${glPackageBaseCommonCOption}.${glConditionOptionInterfaceName};\r
-import ${glPackageBaseCommonCOption}.${glConditionOptionInScopeName};\r
-import ${glPackageBaseCommonCValue}.${glConditionValueName};\r
-\r
-/**\r
- * The condition-key of inScope.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} extends ${glConditionKeyName} {\r
-\r
- /** Log-instance. */\r
- private static final Log _log = LogFactory.getLog(${myClassName}.class);\r
-\r
- /**\r
- * Constructor.\r
- */\r
- protected ${myClassName}() {\r
- _conditionKey = "inScope";\r
- _operand = "in";\r
- }\r
-\r
- /**\r
- * Is valid registration?\r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param callerName Caller name. (NotNull)\r
- * @return Determination.\r
- */\r
- public boolean isValidRegistration(${glConditionValueName} conditionValue, Object value, String callerName) {\r
- if (value == null) {\r
- return false;\r
- }\r
- if (value instanceof java.util.List && ((java.util.List<?>)value).isEmpty()) {\r
- return false;\r
- }\r
- if (value instanceof java.util.List) {\r
- if (conditionValue.hasInScope()) {\r
- if (conditionValue.equalInScope(((java.util.List<?>)value))) {\r
- _log.debug("The value has already registered at " + callerName + ": value=" + value);\r
- return false;\r
- } else {\r
- conditionValue.overrideInScope(((java.util.List<?>)value));\r
- return false;\r
- }\r
- }\r
- }\r
- return true;\r
- }\r
-\r
- /**\r
- * This method implements super#doAddWhereClause().\r
- * @param conditionList Condition list. (NotNull)\r
- * @param columnName Column name. (NotNull)\r
- * @param value Condition value. (NotNull)\r
- */\r
- protected void doAddWhereClause(java.util.List<String> conditionList, String columnName, ${glConditionValueName} value) {\r
- if (value.getInScope() == null) {\r
- return;\r
- }\r
- conditionList.add(buildBindClause(columnName, value.getInScopeLocation(), "('a1', 'a2')"));\r
- }\r
-\r
- /**\r
- * This method implements super#doAddWhereClause().\r
- * @param conditionList Condition list. (NotNull)\r
- * @param columnName Column name. (NotNull)\r
- * @param value Condition value. (NotNull)\r
- * @param option Condition option. (NotNull)\r
- */\r
- protected void doAddWhereClause(java.util.List<String> conditionList, String columnName, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option) {\r
- if (option == null) {\r
- String msg = "The argument[option] should not be null: columnName=" + columnName + " value=" + value;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (!(option instanceof ${glConditionOptionInScopeName})) {\r
- String msg = "The argument[option] should be ${glConditionOptionInScopeName}: columnName=" + columnName + " value=" + value;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- conditionList.add(buildBindClause(columnName, value.getInScopeLocation(), "('a1', 'a2')"));\r
- }\r
-\r
- /**\r
- * This method implements super#doSetupConditionValue().\r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param location Location. (NotNull)\r
- */\r
- protected void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location) {\r
- conditionValue.setInScope((java.util.List<?>)value).setInScopeLocation(location);\r
- }\r
-\r
- /**\r
- * This method implements super#doSetupConditionValue().\r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param location Location. (NotNull)\r
- * @param option Condition option. (NotNull)\r
- */\r
- protected void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location, ${glConditionOptionInterfaceName} option) {\r
- conditionValue.setInScope((java.util.List<?>)value, (${glConditionOptionInScopeName})option).setInScopeLocation(location);\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCKey};\r
-\r
-#set ($myClassName = "${glConditionKeyName}IsNotNull")\r
-\r
-import org.apache.commons.logging.Log;\r
-import org.apache.commons.logging.LogFactory;\r
-\r
-import ${glPackageBaseCommonCOption}.${glConditionOptionInterfaceName};\r
-import ${glPackageBaseCommonCValue}.${glConditionValueName};\r
-\r
-/**\r
- * The condition-key of isNotNull.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} extends ${glConditionKeyName} {\r
-\r
- /** Log-instance. */\r
- private static final Log _log = LogFactory.getLog(${myClassName}.class);\r
-\r
- /**\r
- * Constructor.\r
- */\r
- protected ${myClassName}() {\r
- _conditionKey = "isNotNull";\r
- _operand = "is not null";\r
- }\r
-\r
- /**\r
- * Is valid registration?\r
- * \r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param callerName Caller name. (NotNull)\r
- * @return Determination.\r
- */\r
- public boolean isValidRegistration(${glConditionValueName} conditionValue, Object value, String callerName) {\r
- if (conditionValue.hasIsNotNull()) {\r
- _log.debug("The value has already registered at " + callerName);\r
- return false;\r
- }\r
- return true;\r
- }\r
-\r
- /**\r
- * This method implements super#doAddWhereClause().\r
- * \r
- * @param conditionList Condition list. (NotNull)\r
- * @param columnName Column name. (NotNull)\r
- * @param value Condition value. (NotNull)\r
- */\r
- protected void doAddWhereClause(java.util.List${database.filterGenericsString('String')} conditionList, String columnName, ${glConditionValueName} value) {\r
- if (value.getIsNotNull() == null) {\r
- return;\r
- }\r
- conditionList.add(buildClauseWithoutValue(columnName));\r
- }\r
-\r
- /**\r
- * This method implements super#doAddWhereClause().\r
- * \r
- * @param conditionList Condition list. (NotNull)\r
- * @param columnName Column name. (NotNull)\r
- * @param value Condition value. (NotNull)\r
- * @param option Condition option. (NotNull)\r
- */\r
- protected void doAddWhereClause(java.util.List${database.filterGenericsString('String')} conditionList, String columnName, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doAddWhereClause that has ConditionOption is unsupported!!!");\r
- }\r
-\r
- /**\r
- * This method implements super#doSetupConditionValue().\r
- * \r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param location Location. (NotNull)\r
- */\r
- protected void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location) {\r
- conditionValue.setIsNotNull(DUMMY_OBJECT).setIsNotNullLocation(location);\r
- }\r
-\r
- /**\r
- * This method implements super#doSetupConditionValue().\r
- * \r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param location Location. (NotNull)\r
- * @param option Condition option. (NotNull)\r
- */\r
- protected void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doSetupConditionValue with condition-option is unsupported!!!");\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCKey};\r
-\r
-#set ($myClassName = "${glConditionKeyName}IsNull")\r
-\r
-import org.apache.commons.logging.Log;\r
-import org.apache.commons.logging.LogFactory;\r
-\r
-import ${glPackageBaseCommonCOption}.${glConditionOptionInterfaceName};\r
-import ${glPackageBaseCommonCValue}.${glConditionValueName};\r
-\r
-/**\r
- * The condition-key of isNull.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} extends ${glConditionKeyName} {\r
-\r
- /** Log-instance. */\r
- private static final Log _log = LogFactory.getLog(${myClassName}.class);\r
-\r
- /**\r
- * Constructor.\r
- */\r
- protected ${myClassName}() {\r
- _conditionKey = "isNull";\r
- _operand = "is null";\r
- }\r
-\r
- /**\r
- * Is valid registration?\r
- * \r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param callerName Caller name. (NotNull)\r
- * @return Determination.\r
- */\r
- public boolean isValidRegistration(${glConditionValueName} conditionValue, Object value, String callerName) {\r
- if (conditionValue.hasIsNull()) {\r
- _log.debug("The value has already registered at " + callerName);\r
- return false;\r
- }\r
- return true;\r
- }\r
-\r
- /**\r
- * This method implements super#doAddWhereClause().\r
- * \r
- * @param conditionList Condition list. (NotNull)\r
- * @param columnName Column name. (NotNull)\r
- * @param value Condition value. (NotNull)\r
- */\r
- protected void doAddWhereClause(java.util.List${database.filterGenericsString('String')} conditionList, String columnName, ${glConditionValueName} value) {\r
- if (value.getIsNull() == null) {\r
- return;\r
- }\r
- conditionList.add(buildClauseWithoutValue(columnName));\r
- }\r
-\r
- /**\r
- * This method implements super#doAddWhereClause().\r
- * \r
- * @param conditionList Condition list. (NotNull)\r
- * @param columnName Column name. (NotNull)\r
- * @param value Condition value. (NotNull)\r
- * @param option Condition option. (NotNull)\r
- */\r
- protected void doAddWhereClause(java.util.List${database.filterGenericsString('String')} conditionList, String columnName, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doAddWhereClause that has ConditionOption is unsupported!!!");\r
- }\r
-\r
- /**\r
- * This method implements super#doSetupConditionValue().\r
- * \r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param location Location. (NotNull)\r
- */\r
- protected void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location) {\r
- conditionValue.setIsNull(DUMMY_OBJECT).setIsNullLocation(location);\r
- }\r
-\r
- /**\r
- * This method implements super#doSetupConditionValue().\r
- * \r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param location Location. (NotNull)\r
- * @param option Condition option. (NotNull)\r
- */\r
- protected void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doSetupConditionValue with condition-option is unsupported!!!");\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCKey};\r
-\r
-#set ($myClassName = "${glConditionKeyName}LessEqual")\r
-\r
-import org.apache.commons.logging.Log;\r
-import org.apache.commons.logging.LogFactory;\r
-\r
-import ${glPackageBaseCommonCOption}.${glConditionOptionInterfaceName};\r
-import ${glPackageBaseCommonCValue}.${glConditionValueName};\r
-\r
-/**\r
- * The condition-key of lessEqual.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} extends ${glConditionKeyName} {\r
-\r
- /** Log-instance. */\r
- private static final Log _log = LogFactory.getLog(${myClassName}.class);\r
-\r
- /**\r
- * Constructor.\r
- */\r
- protected ${myClassName}() {\r
- _conditionKey = "lessEqual";\r
- _operand = "<=";\r
- }\r
-\r
- /**\r
- * Is valid registration?\r
- * \r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param callerName Caller name. (NotNull)\r
- * @return Determination.\r
- */\r
- public boolean isValidRegistration(${glConditionValueName} conditionValue, Object value, String callerName) {\r
- if (value == null) {\r
- return false;\r
- }\r
- if (conditionValue.hasLessEqual()) {\r
- if (conditionValue.equalLessEqual(value)) {\r
- _log.debug("The value has already registered at " + callerName + ": value=" + value);\r
- return false;\r
- } else {\r
- conditionValue.overrideLessEqual(value);\r
- return false;\r
- }\r
- }\r
- return true;\r
- }\r
-\r
- /**\r
- * This method implements super#doAddWhereClause().\r
- * \r
- * @param conditionList Condition list. (NotNull)\r
- * @param columnName Column name. (NotNull)\r
- * @param value Condition value. (NotNull)\r
- */\r
- protected void doAddWhereClause(java.util.List${database.filterGenericsString('String')} conditionList, String columnName, ${glConditionValueName} value) {\r
- if (value.getLessEqual() == null) {\r
- return;\r
- }\r
- conditionList.add(buildBindClause(columnName, value.getLessEqualLocation()));\r
- }\r
-\r
- /**\r
- * This method implements super#doAddWhereClause().\r
- * \r
- * @param conditionList Condition list. (NotNull)\r
- * @param columnName Column name. (NotNull)\r
- * @param value Condition value. (NotNull)\r
- * @param option Condition option. (NotNull)\r
- */\r
- protected void doAddWhereClause(java.util.List${database.filterGenericsString('String')} conditionList, String columnName, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doAddWhereClause that has ConditionOption is unsupported!!!");\r
- }\r
-\r
- /**\r
- * This method implements super#doSetupConditionValue().\r
- * \r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param location Location. (NotNull)\r
- */\r
- protected void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location) {\r
- conditionValue.setLessEqual(value).setLessEqualLocation(location);\r
- }\r
-\r
- /**\r
- * This method implements super#doSetupConditionValue().\r
- * \r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param location Location. (NotNull)\r
- * @param option Condition option. (NotNull)\r
- */\r
- protected void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doSetupConditionValue with condition-option is unsupported!!!");\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCKey};\r
-\r
-#set ($myClassName = "${glConditionKeyName}LessThan")\r
-\r
-import org.apache.commons.logging.Log;\r
-import org.apache.commons.logging.LogFactory;\r
-\r
-import ${glPackageBaseCommonCOption}.${glConditionOptionInterfaceName};\r
-import ${glPackageBaseCommonCValue}.${glConditionValueName};\r
-\r
-/**\r
- * The condition-key of lessThan.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} extends ${glConditionKeyName} {\r
-\r
- /** Log-instance. */\r
- private static final Log _log = LogFactory.getLog(${myClassName}.class);\r
-\r
- /**\r
- * Constructor.\r
- */\r
- protected ${myClassName}() {\r
- _conditionKey = "lessThan";\r
- _operand = "<";\r
- }\r
-\r
- /**\r
- * Is valid registration?\r
- * \r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param callerName Caller name. (NotNull)\r
- * @return Determination.\r
- */\r
- public boolean isValidRegistration(${glConditionValueName} conditionValue, Object value, String callerName) {\r
- if (value == null) {\r
- return false;\r
- }\r
- if (conditionValue.hasLessThan()) {\r
- if (conditionValue.equalLessThan(value)) {\r
- _log.debug("The value has already registered at " + callerName + ": value=" + value);\r
- return false;\r
- } else {\r
- conditionValue.overrideLessThan(value);\r
- return false;\r
- }\r
- }\r
- return true;\r
- }\r
-\r
- /**\r
- * This method implements super#doAddWhereClause().\r
- * \r
- * @param conditionList Condition list. (NotNull)\r
- * @param columnName Column name. (NotNull)\r
- * @param value Condition value. (NotNull)\r
- */\r
- protected void doAddWhereClause(java.util.List${database.filterGenericsString('String')} conditionList, String columnName, ${glConditionValueName} value) {\r
- if (value.getLessThan() == null) {\r
- return;\r
- }\r
- conditionList.add(buildBindClause(columnName, value.getLessThanLocation()));\r
- }\r
-\r
- /**\r
- * This method implements super#doAddWhereClause().\r
- * \r
- * @param conditionList Condition list. (NotNull)\r
- * @param columnName Column name. (NotNull)\r
- * @param value Condition value. (NotNull)\r
- * @param option Condition option. (NotNull)\r
- */\r
- protected void doAddWhereClause(java.util.List${database.filterGenericsString('String')} conditionList, String columnName, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doAddWhereClause that has ConditionOption is unsupported!!!");\r
- }\r
-\r
- /**\r
- * This method implements super#doSetupConditionValue().\r
- * \r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param location Location. (NotNull)\r
- */\r
- protected void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location) {\r
- conditionValue.setLessThan(value).setLessThanLocation(location);\r
- }\r
-\r
- /**\r
- * This method implements super#doSetupConditionValue().\r
- * \r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param location Location. (NotNull)\r
- * @param option Condition option. (NotNull)\r
- */\r
- protected void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doSetupConditionValue with condition-option is unsupported!!!");\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCKey};\r
-\r
-#set ($myClassName = "${glConditionKeyName}LikeSearch")\r
-import java.util.List;\r
-\r
-import ${glPackageBaseCommonCOption}.${glConditionOptionInterfaceName};\r
-import ${glPackageBaseCommonCOption}.${glConditionOptionLikeSearchName};\r
-import ${glPackageBaseCommonCValue}.${glConditionValueName};\r
-\r
-/**\r
- * The condition-key of likeSearch.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} extends ${glConditionKeyName} {\r
-\r
- /**\r
- * Constructor.\r
- */\r
- protected ${myClassName}() {\r
- _conditionKey = "likeSearch";\r
- _operand = "like";\r
- }\r
-\r
- /**\r
- * Is valid registration?\r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param callerName Caller name. (NotNull)\r
- * @return Determination.\r
- */\r
- public boolean isValidRegistration(${glConditionValueName} conditionValue, Object value, String callerName) {\r
- if (value == null) {\r
- return false;\r
- }\r
- return true;\r
- }\r
-\r
- /**\r
- * This method implements super#doAddWhereClause().\r
- * @param conditionList Condition list. (NotNull)\r
- * @param columnName Column name. (NotNull)\r
- * @param value Condition value. (NotNull)\r
- */\r
- protected void doAddWhereClause(List<String> conditionList, String columnName, ${glConditionValueName} value) {\r
- throw new UnsupportedOperationException("doAddWhereClause without condition-option is unsupported!!!");\r
- }\r
-\r
- /**\r
- * This method implements super#doAddWhereClause().\r
- * @param conditionList Condition list. (NotNull)\r
- * @param columnName Column name. (NotNull)\r
- * @param value Condition value. (NotNull)\r
- * @param option Condition option. (NotNull)\r
- */\r
- protected void doAddWhereClause(List<String> conditionList, String columnName, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option) {\r
- if (option == null) {\r
- String msg = "The argument[option] should not be null: columnName=" + columnName + " value=" + value;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (!(option instanceof ${glConditionOptionLikeSearchName})) {\r
- String msg = "The argument[option] should be ${glConditionOptionLikeSearchName}: columnName=" + columnName + " value=" + value;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- final ${glConditionOptionLikeSearchName} myOption = (${glConditionOptionLikeSearchName})option;\r
- conditionList.add(buildBindClauseWithRearOption(columnName, value.getLikeSearchLocation(), myOption.getRearOption()));\r
- }\r
-\r
- /**\r
- * This method implements super#doSetupConditionValue().\r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param location Location. (NotNull)\r
- */\r
- protected void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location) {\r
- throw new UnsupportedOperationException("doSetupConditionValue without condition-option is unsupported!!!");\r
- }\r
-\r
- /**\r
- * This method implements super#doSetupConditionValue().\r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param location Location. (NotNull)\r
- * @param option Condition option. (NotNull)\r
- */\r
- protected void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location, ${glConditionOptionInterfaceName} option) {\r
- conditionValue.setLikeSearch((String)value, (${glConditionOptionLikeSearchName})option).setLikeSearchLocation(location);\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCKey};\r
-\r
-#set ($myClassName = "${glConditionKeyName}NotEqual")\r
-\r
-import org.apache.commons.logging.Log;\r
-import org.apache.commons.logging.LogFactory;\r
-\r
-import ${glPackageBaseCommonCOption}.${glConditionOptionInterfaceName};\r
-import ${glPackageBaseCommonCValue}.${glConditionValueName};\r
-\r
-/**\r
- * The condition-key of notEqual.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} extends ${glConditionKeyName} {\r
-\r
- /** Log-instance. */\r
- private static final Log _log = LogFactory.getLog(${myClassName}.class);\r
-\r
- /**\r
- * Constructor.\r
- */\r
- protected ${myClassName}() {\r
- _conditionKey = "notEqual";\r
- _operand = "!=";\r
- }\r
-\r
- /**\r
- * Is valid registration?\r
- * \r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param callerName Caller name. (NotNull)\r
- * @return Determination.\r
- */\r
- public boolean isValidRegistration(${glConditionValueName} conditionValue, Object value, String callerName) {\r
- if (value == null) {\r
- return false;\r
- }\r
- if (conditionValue.hasNotEqual()) {\r
- if (conditionValue.equalNotEqual(value)) {\r
- _log.debug("The value has already registered at " + callerName + ": value=" + value);\r
- return false;\r
- } else {\r
- conditionValue.overrideNotEqual(value);\r
- return false;\r
- }\r
- }\r
- return true;\r
- }\r
-\r
- /**\r
- * This method implements super#doAddWhereClause().\r
- * \r
- * @param conditionList Condition list. (NotNull)\r
- * @param columnName Column name. (NotNull)\r
- * @param value Condition value. (NotNull)\r
- */\r
- protected void doAddWhereClause(java.util.List${database.filterGenericsString('String')} conditionList, String columnName, ${glConditionValueName} value) {\r
- if (value.getNotEqual() == null) {\r
- return;\r
- }\r
- conditionList.add(buildBindClause(columnName, value.getNotEqualLocation()));\r
- }\r
-\r
- /**\r
- * This method implements super#doAddWhereClause().\r
- * \r
- * @param conditionList Condition list. (NotNull)\r
- * @param columnName Column name. (NotNull)\r
- * @param value Condition value. (NotNull)\r
- * @param option Condition option. (NotNull)\r
- */\r
- protected void doAddWhereClause(java.util.List${database.filterGenericsString('String')} conditionList, String columnName, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doAddWhereClause with condition-option is unsupported!!!");\r
- }\r
-\r
- /**\r
- * This method implements super#doSetupConditionValue().\r
- * \r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param location Location. (NotNull)\r
- */\r
- protected void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location) {\r
- conditionValue.setNotEqual(value).setNotEqualLocation(location);\r
- }\r
-\r
- /**\r
- * This method implements super#doSetupConditionValue().\r
- * \r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param location Location. (NotNull)\r
- * @param option Condition option. (NotNull)\r
- */\r
- protected void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doSetupConditionValue with condition-option is unsupported!!!");\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCKey};\r
-\r
-#set ($myClassName = "${glConditionKeyName}NotInScope")\r
-\r
-import org.apache.commons.logging.Log;\r
-import org.apache.commons.logging.LogFactory;\r
-\r
-import ${glPackageBaseCommonCOption}.${glConditionOptionInterfaceName};\r
-import ${glPackageBaseCommonCValue}.${glConditionValueName};\r
-\r
-/**\r
- * The condition-key of notInScope.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} extends ${glConditionKeyName} {\r
-\r
- /** Log-instance. */\r
- private static final Log _log = LogFactory.getLog(${myClassName}.class);\r
-\r
- /**\r
- * Constructor.\r
- */\r
- protected ${myClassName}() {\r
- _conditionKey = "notInScope";\r
- _operand = "not in";\r
- }\r
-\r
- /**\r
- * Is valid registration?\r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param callerName Caller name. (NotNull)\r
- * @return Determination.\r
- */\r
- public boolean isValidRegistration(${glConditionValueName} conditionValue, Object value, String callerName) {\r
- if (value == null) {\r
- return false;\r
- }\r
- if (value instanceof java.util.List && ((java.util.List<?>)value).isEmpty()) {\r
- return false;\r
- }\r
- if (value instanceof java.util.List) {\r
- if (conditionValue.hasNotInScope()) {\r
- if (conditionValue.equalNotInScope(((java.util.List<?>)value))) {\r
- _log.debug("The value has already registered at " + callerName + ": value=" + value);\r
- return false;\r
- } else {\r
- conditionValue.overrideNotInScope(((java.util.List<?>)value));\r
- return false;\r
- }\r
- }\r
- }\r
- return true;\r
- }\r
-\r
- /**\r
- * This method implements super#doAddWhereClause().\r
- * \r
- * @param conditionList Condition list. (NotNull)\r
- * @param columnName Column name. (NotNull)\r
- * @param value Condition value. (NotNull)\r
- */\r
- protected void doAddWhereClause(java.util.List<String> conditionList, String columnName, ${glConditionValueName} value) {\r
- if (value.getNotInScope() == null) {\r
- return;\r
- }\r
- conditionList.add(buildBindClause(columnName, value.getNotInScopeLocation(), "('a1', 'a2')"));\r
- }\r
-\r
- /**\r
- * This method implements super#doAddWhereClause().\r
- * @param conditionList Condition list. (NotNull)\r
- * @param columnName Column name. (NotNull)\r
- * @param value Condition value. (NotNull)\r
- * @param option Condition option. (NotNull)\r
- */\r
- protected void doAddWhereClause(java.util.List<String> conditionList, String columnName, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doAddWhereClause that has ConditionOption is unsupported!!!");\r
- }\r
-\r
- /**\r
- * This method implements super#doSetupConditionValue().\r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param location Location. (NotNull)\r
- */\r
- protected void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location) {\r
- conditionValue.setNotInScope((java.util.List<?>)value).setNotInScopeLocation(location);\r
- }\r
-\r
- /**\r
- * This method implements super#doSetupConditionValue().\r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param location Location. (NotNull)\r
- * @param option Condition option. (NotNull)\r
- */\r
- protected void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doSetupConditionValue with condition-option is unsupported!!!");\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCKey};\r
-\r
-#set ($myClassName = "${glConditionKeyName}PrefixSearch")\r
-\r
-import org.apache.commons.logging.Log;\r
-import org.apache.commons.logging.LogFactory;\r
-\r
-import ${glPackageBaseCommonCOption}.${glConditionOptionInterfaceName};\r
-import ${glPackageBaseCommonCValue}.${glConditionValueName};\r
-\r
-/**\r
- * The condition-key of prefixSearch.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} extends ${glConditionKeyName} {\r
-\r
- /** Log-instance. */\r
- private static final Log _log = LogFactory.getLog(${myClassName}.class);\r
-\r
- /**\r
- * Constructor.\r
- */\r
- protected ${myClassName}() {\r
- _conditionKey = "prefixSearch";\r
- _operand = "like";\r
- }\r
-\r
- /**\r
- * Is valid registration?\r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param callerName Caller name. (NotNull)\r
- * @return Determination.\r
- */\r
- public boolean isValidRegistration(${glConditionValueName} conditionValue, Object value, String callerName) {\r
- if (value == null) {\r
- return false;\r
- }\r
- if (conditionValue.hasPrefixSearch()) {\r
- if (conditionValue.equalPrefixSearch(value + getWildCard())) {\r
- _log.debug("The value has already registered at " + callerName + ": value=" + value);\r
- return false;\r
- } else {\r
- conditionValue.overridePrefixSearch(value);\r
- return false;\r
- }\r
- }\r
- return true;\r
- }\r
-\r
- /**\r
- * This method implements super#doAddWhereClause().\r
- * @param conditionList Condition list. (NotNull)\r
- * @param columnName Column name. (NotNull)\r
- * @param value Condition value. (NotNull)\r
- */\r
- protected void doAddWhereClause(java.util.List${database.filterGenericsString('String')} conditionList, String columnName, ${glConditionValueName} value) {\r
- if (value.getPrefixSearch() == null) {\r
- return;\r
- }\r
- conditionList.add(buildBindClause(columnName, value.getPrefixSearchLocation()));\r
- }\r
-\r
- /**\r
- * This method implements super#doAddWhereClause().\r
- * @param conditionList Condition list. (NotNull)\r
- * @param columnName Column name. (NotNull)\r
- * @param value Condition value. (NotNull)\r
- * @param option Condition option. (NotNull)\r
- */\r
- protected void doAddWhereClause(java.util.List${database.filterGenericsString('String')} conditionList, String columnName, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doAddWhereClause that has ConditionOption is unsupported!!!");\r
- }\r
-\r
- /**\r
- * This method implements super#doSetupConditionValue().\r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param location Location. (NotNull)\r
- */\r
- protected void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location) {\r
- conditionValue.setPrefixSearch((value != null ? value + getWildCard() : null)).setPrefixSearchLocation(location);\r
- }\r
-\r
- /**\r
- * This method implements super#doSetupConditionValue().\r
- * @param conditionValue Condition value. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @param location Location. (NotNull)\r
- * @param option Condition option. (NotNull)\r
- */\r
- protected void doSetupConditionValue(${glConditionValueName} conditionValue, Object value, String location, ${glConditionOptionInterfaceName} option) {\r
- throw new UnsupportedOperationException("doSetupConditionValue with condition-option is unsupported!!!");\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCOption};\r
-\r
-#set ($myClassName = "${glConditionOptionInterfaceName}")\r
-\r
-/**\r
- * The interface of condition-option.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${myClassName} {\r
- public String getRearOption();\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCOption};\r
-\r
-#set ($myClassName = "${glConditionOptionDateFromToName}")\r
-\r
-/**\r
- * The option of date-from-to.\r
- * <pre>\r
- * ex) fromDate:{2007/04/10 08:24:53} toDate:{2007/04/16 14:36:29}\r
- *\r
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \r
- * new ${myClassName}(); \r
- * --> column >= '2007/04/10 00:00:00' and column < '2007/04/17 00:00:00'\r
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \r
- * \r
- * </pre>\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} extends ${glConditionOptionFromToName} {\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${myClassName}() {\r
- compareAsDate();\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCOption};\r
-\r
-#set ($myClassName = "${glConditionOptionFromToName}")\r
-\r
-/**\r
- * The option of from-to.\r
- * <pre>\r
- * ex) fromDate:{2007/04/10 08:24:53} toDate:{2007/04/16 14:36:29}\r
- *\r
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \r
- * new ${myClassName}().compareAsDate(); \r
- * --> column >= '2007/04/10 00:00:00' and column < '2007/04/17 00:00:00'\r
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \r
- *\r
- * new ${myClassName}(); \r
- * --> column >= '2007/04/10 08:24:53' and column <= '2007/04/16 14:36:29'\r
- *\r
- * new ${myClassName}().greaterThan(); \r
- * --> column > '2007/04/10 08:24:53' and column <= '2007/04/16 14:36:29'\r
- *\r
- * new ${myClassName}().lessThan(); \r
- * --> column >= '2007/04/10 08:24:53' and column < '2007/04/16 14:36:29'\r
- *\r
- * new ${myClassName}().greaterThan().lessThan(); \r
- * --> column > '2007/04/10 08:24:53' and column < '2007/04/16 14:36:29'\r
- * \r
- * </pre>\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} implements ${glConditionOptionInterfaceName} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected boolean _fromDateGreaterThan;\r
-\r
- protected boolean _toDateLessThan;\r
-\r
- protected boolean _compareAsDate;\r
-\r
- // ===================================================================================\r
- // Interface Implementation\r
- // ========================\r
- public String getRearOption() {\r
- String msg = "Thie option does not use getRearOption()!";\r
- throw new UnsupportedOperationException(msg);\r
- }\r
-\r
- // ===================================================================================\r
- // Main\r
- // ====\r
- public ${myClassName} greaterThan() {\r
- _fromDateGreaterThan = true; return this;\r
- }\r
-\r
- public ${myClassName} lessThan() {\r
- _toDateLessThan = true; return this;\r
- }\r
-\r
- /**\r
- * Compare as date.\r
- * <pre>\r
- * ex) fromDate:{2007/04/10 08:24:53} toDate:{2007/04/16 14:36:29}\r
- *\r
- * new ${myClassName}().compareAsDate();\r
- * --> column >= '2007/04/10 00:00:00' and column < '2007/04/17 00:00:00'\r
- * \r
- * This method ignore greaterThan() and lessThan().\r
- * </pre>\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} compareAsDate() {\r
- _compareAsDate = true; return this;\r
- }\r
-\r
- // ===================================================================================\r
- // Internal Main\r
- // =============\r
- public java.util.Date filterFromDate(java.util.Date fromDate) {\r
- if (fromDate == null) {\r
- return null;\r
- }\r
- if (_compareAsDate) {\r
- final java.util.Calendar cal = java.util.Calendar.getInstance();\r
- cal.setTimeInMillis(fromDate.getTime());\r
- clearCalendarHourMinuteSecondMilli(cal);\r
- final java.util.Date cloneDate = (java.util.Date) fromDate.clone();\r
- cloneDate.setTime(cal.getTimeInMillis());\r
- return cloneDate;\r
- }\r
- return fromDate;\r
- }\r
-\r
- public java.util.Date filterToDate(java.util.Date toDate) {\r
- if (toDate == null) {\r
- return null;\r
- }\r
- if (_compareAsDate) {\r
- final java.util.Calendar cal = java.util.Calendar.getInstance();\r
- cal.setTimeInMillis(toDate.getTime());\r
- clearCalendarHourMinuteSecondMilli(cal);\r
- addCalendarNextDay(cal);// Key Point!\r
- final java.util.Date cloneDate = (java.util.Date) toDate.clone();\r
- cloneDate.setTime(cal.getTimeInMillis());\r
- return cloneDate;\r
- }\r
- return toDate;\r
- }\r
-\r
- public ${glPackageBaseCommonCKey}.${glConditionKeyName} getFromDateConditionKey() {\r
- if (_compareAsDate) {\r
- return ${glPackageBaseCommonCKey}.${glConditionKeyName}.CK_GREATER_EQUAL;\r
- }\r
- if (_fromDateGreaterThan) {\r
- return ${glPackageBaseCommonCKey}.${glConditionKeyName}.CK_GREATER_THAN;// Default!\r
- } else {\r
- return ${glPackageBaseCommonCKey}.${glConditionKeyName}.CK_GREATER_EQUAL;// Default!\r
- }\r
- }\r
-\r
- public ${glPackageBaseCommonCKey}.${glConditionKeyName} getToDateConditionKey() {\r
- if (_compareAsDate) {\r
- return ${glPackageBaseCommonCKey}.${glConditionKeyName}.CK_LESS_THAN;\r
- }\r
- if (_toDateLessThan) {\r
- return ${glPackageBaseCommonCKey}.${glConditionKeyName}.CK_LESS_THAN;// Default!\r
- } else {\r
- return ${glPackageBaseCommonCKey}.${glConditionKeyName}.CK_LESS_EQUAL;// Default!\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Calendar Helper\r
- // ===============\r
- protected void addCalendarNextDay(java.util.Calendar cal) {\r
- cal.add(java.util.Calendar.DAY_OF_MONTH, 1);\r
- }\r
-\r
- protected void clearCalendarHourMinuteSecondMilli(java.util.Calendar cal) {\r
- cal.clear(java.util.Calendar.MILLISECOND);\r
- cal.clear(java.util.Calendar.SECOND);\r
- cal.clear(java.util.Calendar.MINUTE);\r
- cal.set(java.util.Calendar.HOUR_OF_DAY, cal.getActualMinimum(java.util.Calendar.HOUR_OF_DAY));\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCOption};\r
-\r
-#set ($myClassName = "${glConditionOptionInScopeName}")\r
-\r
-import ${glPackageBaseCommonCOptionPartsLocal}.${glConditionOptionPartsAgentJapaneseName};\r
-\r
-/**\r
- * The class of in-scope-option.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} extends ${glConditionOptionSimpleStringName} {\r
-\r
- // =====================================================================================\r
- // Split\r
- // =====\r
- public ${myClassName} splitBySpace() {\r
- return (${myClassName})doSplitBySpace();\r
- }\r
-\r
- public ${myClassName} splitBySpace(int splitLimitCount) {\r
- return (${myClassName})doSplitBySpace(splitLimitCount);\r
- }\r
-\r
- public ${myClassName} splitBySpaceContainsDoubleByte() {\r
- return (${myClassName})doSplitBySpaceContainsDoubleByte();\r
- }\r
-\r
- public ${myClassName} splitBySpaceContainsDoubleByte(int splitLimitCount) {\r
- return (${myClassName})doSplitBySpaceContainsDoubleByte(splitLimitCount);\r
- }\r
-\r
- public ${myClassName} splitByPipeLine() {\r
- return (${myClassName})doSplitByPipeLine();\r
- }\r
-\r
- public ${myClassName} splitByPipeLine(int splitLimitCount) {\r
- return (${myClassName})doSplitByPipeLine(splitLimitCount);\r
- }\r
-\r
- // =====================================================================================\r
- // To Upper/Lower Case\r
- // ===================\r
- public ${myClassName} toUpperCase() {\r
- return (${myClassName})doToUpperCase();\r
- }\r
-\r
- public ${myClassName} toLowerCase() {\r
- return (${myClassName})doToLowerCase();\r
- }\r
-\r
- // =====================================================================================\r
- // To Single Byte\r
- // ==============\r
- public ${myClassName} toSingleByteSpace() {\r
- return (${myClassName})doToSingleByteSpace();\r
- }\r
-\r
- public ${myClassName} toSingleByteAlphabetNumber() {\r
- return (${myClassName})doToSingleByteAlphabetNumber();\r
- }\r
-\r
- public ${myClassName} toSingleByteAlphabetNumberMark() {\r
- return (${myClassName})doToSingleByteAlphabetNumberMark();\r
- }\r
-\r
- // =====================================================================================\r
- // To Double Byte\r
- // ==============\r
-\r
- // =====================================================================================\r
- // Japanese\r
- // ========\r
- public ${glConditionOptionPartsAgentJapaneseName} localJapanese() {\r
- return doLocalJapanese();\r
- }\r
-\r
- // =====================================================================================\r
- // Real Value\r
- // ==========\r
- public java.util.List<String> generateRealValueList(java.util.List<String> valueList) {\r
- final java.util.List<String> resultList = new java.util.ArrayList<String>();\r
- for (final java.util.Iterator<String> ite = valueList.iterator(); ite.hasNext(); ) {\r
- final String value = ite.next();\r
- resultList.add(generateRealValue(value));\r
- }\r
- return resultList;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCOption};\r
-#set ($myClassName = "${glConditionOptionLikeSearchName}")\r
-\r
-import java.util.List;\r
-import java.util.ArrayList;\r
-import java.util.Iterator;\r
-\r
-import ${glPackageBaseCommonCOptionPartsLocal}.${glConditionOptionPartsAgentJapaneseName};\r
-\r
-/**\r
- * The class of like-search-option.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} extends ${glConditionOptionSimpleStringName} {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- protected static final String LIKE_PREFIX = "prefix";\r
- protected static final String LIKE_SUFFIX = "suffix";\r
- protected static final String LIKE_CONTAIN = "contain";\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected String _like;\r
- protected String _escape;\r
- protected boolean _asOrSplit;\r
- protected List<LikeAsOrCallback> _likeAsOrCallbackList;\r
-\r
- // ===================================================================================\r
- // Rear Option\r
- // ===========\r
- public String getRearOption() {\r
- if (_escape == null || _escape.trim().length() == 0) {\r
- return "";\r
- }\r
- return " escape '" + _escape + "'";\r
- }\r
-\r
- // ===================================================================================\r
- // AsOr\r
- // ====\r
- /** @deprecated */\r
- public static interface LikeAsOrCallback {\r
- public String getAdditionalTargetPropertyName();\r
- public String filterValue(String currentValue);\r
- public ${myClassName} filterOption(${myClassName} optionDeepCopyWithoutCallback);\r
- }\r
-\r
- /** @deprecated */\r
- public static abstract class DefaultLikeAsOrCallback implements LikeAsOrCallback {\r
- public String filterValue(String currentValue) {\r
- return currentValue;\r
- }\r
- public ${myClassName} filterOption(${myClassName} optionDeepCopyWithoutCallback) {\r
- return optionDeepCopyWithoutCallback;\r
- }\r
- }\r
-\r
- public boolean hasLikeAsOrCallback() {\r
- return _likeAsOrCallbackList != null && !_likeAsOrCallbackList.isEmpty();\r
- }\r
- \r
- public List<LikeAsOrCallback> getLikeAsOrCallbackList() {\r
- if (_likeAsOrCallbackList == null) {\r
- _likeAsOrCallbackList = new ArrayList<LikeAsOrCallback>();\r
- }\r
- return _likeAsOrCallbackList;\r
- }\r
-\r
- /** \r
- * @param likeAsOrCallback Callback.\r
- * @deprecated\r
- */\r
- public void addLikeAsOrCallback(LikeAsOrCallback likeAsOrCallback) {\r
- getLikeAsOrCallbackList().add(likeAsOrCallback);\r
- }\r
-\r
- public void clearLikeAsOrCallback() {\r
- getLikeAsOrCallbackList().clear();\r
- }\r
-\r
- // ===================================================================================\r
- // Like\r
- // ====\r
- public ${myClassName} likePrefix() {\r
- _like = LIKE_PREFIX;\r
- return this;\r
- }\r
- public ${myClassName} likeSuffix() {\r
- _like = LIKE_SUFFIX;\r
- return this;\r
- }\r
- public ${myClassName} likeContain() {\r
- _like = LIKE_CONTAIN;\r
- return this;\r
- }\r
-\r
- // ===================================================================================\r
- // Escape\r
- // ======\r
- public ${myClassName} escapeByPipeLine() {\r
- _escape = "|";\r
- return this;\r
- }\r
-\r
- public ${myClassName} escapeByAtMark() {\r
- _escape = "@";\r
- return this;\r
- }\r
-\r
- public ${myClassName} escapeBySlash() {\r
- _escape = "/";\r
- return this;\r
- }\r
-\r
- public ${myClassName} escapeByBackSlash() {\r
- _escape = "\\";\r
- return this;\r
- }\r
-\r
- // ===================================================================================\r
- // Split\r
- // =====\r
- public ${myClassName} splitBySpace() {\r
- return (${myClassName})doSplitBySpace();\r
- }\r
-\r
- public ${myClassName} splitBySpace(int splitLimitCount) {\r
- return (${myClassName})doSplitBySpace(splitLimitCount);\r
- }\r
-\r
- public ${myClassName} splitBySpaceContainsDoubleByte() {\r
- return (${myClassName})doSplitBySpaceContainsDoubleByte();\r
- }\r
-\r
- public ${myClassName} splitBySpaceContainsDoubleByte(int splitLimitCount) {\r
- return (${myClassName})doSplitBySpaceContainsDoubleByte(splitLimitCount);\r
- }\r
-\r
- public ${myClassName} splitByPipeLine() {\r
- return (${myClassName})doSplitByPipeLine();\r
- }\r
-\r
- public ${myClassName} splitByPipeLine(int splitLimitCount) {\r
- return (${myClassName})doSplitByPipeLine(splitLimitCount);\r
- }\r
- \r
- public ${myClassName} asOrSplit() {\r
- _asOrSplit = true;\r
- return this;\r
- }\r
- \r
- public boolean isAsOrSplit() {\r
- return _asOrSplit;\r
- }\r
-\r
- // ===================================================================================\r
- // To Upper/Lower Case\r
- // ===================\r
- public ${myClassName} toUpperCase() {\r
- return (${myClassName})doToUpperCase();\r
- }\r
-\r
- public ${myClassName} toLowerCase() {\r
- return (${myClassName})doToLowerCase();\r
- }\r
-\r
- // ===================================================================================\r
- // To Single Byte\r
- // ==============\r
- public ${myClassName} toSingleByteSpace() {\r
- return (${myClassName})doToSingleByteSpace();\r
- }\r
-\r
- public ${myClassName} toSingleByteAlphabetNumber() {\r
- return (${myClassName})doToSingleByteAlphabetNumber();\r
- }\r
-\r
- public ${myClassName} toSingleByteAlphabetNumberMark() {\r
- return (${myClassName})doToSingleByteAlphabetNumberMark();\r
- }\r
-\r
- // ===================================================================================\r
- // To Double Byte\r
- // ==============\r
-\r
- // ===================================================================================\r
- // Japanese\r
- // ========\r
- public ${glConditionOptionPartsAgentJapaneseName} localJapanese() {\r
- return doLocalJapanese();\r
- }\r
-\r
- // ===================================================================================\r
- // Real Value\r
- // ==========\r
- public String generateRealValue(String value) {\r
- value = super.generateRealValue(value);\r
-\r
- // Escape\r
- if (_escape != null && _escape.trim().length() != 0) {\r
- String tmp = replace(value, _escape, _escape + _escape);\r
- tmp = replace(tmp, "%", _escape + "%");\r
- tmp = replace(tmp, "_", _escape + "_");\r
-#if ($database.isDatabaseOracle())\r
- tmp = replace(tmp, "\uff05", _escape + "\uff05");\r
- tmp = replace(tmp, "\uff3f", _escape + "\uff3f");\r
-#end\r
- value = tmp;\r
- }\r
- final String wildCard = "${database.wildCard}";\r
- if (_like == null || _like.trim().length() == 0) {\r
- return value;\r
- } else if (_like.equals(LIKE_PREFIX)) {\r
- return value + wildCard;\r
- } else if (_like.equals(LIKE_SUFFIX)) {\r
- return wildCard + value;\r
- } else if (_like.equals(LIKE_CONTAIN)) {\r
- return wildCard + value + wildCard;\r
- } else {\r
- String msg = "The like was wrong string: " + _like;\r
- throw new IllegalStateException(msg);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // DeepCopy\r
- // ========\r
- public Object createDeepCopy() {\r
- final ${myClassName} deepCopy = (${myClassName})super.createDeepCopy();\r
- deepCopy._like = _like;\r
- deepCopy._escape = _escape;\r
- if (hasLikeAsOrCallback()) {\r
- for (Iterator<LikeAsOrCallback> ite = _likeAsOrCallbackList.iterator(); ite.hasNext(); ) {\r
- deepCopy.addLikeAsOrCallback((LikeAsOrCallback)ite.next());\r
- }\r
- }\r
- return deepCopy;\r
- }\r
-\r
- protected ${glConditionOptionSimpleStringName} newDeepCopyInstance() {\r
- return new ${myClassName}();\r
- }\r
-\r
- // ===================================================================================\r
- // Basic Override\r
- // ==============\r
- @Override\r
- public String toString() {\r
- return "like=" + _like + ", escape=" + _escape + ", split=" + isSplit() + ", asOrSplit = " + _asOrSplit; \r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCOption};\r
-\r
-#set ($myClassName = "${glConditionOptionSimpleStringName}")\r
-\r
-import ${glPackageBaseCommonCOptionParts}.${glConditionOptionPartsSplitName};\r
-import ${glPackageBaseCommonCOptionParts}.${glConditionOptionPartsToUpperLowerCaseName};\r
-import ${glPackageBaseCommonCOptionParts}.${glConditionOptionPartsToSingleByteName};\r
-import ${glPackageBaseCommonCOptionPartsLocal}.${glConditionOptionPartsAgentJapaneseName};\r
-import ${glPackageBaseCommonUtil}.${glSimpleStringUtil};\r
-\r
-/**\r
- * The class of simple-string-option.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} implements ${glConditionOptionInterfaceName} {\r
-\r
- protected ${glConditionOptionPartsSplitName} _splitOptionParts;\r
- protected ${glConditionOptionPartsToUpperLowerCaseName} _toUpperLowerCaseOptionParts;\r
- protected ${glConditionOptionPartsToSingleByteName} _toSingleByteCaseOptionParts;\r
- protected ${glConditionOptionPartsAgentJapaneseName} _japaneseOptionPartsAgent;\r
-\r
- // =====================================================================================\r
- // Rear Option\r
- // ===========\r
- public String getRearOption() {\r
- return "";\r
- }\r
-\r
- // =====================================================================================\r
- // Split\r
- // =====\r
- protected ${myClassName} doSplitBySpace() {\r
- getSplitOptionParts().splitBySpace();\r
- return this;\r
- }\r
-\r
- protected ${myClassName} doSplitBySpace(int splitLimitCount) {\r
- getSplitOptionParts().splitBySpace(splitLimitCount);\r
- return this;\r
- }\r
-\r
- protected ${myClassName} doSplitBySpaceContainsDoubleByte() {\r
- getSplitOptionParts().splitBySpaceContainsDoubleByte();\r
- return this;\r
- }\r
-\r
- protected ${myClassName} doSplitBySpaceContainsDoubleByte(int splitLimitCount) {\r
- getSplitOptionParts().splitBySpaceContainsDoubleByte(splitLimitCount);\r
- return this;\r
- }\r
-\r
- protected ${myClassName} doSplitByPipeLine() {\r
- getSplitOptionParts().splitByPipeLine();\r
- return this;\r
- }\r
-\r
- protected ${myClassName} doSplitByPipeLine(int splitLimitCount) {\r
- getSplitOptionParts().splitByPipeLine(splitLimitCount);\r
- return this;\r
- }\r
-\r
- protected ${glConditionOptionPartsSplitName} getSplitOptionParts() {\r
- if (_splitOptionParts == null) {\r
- _splitOptionParts = new ${glConditionOptionPartsSplitName}();\r
- }\r
- return _splitOptionParts;\r
- }\r
-\r
- public boolean isSplit() {\r
- return getSplitOptionParts().isSplit();\r
- }\r
-\r
- public String[] generateSplitValueArray(String value) {\r
- return getSplitOptionParts().generateSplitValueArray(value);\r
- }\r
-\r
- // =====================================================================================\r
- // To Upper/Lower Case\r
- // ===================\r
- protected ${myClassName} doToUpperCase() {\r
- getToUpperLowerCaseOptionParts().toUpperCase();\r
- return this;\r
- }\r
-\r
- protected ${myClassName} doToLowerCase() {\r
- getToUpperLowerCaseOptionParts().toLowerCase();\r
- return this;\r
- }\r
-\r
- protected ${glConditionOptionPartsToUpperLowerCaseName} getToUpperLowerCaseOptionParts() {\r
- if (_toUpperLowerCaseOptionParts == null) {\r
- _toUpperLowerCaseOptionParts = new ${glConditionOptionPartsToUpperLowerCaseName}();\r
- }\r
- return _toUpperLowerCaseOptionParts;\r
- }\r
-\r
- // =====================================================================================\r
- // To Single Byte\r
- // ==============\r
- protected ${myClassName} doToSingleByteSpace() {\r
- getToSingleByteOptionParts().toSingleByteSpace();\r
- return this;\r
- }\r
-\r
- protected ${myClassName} doToSingleByteAlphabetNumber() {\r
- getToSingleByteOptionParts().toSingleByteAlphabetNumber();\r
- return this;\r
- }\r
-\r
- protected ${myClassName} doToSingleByteAlphabetNumberMark() {\r
- getToSingleByteOptionParts().toSingleByteAlphabetNumberMark();\r
- return this;\r
- }\r
-\r
- protected ${glConditionOptionPartsToSingleByteName} getToSingleByteOptionParts() {\r
- if (_toSingleByteCaseOptionParts == null) {\r
- _toSingleByteCaseOptionParts = new ${glConditionOptionPartsToSingleByteName}();\r
- }\r
- return _toSingleByteCaseOptionParts;\r
- }\r
-\r
- // =====================================================================================\r
- // To Double Byte\r
- // ==============\r
-\r
- // =====================================================================================\r
- // Japanese\r
- // ========\r
- protected ${glConditionOptionPartsAgentJapaneseName} doLocalJapanese() {\r
- return getJapaneseOptionPartsAgent();\r
- }\r
-\r
- protected ${glConditionOptionPartsAgentJapaneseName} getJapaneseOptionPartsAgent() {\r
- if (_japaneseOptionPartsAgent == null) {\r
- _japaneseOptionPartsAgent = new ${glConditionOptionPartsAgentJapaneseName}();\r
- }\r
- return _japaneseOptionPartsAgent;\r
- }\r
-\r
- // =====================================================================================\r
- // Real Value\r
- // ==========\r
- public String generateRealValue(String value) {\r
- value = getToUpperLowerCaseOptionParts().generateRealValue(value);\r
- value = getToSingleByteOptionParts().generateRealValue(value);\r
- value = getJapaneseOptionPartsAgent().generateRealValue(value);\r
- return value;\r
- }\r
-\r
- // =====================================================================================\r
- // General Helper\r
- // ==============\r
- protected String replace(String text, String fromText, String toText) {\r
- return ${glSimpleStringUtil}.replace(text, fromText, toText);\r
- }\r
-\r
- // =====================================================================================\r
- // DeepCopy\r
- // ========\r
- public Object createDeepCopy() {\r
- final ${myClassName} deepCopy = newDeepCopyInstance();\r
- deepCopy._splitOptionParts = _splitOptionParts != null ? (${glConditionOptionPartsSplitName})_splitOptionParts.createDeepCopy() : null;\r
- deepCopy._toUpperLowerCaseOptionParts = _toUpperLowerCaseOptionParts != null ? (${glConditionOptionPartsToUpperLowerCaseName})_toUpperLowerCaseOptionParts.createDeepCopy() : null;\r
- deepCopy._toSingleByteCaseOptionParts = _toSingleByteCaseOptionParts != null ? (${glConditionOptionPartsToSingleByteName})_toSingleByteCaseOptionParts.createDeepCopy() : null;\r
- deepCopy._japaneseOptionPartsAgent = _japaneseOptionPartsAgent != null ? (${glConditionOptionPartsAgentJapaneseName})_japaneseOptionPartsAgent.createDeepCopy() : null;\r
- return deepCopy;\r
- }\r
- protected ${myClassName} newDeepCopyInstance() {\r
- return new ${myClassName}();\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCOptionParts};\r
-\r
-#set ($myClassName = "${glConditionOptionPartsSplitName}")\r
-\r
-/**\r
- * The interface of condition-option.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} {\r
-\r
- // =====================================================================================\r
- // Attribute\r
- // =========\r
- protected String _split;\r
- protected String _splitContainedDelimiter;\r
- protected int _splitLimitCount;\r
-\r
- // =====================================================================================\r
- // Main\r
- // ====\r
- public boolean isSplit() {\r
- return _split != null;\r
- }\r
-\r
- public void splitBySpace() {\r
- _split = " ";\r
- }\r
-\r
- public void splitBySpace(int splitLimitCount) {\r
- _split = " ";\r
- _splitLimitCount = splitLimitCount;\r
- }\r
-\r
- public void splitBySpaceContainsDoubleByte() {\r
- _split = " ";\r
- _splitContainedDelimiter = "\u3000";\r
- }\r
-\r
- public void splitBySpaceContainsDoubleByte(int splitLimitCount) {\r
- _split = " ";\r
- _splitContainedDelimiter = "\u3000";\r
- _splitLimitCount = splitLimitCount;\r
- }\r
-\r
- public void splitByPipeLine() {\r
- _split = "|";\r
- }\r
-\r
- public void splitByPipeLine(int splitLimitCount) {\r
- _split = "|";\r
- _splitLimitCount = splitLimitCount;\r
- }\r
-\r
- // =====================================================================================\r
- // Real Value\r
- // ==========\r
- public String[] generateSplitValueArray(String value) {\r
- if (value == null) {\r
- String msg = "The argument[value] should not be null of empty: " + value;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- value = repalceContainedDelimiterToRealDelimiter(value);\r
- final java.util.StringTokenizer st = new java.util.StringTokenizer(value, _split);\r
- final String[] tokenizedValues = new String[st.countTokens()];\r
- int count = 0;\r
- while (st.hasMoreTokens()) {\r
- tokenizedValues[count] = st.nextToken();\r
- count++;\r
- }\r
- final String[] values = removeInvalidValue(tokenizedValues);\r
- if (_splitLimitCount > 0 && values.length > _splitLimitCount) {\r
- final String[] realValues = new String[_splitLimitCount];\r
- for (int i=0; i < values.length; i++) {\r
- if (i == _splitLimitCount) {\r
- break;\r
- }\r
- realValues[i] = values[i];\r
- }\r
- return realValues;\r
- } else {\r
- return values;\r
- }\r
- \r
- }\r
-\r
- protected String repalceContainedDelimiterToRealDelimiter(String value) {\r
- if (value == null) {\r
- return value;\r
- }\r
- if (_splitContainedDelimiter == null) {\r
- return value;\r
- }\r
- if (_split == null) {\r
- return value;\r
- }\r
- return replace(value, _splitContainedDelimiter, _split);\r
- }\r
-\r
- protected String[] removeInvalidValue(String[] values) {\r
- final java.util.List<String> ls = new java.util.ArrayList<String>();\r
- for (int i = 0; i < values.length; i++) {\r
- final String value = values[i];\r
- if (value == null || value.equals("")) {// Don't trim!!!\r
- continue;\r
- }\r
- ls.add(value);\r
- }\r
- final String[] resultArray = new String[ls.size()];\r
- for (int i = 0; i < ls.size(); i++) {\r
- resultArray[i] = (String) ls.get(i);\r
- }\r
- return resultArray;\r
- }\r
-\r
- // =====================================================================================\r
- // Helper\r
- // ======\r
- protected final String replace(String text, String fromText,\r
- String toText) {\r
-\r
- if (text == null || fromText == null || toText == null) {\r
- return null;\r
- }\r
- StringBuffer buf = new StringBuffer(100);\r
- int pos = 0;\r
- int pos2 = 0;\r
- while (true) {\r
- pos = text.indexOf(fromText, pos2);\r
- if (pos == 0) {\r
- buf.append(toText);\r
- pos2 = fromText.length();\r
- } else if (pos > 0) {\r
- buf.append(text.substring(pos2, pos));\r
- buf.append(toText);\r
- pos2 = pos + fromText.length();\r
- } else {\r
- buf.append(text.substring(pos2));\r
- break;\r
- }\r
- }\r
- return buf.toString();\r
- }\r
-\r
- // =====================================================================================\r
- // DeepCopy\r
- // ========\r
- public Object createDeepCopy() {\r
- final ${myClassName} deepCopy = new ${myClassName}();\r
- deepCopy._split = _split;\r
- deepCopy._splitContainedDelimiter = _splitContainedDelimiter;\r
- deepCopy._splitLimitCount = _splitLimitCount;\r
- return deepCopy;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCOptionParts};\r
-\r
-#set ($myClassName = "${glConditionOptionPartsToSingleByteName}")\r
-\r
-import ${glPackageBaseCommonHelperCharacter}.${glGeneralCharacterName};\r
-import ${glPackageBaseCommonHelperCharacterImpl}.${glGeneralCharacterImplName};\r
-\r
-/**\r
- * The interface of condition-option.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} {\r
-\r
- // =====================================================================================\r
- // Attribute\r
- // =========\r
- protected boolean _toSingleByteSpace;\r
- protected boolean _toSingleByteAlphabetNumber;\r
- protected boolean _toSingleByteAlphabetNumberMark;\r
-\r
- private ${glGeneralCharacterName} _generalCharacter;\r
-\r
- // =====================================================================================\r
- // Main\r
- // ====\r
- public boolean isToSingleByteSpace() {\r
- return _toSingleByteSpace;\r
- }\r
- public void toSingleByteSpace() {\r
- _toSingleByteSpace = true;\r
- }\r
-\r
- public void toSingleByteAlphabetNumber() {\r
- _toSingleByteAlphabetNumber = true;\r
- }\r
-\r
- public void toSingleByteAlphabetNumberMark() {\r
- _toSingleByteAlphabetNumberMark = true;\r
- }\r
-\r
- // =====================================================================================\r
- // Real Value\r
- // ==========\r
- public String generateRealValue(String value) {\r
- if (value == null) {\r
- return value;\r
- }\r
-\r
- // To Single Byte\r
- if (_toSingleByteSpace) {\r
- value = (value != null ? value.replaceAll("\u3000", " ") : value);\r
- }\r
- if (_toSingleByteAlphabetNumberMark) {\r
- value = getGeneralCharacter().toSingleByteAlphabetNumberMark(value);\r
- } else if (_toSingleByteAlphabetNumber) {\r
- value = getGeneralCharacter().toSingleByteAlphabetNumber(value);\r
- }\r
- return value;\r
- }\r
-\r
- // =====================================================================================\r
- // Helper\r
- // ======\r
- protected ${glGeneralCharacterName} getGeneralCharacter() {\r
- if (_generalCharacter == null) {\r
- _generalCharacter = new ${glGeneralCharacterImplName}();\r
- }\r
- return _generalCharacter;\r
- }\r
-\r
- // =====================================================================================\r
- // DeepCopy\r
- // ========\r
- public Object createDeepCopy() {\r
- final ${myClassName} deepCopy = new ${myClassName}();\r
- deepCopy._toSingleByteSpace = _toSingleByteSpace;\r
- deepCopy._toSingleByteAlphabetNumber = _toSingleByteAlphabetNumber;\r
- deepCopy._toSingleByteAlphabetNumberMark = _toSingleByteAlphabetNumberMark;\r
- return deepCopy;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCOptionParts};\r
-\r
-#set ($myClassName = "${glConditionOptionPartsToUpperLowerCaseName}")\r
-\r
-/**\r
- * The class of condition-option-parts about toUpperCase/toLowerCase.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} {\r
-\r
- // =====================================================================================\r
- // Attribute\r
- // =========\r
- protected boolean _toUpperCase;\r
- protected boolean _toLowerCase;\r
-\r
- // =====================================================================================\r
- // Main\r
- // ====\r
- public void toUpperCase() {\r
- _toUpperCase = true;\r
- _toLowerCase = false;\r
- }\r
-\r
- public void toLowerCase() {\r
- _toUpperCase = false;\r
- _toLowerCase = true;\r
- }\r
-\r
- // =====================================================================================\r
- // Real Value\r
- // ==========\r
- public String generateRealValue(String value) {\r
- if (value == null) {\r
- return value;\r
- }\r
-\r
- // To Upper/Lower Case\r
- if (_toUpperCase) {\r
- value = (value != null ? value.toUpperCase() : value);\r
- }\r
- if (_toLowerCase) {\r
- value = (value != null ? value.toLowerCase() : value);\r
- }\r
- return value;\r
- }\r
-\r
- // =====================================================================================\r
- // DeepCopy\r
- // ========\r
- public Object createDeepCopy() {\r
- final ${myClassName} deepCopy = new ${myClassName}();\r
- deepCopy._toUpperCase = _toUpperCase;\r
- deepCopy._toLowerCase = _toLowerCase;\r
- return deepCopy;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCOptionPartsLocal};\r
-\r
-#set ($myClassName = "${glConditionOptionPartsAgentJapaneseName}")\r
-\r
-import ${glPackageBaseCommonHelperCharacter}.${glJapaneseCharacterName};\r
-import ${glPackageBaseCommonHelperCharacterImpl}.${glJapaneseCharacterImplName};\r
-\r
-/**\r
- * The class of condition-option-parts-agent.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} {\r
-\r
- // =====================================================================================\r
- // Attribute\r
- // =========\r
- protected boolean _toDoubleByteKatakana;\r
- protected boolean _removeLastLongVowel;\r
- private ${glJapaneseCharacterName} _japaneseCharacter;\r
-\r
- // =====================================================================================\r
- // Main\r
- // ====\r
- public boolean isToDoubleByteKatakana() {\r
- return _toDoubleByteKatakana;\r
- }\r
-\r
- public void toDoubleByteKatakana() {\r
- _toDoubleByteKatakana = true;\r
- }\r
-\r
- public boolean isRemoveLastLongVowel() {\r
- return _removeLastLongVowel;\r
- }\r
- public void removeLastLongVowel() {\r
- _removeLastLongVowel = true;\r
- }\r
-\r
- // =====================================================================================\r
- // Real Value\r
- // ==========\r
- public String generateRealValue(String value) {\r
- if (value == null) {\r
- return value;\r
- }\r
-\r
- // To Double Byte\r
- if (_toDoubleByteKatakana) {\r
- value = getJapaneseCharacter().toDoubleByteKatakana(value);\r
- }\r
-\r
- // Remove\r
- if (_removeLastLongVowel) {\r
- if (value != null && value.endsWith("\u30fc")) {\r
- value = value.substring(0, value.length() - "\u30fc".length());\r
- }\r
- }\r
- return value;\r
- }\r
-\r
- // =====================================================================================\r
- // Helper\r
- // ======\r
- protected ${glJapaneseCharacterName} getJapaneseCharacter() {\r
- if (_japaneseCharacter == null) {\r
- _japaneseCharacter = new ${glJapaneseCharacterImplName}();\r
- }\r
- return _japaneseCharacter;\r
- }\r
-\r
- // =====================================================================================\r
- // DeepCopy\r
- // ========\r
- public Object createDeepCopy() {\r
- final ${myClassName} deepCopy = new ${myClassName}();\r
- deepCopy._toDoubleByteKatakana = _toDoubleByteKatakana;\r
- deepCopy._removeLastLongVowel = _removeLastLongVowel;\r
- return deepCopy;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCValue};\r
-\r
-#set ($myClassName = "${glConditionValueName}")\r
-\r
-import java.util.List;\r
-import java.util.ArrayList;\r
-import java.util.Iterator;\r
-\r
-import ${glPackageBaseCommonCOption}.${glConditionOptionLikeSearchName};\r
-import ${glPackageBaseCommonCOption}.${glConditionOptionInScopeName};\r
-\r
-/**\r
- * Condition value.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} {\r
-\r
- // ===================================================================================\r
- // Equal\r
- // =====\r
- /** Value of equal. */\r
- protected Object _equalValue;\r
-\r
- /**\r
- * Get the value of equal.\r
- * @return The value of equal. (Nullable)\r
- */\r
- public Object getEqual() {\r
- return filterValue(_equalValue);\r
- }\r
-\r
- /**\r
- * Set the value of equal.\r
- * @param value The value of equal. (Nullable)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} setEqual(Object value) {\r
- _equalValue = value;\r
- return this;\r
- }\r
-\r
- /**\r
- * Does it has the value of equal?\r
- * @return Determination. (NotNull)\r
- */\r
- public boolean hasEqual() {\r
- return _equalValue != null;\r
- }\r
-\r
- /**\r
- * Does the value equal the value of equal?\r
- * @param value The value of equal. (Nullable)\r
- * @return Determination. (NotNull)\r
- */\r
- public boolean equalEqual(Object value) {\r
- return hasEqual() ? _equalValue.equals(value) : value == null;\r
- }\r
-\r
- /**\r
- * Override the value of equal.\r
- * @param value The value of equal. (Nullable)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} overrideEqual(Object value) {\r
- _equalValue = value;\r
- return this;\r
- }\r
-\r
- /** Location of equal. */\r
- protected String _equalLocation;\r
-\r
- /**\r
- * Get the location of equal.\r
- * @return The location of equal. (Nullable)\r
- */\r
- public String getEqualLocation() {\r
- return _equalLocation;\r
- }\r
-\r
- /**\r
- * Set the location of equal.\r
- * @param location The location of equal. (Nullable)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} setEqualLocation(String location) {\r
- _equalLocation = location;\r
- return this;\r
- }\r
-\r
- // ===================================================================================\r
- // Not Equal\r
- // =========\r
- /** Value of notEqual. */\r
- protected Object _notEqualValue;\r
-\r
- /**\r
- * Get the value of notEqual.\r
- * @return The value of notEqual. (Nullable)\r
- */\r
- public Object getNotEqual() {\r
- return filterValue(_notEqualValue);\r
- }\r
-\r
- /**\r
- * Set the value of notEqual.\r
- * @param value The value of notEqual. (Nullable)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} setNotEqual(Object value) {\r
- _notEqualValue = value;\r
- return this;\r
- }\r
-\r
- /**\r
- * Does it has the value of notEqual?\r
- * @return Determination. (NotNull)\r
- */\r
- public boolean hasNotEqual() {\r
- return _notEqualValue != null;\r
- }\r
-\r
- /**\r
- * Does the value equal the value of notEqual?\r
- * @param value The value of notEqual. (Nullable)\r
- * @return Determination. (NotNull)\r
- */\r
- public boolean equalNotEqual(Object value) {\r
- return hasNotEqual() ? _notEqualValue.equals(value) : value == null;\r
- }\r
-\r
- /**\r
- * Override the value of notEqual.\r
- * @param value The value of notEqual. (Nullable)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} overrideNotEqual(Object value) {\r
- _notEqualValue = value;\r
- return this;\r
- }\r
-\r
- /** Location of notEqual. */\r
- protected String _notEqualLocation;\r
-\r
- /**\r
- * Get the location of notEqual.\r
- * @return The location of notEqual. (Nullable)\r
- */\r
- public String getNotEqualLocation() {\r
- return _notEqualLocation;\r
- }\r
-\r
- /**\r
- * Set the location of notEqual.\r
- * \r
- * @param location The location of notEqual. (Nullable)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} setNotEqualLocation(String location) {\r
- _notEqualLocation = location;\r
- return this;\r
- }\r
-\r
- // ===================================================================================\r
- // Greater Than\r
- // ============\r
- /** Value of greaterThan. */\r
- protected Object _greaterThanValue;\r
-\r
- /**\r
- * Get the value of greaterThan.\r
- * @return The value of greaterThan. (Nullable)\r
- */\r
- public Object getGreaterThan() {\r
- return filterValue(_greaterThanValue);\r
- }\r
-\r
- /**\r
- * Set the value of greaterThan.\r
- * @param value The value of greaterThan. (Nullable)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} setGreaterThan(Object value) {\r
- _greaterThanValue = value;\r
- return this;\r
- }\r
-\r
- /**\r
- * Does it has the value of greaterThan?\r
- * @return Determination. (NotNull)\r
- */\r
- public boolean hasGreaterThan() {\r
- return _greaterThanValue != null;\r
- }\r
-\r
- /**\r
- * Does the value equal the value of greaterThan?\r
- * @param value The value of greaterThan. (Nullable)\r
- * @return Determination. (NotNull)\r
- */\r
- public boolean equalGreaterThan(Object value) {\r
- return hasGreaterThan() ? _greaterThanValue.equals(value) : value == null;\r
- }\r
-\r
- /**\r
- * Override the value of greaterThan.\r
- * @param value The value of greaterThan. (Nullable)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} overrideGreaterThan(Object value) {\r
- _greaterThanValue = value;\r
- return this;\r
- }\r
-\r
- /** Location of GreaterThan. */\r
- protected String _greaterThanLocation;\r
-\r
- /**\r
- * Get the location of greaterThan.\r
- * @return The location of greaterThan. (Nullable)\r
- */\r
- public String getGreaterThanLocation() {\r
- return _greaterThanLocation;\r
- }\r
-\r
- /**\r
- * Set the location of greaterThan.\r
- * @param location The location of greaterThan. (Nullable)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} setGreaterThanLocation(String location) {\r
- _greaterThanLocation = location;\r
- return this;\r
- }\r
-\r
- // ===================================================================================\r
- // Less Than\r
- // =========\r
- /** Value of lessThan. */\r
- protected Object _lessThanValue;\r
-\r
- /**\r
- * Get the value of lessThan.\r
- * @return The value of lessThan. (Nullable)\r
- */\r
- public Object getLessThan() {\r
- return filterValue(_lessThanValue);\r
- }\r
-\r
- /**\r
- * Set the value of lessThan.\r
- * @param value The value of lessThan. (Nullable)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} setLessThan(Object value) {\r
- _lessThanValue = value;\r
- return this;\r
- }\r
-\r
- /**\r
- * Does it has the value of lessThan?\r
- * @return Determination. (NotNull)\r
- */\r
- public boolean hasLessThan() {\r
- return _lessThanValue != null;\r
- }\r
-\r
- /**\r
- * Does the value equal the value of lessThan?\r
- * @param value The value of lessThan. (Nullable)\r
- * @return Determination. (NotNull)\r
- */\r
- public boolean equalLessThan(Object value) {\r
- return hasLessThan() ? _lessThanValue.equals(value) : value == null;\r
- }\r
-\r
- /**\r
- * Override the value of lessThan.\r
- * @param value The value of lessThan. (Nullable)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} overrideLessThan(Object value) {\r
- _lessThanValue = value;\r
- return this;\r
- }\r
-\r
- /** Location of lessThan. */\r
- protected String _lessThanLocation;\r
-\r
- /**\r
- * Get the location of lessThan.\r
- * @return The location of lessThan. (Nullable)\r
- */\r
- public String getLessThanLocation() {\r
- return _lessThanLocation;\r
- }\r
-\r
- /**\r
- * Set the location of lessThan.\r
- * @param location The location of lessThan. (Nullable)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} setLessThanLocation(String location) {\r
- _lessThanLocation = location;\r
- return this;\r
- }\r
-\r
- // ===================================================================================\r
- // Greater Equal\r
- // =============\r
- /** Value of greaterEqual. */\r
- protected Object _greaterEqualValue;\r
-\r
- /**\r
- * Get the value of greaterEqual.\r
- * @return The value of greaterEqual. (Nullable)\r
- */\r
- public Object getGreaterEqual() {\r
- return filterValue(_greaterEqualValue);\r
- }\r
-\r
- /**\r
- * Set the value of greaterEqual.\r
- * @param value The value of greaterEqual. (Nullable)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} setGreaterEqual(Object value) {\r
- _greaterEqualValue = value;\r
- return this;\r
- }\r
-\r
- /**\r
- * Does it has the value of greaterEqual?\r
- * @return Determination. (NotNull)\r
- */\r
- public boolean hasGreaterEqual() {\r
- return _greaterEqualValue != null;\r
- }\r
-\r
- /**\r
- * Does the value equal the value of greaterEqual?\r
- * @param value The value of greaterEqual. (Nullable)\r
- * @return Determination. (NotNull)\r
- */\r
- public boolean equalGreaterEqual(Object value) {\r
- return hasGreaterEqual() ? _greaterEqualValue.equals(value) : value == null;\r
- }\r
-\r
- /**\r
- * Override the value of greaterEqual.\r
- * @param value The value of greaterEqual. (Nullable)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} overrideGreaterEqual(Object value) {\r
- _greaterEqualValue = value;\r
- return this;\r
- }\r
-\r
- /** Location of greaterEqual. */\r
- protected String _greaterEqualLocation;\r
-\r
- /**\r
- * Get the location of greaterEqual.\r
- * @return The location of greaterEqual. (Nullable)\r
- */\r
- public String getGreaterEqualLocation() {\r
- return _greaterEqualLocation;\r
- }\r
-\r
- /**\r
- * Set the location of greaterEqual.\r
- * @param location The location of greaterEqual. (Nullable)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} setGreaterEqualLocation(String location) {\r
- _greaterEqualLocation = location;\r
- return this;\r
- }\r
-\r
- // ===================================================================================\r
- // Less Equal\r
- // ==========\r
- /** Value of lessEqual. */\r
- protected Object _lessEqualValue;\r
-\r
- /**\r
- * Get the value of lessEqual.\r
- * @return The value of lessEqual. (Nullable)\r
- */\r
- public Object getLessEqual() {\r
- return filterValue(_lessEqualValue);\r
- }\r
-\r
- /**\r
- * Set the value of lessEqual.\r
- * @param value The value of lessEqual. (Nullable)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} setLessEqual(Object value) {\r
- _lessEqualValue = value;\r
- return this;\r
- }\r
-\r
- /**\r
- * Does it has the value of lessEqual?\r
- * @return Determination. (NotNull)\r
- */\r
- public boolean hasLessEqual() {\r
- return _lessEqualValue != null;\r
- }\r
-\r
- /**\r
- * Does the value equal the value of lessEqual?\r
- * @param value The value of lessEqual. (Nullable)\r
- * @return Determination. (NotNull)\r
- */\r
- public boolean equalLessEqual(Object value) {\r
- return hasLessEqual() ? _lessEqualValue.equals(value) : value == null;\r
- }\r
-\r
- /**\r
- * Override the value of lessEqual.\r
- * @param value The value of lessEqual. (Nullable)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} overrideLessEqual(Object value) {\r
- _lessEqualValue = value;\r
- return this;\r
- }\r
-\r
- /** Location of lessEqual. */\r
- protected String _lessEqualLocation;\r
-\r
- /**\r
- * Get the location of lessEqual.\r
- * @return The location of lessEqual. (Nullable)\r
- */\r
- public String getLessEqualLocation() {\r
- return _lessEqualLocation;\r
- }\r
-\r
- /**\r
- * Set the location of lessEqual.\r
- * @param location The location of lessEqual. (Nullable)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} setLessEqualLocation(String location) {\r
- _lessEqualLocation = location;\r
- return this;\r
- }\r
-\r
- // ===================================================================================\r
- // Prefix Search\r
- // =============\r
- /** Value of prefixSearch. */\r
- protected Object _prefixSearch;\r
-\r
- /**\r
- * Get the value of prefixSearch.\r
- * @return The value of prefixSearch. (Nullable)\r
- */\r
- public Object getPrefixSearch() {\r
- return filterValue(_prefixSearch);\r
- }\r
-\r
- /**\r
- * Set the value of prefixSearch.\r
- * @param value The value of prefixSearch. (Nullable)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} setPrefixSearch(Object value) {\r
- _prefixSearch = value;\r
- return this;\r
- }\r
-\r
- /**\r
- * Does it has the value of prefixSearch?\r
- * @return Determination. (NotNull)\r
- */\r
- public boolean hasPrefixSearch() {\r
- return _prefixSearch != null;\r
- }\r
-\r
- /**\r
- * Does the value equal the value of prefixSearch?\r
- * @param value The value of prefixSearch. (Nullable)\r
- * @return Determination. (NotNull)\r
- */\r
- public boolean equalPrefixSearch(Object value) {\r
- return hasPrefixSearch() ? _prefixSearch.equals(value) : value == null;\r
- }\r
-\r
- /**\r
- * Override the value of prefixSearch.\r
- * @param value The value of prefixSearch. (Nullable)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} overridePrefixSearch(Object value) {\r
- _prefixSearch = value;\r
- return this;\r
- }\r
-\r
- /** Location of prefixSearch. */\r
- protected String _prefixSearchLocation;\r
-\r
- /**\r
- * Get the location of prefixSearch.\r
- * @return The location of prefixSearch. (Nullable)\r
- */\r
- public String getPrefixSearchLocation() {\r
- return _prefixSearchLocation;\r
- }\r
-\r
- /**\r
- * Set the location of prefixSearch.\r
- * @param location The location of prefixSearch. (Nullable)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} setPrefixSearchLocation(String location) {\r
- _prefixSearchLocation = location;\r
- return this;\r
- }\r
-\r
- // ===================================================================================\r
- // Like Search\r
- // ===========\r
- /** Value of likeSearch. */\r
- protected List<LikeSearchValue> _likeSearch;\r
-\r
- /** Value of likeSearch for spare. */\r
- protected List<LikeSearchValue> _likeSearch4Spare;\r
-\r
- /**\r
- * Get the value of likeSearch.\r
- * @return The value of likeSearch. (Nullable)\r
- */\r
- public String getLikeSearch() {\r
- if (_likeSearch == null) {\r
- return null;\r
- }\r
- if (_likeSearch.isEmpty() && !_likeSearch4Spare.isEmpty()) {\r
- for (int index=0; index < _likeSearch4Spare.size(); index++) {\r
- _likeSearch.add(_likeSearch4Spare.get(index));\r
- }\r
- }\r
- final LikeSearchValue likeSearchValue = (LikeSearchValue)_likeSearch.remove(0);\r
- return (String)filterValue(likeSearchValue.generateRealValue());\r
- }\r
-\r
- /**\r
- * Set the value of likeSearch.\r
- * @param value The value of likeSearch. (Nullable)\r
- * @param option The option of likeSearch. (Nullable)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} setLikeSearch(String value, ${glConditionOptionLikeSearchName} option) {\r
- if (_likeSearch == null) {\r
- _likeSearch = new ArrayList<LikeSearchValue>();\r
- _likeSearch4Spare= new ArrayList<LikeSearchValue>();\r
- }\r
- if (_likeSearch.isEmpty() && !_likeSearch4Spare.isEmpty()) {\r
- for (int index=0; index < _likeSearch4Spare.size(); index++) {\r
- _likeSearch.add(_likeSearch4Spare.get(index));\r
- }\r
- }\r
- LikeSearchValue likeSearchValue = new LikeSearchValue(value, option);\r
- _likeSearch.add(likeSearchValue);\r
- _likeSearch4Spare.add(likeSearchValue);\r
- return this;\r
- }\r
-\r
- /** Location of likeSearch. */\r
- protected String _likeSearchLocation;\r
-\r
- /**\r
- * Get the location of likeSearch.\r
- * @return The location of likeSearch. (Nullable)\r
- */\r
- public String getLikeSearchLocation() {\r
- return _likeSearchLocation;\r
- }\r
-\r
- /**\r
- * Set the location of likeSearch.\r
- * @param location The location of likeSearch. (Nullable)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} setLikeSearchLocation(String location) {\r
- _likeSearchLocation = location;\r
- return this;\r
- }\r
-\r
- protected static class LikeSearchValue {\r
- protected String _value;\r
- protected ${glConditionOptionLikeSearchName} _option;\r
- public LikeSearchValue(String value, ${glConditionOptionLikeSearchName} option) {\r
- _value = value;\r
- _option = option;\r
- }\r
- public String getValue() {\r
- return _value;\r
- }\r
- public ${glConditionOptionLikeSearchName} getOption() {\r
- return _option;\r
- }\r
- public String generateRealValue() {\r
- if (_option == null) {\r
- return _value;\r
- }\r
- return _option.generateRealValue(_value);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // In Scope\r
- // ========\r
- /** Value of inScope. */\r
- protected List<?> _inScope;\r
-\r
- protected ${glConditionOptionInScopeName} _inScopeOption;\r
-\r
- /**\r
- * Get the value of inScope.\r
- * @return The value of inScope. (Nullable)\r
- */\r
- @SuppressWarnings("unchecked")\r
- public List<?> getInScope() {\r
- if (_inScopeOption != null) {\r
- return filterValue(_inScopeOption.generateRealValueList((List<String>)_inScope));\r
- }\r
- return filterValue(_inScope);\r
- }\r
-\r
- /**\r
- * Set the value of inScope.\r
- * @param value The value of inScope. (Nullable)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} setInScope(List<?> value) {\r
- _inScope = value;\r
- return this;\r
- }\r
-\r
- public ${myClassName} setInScope(List<?> value, ${glConditionOptionInScopeName} option) {\r
- _inScope = value;\r
- _inScopeOption = option;\r
- return this;\r
- }\r
-\r
- /**\r
- * Does it has the value of inScope?\r
- * @return Determination. (NotNull)\r
- */\r
- public boolean hasInScope() {\r
- return _inScope != null;\r
- }\r
-\r
- /**\r
- * Does the value equal the value of inScope?\r
- * @param value The value of inScope. (Nullable)\r
- * @return Determination. (NotNull)\r
- */\r
- public boolean equalInScope(List<?> value) {\r
- return hasInScope() ? _inScope.equals(value) : value == null;\r
- }\r
-\r
- /**\r
- * Override the value of inScope.\r
- * @param value The value of inScope. (Nullable)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} overrideInScope(List<?> value) {\r
- _inScope = value;\r
- return this;\r
- }\r
-\r
- /** Location of InScope. */\r
- protected String _inScopeLocation;\r
-\r
- /**\r
- * Get the location of inScope.\r
- * @return The location of inScope. (Nullable)\r
- */\r
- public String getInScopeLocation() {\r
- return _inScopeLocation;\r
- }\r
-\r
- /**\r
- * Set the location of inScope.\r
- * @param location The location of inScope. (Nullable)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} setInScopeLocation(String location) {\r
- _inScopeLocation = location;\r
- return this;\r
- }\r
-\r
- // ===================================================================================\r
- // Not In Scope\r
- // ============\r
- /** Value of notInScope. */\r
- protected List<?> _notInScope;\r
-\r
- /**\r
- * Get the value of notInScope.\r
- * @return The value of notInScope. (Nullable)\r
- */\r
- public List<?> getNotInScope() {\r
- return filterValue(_notInScope);\r
- }\r
-\r
- /**\r
- * Set the value of notInScope.\r
- * @param value The value of notInScope. (Nullable)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} setNotInScope(List<?> value) {\r
- _notInScope = value;\r
- return this;\r
- }\r
-\r
- /**\r
- * Does it has the value of inNotScope?\r
- * @return Determination. (NotNull)\r
- */\r
- public boolean hasNotInScope() {\r
- return _notInScope != null;\r
- }\r
-\r
- /**\r
- * Does the value equal the value of inNotScope?\r
- * @param value The value of inNotScope. (Nullable)\r
- * @return Determination. (NotNull)\r
- */\r
- public boolean equalNotInScope(List<?> value) {\r
- return hasNotInScope() ? _notInScope.equals(value) : value == null;\r
- }\r
-\r
- /**\r
- * Override the value of inNotScope.\r
- * @param value The value of inNotScope. (Nullable)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} overrideNotInScope(List<?> value) {\r
- _notInScope = value;\r
- return this;\r
- }\r
-\r
- /** Location of notInScope. */\r
- protected String _notInScopeLocation;\r
-\r
- /**\r
- * Get the location of notInScope.\r
- * @return The location of notInScope. (Nullable)\r
- */\r
- public String getNotInScopeLocation() {\r
- return _notInScopeLocation;\r
- }\r
-\r
- /**\r
- * Set the location of notInScope.\r
- * @param location The location of notInScope. (Nullable)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} setNotInScopeLocation(String location) {\r
- _notInScopeLocation = location;\r
- return this;\r
- }\r
-\r
- // ===================================================================================\r
- // Is Null\r
- // =======\r
- /** Value of isNull. */\r
- protected Object _isNullValue;\r
-\r
- /**\r
- * Get the value of isNull.\r
- * @return The value of isNull. (Nullable)\r
- */\r
- public Object getIsNull() {\r
- return _isNullValue;\r
- }\r
-\r
- /**\r
- * Set the value of isNull.\r
- * @param value The value of isNull. (Nullable)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} setIsNull(Object value) {\r
- _isNullValue = value;\r
- return this;\r
- }\r
-\r
- /**\r
- * Does it has the value of isNull?\r
- * @return Determination. (NotNull)\r
- */\r
- public boolean hasIsNull() {\r
- return _isNullValue != null;\r
- }\r
-\r
- /** Location of isNull. */\r
- protected String _isNullLocation;\r
-\r
- /**\r
- * Get the location of isNull.\r
- * @return The location of isNull. (Nullable)\r
- */\r
- public String getIsNullLocation() {\r
- return _isNullLocation;\r
- }\r
-\r
- /**\r
- * Set the location of isNull.\r
- * @param location The location of isNull. (Nullable)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} setIsNullLocation(String location) {\r
- _isNullLocation = location;\r
- return this;\r
- }\r
-\r
- // ===================================================================================\r
- // Is Not Null\r
- // ===========\r
- /** Value of isNotNull. */\r
- protected Object _isNotNullValue;\r
-\r
- /**\r
- * Get the value of isNotNull.\r
- * @return The value of isNotNull. (Nullable)\r
- */\r
- public Object getIsNotNull() {\r
- return _isNotNullValue;\r
- }\r
-\r
- /**\r
- * Set the value of isNotNull.\r
- * @param value The value of isNotNull. (Nullable)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} setIsNotNull(Object value) {\r
- _isNotNullValue = value;\r
- return this;\r
- }\r
-\r
- /**\r
- * Does it has the value of isNotNull?\r
- * @return Determination. (NotNull)\r
- */\r
- public boolean hasIsNotNull() {\r
- return _isNotNullValue != null;\r
- }\r
-\r
- /** Location of isNotNull. */\r
- protected String _isNotNullLocation;\r
-\r
- /**\r
- * Get the location of isNotNull.\r
- * @return The location of isNotNull. (Nullable)\r
- */\r
- public String getIsNotNullLocation() {\r
- return _isNotNullLocation;\r
- }\r
-\r
- /**\r
- * Set the location of isNotNull.\r
- * @param location The location of isNotNull. (Nullable)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} setIsNotNullLocation(String location) {\r
- _isNotNullLocation = location;\r
- return this;\r
- }\r
-\r
- // =====================================================================================\r
- // Filter\r
- // ======\r
- /**\r
- * Filter value.\r
- * If the value is instance of java.util.Date or java.util.Calendar, returns value as java.sql.Date.\r
- * @param value Value. (Nullable)\r
- * @return Filtered value. (Nullable)\r
- */\r
- protected Object filterValue(Object value) {\r
- if (value == null) {\r
- return value;\r
- }\r
- if (value instanceof java.sql.Time) {\r
- return value;\r
- }\r
- if (value instanceof java.sql.Timestamp) {\r
- return value;\r
- }\r
- if (value instanceof java.util.Date || value instanceof java.util.Calendar) {\r
- return SqlDateConversionUtil.toDate(value);\r
- } else {\r
- return value;\r
- }\r
- }\r
-\r
- /**\r
- * Filter value.\r
- * If the value is instance of java.util.Date or java.util.Calendar, returns value as java.sql.Date.\r
- * @param valueList Value-list. (Nullable)\r
- * @return Filtered value-list. (Nullable)\r
- */\r
- protected List<?> filterValue(List<?> valueList) {\r
- if (valueList == null || valueList.isEmpty()) {\r
- return valueList;\r
- }\r
- final List<Object> resultList = new ArrayList<Object>();\r
- for (Iterator<?> ite = valueList.iterator(); ite.hasNext(); ) {\r
- Object value = ite.next();\r
- resultList.add(filterValue(value));\r
- }\r
- return resultList;\r
- }\r
-\r
- protected static class SqlDateConversionUtil {\r
-\r
- private SqlDateConversionUtil() {\r
- }\r
-\r
- public static java.sql.Date toDate(Object o) {\r
- return toDate(o, null);\r
- }\r
-\r
- public static java.sql.Date toDate(Object o, String pattern) {\r
- if (o instanceof java.sql.Date) {\r
- return (java.sql.Date) o;\r
- }\r
- java.util.Date date = DateConversionUtil.toDate(o, pattern);\r
- if (date != null) {\r
- return new java.sql.Date(date.getTime());\r
- }\r
- return null;\r
- }\r
- }\r
-\r
- protected static class DateConversionUtil {\r
-\r
- private DateConversionUtil() {\r
- }\r
-\r
- public static java.util.Date toDate(Object o) {\r
- return toDate(o, null);\r
- }\r
-\r
- public static java.util.Date toDate(Object o, String pattern) {\r
- if (o == null) {\r
- return null;\r
- } else if (o instanceof String) {\r
- return toDate((String) o, pattern);\r
- } else if (o instanceof java.util.Date) {\r
- return (java.util.Date) o;\r
- } else if (o instanceof java.util.Calendar) {\r
- return ((java.util.Calendar) o).getTime();\r
- } else {\r
- return toDate(o.toString(), pattern);\r
- }\r
- }\r
-\r
- public static java.util.Date toDate(String s, String pattern) {\r
- return toDate(s, pattern, java.util.Locale.getDefault());\r
- }\r
-\r
- public static java.util.Date toDate(String s, String pattern, java.util.Locale locale) {\r
- java.text.SimpleDateFormat sdf = getDateFormat(s, pattern, locale);\r
- try {\r
- return sdf.parse(s);\r
- } catch (java.text.ParseException ex) {\r
- throw new RuntimeException(ex);\r
- }\r
- }\r
-\r
- public static java.text.SimpleDateFormat getDateFormat(String s, String pattern,\r
- java.util.Locale locale) {\r
- if (pattern != null) {\r
- return new java.text.SimpleDateFormat(pattern);\r
- }\r
- return getDateFormat(s, locale);\r
- }\r
-\r
- public static java.text.SimpleDateFormat getDateFormat(String s, java.util.Locale locale) {\r
- String pattern = getPattern(locale);\r
- String shortPattern = removeDelimiter(pattern);\r
- String delimitor = findDelimiter(s);\r
- if (delimitor == null) {\r
- if (s.length() == shortPattern.length()) {\r
- return new java.text.SimpleDateFormat(shortPattern);\r
- }\r
- if (s.length() == shortPattern.length() + 2) {\r
- return new java.text.SimpleDateFormat(InternalStringUtil.replace(shortPattern,\r
- "yy", "yyyy"));\r
- }\r
- } else {\r
- String[] array = InternalStringUtil.split(s, delimitor);\r
- for (int i = 0; i < array.length; ++i) {\r
- if (array[i].length() == 4) {\r
- pattern = InternalStringUtil.replace(pattern, "yy", "yyyy");\r
- break;\r
- }\r
- }\r
- return new java.text.SimpleDateFormat(pattern);\r
- }\r
- return new java.text.SimpleDateFormat();\r
- }\r
-\r
- public static java.text.SimpleDateFormat getDateFormat(java.util.Locale locale) {\r
- return new java.text.SimpleDateFormat(getPattern(locale));\r
- }\r
-\r
- public static java.text.SimpleDateFormat getY4DateFormat(java.util.Locale locale) {\r
- return new java.text.SimpleDateFormat(getY4Pattern(locale));\r
- }\r
-\r
- public static String getY4Pattern(java.util.Locale locale) {\r
- String pattern = getPattern(locale);\r
- if (pattern.indexOf("yyyy") < 0) {\r
- pattern = InternalStringUtil.replace(pattern, "yy", "yyyy");\r
- }\r
- return pattern;\r
- }\r
-\r
- public static String getPattern(java.util.Locale locale) {\r
- java.text.SimpleDateFormat df = (java.text.SimpleDateFormat) java.text.DateFormat.getDateInstance(\r
- java.text.DateFormat.SHORT, locale);\r
- String pattern = df.toPattern();\r
- int index = pattern.indexOf(' ');\r
- if (index > 0) {\r
- pattern = pattern.substring(0, index);\r
- }\r
- if (pattern.indexOf("MM") < 0) {\r
- pattern = InternalStringUtil.replace(pattern, "M", "MM");\r
- }\r
- if (pattern.indexOf("dd") < 0) {\r
- pattern = InternalStringUtil.replace(pattern, "d", "dd");\r
- }\r
- return pattern;\r
- }\r
-\r
- public static String findDelimiter(String value) {\r
- for (int i = 0; i < value.length(); ++i) {\r
- char c = value.charAt(i);\r
- if (Character.isDigit(c)) {\r
- continue;\r
- }\r
- return Character.toString(c);\r
- }\r
- return null;\r
- }\r
-\r
- public static String removeDelimiter(String pattern) {\r
- StringBuffer buf = new StringBuffer();\r
- for (int i = 0; i < pattern.length(); ++i) {\r
- char c = pattern.charAt(i);\r
- if (c == 'y' || c == 'M' || c == 'd') {\r
- buf.append(c);\r
- }\r
- }\r
- return buf.toString();\r
- }\r
- }\r
-\r
- protected static class InternalStringUtil {\r
- public static final String[] EMPTY_STRINGS = new String[0];\r
- private InternalStringUtil() {\r
- }\r
- public static final boolean isEmpty(String text) {\r
- return text == null || text.length() == 0;\r
- }\r
- public static final String replace(String text, String fromText, String toText) {\r
- if (text == null || fromText == null || toText == null) {\r
- return null;\r
- }\r
- StringBuffer buf = new StringBuffer(100);\r
- int pos = 0;\r
- int pos2 = 0;\r
- while (true) {\r
- pos = text.indexOf(fromText, pos2);\r
- if (pos == 0) {\r
- buf.append(toText);\r
- pos2 = fromText.length();\r
- } else if (pos > 0) {\r
- buf.append(text.substring(pos2, pos));\r
- buf.append(toText);\r
- pos2 = pos + fromText.length();\r
- } else {\r
- buf.append(text.substring(pos2));\r
- break;\r
- }\r
- }\r
- return buf.toString();\r
- }\r
-\r
- public static String[] split(String str, String delim) {\r
- if (str == null) {\r
- return EMPTY_STRINGS;\r
- }\r
- List${database.filterGenericsString('String')} list = new java.util.ArrayList${database.filterGenericsString('String')}();\r
- java.util.StringTokenizer st = new java.util.StringTokenizer(str, delim);\r
- while (st.hasMoreElements()) {\r
- list.add(st.nextToken());\r
- }\r
- return (String[]) list.toArray(new String[list.size()]);\r
- }\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBeanGrouping};\r
-\r
-/**\r
- * The class of option for grouping.\r
- * @param <ENTITY> The type of entity.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glGroupingOptionName}<ENTITY> {\r
-\r
- // =====================================================================================\r
- // Attribute\r
- // =========\r
- protected int _elementCount;\r
-\r
- protected ${glGroupingRowEndDeterminerName}<ENTITY> _groupingRowEndDeterminer;\r
-\r
- // =====================================================================================\r
- // Constructor\r
- // ===========\r
- /**\r
- * Constructor. You should set the determiner of grouping row end after you create the instance.\r
- */\r
- public ${glGroupingOptionName}() {\r
- }\r
-\r
- /**\r
- * Constructor.\r
- * @param elementCount The count of row element in a group.\r
- */\r
- public ${glGroupingOptionName}(int elementCount) {\r
- _elementCount = elementCount;\r
- }\r
-\r
- // =====================================================================================\r
- // Accessor\r
- // ========\r
- public int getElementCount() {\r
- return this._elementCount;\r
- }\r
-\r
- public ${glGroupingRowEndDeterminerName}<ENTITY> getGroupingRowEndDeterminer() {\r
- return this._groupingRowEndDeterminer;\r
- }\r
-\r
- public void setGroupingRowEndDeterminer(${glGroupingRowEndDeterminerName}<ENTITY> groupingRowEndDeterminer) {\r
- this._groupingRowEndDeterminer = groupingRowEndDeterminer;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBeanGrouping};\r
-\r
-/**\r
- * The interface of grouping end(switch point) determiner.\r
- * @param <ENTITY> The type of entity.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glGroupingRowEndDeterminerName}<ENTITY> {\r
-\r
- /**\r
- * Determine whether the grouping row is end.\r
- * @param rowResource The resource of grouping row. (NotNull and the property 'groupingRowList' is not empty and the property 'currentEntity' is not null)\r
- * @param nextEntity The entity of next element. (NotNull and the rowResource does not contain yet)\r
- * @return Whether the grouping row is end. (If the value is true, break grouping row and the nextEntity is registered to next row)\r
- */\r
- public boolean determine(${glGroupingRowResourceName}<ENTITY> rowResource, ENTITY nextEntity);\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBeanGrouping};\r
-\r
-import java.util.List;\r
-import java.util.ArrayList;\r
-\r
-/**\r
- * The class of row resource for grouping making.\r
- * @param <ENTITY> The type of entity.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glGroupingRowResourceName}<ENTITY> {\r
-\r
- // =====================================================================================\r
- // Attribute\r
- // =========\r
- protected List<ENTITY> _groupingRowList = new ArrayList<ENTITY>();\r
- protected int _elementCurrentIndex;\r
- protected int _breakCount;\r
-\r
- // =====================================================================================\r
- // Easy-to-Use\r
- // ===========\r
- /**\r
- * @return Does the list of grouping row size up the break count?\r
- */\r
- public boolean isSizeUpBreakCount() {\r
- return _elementCurrentIndex == (_breakCount-1);\r
- }\r
-\r
- // =====================================================================================\r
- // Accessor\r
- // ========\r
- /**\r
- * @return The list of grouping row. (NotNull and NotEmpty)\r
- */\r
- public List<ENTITY> getGroupingRowList() {\r
- return this._groupingRowList;\r
- }\r
-\r
- /**\r
- * Add the element entity to the list of grouping row. {INTERNAL METHOD}\r
- * @param groupingRow The element entity to the list of grouping row.\r
- */\r
- public void addGroupingRowList(ENTITY groupingRow) {\r
- this._groupingRowList.add(groupingRow);\r
- }\r
-\r
- /**\r
- * @return The entity of element current index. (NotNull)\r
- */\r
- public ENTITY getCurrentEntity() {\r
- return _groupingRowList.get(_elementCurrentIndex);\r
- }\r
-\r
- /**\r
- * @return The index of current element.\r
- */\r
- public int getElementCurrentIndex() {\r
- return this._elementCurrentIndex;\r
- }\r
-\r
- /**\r
- * Set the index of current element. {INTERNAL METHOD}\r
- * @param elementCurrentIndex The index of current element.\r
- */\r
- public void setElementCurrentIndex(int elementCurrentIndex) {\r
- this._elementCurrentIndex = elementCurrentIndex;\r
- }\r
-\r
- /**\r
- * @return The count of break loop.\r
- */\r
- public int getBreakCount() {\r
- return this._breakCount;\r
- }\r
-\r
- /**\r
- * Set the count of break loop. {INTERNAL METHOD}\r
- * @param breakCount The count of break loop.\r
- */\r
- public void setBreakCount(int breakCount) {\r
- this._breakCount = breakCount;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBeanGrouping};\r
-\r
-/**\r
- * The setupper of grouping row.\r
- * @param <ROW> The type of row.\r
- * @param <ENTITY> The type of entity.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glGroupingRowSetupperName}<ROW, ENTITY> {\r
-\r
- /**\r
- * Set up the instance of grouping row.\r
- * @param groupingRowResource Grouping row resource. (NotNull)\r
- * @return The instance of grouping row. (NotNull)\r
- */\r
- public ROW setup(${glGroupingRowResourceName}<ENTITY> groupingRowResource);\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBeanMapping};\r
-\r
-/**\r
- * The mapper of entity-to-dto.\r
- * @param <ENTITY> The type of entity.\r
- * @param <DTO> The type of dto.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glEntityDtoMapperName}<ENTITY, DTO> {\r
-\r
- /**\r
- * Map entity to data transfer object.\r
- * @param entity Entity. (NotNull)\r
- * @return Data transfer object. (NotNull)\r
- */\r
- public DTO map(ENTITY entity);\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBeanOutsidesql};\r
-\r
-import org.apache.commons.logging.Log;\r
-import org.apache.commons.logging.LogFactory;\r
-import org.seasar.framework.util.InputStreamReaderUtil;\r
-import org.seasar.framework.util.ReaderUtil;\r
-import org.seasar.framework.util.ResourceUtil;\r
-\r
-import ${glPackageBaseCommon}.${glDBFluteConfig};\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInterfaceName};\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInstanceHandlerName};\r
-import ${glPackageBaseCommonJdbc}.${glStatementConfig};\r
-import ${glPackageBaseCommonUtil}.${glSimpleStringUtil};\r
-import ${glPackageBaseCommonUtil}.${glSimpleSystemUtil};\r
-\r
-/**\r
- * The context of outside-SQL.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glOutsideSqlContextName} {\r
-\r
- /** Log instance. */\r
- private static final Log _log = LogFactory.getLog(${glOutsideSqlContextName}.class);\r
- \r
- // ===================================================================================\r
- // Thread Local\r
- // ============\r
- /** The thread-local for this. */\r
- private static final ThreadLocal<${glOutsideSqlContextName}> _threadLocal = new ThreadLocal<${glOutsideSqlContextName}>();\r
-\r
- /**\r
- * Get outside-SQL context on thread.\r
- * @return Outside-SQL context. (Nullable)\r
- */\r
- public static ${glOutsideSqlContextName} getOutsideSqlContextOnThread() {\r
- return (${glOutsideSqlContextName})_threadLocal.get();\r
- }\r
-\r
- /**\r
- * Set outside-SQL context on thread.\r
- * @param outsideSqlContext Outside-SQL context. (NotNull)\r
- */\r
- public static void setOutsideSqlContextOnThread(${glOutsideSqlContextName} outsideSqlContext) {\r
- if (outsideSqlContext == null) {\r
- String msg = "The argument[outsideSqlContext] must not be null.";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- _threadLocal.set(outsideSqlContext);\r
- }\r
-\r
- /**\r
- * Is existing outside-SQL context on thread?\r
- * \r
- * @return Determination.\r
- */\r
- public static boolean isExistOutsideSqlContextOnThread() {\r
- return (_threadLocal.get() != null);\r
- }\r
-\r
- /**\r
- * Clear outside-SQL context on thread.\r
- */\r
- public static void clearOutsideSqlContextOnThread() {\r
- _threadLocal.set(null);\r
- }\r
-\r
- // ===================================================================================\r
- // Unique Key\r
- // ==========\r
- public static String generateSpecifiedOutsideSqlUniqueKey(String methodName, String path, Object pmb, ${glOutsideSqlOptionName} option, Object resultTypeSpecification) {\r
- final String pmbKey = (pmb != null ? pmb.getClass().getName() : "null");\r
- final String resultKey = (resultTypeSpecification != null ? ":" + resultTypeSpecification : "null");\r
- final String tableDbName = option.getTableDbName();\r
- final String generatedUniqueKey = option.generateUniqueKey();\r
- return methodName + "():" + tableDbName + ":" + path + ":" + pmbKey + ":" + generatedUniqueKey + resultKey;\r
- }\r
-\r
- // ===================================================================================\r
- // Exception Handling\r
- // ==================\r
- public static void throwOutsideSqlNotFoundException(String path) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The outsideSql was Not Found!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "Please confirm the existence of your target file of outsideSql on your classpath." + getLineSeparator();\r
- msg = msg + "And please confirm the file name and the file path STRICTLY!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Specified OutsideSql Path]" + getLineSeparator() + path + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */" + getLineSeparator();\r
- throw new ${glPackageBaseCommonException}.${glOutsideSqlNotFoundException}(msg);\r
- }\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- // -----------------------------------------------------\r
- // Common of OutsideSql\r
- // --------------------\r
- protected boolean _dynamicBinding;\r
-\r
- protected boolean _offsetByCursorForcedly;\r
-\r
- protected boolean _limitByCursorForcedly;\r
-\r
- // -----------------------------------------------------\r
- // Specified OutsideSql\r
- // --------------------\r
- /** The path of outside-sql. (The mark of Specified-OutsideSql) */\r
- protected String _outsideSqlPath;\r
-\r
- protected Object _parameterBean;\r
-\r
- protected Object _resultTypeSpecification;\r
-\r
- protected String _methodName;\r
- \r
- /** The config of statement. (Nullable) */\r
- protected ${glStatementConfig} _statementConfig;\r
- \r
- /** The DB name of table for using behavior-SQL-path. (Nullable) */\r
- protected String _tableDbName;\r
-\r
- // ===================================================================================\r
- // Read SQL\r
- // ========\r
- /**\r
- * @param sqlFileEncoding The encoding of SQL file. (NotNull)\r
- * @param dbmsSuffix The suffix of DBMS. (NotNull)\r
- * @return The filtered outside-SQL. (NotNull)\r
- * @exception ${glPackageBaseCommonException}.${glOutsideSqlNotFoundException} When the SQL is not found.\r
- */\r
- public String readFilteredOutsideSql(String sqlFileEncoding, String dbmsSuffix) {\r
- final String sql = readOutsideSql(sqlFileEncoding, dbmsSuffix);\r
- return replaceOutsideSqlBindCharacterOnLineComment(sql);\r
- }\r
-\r
- protected String replaceOutsideSqlBindCharacterOnLineComment(String sql) {\r
- final String bindCharacter = "?";\r
- if (sql.indexOf(bindCharacter) < 0) {\r
- return sql;\r
- }\r
- final String lineSeparator = "\n";\r
- if (sql.indexOf(lineSeparator) < 0) {\r
- return sql;\r
- }\r
- final String lineCommentMark = "--";\r
- if (sql.indexOf(lineCommentMark) < 0) {\r
- return sql;\r
- }\r
- final StringBuilder sb = new StringBuilder();\r
- final String[] lines = sql.split(lineSeparator);\r
- for (String line : lines) {\r
- final int lineCommentIndex = line.indexOf("--");\r
- if (lineCommentIndex < 0) {\r
- sb.append(line).append(lineSeparator);\r
- continue;\r
- }\r
- final String lineComment = line.substring(lineCommentIndex);\r
- if (lineComment.contains("ELSE") || !lineComment.contains(bindCharacter)) {\r
- sb.append(line).append(lineSeparator);\r
- continue;\r
- }\r
- \r
- if (_log.isDebugEnabled()) {\r
- _log.debug("...Replacing bind character on line comment: " + lineComment);\r
- }\r
- final String filteredLineComment = replaceString(lineComment, bindCharacter, "Q");\r
- sb.append(line.substring(0, lineCommentIndex)).append(filteredLineComment).append(lineSeparator);\r
- }\r
- return sb.toString();\r
- }\r
- \r
- /**\r
- * Read outside-sql path. Required attribute is 'outsideSqlPath'.\r
- * @param sqlFileEncoding The encoding of SQL file. (NotNull)\r
- * @param dbmsSuffix The suffix of DBMS. (NotNull)\r
- * @return The text of SQL. (NotNull)\r
- * @exception ${glPackageBaseCommonException}.${glOutsideSqlNotFoundException} When the SQL is not found.\r
- */\r
- public String readOutsideSql(String sqlFileEncoding, String dbmsSuffix) {\r
- final String standardPath = _outsideSqlPath;\r
- final String dbmsPath = buildDbmsPath(standardPath, dbmsSuffix);\r
- String sql;\r
- if (isExistResource(dbmsPath)) {\r
- sql = readText(dbmsPath, sqlFileEncoding);\r
- } else if (isExistResource(standardPath)) {\r
- sql = readText(standardPath, sqlFileEncoding);\r
- } else {\r
- throwOutsideSqlNotFoundException(standardPath);\r
- return null; // Non Reachable.\r
- }\r
- return removeInitialUnicodeBomIfNeeds(sqlFileEncoding, sql);\r
- }\r
-\r
- protected String buildDbmsPath(String standardPath, String dbmsSuffix) {\r
- final String dbmsPath;\r
- final int lastIndexOfDot = standardPath.lastIndexOf(".");\r
- if (lastIndexOfDot >= 0 && !standardPath.substring(lastIndexOfDot).contains("/")) {\r
- final String base = standardPath.substring(0, lastIndexOfDot);\r
- dbmsPath = base + dbmsSuffix + standardPath.substring(lastIndexOfDot);\r
- } else {\r
- dbmsPath = standardPath + dbmsSuffix;\r
- }\r
- return dbmsPath;\r
- }\r
-\r
- protected String removeInitialUnicodeBomIfNeeds(String sqlFileEncoding, String sql) {\r
- if ("UTF-8".equalsIgnoreCase(sqlFileEncoding) && sql.length() > 0 && sql.charAt(0) == '\uFEFF') {\r
- sql = sql.substring(1);\r
- }\r
- return sql;\r
- }\r
-\r
- // ===================================================================================\r
- // Behavior Query Path\r
- // ===================\r
- public void setupBehaviorQueryPathIfNeeds() {\r
- if (!isBehaviorQueryPathEnabled()) {\r
- return;\r
- }\r
- if (_outsideSqlPath.contains(":")) {\r
- final String subDirectoryValue = _outsideSqlPath.substring(0, _outsideSqlPath.lastIndexOf(":"));\r
- final String subDirectoryPath = replaceString(subDirectoryValue, ":", "/");\r
- final String behaviorQueryPath = _outsideSqlPath.substring(_outsideSqlPath.lastIndexOf(":") + ":".length());\r
- final String behaviorClassPath = replaceString(buildBehaviorSqlPackageName(), ".", "/");\r
- final String behaviorPackagePath = behaviorClassPath.substring(0, behaviorClassPath.lastIndexOf("/"));\r
- final String behaviorClassName = behaviorClassPath.substring(behaviorClassPath.lastIndexOf("/") + "/".length());\r
- _outsideSqlPath = behaviorPackagePath + "/" + subDirectoryPath + "/" + behaviorClassName + "_" + behaviorQueryPath + ".sql";\r
- } else {\r
- _outsideSqlPath = replaceString(buildBehaviorSqlPackageName(), ".", "/") + "_" + _outsideSqlPath + ".sql";\r
- }\r
- }\r
-\r
- protected String buildBehaviorSqlPackageName() {\r
- final ${glDBMetaInterfaceName} dbmeta = ${glDBMetaInstanceHandlerName}.findDBMeta(_tableDbName);\r
- final String behaviorTypeName = dbmeta.getBehaviorTypeName();\r
- final String outsideSqlPackage = ${glDBFluteConfig}.getInstance().getOutsideSqlPackage();\r
- if (outsideSqlPackage != null && outsideSqlPackage.trim().length() > 0) {\r
- final String behaviorClassName = behaviorTypeName.substring(behaviorTypeName.lastIndexOf(".") + ".".length());\r
- String tmp = behaviorTypeName.substring(0, behaviorTypeName.lastIndexOf("."));\r
- final String exbhvName = tmp.contains(".") ? tmp.substring(tmp.lastIndexOf(".") + ".".length()) : tmp;\r
- return outsideSqlPackage + "." + exbhvName + "." + behaviorClassName;\r
- } else {\r
- return behaviorTypeName;\r
- }\r
- }\r
-\r
- protected boolean isBehaviorQueryPathEnabled() {\r
- if (isProcedure()) {// [DBFlute-0.7.5]\r
- return false;\r
- }\r
- return _outsideSqlPath != null && !_outsideSqlPath.contains("/") && !_outsideSqlPath.contains(".") && _tableDbName != null;\r
- }\r
-\r
- // ===================================================================================\r
- // Determination\r
- // =============\r
- public boolean isSpecifiedOutsideSql() {\r
- return _outsideSqlPath != null;\r
- }\r
-\r
- // [DBFlute-0.7.5]\r
- public boolean isProcedure() {\r
- return _methodName != null && _methodName.startsWith("call");\r
- }\r
-\r
- // ===================================================================================\r
- // General Helper\r
- // ==============\r
- protected boolean isExistResource(String path) {\r
- return ResourceUtil.isExist(path);\r
- }\r
-\r
- protected String readText(final String path, String sqlFileEncoding) {\r
- final java.io.InputStream is = ResourceUtil.getResourceAsStream(path);\r
- final java.io.Reader reader = InputStreamReaderUtil.create(is, sqlFileEncoding);\r
- return ReaderUtil.readText(reader);\r
- }\r
-\r
- protected static String replaceString(String text, String fromText, String toText) {\r
- return ${glSimpleStringUtil}.replace(text, fromText, toText);\r
- }\r
- \r
- protected static String getLineSeparator() {\r
- return ${glSimpleSystemUtil}.getLineSeparator();\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- // -----------------------------------------------------\r
- // Common of OutsideSql\r
- // --------------------\r
- public boolean isDynamicBinding() {\r
- return _dynamicBinding;\r
- }\r
-\r
- public void setDynamicBinding(boolean dynamicBinding) {\r
- this._dynamicBinding = dynamicBinding;\r
- }\r
-\r
- public boolean isOffsetByCursorForcedly() {\r
- return _offsetByCursorForcedly;\r
- }\r
-\r
- public void setOffsetByCursorForcedly(boolean offsetByCursorForcedly) {\r
- this._offsetByCursorForcedly = offsetByCursorForcedly;\r
- }\r
- \r
- public boolean isLimitByCursorForcedly() {\r
- return _limitByCursorForcedly;\r
- }\r
-\r
- public void setLimitByCursorForcedly(boolean limitByCursorForcedly) {\r
- this._limitByCursorForcedly = limitByCursorForcedly;\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Specified OutsideSql\r
- // --------------------\r
- public String getOutsideSqlPath() {\r
- return _outsideSqlPath;\r
- }\r
-\r
- public void setOutsideSqlPath(String outsideSqlPath) {\r
- this._outsideSqlPath = outsideSqlPath;\r
- }\r
-\r
- public Object getParameterBean() {\r
- return _parameterBean;\r
- }\r
-\r
- public void setParameterBean(Object parameterBean) {\r
- this._parameterBean = parameterBean;\r
- }\r
-\r
- public Object getResultTypeSpecification() {\r
- return _resultTypeSpecification;\r
- }\r
-\r
- public void setResultTypeSpecification(Object resultTypeSpecification) {\r
- this._resultTypeSpecification = resultTypeSpecification;\r
- }\r
-\r
- public String getMethodName() {\r
- return _methodName;\r
- }\r
-\r
- public void setMethodName(String methodName) {\r
- this._methodName = methodName;\r
- }\r
- \r
- public ${glStatementConfig} getStatementConfig() {\r
- return _statementConfig;\r
- }\r
-\r
- public void setStatementConfig(${glStatementConfig} statementConfig) {\r
- this._statementConfig = statementConfig;\r
- }\r
-\r
- public String getTableDbName() {\r
- return _tableDbName;\r
- }\r
-\r
- public void setTableDbName(String tableDbName) {\r
- this._tableDbName = tableDbName;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBeanOutsidesql};\r
-\r
-import java.util.List;\r
-\r
-import ${glPackageBaseCommon}.${glDaoReadableInterfaceName};\r
-import ${glPackageBaseCommonJdbc}.${glCursorHandlerName};\r
-\r
-/**\r
- * The dao of outside-sql.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glOutsideSqlDaoName} extends ${glDaoReadableInterfaceName} {\r
-\r
- // ===================================================================================\r
- // Select\r
- // ======\r
- <ENTITY> List<ENTITY> selectList(String path, Object pmb, ${glOutsideSqlOptionName} option, Class<ENTITY> entityType);\r
-\r
- <ENTITY> Object selectCursor(String path, Object pmb, ${glOutsideSqlOptionName} option, ${glCursorHandlerName} handler);\r
-\r
- // ===================================================================================\r
- // Execute\r
- // =======\r
- int execute(String path, Object pmb, ${glOutsideSqlOptionName} option);\r
-\r
- // [DBFlute-0.7.5]\r
- // ===================================================================================\r
- // Call\r
- // ====\r
- void call(String path, Object pmb, ${glOutsideSqlOptionName} option);\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBeanOutsidesql};\r
-\r
-import ${glPackageBaseCommonJdbc}.${glStatementConfig};\r
-\r
-/**\r
- * The option of outside-SQL. It contains various information about execution.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glOutsideSqlOptionName} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- // -----------------------------------------------------\r
- // Option\r
- // ------\r
- protected String _pagingRequestType = "non";\r
-\r
- protected boolean _dynamicBinding;\r
-\r
- /** The configuration of statement. (Nullable) */\r
- protected ${glStatementConfig} _statementConfig;\r
- \r
- // -----------------------------------------------------\r
- // Information\r
- // -----------\r
- /** The DB name of table. It is not related with the options of outside-SQL. */\r
- protected String _tableDbName;\r
- \r
- // ===================================================================================\r
- // Easy-to-Use\r
- // ===========\r
- public void autoPaging() {\r
- _pagingRequestType = "auto";\r
- }\r
-\r
- public void manualPaging() {\r
- _pagingRequestType = "manual";\r
- }\r
-\r
- public void dynamicBinding() {\r
- _dynamicBinding = true;\r
- }\r
-\r
- // ===================================================================================\r
- // Unique Key\r
- // ==========\r
- public String generateUniqueKey() {\r
- return "{" + _pagingRequestType + "/" + _dynamicBinding + "}";\r
- }\r
-\r
- // ===================================================================================\r
- // Copy\r
- // ====\r
- public ${glOutsideSqlOptionName} copyOptionWithoutPaging() {\r
- final ${glOutsideSqlOptionName} copyOption = new ${glOutsideSqlOptionName}();\r
- if (isDynamicBinding()) {\r
- copyOption.dynamicBinding();\r
- }\r
- copyOption.setTableDbName(_tableDbName);\r
- return copyOption;\r
- }\r
-\r
- // ===================================================================================\r
- // Basic Override\r
- // ==============\r
- @Override\r
- public String toString() {\r
- return "{paging=" + _pagingRequestType + ", dynamic=" + _dynamicBinding + "}";\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- // -----------------------------------------------------\r
- // Option\r
- // ------\r
- public boolean isAutoPaging() {\r
- return "auto".equals(_pagingRequestType);\r
- }\r
-\r
- public boolean isManualPaging() {\r
- return "manual".equals(_pagingRequestType);\r
- }\r
-\r
- public boolean isDynamicBinding() {\r
- return _dynamicBinding;\r
- }\r
- \r
- public ${glStatementConfig} getStatementConfig() {\r
- return _statementConfig;\r
- }\r
-\r
- public void setStatementConfig(${glStatementConfig} statementConfig) {\r
- _statementConfig = statementConfig;\r
- }\r
- \r
- // -----------------------------------------------------\r
- // Information\r
- // -----------\r
- public String getTableDbName() {\r
- return _tableDbName;\r
- }\r
-\r
- public void setTableDbName(String tableDbName) {\r
- _tableDbName = tableDbName;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBeanOutsidesql};\r
-\r
-/**\r
- * The parameter-bean for procedure.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glProcedurePmbName} {\r
-\r
- /**\r
- * Get the value of procedure name.\r
- * @return The value of procedure name. (NotNull)\r
- */\r
- public String getProcedureName();\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBeanOutsidesqlExecutor};\r
-\r
-import java.util.List;\r
-\r
-#if (!$database.isCompatibleOutsideSqlResultOldStyle())\r
-import ${glPackageBaseCommonCBean}.${glListResultBeanName};\r
-import ${glPackageBaseCommonCBean}.${glResultBeanBuilderName};\r
-#end\r
-import ${glPackageBaseCommonCBeanOutsidesql}.${glOutsideSqlDaoName};\r
-import ${glPackageBaseCommonCBeanOutsidesql}.${glOutsideSqlOptionName};\r
-import ${glPackageBaseCommonCBeanOutsidesql}.${glProcedurePmbName};\r
-import ${glPackageBaseCommonJdbc}.${glStatementConfig};\r
-\r
-/**\r
- * The executor of outside-sql. <br />\r
- * <pre>\r
- * {Basic}\r
- * o selectList()\r
- * o execute()\r
- * o call()\r
- * \r
- * {Entity}\r
- * o entityHandling().selectEntity()\r
- * o entityHandling().selectEntityWithDeletedCheck()\r
- * \r
- * {Cursor}\r
- * o cursorHandling().selectCursor()\r
- * \r
- * {Paging}\r
- * o autoPaging().selectList()\r
- * o autoPaging().selectPage()\r
- * o manualPaging().selectList()\r
- * o manualPaging().selectPage()\r
- * \r
- * {Option -- Dynamic}\r
- * o dynamicBinding().selectList()\r
- * \r
- * </pre>\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glOutsideSqlBasicExecutorName} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- /** The DAO of outside-sql. (NotNull) */\r
- protected final ${glOutsideSqlDaoName} _outsideSqlDao;\r
-\r
- /** Table DB name. (NotNull) */\r
- protected final String _tableDbName;\r
-\r
- /** Is it dynamic binding? */\r
- protected boolean _dynamicBinding;\r
- \r
- /** The config of statement. (Nullable) */\r
- protected ${glStatementConfig} _statementConfig;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glOutsideSqlBasicExecutorName}(${glOutsideSqlDaoName} outsideSqlDao, String tableDbName) {\r
- this._outsideSqlDao = outsideSqlDao;\r
- this._tableDbName = tableDbName;\r
- }\r
-\r
- // ===================================================================================\r
- // Select\r
- // ======\r
- /**\r
- * Select the list of the entity.\r
- * @param <ENTITY> The type of entity for element.\r
- * @param path The path of SQL file. (NotNull)\r
- * @param pmb The parameter-bean. Allowed types are Bean object and Map object. (Nullable)\r
- * @param entityType The element type of entity. (NotNull)\r
- * @return The result bean of selected list. (NotNull)\r
- * @exception ${glPackageBaseCommonException}.${glOutsideSqlNotFoundException} When the outside-sql is not found.\r
- */\r
-#if (!$database.isCompatibleOutsideSqlResultOldStyle())\r
- public <ENTITY> ${glListResultBeanName}<ENTITY> selectList(String path, Object pmb, Class<ENTITY> entityType) {\r
- List<ENTITY> resultList = _outsideSqlDao.selectList(path, pmb, createOutsideSqlOption(), entityType);\r
- return new ${glResultBeanBuilderName}<ENTITY>(_tableDbName).buildListResultBean(resultList);\r
- }\r
-#else\r
- public <ENTITY> List<ENTITY> selectList(String path, Object pmb, Class<ENTITY> entityType) {\r
- return _outsideSqlDao.selectList(path, pmb, createOutsideSqlOption(), entityType);\r
- }\r
-#end\r
-\r
- // ===================================================================================\r
- // Execute\r
- // =======\r
- /**\r
- * Execute. {Insert/Update/Delete/Etc...}\r
- * @param path The path of SQL file. (NotNull)\r
- * @param pmb The parameter-bean. Allowed types are Bean object and Map object. (Nullable)\r
- * @return The count of execution.\r
- * @exception ${glPackageBaseCommonException}.${glOutsideSqlNotFoundException} When the outside-sql is not found.\r
- */\r
- public int execute(String path, Object pmb) {\r
- return _outsideSqlDao.execute(path, pmb, createOutsideSqlOption());\r
- }\r
-\r
- // [DBFlute-0.7.5]\r
- // ===================================================================================\r
- // Procedure Call\r
- // ==============\r
- /**\r
- * Call stored procedure.\r
- * @param pmb The parameter-bean for procedure. (NotNull)\r
- */\r
- public void call(${glProcedurePmbName} pmb) {\r
- if (pmb == null) { throw new IllegalArgumentException("The argument of call() 'pmb' should not be null!"); }\r
- _outsideSqlDao.call(pmb.getProcedureName(), pmb, createOutsideSqlOption());\r
- }\r
-\r
- // ===================================================================================\r
- // Option\r
- // ======\r
- // -----------------------------------------------------\r
- // Result Handling\r
- // ---------------\r
- /**\r
- * Specify cursor handling. <br />\r
- * <pre>\r
- * # ex) Your Program\r
- * #\r
- * # executor.cursorHandling().selectCursor(path, pmb, handler);\r
- * #\r
- * </pre>\r
- * @return The cursor executor of outside-sql. (NotNull)\r
- */\r
- public ${glOutsideSqlCursorExecutorName}<Object> cursorHandling() {\r
- return new ${glOutsideSqlCursorExecutorName}<Object>(_outsideSqlDao, createOutsideSqlOption());\r
- }\r
-\r
- /**\r
- * Specify entity handling. <br />\r
- * <pre>\r
- * # ex) Your Program\r
- * #\r
- * # executor.entityHandling().selectEntityWithDeletedCheck(path, pmb, Xxx.class);\r
- * #\r
- * </pre>\r
- * @return The cursor executor of outside-sql. (NotNull)\r
- */\r
- public ${glOutsideSqlEntityExecutorName}<Object> entityHandling() {\r
- return new ${glOutsideSqlEntityExecutorName}<Object>(_outsideSqlDao, createOutsideSqlOption());\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Paging\r
- // ------\r
- /**\r
- * Option of autoPaging. <br />\r
- * If you invoke this, you don't need to write paging condition on your SQL. <br />\r
- * <pre>\r
- * # ex) Your SQL {MySQL}\r
- * #\r
- * # select member.MEMBER_ID, member...\r
- * # from Member member\r
- * # where ...\r
- * # order by ...\r
- * # -- limit 40, 20 *Here is unnecessary!\r
- * #\r
- * </pre>\r
- * @return The executor of paging that the paging mode is auto. (NotNull)\r
- */\r
- public ${glOutsideSqlPagingExecutorName} autoPaging() {\r
- final ${glOutsideSqlOptionName} option = createOutsideSqlOption();\r
- option.autoPaging();\r
- return new ${glOutsideSqlPagingExecutorName}(_outsideSqlDao, option, _tableDbName);\r
- }\r
-\r
- /**\r
- * Option of manualPaging. <br />\r
- * If you invoke this, you need to write paging condition on your SQL. <br />\r
- * <pre>\r
- * # ex) Your SQL {MySQL}\r
- * #\r
- * # select member.MEMBER_ID, member...\r
- * # from Member member\r
- * # where ...\r
- * # order by ...\r
- * # limit 40, 20 *Here is necessary!\r
- * #\r
- * </pre>\r
- * @return The executor of paging that the paging mode is manual. (NotNull)\r
- */\r
- public ${glOutsideSqlPagingExecutorName} manualPaging() {\r
- final ${glOutsideSqlOptionName} option = createOutsideSqlOption();\r
- option.manualPaging();\r
- return new ${glOutsideSqlPagingExecutorName}(_outsideSqlDao, option, _tableDbName);\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Dynamic Binding\r
- // ---------------\r
- public ${glOutsideSqlBasicExecutorName} dynamicBinding() {\r
- _dynamicBinding = true;\r
- return this;\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Statement Config\r
- // ----------------\r
- public ${glOutsideSqlBasicExecutorName} configure(${glStatementConfig} statementConfig) {\r
- _statementConfig = statementConfig;\r
- return this;\r
- }\r
- \r
- // ===================================================================================\r
- // Assist Helper\r
- // =============\r
- protected ${glOutsideSqlOptionName} createOutsideSqlOption() {\r
- final ${glOutsideSqlOptionName} option = new ${glOutsideSqlOptionName}();\r
- option.setStatementConfig(_statementConfig);\r
- if (_dynamicBinding) {\r
- option.dynamicBinding();\r
- }\r
- option.setTableDbName(_tableDbName);// as information\r
- return option;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBeanOutsidesqlExecutor};\r
-\r
-import ${glPackageBaseCommonJdbc}.${glCursorHandlerName};\r
-import ${glPackageBaseCommonCBeanOutsidesql}.${glOutsideSqlDaoName};\r
-import ${glPackageBaseCommonCBeanOutsidesql}.${glOutsideSqlOptionName};\r
-import ${glPackageBaseCommonJdbc}.${glStatementConfig};\r
-\r
-/**\r
- * The cursor executor of outside-sql.\r
- * @param <PARAMETER_BEAN> The type of parameter-bean.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glOutsideSqlCursorExecutorName}<PARAMETER_BEAN> {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected final ${glOutsideSqlDaoName} _outsideSqlDao;\r
-\r
- protected final ${glOutsideSqlOptionName} _outsideSqlOption;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glOutsideSqlCursorExecutorName}(${glOutsideSqlDaoName} outsideSqlDao, ${glOutsideSqlOptionName} outsideSqlOption) {\r
- this._outsideSqlDao = outsideSqlDao;\r
- this._outsideSqlOption = outsideSqlOption;\r
- }\r
-\r
- // ===================================================================================\r
- // Select\r
- // ======\r
- /**\r
- * Select the cursor of the entity.\r
- * @param path The path of SQL file. (NotNull)\r
- * @param pmb The parameter-bean. Allowed types are Bean object and Map object. (Nullable)\r
- * @param handler The handler of cursor. (NotNull)\r
- * @return The result object that the cursor handler returns. (Nullable)\r
- * @exception ${glPackageBaseCommonException}.${glOutsideSqlNotFoundException} When the outside-sql is not found.\r
- */\r
- public Object selectCursor(String path, PARAMETER_BEAN pmb, ${glCursorHandlerName} handler) {\r
- return _outsideSqlDao.selectCursor(path, pmb, _outsideSqlOption, handler);\r
- }\r
-\r
- // ===================================================================================\r
- // Option\r
- // ======\r
- public ${glOutsideSqlCursorExecutorName}<PARAMETER_BEAN> dynamicBinding() {\r
- _outsideSqlOption.dynamicBinding();\r
- return this;\r
- }\r
-\r
- public ${glOutsideSqlCursorExecutorName}<PARAMETER_BEAN> configure(${glStatementConfig} statementConfig) {\r
- _outsideSqlOption.setStatementConfig(statementConfig);\r
- return this;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBeanOutsidesqlExecutor};\r
-\r
-import java.util.List;\r
-\r
-import ${glPackageBaseCommonCBean}.${glConditionBeanContextName};\r
-import ${glPackageBaseCommonCBeanOutsidesql}.${glOutsideSqlDaoName};\r
-import ${glPackageBaseCommonCBeanOutsidesql}.${glOutsideSqlOptionName};\r
-import ${glPackageBaseCommonJdbc}.${glStatementConfig};\r
-import ${glPackageBaseCommonUtil}.${glSimpleSystemUtil};\r
-\r
-/**\r
- * The cursor executor of outside-sql.\r
- * @param <PARAMETER_BEAN> The type of parameter-bean.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glOutsideSqlEntityExecutorName}<PARAMETER_BEAN> {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected final ${glOutsideSqlDaoName} _outsideSqlDao;\r
-\r
- protected final ${glOutsideSqlOptionName} _outsideSqlOption;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glOutsideSqlEntityExecutorName}(${glOutsideSqlDaoName} outsideSqlDao, ${glOutsideSqlOptionName} outsideSqlOption) {\r
- this._outsideSqlDao = outsideSqlDao;\r
- this._outsideSqlOption = outsideSqlOption;\r
- }\r
-\r
- // ===================================================================================\r
- // Select\r
- // ======\r
- /**\r
- * Select entity.\r
- * @param <ENTITY> The type of entity.\r
- * @param path The path of SQL file. (NotNull)\r
- * @param pmb The parameter-bean. Allowed types are Bean object and Map object. (Nullable)\r
- * @param entityType The type of entity. (NotNull)\r
- * @return The selected entity. (Nullable)\r
- * @exception ${glPackageBaseCommonException}.${glOutsideSqlNotFoundException} When the outside-sql is not found.\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity is duplicated.\r
- */\r
- public <ENTITY> ENTITY selectEntity(String path, PARAMETER_BEAN pmb, Class<ENTITY> entityType) {\r
- final List<ENTITY> ls = _outsideSqlDao.selectList(path, pmb, _outsideSqlOption, entityType);\r
- if (ls.isEmpty()) {\r
- return null;\r
- }\r
- if (ls.size() > 1) {\r
- throwEntityDuplicatedException(ls.size() + "", buildSearch4LogString(path, pmb, entityType), null);\r
- }\r
- return ls.get(0);\r
- }\r
-\r
- /**\r
- * Select entity with deleted check.\r
- * @param <ENTITY> The type of entity.\r
- * @param path The path of SQL file. (NotNull)\r
- * @param pmb The parameter-bean. Allowed types are Bean object and Map object. (Nullable)\r
- * @param entityType The type of entity. (NotNull)\r
- * @return The selected entity. (Nullable)\r
- * @exception ${glPackageBaseCommonException}.${glOutsideSqlNotFoundException} When the outside-sql is not found.\r
- * @exception ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException} When the entity has already been deleted(not found).\r
- * @exception ${glPackageBaseCommonException}.${glEntityDuplicatedException} When the entity is duplicated.\r
- */\r
- public <ENTITY> ENTITY selectEntityWithDeletedCheck(String path, PARAMETER_BEAN pmb, Class<ENTITY> entityType) {\r
- final List<ENTITY> ls = _outsideSqlDao.selectList(path, pmb, _outsideSqlOption, entityType);\r
- if (ls == null || ls.isEmpty()) {\r
- throwEntityAlreadyDeletedException(buildSearch4LogString(path, pmb, entityType));\r
- }\r
- if (ls.size() > 1) {\r
- throwEntityDuplicatedException(ls.size() + "", buildSearch4LogString(path, pmb, entityType), null);\r
- }\r
- return ls.get(0);\r
- }\r
-\r
- protected <ENTITY> String buildSearch4LogString(String path, PARAMETER_BEAN pmb, Class<ENTITY> entityType) {\r
- String tmp = "Table = " + _outsideSqlOption.getTableDbName() + getLineSeparator();\r
- tmp = tmp + "Path = " + path + getLineSeparator();\r
- tmp = tmp + "Pmb = " + (pmb != null ? pmb.getClass().getSimpleName() : "null") + ":" + pmb + getLineSeparator();\r
- tmp = tmp + "Entity = " + (entityType != null ? entityType.getSimpleName() : "null") + getLineSeparator();\r
- tmp = tmp + "Option = " + _outsideSqlOption;\r
- return tmp;\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Helper\r
- // ------\r
- protected void throwEntityAlreadyDeletedException(Object searchKey4Log) {\r
- ${glConditionBeanContextName}.throwEntityAlreadyDeletedException(searchKey4Log);\r
- }\r
-\r
- protected void throwEntityDuplicatedException(String resultCountString, Object searchKey4Log, Throwable cause) {\r
- ${glConditionBeanContextName}.throwEntityDuplicatedException(resultCountString, searchKey4Log, cause);\r
- }\r
-\r
- // ===================================================================================\r
- // Option\r
- // ======\r
- public ${glOutsideSqlEntityExecutorName}<PARAMETER_BEAN> configure(${glStatementConfig} statementConfig) {\r
- _outsideSqlOption.setStatementConfig(statementConfig);\r
- return this;\r
- }\r
- \r
- public ${glOutsideSqlEntityExecutorName}<PARAMETER_BEAN> dynamicBinding() {\r
- _outsideSqlOption.dynamicBinding();\r
- return this;\r
- }\r
-\r
- // ===================================================================================\r
- // Helper\r
- // ======\r
- /**\r
- * Get the value of line separator.\r
- * @return The value of line separator. (NotNull)\r
- */\r
- protected static String getLineSeparator() {\r
- return ${glSimpleSystemUtil}.getLineSeparator();\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBeanOutsidesqlExecutor};\r
-\r
-import java.util.List;\r
-\r
-import ${glPackageBaseCommon}.${glDBFluteConfig};\r
-#if (!$database.isCompatibleOutsideSqlResultOldStyle())\r
-import ${glPackageBaseCommonCBean}.${glListResultBeanName};\r
-import ${glPackageBaseCommonCBean}.${glResultBeanBuilderName};\r
-#end\r
-import ${glPackageBaseCommonCBean}.${glPagingBeanInterfaceName};\r
-import ${glPackageBaseCommonCBean}.${glPagingHandlerName};\r
-import ${glPackageBaseCommonCBean}.${glPagingInvokerName};\r
-import ${glPackageBaseCommonCBean}.${glPagingResultBeanName};\r
-import ${glPackageBaseCommonCBeanOutsidesql}.${glOutsideSqlDaoName};\r
-import ${glPackageBaseCommonCBeanOutsidesql}.${glOutsideSqlOptionName};\r
-import ${glPackageBaseCommonJdbc}.${glStatementConfig};\r
-\r
-/**\r
- * The paging executor of outsideSql.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glOutsideSqlPagingExecutorName} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- /** The DAO of outsideSql. (NotNull) */\r
- protected final ${glOutsideSqlDaoName} _outsideSqlDao;\r
-\r
- /** The option of outsideSql. (NotNull) */\r
- protected final ${glOutsideSqlOptionName} _outsideSqlOption;\r
-\r
- /** The DB name of table. (NotNull) */\r
- protected final String _tableDbName;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glOutsideSqlPagingExecutorName}(${glOutsideSqlDaoName} outsideSqlDao, ${glOutsideSqlOptionName} outsideSqlOption, String tableDbName) {\r
- this._outsideSqlDao = outsideSqlDao;\r
- this._outsideSqlOption = outsideSqlOption;\r
- this._tableDbName = tableDbName;\r
- }\r
-\r
- // ===================================================================================\r
- // Select\r
- // ======\r
-#if (!$database.isCompatibleOutsideSqlResultOldStyle())\r
- public <ENTITY> ${glListResultBeanName}<ENTITY> selectList(String path, ${glPagingBeanInterfaceName} pmb, Class<ENTITY> entityType) {\r
- setupScrollableCursorIfNeeds();\r
- List<ENTITY> resultList = _outsideSqlDao.selectList(path, pmb, _outsideSqlOption, entityType);\r
- return new ${glResultBeanBuilderName}<ENTITY>(_tableDbName).buildListResultBean(resultList);\r
- }\r
-#else\r
- public <ENTITY> List<ENTITY> selectList(String path, ${glPagingBeanInterfaceName} pmb, Class<ENTITY> entityType) {\r
- setupScrollableCursorIfNeeds();\r
- return _outsideSqlDao.selectList(path, pmb, _outsideSqlOption, entityType);\r
- }\r
-#end\r
-\r
- /**\r
- * Select page.\r
- * <p>\r
- * The SQL should have Count and Paging. <br />\r
- * You can realize by pagingBean's isPaging() method on your 'SQL Comment'. For example, 'IF Comment'. <br />\r
- * It returns false when it executes Count. And it returns true when it executes Paging. <br />\r
- * <pre>\r
- * - - - - - - - - - - - - - - - - - - - - - - -\r
- * ex) Your Correct SQL {MySQL and manualPaging}\r
- * - - - - - - - - - - - - - - - - - - - - - - -\r
- * # /[*]IF pmb.isPaging()[*]/\r
- * # select member.MEMBER_ID\r
- * # , member.MEMBER_NAME\r
- * # , memberStatus.MEMBER_STATUS_NAME\r
- * # -- ELSE select count(*)\r
- * # /[*]END[*]/\r
- * # from MEMBER member\r
- * # /[*]IF pmb.isPaging()[*]/\r
- * # left outer join MEMBER_STATUS memberStatus\r
- * # on member.MEMBER_STATUS_CODE = memberStatus.MEMBER_STATUS_CODE\r
- * # /[*]END[*]/\r
- * # /[*]BEGIN[*]/where\r
- * # /[*]IF pmb.memberId != null[*]/member.MEMBER_ID = /[*]pmb.memberId[*]/'123'/[*]END[*]/\r
- * # /[*]IF pmb.memberName != null[*]/and member.MEMBER_NAME like /[*]pmb.memberName[*]/'Billy' || '%'/[*]END[*]/\r
- * # /[*]END[*]/\r
- * # /[*]IF pmb.isPaging()[*]/\r
- * # order by member.UPDATE_DATETIME desc\r
- * # /[*]END[*]/\r
- * # /[*]IF pmb.isPaging()[*]/\r
- * # limit /[*]$pmb.pageStartIndex[*]/80, /[*]$pmb.fetchSize[*]/20\r
- * # /[*]END[*]/\r
- * # \r
- * o [*] is easy escape to Java Doc Comment.\r
- * o If it's autoPaging, the line of 'limit 80, 20' is unnecessary!\r
- * \r
- * - - - - - - - - - - - - - - - - - - - - - - - - -\r
- * ex) Wrong SQL {part 1}\r
- * -- Line comment before ELSE comment --\r
- * - - - - - - - - - - - - - - - - - - - - - - - - -\r
- * # /[*]IF pmb.isPaging()[*]/\r
- * # select member.MEMBER_ID\r
- * # , member.MEMBER_NAME -- The name of member... *NG\r
- * # -- The status name of member... *NG\r
- * # , memberStatus.MEMBER_STATUS_NAME\r
- * # -- ELSE select count(*)\r
- * # /[*]END[*]/\r
- * # ...\r
- * o It's S2Dao's restriction...Sorry\r
- * </pre>\r
- * @param <ENTITY> The type of entity.\r
- * @param path The path of SQL that executes count and paging. (NotNull)\r
- * @param pagingPath The path of paging SQL. (NotNull)\r
- * @param pmb The bean of paging parameter. (NotNull)\r
- * @param entityType The type of result entity. (NotNull)\r
- * @return The result bean of paging. (NotNull)\r
- * @exception ${glPackageBaseCommonException}.${glOutsideSqlNotFoundException} When the outside-sql is not found.\r
- */\r
- public <ENTITY> ${glPagingResultBeanName}<ENTITY> selectPage(final String path\r
- , final ${glPagingBeanInterfaceName} pmb\r
- , final Class<ENTITY> entityType) {\r
- final ${glOutsideSqlOptionName} countOption = _outsideSqlOption.copyOptionWithoutPaging();\r
- final ${glOutsideSqlEntityExecutorName}<${glPagingBeanInterfaceName}> countExecutor = new ${glOutsideSqlEntityExecutorName}<${glPagingBeanInterfaceName}>(_outsideSqlDao, countOption);\r
- final ${glPagingHandlerName}<ENTITY> handler = new ${glPagingHandlerName}<ENTITY>() {\r
- public ${glPagingBeanInterfaceName} getPagingBean() {\r
- return pmb;\r
- }\r
- public int count() {\r
- pmb.xsetPaging(false);\r
- return countExecutor.selectEntityWithDeletedCheck(path, pmb, Integer.class);\r
- }\r
- public List<ENTITY> paging() {\r
- pmb.xsetPaging(true);\r
- return selectList(path, pmb, entityType);\r
- }\r
- };\r
- final ${glPagingInvokerName}<ENTITY> invoker = new ${glPagingInvokerName}<ENTITY>(_tableDbName);\r
- if (pmb.isCountLater()) {\r
- invoker.countLater();\r
- }\r
- return invoker.invokePaging(handler);\r
- }\r
-\r
- protected void setupScrollableCursorIfNeeds() {\r
- if (!_outsideSqlOption.isAutoPaging()) {\r
- return;\r
- }\r
- ${glStatementConfig} statementConfig = _outsideSqlOption.getStatementConfig();\r
- if (statementConfig != null && statementConfig.getResultSetType() != null) {\r
- return;\r
- }\r
- ${glStatementConfig} defaultStatementConfig = ${glDBFluteConfig}.getInstance().getDefaultStatementConfig();\r
- if (defaultStatementConfig != null && defaultStatementConfig.hasResultSetType()) {\r
- return;\r
- }\r
- if (statementConfig == null) {\r
- statementConfig = new ${glStatementConfig}();\r
- configure(statementConfig);\r
- }\r
- statementConfig.typeScrollInsensitive();\r
- }\r
- \r
- // ===================================================================================\r
- // Option\r
- // ======\r
- public ${glOutsideSqlPagingExecutorName} configure(${glStatementConfig} statementConfig) {\r
- _outsideSqlOption.setStatementConfig(statementConfig);\r
- return this;\r
- }\r
-\r
- public ${glOutsideSqlPagingExecutorName} dynamicBinding() {\r
- _outsideSqlOption.dynamicBinding();\r
- return this;\r
- }\r
-#if ($database.isMakeDeprecated())\r
-\r
- /**\r
- * @return The executor of cursor. (NotNull)\r
- * @deprecated This method is no cop. This was implemented by mistake. \r
- */\r
- public ${glOutsideSqlCursorExecutorName}<${glPagingBeanInterfaceName}> cursorHandling() {\r
- return new ${glOutsideSqlCursorExecutorName}<${glPagingBeanInterfaceName}>(_outsideSqlDao, _outsideSqlOption);\r
- }\r
-#end\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBeanPagenavi};\r
-#set ($myClassName = "${glPageNumberLinkName}")\r
-\r
-/**\r
- * The class of page number link.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} implements java.io.Serializable {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- /** Serial version UID. (Default) */\r
- private static final long serialVersionUID = 1L;\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected int _pageNumberElement;\r
- protected boolean _current;\r
- protected String _pageNumberLinkHref;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${myClassName}() {\r
- }\r
-\r
- // ===================================================================================\r
- // Initializer\r
- // ===========\r
- public ${myClassName} initialize(int pageNumberElement, boolean current, String pageNumberLinkHref) {\r
- setPageNumberElement(pageNumberElement);\r
- setCurrent(current);\r
- setPageNumberLinkHref(pageNumberLinkHref);\r
- return this;\r
- }\r
-\r
- // ===================================================================================\r
- // Basic Override\r
- // ==============\r
- /**\r
- * @return The view string of all attribute values. (NotNull)\r
- */\r
- @Override\r
- public String toString() {\r
- final StringBuffer sb = new StringBuffer();\r
-\r
- sb.append(" pageNumberElement=").append(_pageNumberElement);\r
- sb.append(" pageNumberLinkHref=").append(_pageNumberLinkHref);\r
- sb.append(" current=").append(_current);\r
-\r
- return sb.toString();\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public int getPageNumberElement() {\r
- return _pageNumberElement;\r
- }\r
-\r
- public void setPageNumberElement(int pageNumberElement) {\r
- this._pageNumberElement = pageNumberElement;\r
- }\r
-\r
- public boolean isCurrent() {\r
- return _current;\r
- }\r
-\r
- public void setCurrent(boolean current) {\r
- this._current = current;\r
- }\r
-\r
- public String getPageNumberLinkHref() {\r
- return _pageNumberLinkHref;\r
- }\r
-\r
- public void setPageNumberLinkHref(String pageNumberLinkHref) {\r
- this._pageNumberLinkHref = pageNumberLinkHref;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBeanPagenavi};\r
-#set ($myClassName = "${glPageNumberLinkSetupperName}")\r
-\r
-/**\r
- * The setupper of page number link.\r
- * @param <LINK> The type of link.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${myClassName}<LINK extends ${glPageNumberLinkName}> {\r
-\r
- /**\r
- * Set up page number link.\r
- * @param pageNumberElement Page number element.\r
- * @param current Is current page?\r
- * @return Page number link. (NotNull)\r
- */\r
- public LINK setup(int pageNumberElement, boolean current);\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBeanPagenaviGroup};\r
-#set ($myClassName = "${glPageGroupBeanName}")\r
-\r
-import java.util.List;\r
-import java.util.ArrayList;\r
-import java.util.Iterator;\r
-\r
-import ${glPackageBaseCommonCBeanPagenavi}.${glPageNumberLinkName};\r
-import ${glPackageBaseCommonCBeanPagenavi}.${glPageNumberLinkSetupperName};\r
-\r
-/**\r
- * The bean of page group.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} implements java.io.Serializable {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- /** Serial version UID. (Default) */\r
- private static final long serialVersionUID = 1L;\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected int _currentPageNumber;\r
- protected int _allPageCount;\r
- protected ${glPageGroupOptionName} _pageGroupOption;\r
-\r
- // ===================================================================================\r
- // Main\r
- // ====\r
- /**\r
- * Build the list of page number link.\r
- * @param <LINK> The type of link.\r
- * @param pageNumberLinkSetupper Page number link setupper. (NotNull and Required LINK)\r
- * @return The list of Page number link. (NotNull)\r
- */\r
- public <LINK extends ${glPageNumberLinkName}> List<LINK> buildPageNumberLinkList(${glPageNumberLinkSetupperName}<LINK> pageNumberLinkSetupper) {\r
- final List<Integer> pageNumberList = createPageNumberList();\r
- final List<LINK> pageNumberLinkList = new ArrayList<LINK>();\r
- for (Integer pageNumber: pageNumberList) {\r
- pageNumberLinkList.add(pageNumberLinkSetupper.setup(pageNumber, pageNumber.equals(_currentPageNumber)));\r
- }\r
- return pageNumberLinkList;\r
- }\r
-\r
- /**\r
- * Calculate start page number.\r
- * @return Start page number.\r
- */\r
- public int calculateStartPageNumber() {\r
- assertPageGroupValid();\r
- final int pageGroupSize = _pageGroupOption.getPageGroupSize();\r
- final int currentPageNumber = _currentPageNumber;\r
-\r
- int currentPageGroupNumber = (currentPageNumber / pageGroupSize);\r
- if ((currentPageNumber % pageGroupSize) == 0)\r
- {\r
- currentPageGroupNumber--;\r
- }\r
- final int currentPageGroupStartPageNumber = (pageGroupSize * currentPageGroupNumber) + 1;\r
- if (!(currentPageNumber >= currentPageGroupStartPageNumber)) {\r
- String msg = "currentPageNumber should be greater equal currentPageGroupStartPageNumber. But:";\r
- msg = msg + " currentPageNumber=" + currentPageNumber;\r
- msg = msg + " currentPageGroupStartPageNumber=" + currentPageGroupStartPageNumber;\r
- throw new IllegalStateException(msg);\r
- }\r
- return currentPageGroupStartPageNumber;\r
- }\r
-\r
- /**\r
- * Create the list of page number.\r
- * @return The list of page number. (NotNull)\r
- */\r
- public List<Integer> createPageNumberList() {\r
- assertPageGroupValid();\r
- final int pageGroupSize = _pageGroupOption.getPageGroupSize();\r
- final int allPageCount = _allPageCount;\r
- final int currentPageGroupStartPageNumber = calculateStartPageNumber();\r
- if (!(currentPageGroupStartPageNumber > 0)) {\r
- String msg = "currentPageGroupStartPageNumber should be greater than 0. {> 0} But:";\r
- msg = msg + " currentPageGroupStartPageNumber=" + currentPageGroupStartPageNumber;\r
- throw new IllegalStateException(msg);\r
- }\r
- final int nextPageGroupStartPageNumber = currentPageGroupStartPageNumber + pageGroupSize;\r
-\r
- final List<Integer> resultList = new ArrayList<Integer>();\r
- for (int i=currentPageGroupStartPageNumber; i < nextPageGroupStartPageNumber && i <= allPageCount; i++) {\r
- resultList.add(new Integer(i));\r
- }\r
- return resultList;\r
- }\r
-\r
- /**\r
- * Create the array of page number.\r
- * @return The array of page number. (NotNUll)\r
- */\r
- public int[] createPageNumberArray() {\r
- assertPageGroupValid();\r
- return convertListToIntArray(createPageNumberList());\r
- }\r
-\r
- /**\r
- * Is existing previous page-group?\r
- * Using values are currentPageNumber and pageGroupSize.\r
- * \r
- * @return Determination.\r
- */\r
- public boolean isExistPrePageGroup() {\r
- assertPageGroupValid();\r
- return (_currentPageNumber > _pageGroupOption.getPageGroupSize());\r
- }\r
-\r
- /**\r
- * Is existing next page-group?\r
- * Using values are currentPageNumber and pageGroupSize and allPageCount.\r
- * \r
- * @return Determination.\r
- */\r
- public boolean isExistNextPageGroup() {\r
- assertPageGroupValid();\r
- int currentPageGroupStartPageNumber = calculateStartPageNumber();\r
- if (!(currentPageGroupStartPageNumber > 0)) {\r
- String msg = "currentPageGroupStartPageNumber should be greater than 0. {> 0} But:";\r
- msg = msg + " currentPageGroupStartPageNumber=" + currentPageGroupStartPageNumber;\r
- throw new IllegalStateException(msg);\r
- }\r
- int nextPageGroupStartPageNumber = currentPageGroupStartPageNumber + _pageGroupOption.getPageGroupSize();\r
- return (nextPageGroupStartPageNumber <= _allPageCount);\r
- }\r
-\r
- // ===================================================================================\r
- // Assist Helper\r
- // =============\r
- protected int[] convertListToIntArray(List<Integer> ls) {\r
- final int[] resultArray = new int[ls.size()];\r
- int arrayIndex = 0;\r
- for (Iterator<Integer> ite = ls.iterator(); ite.hasNext(); ) {\r
- final Integer tmpPageNumber = (Integer)ite.next();\r
- resultArray[arrayIndex] = tmpPageNumber.intValue();\r
- arrayIndex++;\r
- }\r
- return resultArray;\r
- }\r
-\r
- protected void assertPageGroupValid() {\r
- if (_pageGroupOption == null) {\r
- String msg = "The pageGroupOption should not be null. Please invoke setPageGroupOption().";\r
- throw new IllegalStateException(msg);\r
- }\r
- if (_pageGroupOption.getPageGroupSize() == 0) {\r
- String msg = "The pageGroupSize should be greater than 1. But the value is zero.";\r
- msg = msg + " pageGroupSize=" + _pageGroupOption.getPageGroupSize();\r
- throw new IllegalStateException(msg);\r
- }\r
- if (_pageGroupOption.getPageGroupSize() == 1) {\r
- String msg = "The pageGroupSize should be greater than 1. But the value is one.";\r
- msg = msg + " pageGroupSize=" + _pageGroupOption.getPageGroupSize();\r
- throw new IllegalStateException(msg);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Basic Override\r
- // ==============\r
- /**\r
- * @return The view string of all attribute values. (NotNull)\r
- */\r
- @Override\r
- public String toString() {\r
- final StringBuilder sb = new StringBuilder();\r
-\r
- sb.append(" currentPageNumber=").append(_currentPageNumber);\r
- sb.append(" allPageCount=").append(_allPageCount);\r
- sb.append(" pageGroupOption=").append(_pageGroupOption);\r
-\r
- return sb.toString();\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public void setCurrentPageNumber(int currentPageNumber) {\r
- this._currentPageNumber = currentPageNumber;\r
- }\r
- public void setAllPageCount(int allPageCount) {\r
- this._allPageCount = allPageCount;\r
- }\r
- public void setPageGroupOption(${glPageGroupOptionName} pageGroupOption) {\r
- this._pageGroupOption = pageGroupOption;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBeanPagenaviGroup};\r
-#set ($myClassName = "${glPageGroupOptionName}")\r
-\r
-/**\r
- * The option of page group.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} implements java.io.Serializable {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- /** Serial version UID. (Default) */\r
- private static final long serialVersionUID = 1L;\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected int _pageGroupSize;\r
-\r
- // ===================================================================================\r
- // Basic Override\r
- // ==============\r
- /**\r
- * @return The view string of all attribute values. (NotNull)\r
- */\r
- @Override\r
- public String toString() {\r
- final StringBuilder sb = new StringBuilder();\r
-\r
- sb.append(" pageGroupSize=").append(_pageGroupSize);\r
-\r
- return sb.toString();\r
- }\r
- \r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public int getPageGroupSize() {\r
- return _pageGroupSize;\r
- }\r
-\r
- public void setPageGroupSize(int pageGroupSize) {\r
- this._pageGroupSize = pageGroupSize;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBeanPagenaviRange};\r
-#set ($myClassName = "${glPageRangeBeanName}")\r
-\r
-import java.util.List;\r
-import java.util.ArrayList;\r
-import java.util.Iterator;\r
-\r
-import ${glPackageBaseCommonCBeanPagenavi}.${glPageNumberLinkName};\r
-import ${glPackageBaseCommonCBeanPagenavi}.${glPageNumberLinkSetupperName};\r
-\r
-/**\r
- * The bean of page range.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} implements java.io.Serializable {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- /** Serial version UID. (Default) */\r
- private static final long serialVersionUID = 1L;\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected int _currentPageNumber;\r
- protected int _allPageCount;\r
- protected ${glPageRangeOptionName} _pageRangeOption;\r
-\r
- // ===================================================================================\r
- // Main\r
- // ====\r
- /**\r
- * Build the list of page number link.\r
- * @param <LINK> The type of link.\r
- * @param pageNumberLinkSetupper Page number link setupper. (NotNull and Required LINK)\r
- * @return The list of Page number link. (NotNull)\r
- */\r
- public <LINK extends ${glPageNumberLinkName}> List<LINK> buildPageNumberLinkList(${glPageNumberLinkSetupperName}<LINK> pageNumberLinkSetupper) {\r
- final List<Integer> pageNumberList = createPageNumberList();\r
- final List<LINK> pageNumberLinkList = new ArrayList<LINK>();\r
- for (Integer pageNumber: pageNumberList) {\r
- pageNumberLinkList.add(pageNumberLinkSetupper.setup(pageNumber, pageNumber.equals(_currentPageNumber)));\r
- }\r
- return pageNumberLinkList;\r
- }\r
-\r
- /**\r
- * Create the list of page number.\r
- * @return The list of page number. (NotNull)\r
- */\r
- public List<Integer> createPageNumberList() {\r
- assertPageRangeValid();\r
- final int pageRangeSize = _pageRangeOption.getPageRangeSize();\r
- final int allPageCount = _allPageCount;\r
- final int currentPageNumber = _currentPageNumber;\r
-\r
- final List<Integer> resultList = new ArrayList<Integer>();\r
- for (int i = currentPageNumber - pageRangeSize; i < currentPageNumber; i++) {\r
- if (i < 1) {\r
- continue;\r
- }\r
- resultList.add(new Integer(i));\r
- }\r
-\r
- resultList.add(new Integer(currentPageNumber));\r
-\r
- final int endPageNumber = (currentPageNumber + pageRangeSize);\r
- for (int i = currentPageNumber + 1 ; i <= endPageNumber && i <= allPageCount; i++) {\r
- resultList.add(new Integer(i));\r
- }\r
-\r
- final boolean fillLimit = _pageRangeOption.isFillLimit();\r
- final int limitSize = (pageRangeSize * 2) + 1;\r
- if (fillLimit && !resultList.isEmpty() && resultList.size() < limitSize) {\r
- final Integer firstElements = (Integer)resultList.get(0);\r
- final Integer lastElements = (Integer)resultList.get(resultList.size() - 1);\r
- if (firstElements.intValue() > 1) {\r
- for (int i = firstElements.intValue() - 1 ; resultList.size() < limitSize && i > 0; i--) {\r
- resultList.add(0, new Integer(i));\r
- }\r
- }\r
- for (int i = lastElements.intValue() + 1 ; resultList.size() < limitSize && i <= allPageCount; i++) {\r
- resultList.add(new Integer(i));\r
- }\r
- }\r
- return resultList;\r
- }\r
-\r
- /**\r
- * Get the array of page number.\r
- * @return The array of page number. (NotNull)\r
- */\r
- public int[] createPageNumberArray() {\r
- assertPageRangeValid();\r
- return convertListToIntArray(createPageNumberList());\r
- }\r
-\r
- /**\r
- * Is existing previous page range?\r
- * @return Determination.\r
- */\r
- public boolean isExistPrePageRange() {\r
- assertPageRangeValid();\r
- final int[] array = createPageNumberArray();\r
- if (array.length == 0) {\r
- return false;\r
- }\r
- return array[0] > 1;\r
- }\r
-\r
- /**\r
- * Is existing next page range?\r
- * @return Determination.\r
- */\r
- public boolean isExistNextPageRange() {\r
- assertPageRangeValid();\r
- final int[] array = createPageNumberArray();\r
- if (array.length == 0) {\r
- return false;\r
- }\r
- return array[array.length-1] < _allPageCount;\r
- }\r
-\r
- // ===================================================================================\r
- // Assist Helper\r
- // =============\r
- protected int[] convertListToIntArray(List<Integer> ls) {\r
- final int[] resultArray = new int[ls.size()];\r
- int arrayIndex = 0;\r
- for (Iterator<Integer> ite = ls.iterator(); ite.hasNext(); ) {\r
- final Integer tmpPageNumber = (Integer)ite.next();\r
- resultArray[arrayIndex] = tmpPageNumber.intValue();\r
- arrayIndex++;\r
- }\r
- return resultArray;\r
- }\r
-\r
- protected void assertPageRangeValid() {\r
- if (_pageRangeOption == null) {\r
- String msg = "The pageRangeOption should not be null. Please invoke setPageRangeOption().";\r
- throw new IllegalStateException(msg);\r
- }\r
- final int pageRangeSize = _pageRangeOption.getPageRangeSize();\r
- if (pageRangeSize == 0) {\r
- String msg = "The pageRangeSize should be greater than 1. But the value is zero.";\r
- throw new IllegalStateException(msg);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public void setCurrentPageNumber(int currentPageNumber) {\r
- this._currentPageNumber = currentPageNumber;\r
- }\r
- public void setAllPageCount(int allPageCount) {\r
- this._allPageCount = allPageCount;\r
- }\r
- public void setPageRangeOption(${glPageRangeOptionName} pageRangeOption) {\r
- this._pageRangeOption = pageRangeOption;\r
- }\r
-\r
- // ===================================================================================\r
- // Basic Override\r
- // ==============\r
- /**\r
- * @return The view string of all attribute values. (NotNull)\r
- */\r
- @Override\r
- public String toString() {\r
- final StringBuilder sb = new StringBuilder();\r
-\r
- sb.append(" currentPageNumber=").append(_currentPageNumber);\r
- sb.append(" allPageCount=").append(_allPageCount);\r
- sb.append(" pageRangeOption=").append(_pageRangeOption);\r
-\r
- return sb.toString();\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonCBeanPagenaviRange};\r
-#set ($myClassName = "${glPageRangeOptionName}")\r
-\r
-/**\r
- * The option of page range.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} implements java.io.Serializable {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- /** Serial version UID. (Default) */\r
- private static final long serialVersionUID = 1L;\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected int _pageRangeSize;\r
- protected boolean _fillLimit;\r
-\r
- // ===================================================================================\r
- // Basic Override\r
- // ==============\r
- /**\r
- * @return The view string of all attribute values. (NotNull)\r
- */\r
- @Override\r
- public String toString() {\r
- final StringBuilder sb = new StringBuilder();\r
-\r
- sb.append(" pageRangeSize=").append(_pageRangeSize);\r
- sb.append(" fillLimit=").append(_fillLimit);\r
-\r
- return sb.toString();\r
- }\r
- \r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public int getPageRangeSize() {\r
- return _pageRangeSize;\r
- }\r
-\r
- public void setPageRangeSize(int pageRangeSize) {\r
- this._pageRangeSize = pageRangeSize;\r
- }\r
-\r
- public boolean isFillLimit() {\r
- return _fillLimit;\r
- }\r
-\r
- public void setFillLimit(boolean fillLimit) {\r
- this._fillLimit = fillLimit;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonSqlClause};\r
-\r
-#set ($myClassName = "${glSqlClauseAbstractName}")\r
-\r
-import java.util.Collection;\r
-import java.util.List;\r
-import java.util.ArrayList;\r
-import java.util.Map;\r
-import java.util.HashMap;\r
-import java.util.LinkedHashMap;\r
-import java.util.Set;\r
-import java.util.Iterator;\r
-import java.util.StringTokenizer;\r
-\r
-import ${glPackageBaseCommonCKey}.*;\r
-import ${glPackageBaseCommonCOption}.${glConditionOptionInterfaceName};\r
-import ${glPackageBaseCommonCValue}.${glConditionValueName};\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInterfaceName};\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInstanceHandlerName};\r
-import ${glPackageBaseCommonDBMetaInfo}.${glColumnInfoName};\r
-import ${glPackageBaseCommonDBMetaInfo}.${glForeignInfoName};\r
-import ${glPackageBaseCommonDBMetaInfo}.${glUniqueInfoName};\r
-import ${glPackageBaseCommonUtil}.${glSimpleAssertUtil};\r
-import ${glPackageBaseCommonUtil}.${glSimpleStringUtil};\r
-import ${glPackageBaseCommonUtil}.${glSimpleSystemUtil};\r
-\r
-/**\r
- * The abstract class of SqlClause.\r
- * @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public abstract class ${myClassName} implements ${glSqlClauseInterfaceName} {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- protected static final String SELECT_HINT = "/*$dto.selectHint*/";\r
- \r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- // -----------------------------------------------------\r
- // Basic\r
- // -----\r
- /** Target table name. */\r
- protected final String _tableName;\r
-\r
- // -----------------------------------------------------\r
- // Clause Resource\r
- // ---------------\r
- /** Selected select column map. map:{tableAliasName : map:{columnName : selectColumnInfo}}*/\r
- protected Map<String, Map<String, SelectedSelectColumnInfo>> _selectedSelectColumnMap = new LinkedHashMap<String, Map<String, SelectedSelectColumnInfo>>();\r
- \r
- /** Specified select column map. map:{ tableAliasName = map:{ columnName : null } } */\r
- protected Map<String, Map<String, String>> _specifiedSelectColumnMap;// [DBFlute-0.7.4]\r
- \r
- /** Specified derive sub-query map. */\r
- protected Map<String, String> _specifiedDeriveSubQueryMap;// [DBFlute-0.7.4]\r
-\r
- /** Included select column map. */\r
- protected Map<String, String> _includedSelectColumnMap = new LinkedHashMap<String, String>();\r
-\r
- /** The map of real column and alias of select clause. map:{realColumnName : aliasName} */\r
- protected Map<String, String> _selectClauseRealColumnAliasMap = new HashMap<String, String>();// Without linked!\r
- \r
- /** Outer join map. */\r
- protected Map<String, LeftOuterJoinInfo> _outerJoinMap = new LinkedHashMap<String, LeftOuterJoinInfo>();\r
-\r
- /** Where list. */\r
- protected List<String> _whereList = new ArrayList<String>();\r
-\r
- /** Inline where list for BaseTable. */\r
- protected List<String> _baseTableInlineWhereList = new ArrayList<String>();\r
-\r
- /** Order-by clause. */\r
- protected final ${glOrderByClauseName} _orderByClause = new ${glOrderByClauseName}();\r
-\r
- /** Union clause list. */\r
- protected List<UnionQueryInfo> _unionQueryInfoList = new ArrayList<UnionQueryInfo>();\r
-\r
- /** Is included-select-column effective? Default value is false. */\r
- protected boolean _isIncludedSelectColumnEffective = false;\r
-\r
- /** Is order-by effective? Default value is false. */\r
- protected boolean _isOrderByEffective = false;\r
-\r
- // -----------------------------------------------------\r
- // Fetch Property\r
- // --------------\r
- /** Fetch start index. (for fetchXxx()) */\r
- protected int _fetchStartIndex = 0;\r
-\r
- /** Fetch size. (for fetchXxx()) */\r
- protected int _fetchSize = 0;\r
-\r
- /** Fetch page number. (for fetchXxx()) This value should be plus. */\r
- protected int _fetchPageNumber = 1;\r
-\r
- /** Is fetch-narrowing effective? Default value is false. */\r
- protected boolean _isFetchScopeEffective = false;\r
-\r
- // -----------------------------------------------------\r
- // AdditionalConditionAsOr\r
- // -----------------------\r
- /** Is additional condition as or effective?*/\r
- protected boolean _isAdditionalConditionAsOrEffective = false;\r
-\r
- // -----------------------------------------------------\r
- // WhereClauseSimpleFilter\r
- // -----------------------\r
- /** The filter for where clause. */\r
- protected List<${glWhereClauseSimpleFilterInterfaceName}> _whereClauseSimpleFilterList;\r
-\r
- // -----------------------------------------------------\r
- // Selected Foreign Info\r
- // ---------------------\r
- /** The information of selected foreign table. */\r
- protected Map<String, String> _selectedForeignInfo;\r
- \r
- // -----------------------------------------------------\r
- // Optional Info\r
- // -------------\r
- protected boolean _formatClause;\r
- \r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${myClassName}(String tableName) {\r
- if (tableName == null) {\r
- String msg = "Argument[tableName] must not be null.";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- _tableName = tableName;\r
- }\r
-\r
- // ===================================================================================\r
- // Clause\r
- // ======\r
- // -----------------------------------------------------\r
- // Complete Clause\r
- // ---------------\r
- public String getClause() {\r
- StringBuilder sb = new StringBuilder(512);\r
- sb.append(getSelectClause());\r
- sb.append(" ");\r
- sb.append(buildClauseWithoutMainSelect(false));\r
- String sql = sb.toString();\r
- return filterSubQueryIndent(sql);\r
- }\r
- \r
- public String getClausePKOnly() {\r
- StringBuilder sb = new StringBuilder(512);\r
- sb.append(getSelectClausePKOnly());\r
- sb.append(" ");\r
- sb.append(buildClauseWithoutMainSelect(true));\r
- String sql = sb.toString();\r
- return filterSubQueryIndent(sql);\r
- }\r
- \r
- protected String buildClauseWithoutMainSelect(boolean pkonly) {\r
- StringBuilder sb = new StringBuilder(512);\r
- sb.append(getFromClause());\r
- sb.append(getFromHint());\r
- sb.append(" ");\r
- sb.append(getWhereClause());\r
- String unionClause = buildUnionClause(pkonly ? getSelectClausePKOnly() : getSelectClause());\r
- \r
- // Delete template mark! (At the future this will be unnecessary.)\r
- unionClause = replaceString(unionClause, getUnionWhereClauseMark(), "");// Required!\r
- unionClause = replaceString(unionClause, getUnionWhereFirstConditionMark(), "");// Required!\r
- \r
- sb.append(unionClause);\r
- if (_isOrderByEffective && !_orderByClause.isEmpty()) {\r
- sb.append(" ");\r
- sb.append(getOrderByClause());\r
- }\r
- sb.append(" ");\r
- sb.append(getSqlSuffix());\r
- return sb.toString();\r
- }\r
- \r
- // -----------------------------------------------------\r
- // Fragment Clause\r
- // ---------------\r
- public String getClauseFromWhereWithUnionTemplate() {\r
- return buildClauseFromWhereAsTemplate(false);\r
- }\r
- \r
- public String getClauseFromWhereWithWhereUnionTemplate() {\r
- return buildClauseFromWhereAsTemplate(true);\r
- }\r
- \r
- protected String buildClauseFromWhereAsTemplate(boolean template) {\r
- StringBuilder sb = new StringBuilder(512);\r
- sb.append(getFromClause());\r
- sb.append(getFromHint());\r
- sb.append(" ");\r
- sb.append(buildWhereClause(template));\r
- sb.append(buildUnionClause(getUnionSelectClauseMark()));\r
- return sb.toString();\r
- }\r
-\r
- protected String buildUnionClause(String selectClause) {\r
- StringBuilder sb = new StringBuilder();\r
- for (final Iterator<UnionQueryInfo> ite = _unionQueryInfoList.iterator(); ite.hasNext(); ) {\r
- final UnionQueryInfo unionQueryInfo = (UnionQueryInfo)ite.next();\r
- final String unionQueryClause = unionQueryInfo.getUnionQueryClause();\r
- final boolean unionAll = unionQueryInfo.isUnionAll();\r
- if (isFormatClauseEffective()) {\r
- sb.append(getLineSeparator());\r
- }\r
- sb.append(unionAll ? " union all " : " union ");\r
- if (isFormatClauseEffective()) {\r
- sb.append(getLineSeparator());\r
- }\r
- sb.append(selectClause).append(" ").append(unionQueryClause);\r
- }\r
- return sb.toString();\r
- }\r
-\r
- // ===================================================================================\r
- // Clause Parts\r
- // ============\r
- public String getSelectClause() {\r
- StringBuilder sb = new StringBuilder();\r
- ${glDBMetaInterfaceName} dbmeta = ${glDBMetaInstanceHandlerName}.findDBMeta(_tableName);\r
- List<${glColumnInfoName}> columnInfoList = dbmeta.getColumnInfoList();\r
-\r
- // [DBFlute-0.7.4]\r
- Map<String, String> localSpecifiedMap = _specifiedSelectColumnMap != null ? _specifiedSelectColumnMap.get(getLocalTableAliasName()) : null;\r
- boolean existsSpecifiedLocal = localSpecifiedMap != null && !localSpecifiedMap.isEmpty();\r
-\r
- for (${glColumnInfoName} columnInfo : columnInfoList) {\r
- String columnName = columnInfo.getColumnDbName();\r
- \r
- // [DBFlute-0.7.4]\r
- if (existsSpecifiedLocal && !localSpecifiedMap.containsKey(columnName)) {\r
- continue;\r
- }\r
-\r
- if (sb.length() > 0) {\r
- sb.append(", ");\r
- } else {\r
- sb.append("select").append(SELECT_HINT).append(" ");\r
- }\r
- String realColumnName = getLocalTableAliasName() + "." + columnName;\r
- sb.append(realColumnName).append(" as ").append(columnName);\r
- _selectClauseRealColumnAliasMap.put(realColumnName, columnName);\r
- }\r
- Set<String> tableAliasNameSet = _selectedSelectColumnMap.keySet();\r
- for (String tableAliasName : tableAliasNameSet) {\r
- Map<String, SelectedSelectColumnInfo> map = _selectedSelectColumnMap.get(tableAliasName);\r
- Collection<SelectedSelectColumnInfo> selectColumnInfoList = map.values();\r
-\r
- // [DBFlute-0.7.4]\r
- Map<String, String> foreginSpecifiedMap = _specifiedSelectColumnMap != null ? _specifiedSelectColumnMap.get(tableAliasName) : null;\r
- boolean existsSpecifiedForeign = foreginSpecifiedMap != null && !foreginSpecifiedMap.isEmpty();\r
-\r
- for (SelectedSelectColumnInfo selectColumnInfo : selectColumnInfoList) {\r
- String realColumnName = selectColumnInfo.buildRealColumnName();\r
-\r
- // [DBFlute-0.7.4]\r
- if (existsSpecifiedForeign && !foreginSpecifiedMap.containsKey(selectColumnInfo.getColumnName())) {\r
- continue;\r
- }\r
-\r
- sb.append(", ").append(realColumnName).append(" as ").append(selectColumnInfo.getColumnAliasName());\r
- _selectClauseRealColumnAliasMap.put(realColumnName, selectColumnInfo.getColumnAliasName());\r
- }\r
- }\r
- if (_isIncludedSelectColumnEffective && !_includedSelectColumnMap.isEmpty()) {\r
- sb.append(getIncludedSelectColumnClause());\r
- }\r
- \r
- // [DBFlute-0.7.4]\r
- if (_specifiedDeriveSubQueryMap != null && !_specifiedDeriveSubQueryMap.isEmpty()) {\r
- Collection<String> deriveSubQuerySet = _specifiedDeriveSubQueryMap.values();\r
- for (String deriveSubQuery : deriveSubQuerySet) {\r
- if (isFormatClauseEffective()) {\r
- sb.append(getLineSeparator()).append(" ");\r
- }\r
- sb.append(", ").append(deriveSubQuery);\r
- }\r
- }\r
-\r
- return sb.toString();\r
- }\r
- \r
- public String getSelectClausePKOnly() {\r
- StringBuilder sb = new StringBuilder();\r
- ${glDBMetaInterfaceName} dbmeta = ${glDBMetaInstanceHandlerName}.findDBMeta(_tableName);\r
- ${glUniqueInfoName} uniqueInfo = dbmeta.getPrimaryUniqueInfo();\r
- List<${glColumnInfoName}> columnInfoList = uniqueInfo.getUniqueColumnList();\r
- for (${glColumnInfoName} columnInfo : columnInfoList) {\r
- String columnName = columnInfo.getColumnDbName();\r
- if (sb.length() > 0) {\r
- sb.append(", ");\r
- } else {\r
- sb.append("select").append(SELECT_HINT).append(" ");\r
- }\r
- String realColumnName = getLocalTableAliasName() + "." + columnName;\r
- sb.append(realColumnName).append(" as ").append(columnName);\r
- _selectClauseRealColumnAliasMap.put(realColumnName, columnName);\r
- }\r
- if (_isIncludedSelectColumnEffective && !_includedSelectColumnMap.isEmpty()) {\r
- sb.append(getIncludedSelectColumnClause());\r
- }\r
-\r
- // [DBFlute-0.7.4]\r
- if (_specifiedDeriveSubQueryMap != null && !_specifiedDeriveSubQueryMap.isEmpty()) {\r
- Collection<String> deriveSubQuerySet = _specifiedDeriveSubQueryMap.values();\r
- for (String deriveSubQuery : deriveSubQuerySet) {\r
- if (isFormatClauseEffective()) {\r
- sb.append(getLineSeparator()).append(" ");\r
- }\r
- sb.append(", ").append(deriveSubQuery);\r
- }\r
- }\r
-\r
- return sb.toString();\r
- }\r
- \r
- public String getSelectHint() {\r
- return createSelectHint();\r
- }\r
-\r
- public String getIncludedSelectColumnClause() {\r
- StringBuilder sb = new StringBuilder();\r
- int count = 0;\r
- for (Iterator<String> ite = _includedSelectColumnMap.keySet().iterator(); ite.hasNext(); count++) {\r
- String aliasName = ite.next();\r
- String realColumnName = (String)_includedSelectColumnMap.get(aliasName);\r
- sb.append(", ").append(realColumnName).append(" as ").append(aliasName);\r
- _selectClauseRealColumnAliasMap.put(realColumnName, aliasName);\r
- }\r
- return sb.toString();\r
- }\r
-\r
- public String getFromClause() {\r
- StringBuilder sb = new StringBuilder();\r
- if (isFormatClauseEffective()) {\r
- sb.append(getLineSeparator()).append(" ");\r
- }\r
- sb.append("from ");\r
- if (_baseTableInlineWhereList.isEmpty()) {\r
- sb.append(_tableName).append(" dflocal");\r
- } else {\r
- sb.append(getInlineViewClause(_tableName, _baseTableInlineWhereList)).append(" dflocal");\r
- }\r
- sb.append(getFromBaseTableHint());\r
- sb.append(getLeftOuterJoinClause());\r
- return sb.toString();\r
- }\r
-\r
- protected String getLeftOuterJoinClause() {\r
- StringBuilder sb = new StringBuilder();\r
- for (Iterator<String> ite = _outerJoinMap.keySet().iterator(); ite.hasNext(); ) {\r
- String aliasName = ite.next();\r
- LeftOuterJoinInfo joinInfo = (LeftOuterJoinInfo)_outerJoinMap.get(aliasName);\r
- String joinTableName = joinInfo.getJoinTableName();\r
- List<String> inlineWhereClauseList = joinInfo.getInlineWhereClauseList();\r
- List<String> additionalOnClauseList = joinInfo.getAdditionalOnClauseList();\r
- Map<String, String> joinOnMap = joinInfo.getJoinOnMap();\r
- assertJoinOnMapNotEmpty(joinOnMap, aliasName);\r
-\r
- if (isFormatClauseEffective()) {\r
- sb.append(getLineSeparator()).append(" ");\r
- }\r
- sb.append(" left outer join ");\r
- if (inlineWhereClauseList.isEmpty()) {\r
- sb.append(joinTableName);\r
- } else {\r
- sb.append(getInlineViewClause(joinTableName, inlineWhereClauseList));\r
- }\r
- sb.append(" ").append(aliasName).append(" on ");\r
- int count = 0;\r
- Set<String> localColumnNameSet = joinOnMap.keySet();\r
- for (String localColumnName : localColumnNameSet) {\r
- String foreignColumnName = (String)joinOnMap.get(localColumnName);\r
- if (count > 0) {\r
- sb.append(" and ");\r
- }\r
- if (localColumnName.equals("$$fixedCondition$$")) {\r
- sb.append(foreignColumnName);\r
- } else {\r
- sb.append(localColumnName).append(" = ").append(foreignColumnName);\r
- }\r
- ++count;\r
- }\r
- for (String additionalOnClause : additionalOnClauseList) {\r
- sb.append(" and ").append(additionalOnClause);\r
- }\r
- }\r
- return sb.toString();\r
- }\r
-\r
- protected String getInlineViewClause(String joinTableName, List<String> inlineWhereClauseList) {\r
- StringBuilder sb = new StringBuilder();\r
- sb.append("(select * from ").append(joinTableName).append(" where ");\r
- int count = 0;\r
- for (final Iterator<String> ite = inlineWhereClauseList.iterator(); ite.hasNext(); ) {\r
- String clauseElement = ite.next();\r
- clauseElement = filterWhereClauseSimply(clauseElement);\r
- if (count > 0) {\r
- sb.append(" and ");\r
- }\r
- sb.append(clauseElement);\r
- ++count;\r
- }\r
- sb.append(")");\r
- return sb.toString();\r
- }\r
-\r
- public String getFromBaseTableHint() {\r
- return createFromBaseTableHint();\r
- }\r
-\r
- public String getFromHint() {\r
- return createFromHint();\r
- }\r
-\r
- public String getWhereClause() {\r
- return buildWhereClause(false);\r
- }\r
- \r
- protected String buildWhereClause(boolean template) {\r
- StringBuilder sb = new StringBuilder();\r
- int count = 0;\r
- for (Iterator<String> ite = _whereList.iterator(); ite.hasNext(); count++) {\r
- String clauseElement = (String)ite.next();\r
- clauseElement = filterWhereClauseSimply(clauseElement);\r
- if (count == 0) {\r
- if (isFormatClauseEffective()) {\r
- sb.append(getLineSeparator()).append(" ");\r
- }\r
- sb.append("where ").append(template ? getWhereFirstConditionMark() : "").append(clauseElement);\r
- } else {\r
- if (isFormatClauseEffective()) {\r
- sb.append(getLineSeparator()).append(" ");\r
- }\r
- sb.append(" and ").append(clauseElement);\r
- }\r
- }\r
- if (template && sb.length() == 0) {\r
- sb.append(getWhereClauseMark());\r
- }\r
- return sb.toString();\r
- }\r
- \r
- public String getOrderByClause() {\r
- String orderByClause = null;\r
- if (!_unionQueryInfoList.isEmpty()) {\r
- if (_selectClauseRealColumnAliasMap == null || _selectClauseRealColumnAliasMap.isEmpty()) {\r
- String msg = "The selectClauseColumnAliasMap should not be null or empty when union query exists: " + toString();\r
- throw new IllegalStateException(msg);\r
- }\r
- orderByClause = _orderByClause.getOrderByClause(_selectClauseRealColumnAliasMap);\r
- } else {\r
- orderByClause = _orderByClause.getOrderByClause();\r
- }\r
- if (isFormatClauseEffective() && orderByClause != null && orderByClause.trim().length() > 0) {\r
- return getLineSeparator() + " " + orderByClause;\r
- } else {\r
- return orderByClause;\r
- }\r
- }\r
-\r
- public String getSqlSuffix() {\r
- String sqlSuffix = createSqlSuffix();\r
- if (isFormatClauseEffective() && sqlSuffix != null && sqlSuffix.trim().length() > 0) {\r
- return getLineSeparator() + sqlSuffix;\r
- } else {\r
- return sqlSuffix;\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Copy Parts\r
- // ==========\r
- public void copyIncludedSelectColumn(${glSqlClauseInterfaceName} sqlClause) {\r
- Set<String> keySet = _includedSelectColumnMap.keySet();\r
- for (Iterator<String> ite = keySet.iterator(); ite.hasNext(); ) {\r
- String aliasName = ite.next();\r
- String realColumnName = (String)_includedSelectColumnMap.get(aliasName);\r
- sqlClause.registerIncludedSelectColumn(aliasName, realColumnName);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // SelectedSelectColumn\r
- // ====================\r
- /**\r
- * Register selected select column.\r
- * \r
- * @param foreignTableAliasName The alias name of foreign table. (NotNull)\r
- * @param localTableName The table name of local. (NotNull)\r
- * @param foreignPropertyName The property name of foreign table. (NotNull)\r
- * @param localRelationPath The path of local relation. (Nullable)\r
- */\r
- public void registerSelectedSelectColumn(String foreignTableAliasName\r
- , String localTableName\r
- , String foreignPropertyName\r
- , String localRelationPath) {\r
- _selectedSelectColumnMap.put(foreignTableAliasName, createSelectedSelectColumnInfo(foreignTableAliasName, localTableName, foreignPropertyName, localRelationPath));\r
- }\r
- \r
- protected Map<String, SelectedSelectColumnInfo> createSelectedSelectColumnInfo(String foreignTableAliasName\r
- , String localTableName\r
- , String foreignPropertyName\r
- , String localRelationPath) {\r
- final ${glDBMetaInterfaceName} dbmeta = ${glDBMetaInstanceHandlerName}.findDBMeta(localTableName);\r
- final ${glForeignInfoName} foreignInfo = dbmeta.findForeignInfo(foreignPropertyName);\r
- final int relationNo = foreignInfo.getRelationNo();\r
- String nextRelationPath = "_" + relationNo;\r
- if (localRelationPath != null) {\r
- nextRelationPath = localRelationPath + nextRelationPath;\r
- }\r
- final Map<String, SelectedSelectColumnInfo> resultMap = new LinkedHashMap<String, SelectedSelectColumnInfo>();\r
- final ${glDBMetaInterfaceName} foreignDBMeta = foreignInfo.getForeignDBMeta();\r
- final List<${glColumnInfoName}> columnInfoList = foreignDBMeta.getColumnInfoList();\r
- for (${glColumnInfoName} columnInfo : columnInfoList) {\r
- final String columnDbName = columnInfo.getColumnDbName();\r
- final SelectedSelectColumnInfo selectColumnInfo = new SelectedSelectColumnInfo();\r
- selectColumnInfo.setTableAliasName(foreignTableAliasName);\r
- selectColumnInfo.setColumnName(columnDbName);\r
- selectColumnInfo.setColumnAliasName(columnDbName + nextRelationPath);\r
- resultMap.put(columnDbName, selectColumnInfo);\r
- }\r
- return resultMap;\r
- }\r
-\r
- public static class SelectedSelectColumnInfo {\r
- protected String tableAliasName;\r
- protected String columnName;\r
- protected String columnAliasName;\r
- public String buildRealColumnName() {\r
- if (tableAliasName != null) {\r
- return tableAliasName + "." + columnName;\r
- } else {\r
- return columnName;\r
- }\r
- }\r
- public String getTableAliasName() {\r
- return tableAliasName;\r
- }\r
- public void setTableAliasName(String tableAliasName) {\r
- this.tableAliasName = tableAliasName;\r
- }\r
- public String getColumnName() {\r
- return columnName;\r
- }\r
- public void setColumnName(String columnName) {\r
- this.columnName = columnName;\r
- }\r
- public String getColumnAliasName() {\r
- return columnAliasName;\r
- }\r
- public void setColumnAliasName(String columnAliasName) {\r
- this.columnAliasName = columnAliasName;\r
- }\r
- }\r
- \r
- // ===================================================================================\r
- // IncludedSelectColumn\r
- // ====================\r
- public void ignoreIncludedSelectColumn() {\r
- _isIncludedSelectColumnEffective = false;\r
- }\r
-\r
- public void makeIncludedSelectColumnEffective() {\r
- if (!_includedSelectColumnMap.isEmpty()) {\r
- _isIncludedSelectColumnEffective = true;\r
- }\r
- }\r
-\r
- public void registerIncludedSelectColumn(String aliasName, String realColumnName) {\r
- _isIncludedSelectColumnEffective = true;\r
- _includedSelectColumnMap.put(aliasName, realColumnName);\r
- }\r
-\r
- // ===================================================================================\r
- // OuterJoin\r
- // =========\r
- public void registerOuterJoin(String joinTableName, String aliasName, Map<String, String> joinOnMap) {\r
- assertAlreadyOuterJoin(aliasName);\r
- assertJoinOnMapNotEmpty(joinOnMap, aliasName);\r
- final LeftOuterJoinInfo joinInfo = new LeftOuterJoinInfo();\r
- joinInfo.setAliasName(aliasName);\r
- joinInfo.setJoinTableName(joinTableName);\r
- joinInfo.setJoinOnMap(joinOnMap);\r
- _outerJoinMap.put(aliasName, joinInfo);\r
- }\r
-\r
- protected static class LeftOuterJoinInfo {\r
- protected String _aliasName;\r
- protected String _joinTableName;\r
- protected List<String> _inlineWhereClauseList = new ArrayList<String>();\r
- protected List<String> _additionalOnClauseList = new ArrayList<String>();\r
- protected Map<String, String> _joinOnMap;\r
- protected boolean _onClauseInline;\r
- public String getAliasName() {\r
- return _aliasName;\r
- }\r
- public void setAliasName(String value) {\r
- _aliasName = value;\r
- }\r
- public String getJoinTableName() {\r
- return _joinTableName;\r
- }\r
- public void setJoinTableName(String value) {\r
- _joinTableName = value;\r
- }\r
- public List<String> getInlineWhereClauseList() {\r
- return _inlineWhereClauseList;\r
- }\r
- public void addInlineWhereClause(String value) {\r
- _inlineWhereClauseList.add(value);\r
- }\r
- public List<String> getAdditionalOnClauseList() {\r
- return _additionalOnClauseList;\r
- }\r
- public void addAdditionalOnClause(String value) {\r
- _additionalOnClauseList.add(value);\r
- }\r
- public Map<String, String> getJoinOnMap() {\r
- return _joinOnMap;\r
- }\r
- public void setJoinOnMap(Map<String, String> value) {\r
- _joinOnMap = value;\r
- }\r
- public boolean isOnClauseInline() {\r
- return _onClauseInline;\r
- }\r
- public void setOnClauseInline(boolean value) {\r
- _onClauseInline = value;\r
- }\r
- }\r
-\r
- protected void assertAlreadyOuterJoin(String aliasName) {\r
- if (_outerJoinMap.containsKey(aliasName)) {\r
- String msg = "The alias name have already registered in outer join: " + aliasName;\r
- throw new IllegalStateException(msg);\r
- }\r
- }\r
-\r
- protected void assertJoinOnMapNotEmpty(Map<String, String> joinOnMap, String aliasName) {\r
- if (joinOnMap.isEmpty()) {\r
- String msg = "The joinOnMap should not be empty: aliasName=" + aliasName;\r
- throw new IllegalStateException(msg);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Where\r
- // =====\r
- public void registerWhereClause(String columnFullName, ${glConditionKeyName} key, ${glConditionValueName} value) {\r
- assertStringNotNullAndNotTrimmedEmpty("columnFullName", columnFullName);\r
- key.addWhereClause(_whereList, columnFullName, value);\r
- arrangeWhereListAdditionalConditionAsOr(_whereList);\r
- }\r
-\r
- public void registerWhereClause(String columnFullName, ${glConditionKeyName} key, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option) {\r
- assertStringNotNullAndNotTrimmedEmpty("columnFullName", columnFullName);\r
- assertObjectNotNull("option of " + columnFullName, option);\r
- key.addWhereClause(_whereList, columnFullName, value, option);\r
- arrangeWhereListAdditionalConditionAsOr(_whereList);\r
- }\r
-\r
- public void registerWhereClause(String clause) {\r
- assertStringNotNullAndNotTrimmedEmpty("clause", clause);\r
- _whereList.add(clause);\r
- arrangeWhereListAdditionalConditionAsOr(_whereList);\r
- }\r
-\r
- public void exchangeFirstWhereClauseForLastOne() {\r
- if (_whereList.size() > 1) {\r
- final String first = (String)_whereList.get(0);\r
- final String last = (String)_whereList.get(_whereList.size() - 1);\r
- _whereList.set(0, last);\r
- _whereList.set(_whereList.size() - 1, first);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // InlineWhere\r
- // ===========\r
- public void registerBaseTableInlineWhereClause(String columnName, ${glConditionKeyName} key, ${glConditionValueName} value) {\r
- assertStringNotNullAndNotTrimmedEmpty("columnName", columnName);\r
- key.addWhereClause(_baseTableInlineWhereList, columnName, value);\r
- arrangeWhereListAdditionalConditionAsOr(_baseTableInlineWhereList);\r
- }\r
-\r
- public void registerBaseTableInlineWhereClause(String columnName, ${glConditionKeyName} key, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option) {\r
- assertStringNotNullAndNotTrimmedEmpty("columnName", columnName);\r
- assertObjectNotNull("option of " + columnName, option);\r
- key.addWhereClause(_baseTableInlineWhereList, columnName, value, option);\r
- arrangeWhereListAdditionalConditionAsOr(_baseTableInlineWhereList);\r
- }\r
-\r
- public void registerBaseTableInlineWhereClause(String value) {\r
- _baseTableInlineWhereList.add(value);\r
- }\r
-\r
- public void registerOuterJoinInlineWhereClause(String aliasName, String columnName, ${glConditionKeyName} key, ${glConditionValueName} value, boolean onClauseInline) {\r
- assertNotYetOuterJoin(aliasName);\r
- assertStringNotNullAndNotTrimmedEmpty("columnName", columnName);\r
- final LeftOuterJoinInfo joinInfo = (LeftOuterJoinInfo)_outerJoinMap.get(aliasName);\r
- if (onClauseInline) {\r
- key.addWhereClause(joinInfo.getAdditionalOnClauseList(), aliasName + "." + columnName, value);\r
- } else {\r
- key.addWhereClause(joinInfo.getInlineWhereClauseList(), columnName, value);\r
- }\r
- arrangeWhereListAdditionalConditionAsOr(joinInfo.getInlineWhereClauseList());\r
- }\r
-\r
- public void registerOuterJoinInlineWhereClause(String aliasName, String columnName, ${glConditionKeyName} key, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option, boolean onClauseInline) {\r
- assertNotYetOuterJoin(aliasName);\r
- assertStringNotNullAndNotTrimmedEmpty("columnName", columnName);\r
- final LeftOuterJoinInfo joinInfo = (LeftOuterJoinInfo)_outerJoinMap.get(aliasName);\r
- if (onClauseInline) {\r
- key.addWhereClause(joinInfo.getAdditionalOnClauseList(), aliasName + "." + columnName, value, option);\r
- arrangeWhereListAdditionalConditionAsOr(joinInfo.getAdditionalOnClauseList());\r
- } else {\r
- key.addWhereClause(joinInfo.getInlineWhereClauseList(), columnName, value, option);\r
- arrangeWhereListAdditionalConditionAsOr(joinInfo.getInlineWhereClauseList());\r
- }\r
- }\r
-\r
- public void registerOuterJoinInlineWhereClause(String aliasName, String value, boolean onClauseInline) {\r
- assertNotYetOuterJoin(aliasName);\r
- final LeftOuterJoinInfo joinInfo = (LeftOuterJoinInfo)_outerJoinMap.get(aliasName);\r
- if (onClauseInline) {\r
- joinInfo.addAdditionalOnClause(value);\r
- arrangeWhereListAdditionalConditionAsOr(joinInfo.getAdditionalOnClauseList());\r
- } else {\r
- joinInfo.addInlineWhereClause(value);\r
- arrangeWhereListAdditionalConditionAsOr(joinInfo.getInlineWhereClauseList());\r
- }\r
- }\r
-\r
- protected void assertNotYetOuterJoin(String aliasName) {\r
- if (!_outerJoinMap.containsKey(aliasName)) {\r
- String msg = "The alias name have not registered in outer join yet: " + aliasName;\r
- throw new IllegalStateException(msg);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // AdditionalConditionAsOr\r
- // =======================\r
- public void makeAdditionalConditionAsOrEffective() {\r
- _isAdditionalConditionAsOrEffective = true;\r
- }\r
-\r
- public void ignoreAdditionalConditionAsOr() {\r
- _isAdditionalConditionAsOrEffective = false;\r
- }\r
-\r
- protected void arrangeWhereListAdditionalConditionAsOr(List<String> whereList) {\r
- if (_isAdditionalConditionAsOrEffective) {\r
- if (whereList.size() < 2) {\r
- String msg = "The whereList should have two more elements when the isAdditionalConditionAsOrEffective is true: " + toString();\r
- throw new IllegalStateException(msg);\r
- }\r
- final String lastWhereClause = (String)whereList.remove(whereList.size() - 1);\r
- final String preWhereClause = (String)whereList.remove(whereList.size() - 1);\r
- if (preWhereClause.startsWith("(") && preWhereClause.endsWith(")")) {\r
- final String plainClause = preWhereClause.substring("(".length(), preWhereClause.length() - ")".length());\r
- whereList.add("(" + plainClause + " or " + lastWhereClause + ")");\r
- } else {\r
- whereList.add("(" + preWhereClause + " or " + lastWhereClause + ")");\r
- }\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // OrderBy\r
- // =======\r
- public ${glOrderByClauseName} getSqlComponentOfOrderByClause() {\r
- return _orderByClause;\r
- }\r
-\r
- public ${glSqlClauseInterfaceName} clearOrderBy() {\r
- _isOrderByEffective = false;\r
- _orderByClause.clear();\r
- return this;\r
- }\r
-\r
- public ${glSqlClauseInterfaceName} ignoreOrderBy() {\r
- _isOrderByEffective = false;\r
- return this;\r
- }\r
-\r
- public ${glSqlClauseInterfaceName} makeOrderByEffective() {\r
- if (!_orderByClause.isEmpty()) {\r
- _isOrderByEffective = true;\r
- }\r
- return this;\r
- }\r
-\r
- public void reverseOrderBy_Or_OverrideOrderBy(String orderByProperty, String registeredOrderByProperty, boolean ascOrDesc) {\r
- _isOrderByEffective = true;\r
- if (!_orderByClause.isSameOrderByColumn(orderByProperty)) {\r
- clearOrderBy();\r
- registerOrderBy(orderByProperty, registeredOrderByProperty, ascOrDesc);\r
- } else {\r
- _orderByClause.reverseAll();\r
- }\r
- }\r
-\r
- public void registerOrderBy(String orderByProperty, String registeredOrderByProperty, boolean ascOrDesc) {\r
- try {\r
- _isOrderByEffective = true;\r
- final List<String> orderByList = new ArrayList<String>();\r
- {\r
- final StringTokenizer st = new StringTokenizer(orderByProperty, "/");\r
- while (st.hasMoreElements()) {\r
- orderByList.add(st.nextToken());\r
- }\r
- }\r
-\r
- if (registeredOrderByProperty == null || registeredOrderByProperty.trim().length() ==0) {\r
- registeredOrderByProperty = orderByProperty;\r
- }\r
-\r
- final List<String> registeredOrderByList = new ArrayList<String>();\r
- {\r
- final StringTokenizer st = new StringTokenizer(registeredOrderByProperty, "/");\r
- while (st.hasMoreElements()) {\r
- registeredOrderByList.add(st.nextToken());\r
- }\r
- }\r
-\r
- int count = 0;\r
- for (final Iterator<String> ite = orderByList.iterator(); ite.hasNext(); ) {\r
- String orderBy = ite.next();\r
- String registeredOrderBy = (String)registeredOrderByList.get(count);\r
-\r
- _isOrderByEffective = true;\r
- String aliasName = null;\r
- String columnName = null;\r
- String registeredAliasName = null;\r
- String registeredColumnName = null;\r
-\r
- if (orderBy.indexOf(".") < 0) {\r
- columnName = orderBy;\r
- } else {\r
- aliasName = orderBy.substring(0, orderBy.lastIndexOf("."));\r
- columnName = orderBy.substring(orderBy.lastIndexOf(".") + 1);\r
- }\r
-\r
- if (registeredOrderBy.indexOf(".") < 0) {\r
- registeredColumnName = registeredOrderBy;\r
- } else {\r
- registeredAliasName = registeredOrderBy.substring(0, registeredOrderBy.lastIndexOf("."));\r
- registeredColumnName = registeredOrderBy.substring(registeredOrderBy.lastIndexOf(".") + 1);\r
- }\r
-\r
- ${glOrderByElementName} element = new ${glOrderByElementName}();\r
- element.setAliasName(aliasName);\r
- element.setColumnName(columnName);\r
- element.setRegisteredAliasName(registeredAliasName);\r
- element.setRegisteredColumnName(registeredColumnName);\r
- if (ascOrDesc) {\r
- element.setupAsc();\r
- } else {\r
- element.setupDesc();\r
- }\r
- _orderByClause.addOrderByElement(element);\r
-\r
- count++;\r
- }\r
- } catch (RuntimeException e) {\r
- String msg = "registerOrderBy() threw the exception: orderByProperty=" + orderByProperty;\r
- msg = msg + " registeredColumnFullName=" + registeredOrderByProperty;\r
- msg = msg + " ascOrDesc=" + ascOrDesc;\r
- msg = msg + " sqlClause=" + this.toString();\r
- throw new RuntimeException(msg, e);\r
- }\r
- }\r
- \r
- public void addNullsFirstToPreviousOrderBy() {\r
- _orderByClause.addNullsFirstToPreviousOrderByElement(createOrderByNullsSetupper());\r
- }\r
- \r
- public void addNullsLastToPreviousOrderBy() {\r
- _orderByClause.addNullsLastToPreviousOrderByElement(createOrderByNullsSetupper());\r
- }\r
- \r
- protected ${glOrderByClauseName}.OrderByNullsSetupper createOrderByNullsSetupper() {// As Default\r
- return new ${glOrderByClauseName}.OrderByNullsSetupper() {\r
- public String setup(String columnName, String orderByElementClause, boolean nullsFirst) {\r
- return orderByElementClause + " nulls " + (nullsFirst ? "first" : "last");\r
- }\r
- };\r
- }\r
- \r
- protected ${glOrderByClauseName}.OrderByNullsSetupper createOrderByNullsSetupperByCaseWhen() {// Helper For Nulls Unsupported Database\r
- return new ${glOrderByClauseName}.OrderByNullsSetupper() {\r
- public String setup(String columnName, String orderByElementClause, boolean nullsFirst) {\r
- final String thenNumber = nullsFirst ? "1" : "0";\r
- final String elseNumber = nullsFirst ? "0" : "1";\r
- final String caseWhen = "case when " + columnName + " is not null then " + thenNumber + " else " + elseNumber + " end asc";\r
- return caseWhen + ", " + orderByElementClause;\r
- }\r
- };\r
- }\r
- \r
- // ===================================================================================\r
- // UnionQuery\r
- // ==========\r
- public void registerUnionQuery(String unionQueryClause, boolean unionAll) {\r
- assertStringNotNullAndNotTrimmedEmpty("unionQueryClause", unionQueryClause);\r
- final UnionQueryInfo unionQueryInfo = new UnionQueryInfo();\r
- unionQueryInfo.setUnionQueryClause(unionQueryClause);\r
- unionQueryInfo.setUnionAll(unionAll);\r
- _unionQueryInfoList.add(unionQueryInfo);\r
- }\r
-\r
- protected static class UnionQueryInfo {\r
- protected String _unionQueryClause;\r
- protected boolean _unionAll;\r
- public String getUnionQueryClause() {\r
- return _unionQueryClause;\r
- }\r
- public void setUnionQueryClause(String unionQueryClause) {\r
- _unionQueryClause = unionQueryClause;\r
- }\r
- public boolean isUnionAll() {\r
- return _unionAll;\r
- }\r
- public void setUnionAll(boolean unionAll) {\r
- _unionAll = unionAll;\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // FetchScope\r
- // ==========\r
- /**\r
- * @param fetchSize Fetch-size. (NotMinus & NotZero)\r
- * @return this. (NotNull)\r
- */\r
- public ${glSqlClauseInterfaceName} fetchFirst(int fetchSize) {\r
- _isFetchScopeEffective = true;\r
- if (fetchSize <= 0) {\r
- String msg = "Argument[fetchSize] should be plus: " + fetchSize;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- _fetchStartIndex = 0;\r
- _fetchSize = fetchSize;\r
- _fetchPageNumber = 1;\r
- doClearFetchPageClause();\r
- doFetchFirst();\r
- return this;\r
- }\r
-\r
- /**\r
- * @param fetchStartIndex Fetch-start-index. 0 origin. (NotMinus)\r
- * @param fetchSize Fetch size. (NotMinus)\r
- * @return this. (NotNull)\r
- */\r
- public ${glSqlClauseInterfaceName} fetchScope(int fetchStartIndex, int fetchSize) {\r
- _isFetchScopeEffective = true;\r
- if (fetchStartIndex < 0) {\r
- String msg = "Argument[fetchStartIndex] must be plus or zero: " + fetchStartIndex;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (fetchSize <= 0) {\r
- String msg = "Argument[fetchSize] should be plus: " + fetchSize;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- _fetchStartIndex = fetchStartIndex;\r
- _fetchSize = fetchSize;\r
- return fetchPage(1);\r
- }\r
-\r
- /**\r
- * @param fetchPageNumber Page-number. 1 origin. (NotMinus & NotZero: If minus or zero, set one.)\r
- * @return this. (NotNull)\r
- */\r
- public ${glSqlClauseInterfaceName} fetchPage(int fetchPageNumber) {\r
- _isFetchScopeEffective = true;\r
- if (fetchPageNumber <= 0) {\r
- fetchPageNumber = 1;\r
- }\r
- if (_fetchSize <= 0) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "Fetch size should not be minus or zero!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "When you invoke this method, it is necessary to invoke 'fetchFirst()' or 'fetchScope()' ahead of that. " + getLineSeparator();\r
- msg = msg + "Please confirm your program. Does it really invoke 'fetchPage()' with 'fetchFirst()' or 'fetchScope()'?" + getLineSeparator();\r
- msg = msg + " For example:" + getLineSeparator();\r
- msg = msg + " before (x):" + getLineSeparator();\r
- msg = msg + " XxxCB cb = new XxxCB();" + getLineSeparator();\r
- msg = msg + " cb.fetchPage(3);" + getLineSeparator();\r
- msg = msg + " after (o):" + getLineSeparator();\r
- msg = msg + " XxxCB cb = new XxxCB();" + getLineSeparator();\r
- msg = msg + " cb.fetchFirst(20); // The size of page" + getLineSeparator();\r
- msg = msg + " cb.fetchPage(3); // The number of target page" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Actual Parameter Value]" + getLineSeparator();\r
- msg = msg + "fetchSize=" + _fetchSize + getLineSeparator();\r
- msg = msg + "fetchPageNumber=" + fetchPageNumber + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */" + getLineSeparator();\r
- throw new IllegalStateException(msg);\r
- }\r
- _fetchPageNumber = fetchPageNumber;\r
- if (_fetchPageNumber == 1 && _fetchStartIndex == 0) {\r
- return fetchFirst(_fetchSize);\r
- }\r
- doClearFetchPageClause();\r
- doFetchPage();\r
- return this;\r
- }\r
-\r
- abstract protected void doFetchFirst();\r
- abstract protected void doFetchPage();\r
- abstract protected void doClearFetchPageClause();\r
-\r
- public int getFetchStartIndex() {\r
- return _fetchStartIndex;\r
- }\r
-\r
- public int getFetchSize() {\r
- return _fetchSize;\r
- }\r
-\r
- public int getFetchPageNumber() {\r
- return _fetchPageNumber;\r
- }\r
-\r
- /**\r
- * @return Page start index. 0 origin. (NotMinus)\r
- */\r
- public int getPageStartIndex() {\r
- if (_fetchPageNumber <= 0) {\r
- String msg = "_fetchPageNumber must be plus: " + _fetchPageNumber;\r
- throw new IllegalStateException(msg);\r
- }\r
- return _fetchStartIndex + (_fetchSize * (_fetchPageNumber - 1));\r
- }\r
-\r
- /**\r
- * @return Page end index. 0 origin. (NotMinus)\r
- */\r
- public int getPageEndIndex() {\r
- if (_fetchPageNumber <= 0) {\r
- String msg = "_fetchPageNumber must be plus: " + _fetchPageNumber;\r
- throw new IllegalStateException(msg);\r
- }\r
- return _fetchStartIndex + (_fetchSize * _fetchPageNumber);\r
- }\r
-\r
- public boolean isFetchScopeEffective() {\r
- return _isFetchScopeEffective;\r
- }\r
-\r
- public ${glSqlClauseInterfaceName} ignoreFetchScope() {\r
- _isFetchScopeEffective = false;\r
- doClearFetchPageClause();\r
- return this;\r
- }\r
-\r
- public ${glSqlClauseInterfaceName} makeFetchScopeEffective() {\r
- if (getFetchSize() > 0 && getFetchPageNumber() > 0) {\r
- fetchPage(getFetchPageNumber());\r
- }\r
- return this;\r
- }\r
- \r
- public boolean isFetchStartIndexSupported() {\r
- return true; // Default\r
- }\r
-\r
- public boolean isFetchSizeSupported() {\r
- return true; // Default\r
- }\r
-\r
- abstract protected String createSelectHint();\r
- abstract protected String createFromBaseTableHint();\r
- abstract protected String createFromHint();\r
- abstract protected String createSqlSuffix();\r
-\r
- // ===================================================================================\r
- // Fetch Narrowing\r
- // ===============\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Fetch-narrowing start-index.\r
- */\r
- public int getFetchNarrowingSkipStartIndex() {\r
- return getPageStartIndex();\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Fetch-narrowing size.\r
- */\r
- public int getFetchNarrowingLoopCount() {\r
- return getFetchSize();\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Determination.\r
- */\r
- public boolean isFetchNarrowingEffective() {\r
- return _isFetchScopeEffective;\r
- }\r
-\r
- // ===================================================================================\r
- // Resolver\r
- // ========\r
- public String resolveJoinAliasName(String relationPath, int cqNestNo) {\r
- return resolveNestLevelExpression("dfrelation" + relationPath, cqNestNo);\r
- }\r
-\r
- public String resolveNestLevelExpression(String name, int cqNestNo) {\r
- // if (cqNestNo > 1) {\r
- // return name + "_n" + cqNestNo;\r
- // } else {\r
- // return name;\r
- // }\r
- return name;\r
- }\r
-\r
- public int resolveRelationNo(String localTableName, String foreignPropertyName) {\r
- final ${glDBMetaInterfaceName} dbmeta = ${glDBMetaInstanceHandlerName}.findDBMeta(localTableName);\r
- final ${glForeignInfoName} foreignInfo = dbmeta.findForeignInfo(foreignPropertyName);\r
- return foreignInfo.getRelationNo();\r
- }\r
-\r
- // ===================================================================================\r
- // Table Alias Info\r
- // ================\r
- public String getLocalTableAliasName() {\r
- return "dflocal";\r
- }\r
- \r
- public String getForeignTableAliasPrefix() {\r
- return "dfrelation";\r
- }\r
-\r
- // ===================================================================================\r
- // Template Mark\r
- // =============\r
- public String getWhereClauseMark() {\r
- return "#df:whereClause#";\r
- }\r
- \r
- public String getWhereFirstConditionMark() {\r
- return "#df:whereFirstCondition#";\r
- }\r
- \r
- public String getUnionSelectClauseMark() {\r
- return "#df:unionSelectClause#";\r
- }\r
- \r
- public String getUnionWhereClauseMark() {\r
- return "#df:unionWhereClause#";\r
- }\r
- \r
- public String getUnionWhereFirstConditionMark() {\r
- return "#df:unionWhereFirstCondition#";\r
- }\r
- \r
- // =====================================================================================\r
- // Where Clause Simple Filter\r
- // ==========================\r
- public void addWhereClauseSimpleFilter(${glWhereClauseSimpleFilterInterfaceName} whereClauseSimpleFilter) {\r
- if (_whereClauseSimpleFilterList == null) {\r
- _whereClauseSimpleFilterList = new ArrayList<${glWhereClauseSimpleFilterInterfaceName}>();\r
- }\r
- _whereClauseSimpleFilterList.add(whereClauseSimpleFilter);\r
- }\r
-\r
- protected String filterWhereClauseSimply(String clauseElement) {\r
- if (_whereClauseSimpleFilterList == null || _whereClauseSimpleFilterList.isEmpty()) {\r
- return clauseElement;\r
- }\r
- for (final Iterator<${glWhereClauseSimpleFilterInterfaceName}> ite = _whereClauseSimpleFilterList.iterator(); ite.hasNext(); ) {\r
- final ${glWhereClauseSimpleFilterInterfaceName} filter = ite.next();\r
- if (filter == null) {\r
- String msg = "The list of filter should not have null: _whereClauseSimpleFilterList=" + _whereClauseSimpleFilterList;\r
- throw new IllegalStateException(msg);\r
- }\r
- clauseElement = filter.filterClauseElement(clauseElement);\r
- }\r
- return clauseElement;\r
- }\r
- \r
- // =====================================================================================\r
- // Selected Foreign Info\r
- // =====================\r
- public boolean isSelectedForeignInfoEmpty() {\r
- if (_selectedForeignInfo == null) {\r
- return true;\r
- }\r
- return _selectedForeignInfo.isEmpty();\r
- }\r
-\r
- public boolean hasSelectedForeignInfo(String relationPath) {\r
- if (_selectedForeignInfo == null) {\r
- return false;\r
- }\r
- return _selectedForeignInfo.containsKey(relationPath);\r
- }\r
-\r
- public void registerSelectedForeignInfo(String relationPath, String foreignPropertyName) {\r
- if (_selectedForeignInfo == null) {\r
- _selectedForeignInfo = new HashMap<String, String>();\r
- }\r
- _selectedForeignInfo.put(relationPath, foreignPropertyName);\r
- }\r
- \r
- // ===================================================================================\r
- // Format Clause\r
- // =============\r
- public boolean isFormatClauseEffective() {\r
- return _formatClause;\r
- }\r
- \r
- public void makeFormatClauseEffective() {\r
- _formatClause = true;\r
- }\r
-\r
- // ===================================================================================\r
- // Sub Query Indent\r
- // ================\r
- public String resolveSubQueryBeginMark(String subQueryIdentity) {\r
- return getSubQueryBeginMarkPrefix() + subQueryIdentity + getSubQueryIdentityTerminal();\r
- }\r
-\r
- public String resolveSubQueryEndMark(String subQueryIdentity) {\r
- return getSubQueryEndMarkPrefix() + subQueryIdentity + getSubQueryIdentityTerminal();\r
- }\r
-\r
- protected String getSubQueryBeginMarkPrefix() {\r
- return "--df:SubQueryBegin#";\r
- }\r
-\r
- protected String getSubQueryEndMarkPrefix() {\r
- return "--df:SubQueryEnd#";\r
- }\r
- \r
- protected String getSubQueryIdentityTerminal() {\r
- return "#IdentityTerminal#";\r
- }\r
-\r
- public String filterSubQueryIndent(String sql) {\r
- return isFormatClauseEffective() ? filterSubQueryIndent(sql, "") : sql;\r
- }\r
-\r
- protected String filterSubQueryIndent(String sql, String preIndent) {\r
- if (!isFormatClauseEffective()) {\r
- return sql;\r
- }\r
- final String lineSeparator = getLineSeparator();\r
- if (!sql.contains(getSubQueryBeginMarkPrefix())) {\r
- return sql;\r
- }\r
- final String[] lines = sql.split(lineSeparator);\r
- final String beginMarkPrefix = getSubQueryBeginMarkPrefix();\r
- final String endMarkPrefix = getSubQueryEndMarkPrefix();\r
- final String identityTerminal = getSubQueryIdentityTerminal();\r
- final int terminalLength = identityTerminal.length();\r
- StringBuilder mainSb = new StringBuilder();\r
- StringBuilder subSb = null;\r
- boolean throughBegin = false;\r
- boolean throughBeginFirst = false;\r
- String subQueryIdentity = null;\r
- String indent = null;\r
- for (String line : lines) {\r
- if (!throughBegin) {\r
- if (line.contains(beginMarkPrefix)) {\r
- throughBegin = true;\r
- subSb = new StringBuilder();\r
- final int markIndex = line.indexOf(beginMarkPrefix);\r
- final int terminalIndex = line.indexOf(identityTerminal);\r
- if (terminalIndex < 0) {\r
- String msg = "Identity terminal was Not Found at the begin line: [" + line + "]";\r
- throw new SubQueryIndentFailureException(msg);\r
- }\r
- final String clause = line.substring(0, markIndex) + line.substring(terminalIndex + terminalLength);\r
- subQueryIdentity = line.substring(markIndex + beginMarkPrefix.length(), terminalIndex);\r
- subSb.append(clause);\r
- indent = buildSpaceBar(markIndex - preIndent.length());\r
- } else {\r
- mainSb.append(line).append(getLineSeparator());\r
- }\r
- } else {\r
- // - - - - - - - -\r
- // In begin to end\r
- // - - - - - - - -\r
- if (line.contains(endMarkPrefix + subQueryIdentity)) {// The end\r
- final int markIndex = line.indexOf(endMarkPrefix);\r
- final int terminalIndex = line.indexOf(identityTerminal);\r
- if (terminalIndex < 0) {\r
- String msg = "Identity terminal was Not Found at the begin line: [" + line + "]";\r
- throw new SubQueryIndentFailureException(msg);\r
- }\r
- final String clause = line.substring(0, markIndex) + line.substring(terminalIndex + terminalLength);\r
- subSb.append(clause).append(getLineSeparator());\r
- final String currentSql = filterSubQueryIndent(subSb.toString(), preIndent + indent);\r
- mainSb.append(currentSql);\r
- throughBegin = false;\r
- throughBeginFirst = false;\r
- } else {\r
- if (!throughBeginFirst) {\r
- subSb.append(line.trim()).append(getLineSeparator());\r
- throughBeginFirst = true;\r
- } else {\r
- subSb.append(indent).append(line).append(getLineSeparator());\r
- }\r
- }\r
- }\r
- }\r
- final String filteredSql = mainSb.toString();\r
- \r
- if (throughBegin) {\r
- String msg = "End Mark Not Found!";\r
- msg = msg + getLineSeparator() + "[Current SubQueryIdentity]" + getLineSeparator();\r
- msg = msg + subQueryIdentity + getLineSeparator();\r
- msg = msg + getLineSeparator() + "[Before Filter]" + getLineSeparator();\r
- msg = msg + sql + getLineSeparator();\r
- msg = msg + getLineSeparator() + "[After Filter]" + getLineSeparator() + filteredSql;\r
- throw new SubQueryIndentFailureException(msg);\r
- }\r
- if (filteredSql.contains(beginMarkPrefix)) {\r
- String msg = "Any begin marks are not filtered!";\r
- msg = msg + getLineSeparator() + "[Current SubQueryIdentity]" + getLineSeparator();\r
- msg = msg + subQueryIdentity + getLineSeparator();\r
- msg = msg + getLineSeparator() + "[Before Filter]" + getLineSeparator();\r
- msg = msg + sql + getLineSeparator();\r
- msg = msg + getLineSeparator() + "[After Filter]" + getLineSeparator() + filteredSql;\r
- throw new SubQueryIndentFailureException(msg);\r
- }\r
- return filteredSql;\r
- }\r
- \r
- protected String buildSpaceBar(int size) {\r
- final StringBuilder sb = new StringBuilder();\r
- for (int i = 0; i < size; i++) {\r
- sb.append(" ");\r
- }\r
- return sb.toString();\r
- }\r
- \r
- public static class SubQueryIndentFailureException extends RuntimeException {\r
- private static final long serialVersionUID = 1L;\r
- public SubQueryIndentFailureException(String msg) {\r
- super(msg);\r
- }\r
- }\r
-\r
- // [DBFlute-0.7.4]\r
- // ===================================================================================\r
- // Specification\r
- // =============\r
- public void specifySelectColumn(String tableAliasName, String columnName) {\r
- if (_specifiedSelectColumnMap == null) {\r
- _specifiedSelectColumnMap = new HashMap<String, Map<String, String>>();\r
- }\r
- if (!_specifiedSelectColumnMap.containsKey(tableAliasName)) {\r
- _specifiedSelectColumnMap.put(tableAliasName, new HashMap<String, String>());\r
- }\r
- Map<String, String> elementMap = _specifiedSelectColumnMap.get(tableAliasName);\r
- elementMap.put(columnName, null); // The value is dummy for extension at the future.\r
- _specifiedSelectColumnMap.put(tableAliasName, elementMap);\r
- }\r
-\r
- public void specifyDeriveSubQuery(String aliasName, String deriveSubQuery) {\r
- if (_specifiedDeriveSubQueryMap == null) {\r
- _specifiedDeriveSubQueryMap = new LinkedHashMap<String, String>();\r
- }\r
- _specifiedDeriveSubQueryMap.put(aliasName, deriveSubQuery);\r
- }\r
-\r
- public boolean hasSpecifiedDeriveSubQuery(String aliasName) {\r
- if (_specifiedDeriveSubQueryMap == null) { return false; }\r
- return _specifiedDeriveSubQueryMap.containsKey(aliasName);\r
- }\r
-\r
- public String getSpecifiedColumnNameAsOne() {\r
- if (_specifiedSelectColumnMap != null && _specifiedSelectColumnMap.size() == 1) {\r
- Map<String, String> elementMap = _specifiedSelectColumnMap.get(_specifiedSelectColumnMap.keySet().iterator().next());\r
- if (elementMap != null && elementMap.size() == 1) {\r
- return elementMap.keySet().iterator().next();\r
- }\r
- }\r
- return null;\r
- }\r
-\r
- public void clearSpecifiedSelectColumn() {\r
- if (_specifiedSelectColumnMap != null) { _specifiedSelectColumnMap.clear(); _specifiedSelectColumnMap = null; }\r
- }\r
-\r
- // [DBFlute-0.7.5]\r
- // ===================================================================================\r
- // Query Update\r
- // ============\r
- public String getClauseQueryUpdate(Map<String, String> columnParameterMap) {\r
- if (columnParameterMap.isEmpty()) {\r
- return null;\r
- }\r
- final String aliasName = getLocalTableAliasName();\r
- final ${glDBMetaInterfaceName} dbmeta = findDBMeta();\r
- if (dbmeta.hasTwoOrMorePrimaryKeys()) {\r
- String msg = "The target table of queryUpdate() should have only one primary key:";\r
- msg = msg + " primaryKeys=" + dbmeta.getPrimaryUniqueInfo().getUniqueColumnList();\r
- throw new IllegalStateException(msg);\r
- }\r
- final String primaryKeyName = dbmeta.getPrimaryUniqueInfo().getFirstColumn().getColumnDbName();\r
- final String selectClause = "select " + aliasName + "." + primaryKeyName;\r
- String fromWhereClause = getClauseFromWhereWithUnionTemplate();\r
-\r
- // Replace template marks. These are very important!\r
- fromWhereClause = replaceString(fromWhereClause, getUnionSelectClauseMark(), selectClause);\r
- fromWhereClause = replaceString(fromWhereClause, getUnionWhereClauseMark(), "");\r
- fromWhereClause = replaceString(fromWhereClause, getUnionWhereFirstConditionMark(), "");\r
-\r
- final StringBuilder sb = new StringBuilder();\r
- String ln = "";\r
- if (isFormatClauseEffective()) {\r
- ln = getLineSeparator();\r
- }\r
- sb.append("update ").append(_tableName).append(ln);\r
- int index = 0;\r
- // It is guaranteed that the map has one or more elements.\r
- for (String columnName : columnParameterMap.keySet()) {\r
- final String parameter = columnParameterMap.get(columnName); \r
- if (index == 0) {\r
- sb.append(" set ").append(columnName).append(" = ").append(parameter).append(ln);\r
- } else {\r
- sb.append(" , ").append(columnName).append(" = ").append(parameter).append(ln);\r
- }\r
- ++index;\r
- }\r
- if (isUpdateSubQueryUseLocalTableSupported()) {\r
- final String subQuery = filterSubQueryIndent(selectClause + " " + fromWhereClause);\r
- sb.append(" where ").append(primaryKeyName);\r
- sb.append(" in (").append(ln).append(subQuery).append(ln).append(")");\r
- return sb.toString();\r
- } else {\r
- String subQuery = filterSubQueryIndent(fromWhereClause);\r
- subQuery = replaceString(subQuery, aliasName + ".", "");\r
- subQuery = replaceString(subQuery, " " + aliasName + " ", " ");\r
- subQuery = subQuery.substring(subQuery.indexOf("where "));\r
- sb.append(" ").append(subQuery);\r
- return sb.toString();\r
- }\r
- }\r
-\r
- public String getClauseQueryDelete() {\r
- final String aliasName = getLocalTableAliasName();\r
- final ${glDBMetaInterfaceName} dbmeta = findDBMeta();\r
- if (dbmeta.hasTwoOrMorePrimaryKeys()) {\r
- String msg = "The target table of queryDelete() should have only one primary key:";\r
- msg = msg + " primaryKeys=" + dbmeta.getPrimaryUniqueInfo().getUniqueColumnList();\r
- throw new IllegalStateException(msg);\r
- }\r
- final String primaryKeyName = dbmeta.getPrimaryUniqueInfo().getFirstColumn().getColumnDbName();\r
- final String selectClause = "select " + aliasName + "." + primaryKeyName;\r
- String fromWhereClause = getClauseFromWhereWithUnionTemplate();\r
- \r
- // Replace template marks. These are very important!\r
- fromWhereClause = replaceString(fromWhereClause, getUnionSelectClauseMark(), selectClause);\r
- fromWhereClause = replaceString(fromWhereClause, getUnionWhereClauseMark(), "");\r
- fromWhereClause = replaceString(fromWhereClause, getUnionWhereFirstConditionMark(), "");\r
- \r
- if (isUpdateSubQueryUseLocalTableSupported()) {\r
- final String subQuery = filterSubQueryIndent(selectClause + " " + fromWhereClause);\r
- final StringBuilder sb = new StringBuilder();\r
- String ln = "";\r
- if (isFormatClauseEffective()) {\r
- ln = getLineSeparator();\r
- }\r
- sb.append("delete from ").append(_tableName).append(ln);\r
- sb.append(" where ").append(primaryKeyName);\r
- sb.append(" in (").append(ln).append(subQuery).append(ln).append(")");\r
- return sb.toString();\r
- } else {\r
- String subQuery = filterSubQueryIndent(fromWhereClause);\r
- subQuery = replaceString(subQuery, aliasName + ".", "");\r
- subQuery = replaceString(subQuery, " " + aliasName + " ", " ");\r
- subQuery = subQuery.substring(subQuery.indexOf("from "));\r
- return "delete " + subQuery;\r
- }\r
- }\r
-\r
- protected boolean isUpdateSubQueryUseLocalTableSupported() {\r
- return true;\r
- }\r
-\r
- // [DBFlute-0.7.7]\r
- // ===================================================================================\r
- // Unique Constraint\r
- // =================\r
- public boolean isUniqueConstraintException(String sqlState, Integer errorCode) {\r
- return false;\r
- }\r
- \r
- // [DBFlute-0.7.5]\r
- // ===================================================================================\r
- // Assist Helper\r
- // =============\r
- protected ${glDBMetaInterfaceName} findDBMeta() {\r
- return ${glDBMetaInstanceHandlerName}.findDBMeta(_tableName); \r
- }\r
- \r
- // ===================================================================================\r
- // General Helper\r
- // ==============\r
- protected String replaceString(String text, String fromText, String toText) {\r
- return ${glSimpleStringUtil}.replace(text, fromText, toText);\r
- }\r
- \r
- protected String getLineSeparator() {\r
- return ${glSimpleSystemUtil}.getLineSeparator();\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Assert Object\r
- // -------------\r
- protected void assertObjectNotNull(String variableName, Object value) {\r
- ${glSimpleAssertUtil}.assertObjectNotNull(variableName, value);\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Assert String\r
- // -------------\r
- protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, String value) {\r
- ${glSimpleAssertUtil}.assertStringNotNullAndNotTrimmedEmpty(variableName, value);\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonSqlClause};\r
-\r
-#set ($myClassName = "${glOrderByClauseName}")\r
-import java.io.Serializable;\r
-import java.util.Map;\r
-import java.util.List;\r
-import java.util.ArrayList;\r
-import java.util.Iterator;\r
-import java.util.StringTokenizer;\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} implements Serializable {\r
-\r
- /** Serial version UID. (Default) */\r
- private static final long serialVersionUID = 1L;\r
-\r
- // =====================================================================================\r
- // Attribute\r
- // =========\r
- protected List<${glOrderByElementName}> _orderByList = new ArrayList<${glOrderByElementName}>();\r
-\r
- // =====================================================================================\r
- // Constructor\r
- // ===========\r
- /**\r
- * Constructor.\r
- */\r
- public ${myClassName}() {\r
- }\r
-\r
- // =====================================================================================\r
- // Manipulation\r
- // ============\r
- /**\r
- * Add order-by element.\r
- * @param orderByElement Order-by element. (NotNull)\r
- */\r
- public void addOrderByElement(${glOrderByElementName} orderByElement) {\r
- _orderByList.add(orderByElement);\r
- }\r
-\r
- /**\r
- * Insert first order-by element .\r
- * @param orderByElement Order-by element. (NotNull)\r
- */\r
- public void insertFirstOrderByElement(${glOrderByElementName} orderByElement) {\r
- _orderByList.add(0, orderByElement);\r
- }\r
-\r
- public void reverseAll() {\r
- for (Iterator<${glOrderByElementName}> ite = _orderByList.iterator(); ite.hasNext(); ) {\r
- ite.next().reverse();\r
- }\r
- }\r
-\r
- public void exchangeFirstOrderByElementForLastOne() {\r
- if (_orderByList.size() > 1) {\r
- final ${glOrderByElementName} first = _orderByList.get(0);\r
- final ${glOrderByElementName} last = _orderByList.get(_orderByList.size() - 1);\r
- _orderByList.set(0, last);\r
- _orderByList.set(_orderByList.size() - 1, first);\r
- }\r
- }\r
- \r
- public void addNullsFirstToPreviousOrderByElement(OrderByNullsSetupper filter) {\r
- if (_orderByList.isEmpty()) {\r
- return;\r
- }\r
- final ${glOrderByElementName} last = _orderByList.get(_orderByList.size() - 1);\r
- last.setOrderByNullsSetupper(filter, true);\r
- }\r
- \r
- public void addNullsLastToPreviousOrderByElement(OrderByNullsSetupper filter) {\r
- if (_orderByList.isEmpty()) {\r
- return;\r
- }\r
- final ${glOrderByElementName} last = _orderByList.get(_orderByList.size() - 1);\r
- last.setOrderByNullsSetupper(filter, false);\r
- }\r
- \r
- public static interface OrderByNullsSetupper {\r
- public String setup(String columnName, String orderByElementClause, boolean nullsFirst);\r
- }\r
-\r
- // =====================================================================================\r
- // Order-By Expression\r
- // ===================\r
- public List<${glOrderByElementName}> getOrderByList() {\r
- return _orderByList;\r
- }\r
-\r
- public String getOrderByClause() {\r
- return getOrderByClause(null);\r
- }\r
-\r
- public String getOrderByClause(Map<String, String> selectClauseRealColumnAliasMap) {\r
- if (_orderByList.isEmpty()) {\r
- return "";\r
- }\r
- final StringBuffer sb = new StringBuffer();\r
- final String delimiter = ", ";\r
- for (final Iterator<${glOrderByElementName}> ite = _orderByList.iterator(); ite.hasNext(); ) {\r
- final ${glOrderByElementName} element = ite.next();\r
- sb.append(delimiter);\r
- if (selectClauseRealColumnAliasMap != null) {\r
- sb.append(element.getElementClause(selectClauseRealColumnAliasMap));\r
- } else {\r
- sb.append(element.getElementClause());\r
- }\r
- }\r
- sb.delete(0, delimiter.length()).insert(0, "order by ");\r
- return sb.toString();\r
- }\r
-\r
- public boolean isSameOrderByColumn(String orderByProperty) {\r
- final List<String> orderByList = new ArrayList<String>();\r
- {\r
- final StringTokenizer st = new StringTokenizer(orderByProperty, "/");\r
- while (st.hasMoreElements()) {\r
- orderByList.add(st.nextToken());\r
- }\r
- }\r
- if (_orderByList.size() != orderByList.size()) {\r
- return false;\r
- }\r
- int count = 0;\r
- for (final Iterator<String> ite = orderByList.iterator(); ite.hasNext(); ) {\r
- final String columnFullName = ite.next();\r
- final ${glOrderByElementName} element = (${glOrderByElementName})_orderByList.get(count);\r
- if (!element.getColumnFullName().equals(columnFullName)) {\r
- return false;\r
- }\r
- count++;\r
- }\r
- return true;\r
- }\r
-\r
- // =====================================================================================\r
- // First Element\r
- // =============\r
- public boolean isFirstElementAsc() {\r
- if (isEmpty()) {\r
- String msg = "This order-by clause is empty: " + toString();\r
- throw new IllegalStateException(msg);\r
- }\r
- final ${glOrderByElementName} element = (${glOrderByElementName})_orderByList.get(0);\r
- return element.isAsc();\r
- }\r
-\r
- public boolean isFirstElementDesc() {\r
- return !isFirstElementAsc();\r
- }\r
-\r
- public boolean isSameAsFirstElementAliasName(String expectedAliasName) {\r
- if (isEmpty()) {\r
- String msg = "This order-by clause is empty: " + toString();\r
- throw new RuntimeException(msg);\r
- }\r
- ${glOrderByElementName} element = (${glOrderByElementName})_orderByList.get(0);\r
- String actualAliasName = element.getAliasName();\r
- if (actualAliasName != null && expectedAliasName != null) {\r
- return actualAliasName.equalsIgnoreCase(expectedAliasName);\r
- } else {\r
- return false;\r
- }\r
- }\r
-\r
- /**\r
- * @param expectedColumnName Expected column-name. (Nullable)\r
- * @return Determination.\r
- */\r
- public boolean isSameAsFirstElementColumnName(String expectedColumnName) {\r
- if (isEmpty()) {\r
- String msg = "This order-by clause is empty: " + toString();\r
- throw new RuntimeException(msg);\r
- }\r
- ${glOrderByElementName} element = (${glOrderByElementName})_orderByList.get(0);\r
- String actualColumnName = element.getColumnName();\r
- if (actualColumnName != null && expectedColumnName != null) {\r
- return actualColumnName.equalsIgnoreCase(expectedColumnName);\r
- } else {\r
- return false;\r
- }\r
- }\r
-\r
- /**\r
- * @param expectedAliasName Expected alias-name. (Nullable)\r
- * @return Determination.\r
- */\r
- public boolean isSameAsFirstElementRegisteredAliasName(String expectedAliasName) {\r
- if (isEmpty()) {\r
- String msg = "This order-by clause is empty: " + toString();\r
- throw new RuntimeException(msg);\r
- }\r
- ${glOrderByElementName} element = (${glOrderByElementName})_orderByList.get(0);\r
- String actualAliasName = element.getRegisteredAliasName();\r
- if (actualAliasName != null && expectedAliasName != null) {\r
- return actualAliasName.equalsIgnoreCase(expectedAliasName);\r
- } else {\r
- return false;\r
- }\r
- }\r
-\r
- /**\r
- * @param expectedColumnName Expected column-name. (Nullable)\r
- * @return Determination.\r
- */\r
- public boolean isSameAsFirstElementRegisteredColumnName(String expectedColumnName) {\r
- if (isEmpty()) {\r
- String msg = "This order-by clause is empty: " + toString();\r
- throw new RuntimeException(msg);\r
- }\r
- ${glOrderByElementName} element = (${glOrderByElementName})_orderByList.get(0);\r
- String actualColumnName = element.getRegisteredColumnName();\r
- if (actualColumnName != null && expectedColumnName != null) {\r
- return actualColumnName.equalsIgnoreCase(expectedColumnName);\r
- } else {\r
- return false;\r
- }\r
- }\r
-\r
- // =====================================================================================\r
- // Delegate of List\r
- // ================\r
- /**\r
- * Is empty?\r
- * @return Determination.\r
- */\r
- public boolean isEmpty() {\r
- return _orderByList.isEmpty();\r
- }\r
-\r
- /**\r
- * Get iterator of order-by list.\r
- * @return Determination.\r
- */\r
- public Iterator<${glOrderByElementName}> iterator() {\r
- return _orderByList.iterator();\r
- }\r
-\r
- /**\r
- * Clear order-by list.\r
- */\r
- public void clear() {\r
- _orderByList.clear();\r
- }\r
-\r
- // =====================================================================================\r
- // Basic Override\r
- // ==============\r
- /**\r
- * This method overrides the method that is declared at super.\r
- * @return The view string of all-columns value. (NotNUll)\r
- */\r
- public String toString() {\r
- return _orderByList.toString();\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonSqlClause};\r
-\r
-#set ($myClassName = "${glOrderByElementName}")\r
-import java.io.Serializable;\r
-import java.util.Map;\r
-\r
-import ${glPackageBaseCommonUtil}.${glSimpleSystemUtil};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} implements Serializable {\r
-\r
- /** Serial version UID. (Default) */\r
- private static final long serialVersionUID = 1L;\r
-\r
- // =====================================================================================\r
- // Attribute\r
- // =========\r
- /** The value of alias name. */\r
- protected String _aliasName;\r
-\r
- /** The value of column name. */\r
- protected String _columnName;\r
-\r
- /** The value of registered alias name. */\r
- protected String _registeredAliasName;\r
-\r
- /** The value of registered column name. */\r
- protected String _registeredColumnName;\r
-\r
- /** The value of ascDesc. */\r
- protected String _ascDesc = "asc";\r
- \r
- /** The setupper of order-by nulls. */\r
- protected ${glOrderByClauseName}.OrderByNullsSetupper _orderByNullsSetupper;\r
- \r
- /** Is nulls ordered first? */\r
- protected boolean _nullsFirst;\r
-\r
- // =====================================================================================\r
- // Manipulation\r
- // ============\r
- public void setupAsc() {\r
- _ascDesc = "asc";\r
- }\r
-\r
- public void setupDesc() {\r
- _ascDesc = "desc";\r
- }\r
-\r
- public void reverse() {\r
- if (_ascDesc == null) {\r
- String msg = "The attribute[ascDesc] should not be null.";\r
- throw new IllegalStateException(msg);\r
- }\r
- if (_ascDesc.equals("asc")) {\r
- _ascDesc = "desc";\r
- } else if (_ascDesc.equals("desc")) {\r
- _ascDesc = "asc";\r
- } else {\r
- String msg = "The attribute[ascDesc] should be asc or desc: but ascDesc=" + _ascDesc;\r
- throw new IllegalStateException(msg);\r
- }\r
- }\r
-\r
- // =====================================================================================\r
- // Order-By Expression\r
- // ===================\r
- public boolean isAsc() {\r
- if (_ascDesc == null) {\r
- String msg = "The attribute[ascDesc] should not be null.";\r
- throw new IllegalStateException(msg);\r
- }\r
- if (_ascDesc.equals("asc")) {\r
- return true;\r
- } else if (_ascDesc.equals("desc")) {\r
- return false;\r
- } else {\r
- String msg = "The attribute[ascDesc] should be asc or desc: but ascDesc=" + _ascDesc;\r
- throw new IllegalStateException(msg);\r
- }\r
- }\r
-\r
- public String getColumnFullName() {\r
- final StringBuilder sb = new StringBuilder();\r
- if (_aliasName != null) {\r
- sb.append(_aliasName).append(".");\r
- }\r
- if (_columnName == null) {\r
- String msg = "The attribute[columnName] should not be null.";\r
- throw new IllegalStateException(msg);\r
- }\r
- sb.append(_columnName);\r
- return sb.toString();\r
- }\r
-\r
- public String getElementClause() {\r
- if (_ascDesc == null) {\r
- String msg = "The attribute[ascDesc] should not be null.";\r
- throw new IllegalStateException(msg);\r
- }\r
- final StringBuilder sb = new StringBuilder();\r
- sb.append(getColumnFullName()).append(" ").append(_ascDesc);\r
- if (_orderByNullsSetupper != null) {\r
- return _orderByNullsSetupper.setup(getColumnFullName(), sb.toString(), _nullsFirst);\r
- } else {\r
- return sb.toString();\r
- }\r
- }\r
-\r
- public String getElementClause(Map<String, String> selectClauseRealColumnAliasMap) {\r
- if (selectClauseRealColumnAliasMap == null) {\r
- String msg = "The argument[selectClauseRealColumnAliasMap] should not be null.";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (_ascDesc == null) {\r
- String msg = "The attribute[ascDesc] should not be null.";\r
- throw new IllegalStateException(msg);\r
- }\r
- final StringBuilder sb = new StringBuilder();\r
- final String columnAlias = selectClauseRealColumnAliasMap.get(getColumnFullName());\r
- if (columnAlias == null || columnAlias.trim().length() == 0) {\r
- throwOrderByColumnNotFoundException(getColumnFullName(), selectClauseRealColumnAliasMap);\r
- }\r
- sb.append(columnAlias).append(" ").append(_ascDesc);\r
- if (_orderByNullsSetupper != null) {\r
- return _orderByNullsSetupper.setup(columnAlias, sb.toString(), _nullsFirst);\r
- } else {\r
- return sb.toString();\r
- }\r
- }\r
-\r
- protected void throwOrderByColumnNotFoundException(String columnName, Map<String, String> selectClauseRealColumnAliasMap) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The column for order-by was Not Found in select-clause!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "If you use 'union()' or 'unionAll()', Check your condition-bean!" + getLineSeparator();\r
- msg = msg + "Order-by for union can use only columns on select-clause." + getLineSeparator();\r
- msg = msg + "So the rule when using union is little difference from the one when NOT using." + getLineSeparator();\r
- msg = msg + " For example:" + getLineSeparator();\r
- msg = msg + " [before (x)]" + getLineSeparator();\r
- msg = msg + " AaaCB cb = new AaaCB();" + getLineSeparator();\r
- msg = msg + " cb.query().setXxx...();" + getLineSeparator();\r
- msg = msg + " {" + getLineSeparator();\r
- msg = msg + " AaaCB unionCB = new AaaCB();" + getLineSeparator();\r
- msg = msg + " unionCB.query().setXxx...();" + getLineSeparator();\r
- msg = msg + " cb.union(unionCB.query());" + getLineSeparator();\r
- msg = msg + " }" + getLineSeparator();\r
- msg = msg + " cb.query().queryBbb().addOrderBy_BbbName_Asc();// *NG!" + getLineSeparator();\r
- msg = msg + " " + getLineSeparator();\r
- msg = msg + " [after (o)]" + getLineSeparator();\r
- msg = msg + " AaaCB cb = new AaaCB();" + getLineSeparator();\r
- msg = msg + " cb.setupSelect_Bbb();// *Point!" + getLineSeparator();\r
- msg = msg + " cb.query().setXxx...();" + getLineSeparator();\r
- msg = msg + " {" + getLineSeparator();\r
- msg = msg + " AaaCB unionCB = new AaaCB();" + getLineSeparator();\r
- msg = msg + " unionCB.query().setXxx...();" + getLineSeparator();\r
- msg = msg + " cb.union(unionCB.query());" + getLineSeparator();\r
- msg = msg + " }" + getLineSeparator();\r
- msg = msg + " cb.query().queryBbb().addOrderBy_BbbName_Asc();// *OK!" + getLineSeparator();\r
- msg = msg + " " + getLineSeparator();\r
- msg = msg + "Or else if you DON'T use 'union()' or 'unionAll()', This is the Framework Exception!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Target Column]" + getLineSeparator();\r
- msg = msg + columnName + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Internal Object]" + getLineSeparator();\r
- msg = msg + "selectClauseRealColumnAliasMap=" + selectClauseRealColumnAliasMap + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */" + getLineSeparator();\r
- throw new IllegalStateException(msg);\r
- }\r
-\r
- protected String getLineSeparator() {\r
- return ${glSimpleSystemUtil}.getLineSeparator();\r
- }\r
-\r
- // =====================================================================================\r
- // Basic Override\r
- // ==============\r
- /**\r
- * This method overrides the method that is declared at super.\r
- * @return The view-string of all-columns value. (NotNull)\r
- */\r
- public String toString() {\r
- final StringBuilder sb = new StringBuilder();\r
- sb.append("{aliasName=").append(_aliasName);\r
- sb.append(" columnName=").append(_columnName);\r
- sb.append(" registeredAliasName=").append(_registeredAliasName);\r
- sb.append(" registeredColumnName=").append(_registeredColumnName);\r
- sb.append(" ascDesc=").append(_ascDesc).append("}");\r
- return sb.toString();\r
- }\r
-\r
- // =====================================================================================\r
- // Accessor\r
- // ========\r
- public String getAliasName() {\r
- return _aliasName;\r
- }\r
- public String getColumnName() {\r
- return _columnName;\r
- }\r
- public String getRegisteredAliasName() {\r
- return _registeredAliasName;\r
- }\r
- public String getRegisteredColumnName() {\r
- return _registeredColumnName;\r
- }\r
- public String getAscDesc() {\r
- return _ascDesc;\r
- }\r
- public void setAliasName(String value) {\r
- _aliasName = value;\r
- }\r
- public void setColumnName(String value) {\r
- _columnName = value;\r
- }\r
- public void setRegisteredAliasName(String value) {\r
- _registeredAliasName = value;\r
- }\r
- public void setRegisteredColumnName(String value) {\r
- _registeredColumnName = value;\r
- }\r
- public void setAscDesc(String value) {\r
- _ascDesc = value;\r
- }\r
- public void setOrderByNullsSetupper(${glOrderByClauseName}.OrderByNullsSetupper value, boolean nullsFirst) {\r
- _orderByNullsSetupper = value;\r
- _nullsFirst = nullsFirst;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonSqlClause};\r
-\r
-#set ($myClassName = "${glSqlClauseInterfaceName}")\r
-import java.util.Map;\r
-\r
-import ${glPackageBaseCommonCKey}.${glConditionKeyName};\r
-import ${glPackageBaseCommonCOption}.${glConditionOptionInterfaceName};\r
-import ${glPackageBaseCommonCValue}.${glConditionValueName};\r
-\r
-/**\r
- * The interface of SQL-clause.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${myClassName} {\r
-\r
- // =====================================================================================\r
- // Clause\r
- // ======\r
- // -----------------------------------------------------\r
- // Complete Clause\r
- // ---------------\r
- /**\r
- * Get the clause of all parts.\r
- * <pre>\r
- * # select [base-table-columns], [join-table-columns]\r
- * # from [base-table] left outer join [join-table] [join-alias] on [join-condition]\r
- * # where [base-table].[column] = [value] and [join-alias].[column] is null\r
- * # order by [base-table].[column] asc, [join-alias].[column] desc\r
- * # for update\r
- * </pre>\r
- * @return The clause of all parts. (NotNull)\r
- */\r
- public String getClause();\r
-\r
- /**\r
- * Get clause of all parts as PK-only.\r
- * <pre>\r
- * # select [base-table-columns], [join-table-columns]\r
- * # from [base-table] left outer join [join-table] [join-alias] on [join-condition]\r
- * # where [base-table].[column] = [value] and [join-alias].[column] is null\r
- * # order by [base-table].[column] asc, [join-alias].[column] desc\r
- * # for update\r
- * </pre>\r
- * @return The clause of all parts as PK-Only. (NotNull)\r
- */\r
- public String getClausePKOnly();\r
-\r
- // -----------------------------------------------------\r
- // Fragment Clause\r
- // ---------------\r
- /**\r
- * Get from-where clause without select and orderBy and sqlSuffix. \r
- * For subQuery and selectCount.\r
- * <p>\r
- * You should handle UnionSelectClauseMark and UnionWhereClauseMark and UnionWhereFirstConditionMark in clause.\r
- * </p>\r
- * @return The 'from-where' clause(contains union) without 'select' and 'orderBy' and 'sqlSuffix'. (NotNull)\r
- */\r
- public String getClauseFromWhereWithUnionTemplate();\r
- \r
- /**\r
- * Get from-where clause without select and orderBy and sqlSuffix as template. \r
- * For subQuery and selectCount.\r
- * <p>\r
- * You should handle UnionSelectClauseMark and UnionWhereClauseMark and UnionWhereFirstConditionMark\r
- * and WhereClauseMark and WhereFirstConditionMark in clause.\r
- * </p>\r
- * @return The 'from-where' clause(contains union) without 'select' and 'orderBy' and 'sqlSuffix'. (NotNull)\r
- */\r
- public String getClauseFromWhereWithWhereUnionTemplate();\r
-\r
- // =====================================================================================\r
- // Clause Parts\r
- // ============\r
- /**\r
- * Get the clause of 'select'. This is an internal method.\r
- * @return The clause of select. {[select ...] from table...} (NotNull)\r
- */\r
- public String getSelectClause();\r
- \r
- /**\r
- * Get The clause of 'select' as PK-only. This is an internal method.\r
- * @return The clause of select PK-only. {[select ...] from table...} (NotNull)\r
- */\r
- public String getSelectClausePKOnly();\r
- \r
- /**\r
- * Get the hint of 'select'. This is an internal method.\r
- * @return The hint of 'select'. {select [select-hint] * from table...} (NotNull)\r
- */\r
- public String getSelectHint();\r
-\r
- /**\r
- * Get the clause of included-select-column. This is an internal method.\r
- * @return The clause of included-select-column. {select ... , [included-select-column clause] from table...} (NotNull)\r
- */\r
- public String getIncludedSelectColumnClause();\r
-\r
- /**\r
- * Get the clause of 'from'. This is an internal method.\r
- * @return The clause of 'from'. (NotNull)\r
- */\r
- public String getFromClause();\r
-\r
- /**\r
- * Get the clause of from-base-table. This is an internal method.\r
- * @return The hint of from-base-table. {select * from table [from-base-table-hint] where ...} (NotNull)\r
- */\r
- public String getFromBaseTableHint();\r
-\r
- /**\r
- * Get the hint of 'from'. This is an internal method.\r
- * @return The hint of 'from'. {select * from table left outer join ... on ... [from-hint] where ...} (NotNull)\r
- */\r
- public String getFromHint();\r
-\r
- /**\r
- * Get the clause of 'where'. This is an internal method.\r
- * @return The clause of 'where'. (NotNull)\r
- */\r
- public String getWhereClause();\r
-\r
- /**\r
- * Get the clause of 'order-by'. This is an internal method.\r
- * @return The clause of 'order-by'. (NotNull)\r
- */\r
- public String getOrderByClause();\r
-\r
- /**\r
- * Get the suffix of SQL. This is an internal method.\r
- * @return The suffix of SQL. {select * from table where ... order by ... [sql-suffix]} (NotNull)\r
- */\r
- public String getSqlSuffix();\r
-\r
- // ===================================================================================\r
- // Copy Parts\r
- // ==========\r
- /**\r
- * Copy included-select-column.\r
- * @param sqlClause SQL-clause. (NotNull)\r
- */\r
- public void copyIncludedSelectColumn(${glSqlClauseInterfaceName} sqlClause);\r
-\r
- // ===================================================================================\r
- // SelectedSelectColumn\r
- // ====================\r
- /**\r
- * Register selected-select-column.\r
- * @param foreignTableAliasName The alias name of foreign table. (NotNull)\r
- * @param localTableName The table name of local. (NotNull)\r
- * @param foreignPropertyName The property name of foreign table. (NotNull)\r
- * @param localRelationPath The path of local relation. (Nullable)\r
- */\r
- public void registerSelectedSelectColumn(String foreignTableAliasName\r
- , String localTableName\r
- , String foreignPropertyName\r
- , String localRelationPath);\r
- \r
- // ===================================================================================\r
- // IncludedSelectColumn\r
- // ====================\r
- /**\r
- * Ignore included-select-column.\r
- */\r
- public void ignoreIncludedSelectColumn();\r
-\r
- /**\r
- * Make included-select-column effective.\r
- */\r
- public void makeIncludedSelectColumnEffective();\r
-\r
- /**\r
- * Register included-select-column.\r
- * @param aliasName The alias name of the included-select-column. (NotNull)\r
- * @param realColumnName The real column name of the included-select-column. (NotNull)\r
- */\r
- public void registerIncludedSelectColumn(String aliasName, String realColumnName);\r
-\r
- // ===================================================================================\r
- // OuterJoin\r
- // =========\r
- /**\r
- * Register outer-join.\r
- * @param joinTableName The name of join table. {left outer join [joinTableName]} (NotNull)\r
- * @param aliasName The alias name of join table. {left outer join joinTableName [aliasName]} (NotNull and Unique per invoking method)\r
- * @param joinOnMap Map that has conditions of on-clause. (NotNull)\r
- */\r
- public void registerOuterJoin(String joinTableName, String aliasName, Map<String, String> joinOnMap);\r
-\r
- // ===================================================================================\r
- // Where\r
- // =====\r
- /**\r
- * Register 'where' clause.\r
- * @param columnFullName The full name of column. {[table-name].[column-name]}. (NotNull)\r
- * @param key Condition-key. (NotNull)\r
- * @param value Condition-value. (NotNull)\r
- */\r
- public void registerWhereClause(String columnFullName, ${glConditionKeyName} key, ${glConditionValueName} value);\r
-\r
- /**\r
- * Register 'where' clause.\r
- * @param columnFullName The full name of column. {[table-name].[column-name]}. (NotNull)\r
- * @param key Condition-key. (NotNull)\r
- * @param value Condition-value. (NotNull)\r
- * @param option Condition-option. (NotNull)\r
- */\r
- public void registerWhereClause(String columnFullName, ${glConditionKeyName} key, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option);\r
-\r
- /**\r
- * Register 'where' clause.\r
- * @param clause The clause of 'where'. (NotNull)\r
- */\r
- public void registerWhereClause(String clause);\r
-\r
- /**\r
- * Exchange first The clause of 'where' for last one.\r
- */\r
- public void exchangeFirstWhereClauseForLastOne();\r
-\r
- // ===================================================================================\r
- // InlineWhere\r
- // ===========\r
- public void registerBaseTableInlineWhereClause(String columnName, ${glConditionKeyName} key, ${glConditionValueName} value);\r
- public void registerBaseTableInlineWhereClause(String columnName, ${glConditionKeyName} key, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option);\r
- public void registerBaseTableInlineWhereClause(String value);\r
- public void registerOuterJoinInlineWhereClause(String aliasName, String columnName, ${glConditionKeyName} key, ${glConditionValueName} value, boolean onClauseInline);\r
- public void registerOuterJoinInlineWhereClause(String aliasName, String columnName, ${glConditionKeyName} key, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option, boolean onClauseInline);\r
- public void registerOuterJoinInlineWhereClause(String aliasName, String value, boolean onClauseInline);\r
-\r
- // ===================================================================================\r
- // AdditionalConditionAsOr\r
- // =======================\r
- public void makeAdditionalConditionAsOrEffective();\r
- public void ignoreAdditionalConditionAsOr();\r
-\r
- // ===================================================================================\r
- // OrderBy\r
- // =======\r
- public ${glOrderByClauseName} getSqlComponentOfOrderByClause();\r
- public ${myClassName} clearOrderBy();\r
- public ${myClassName} ignoreOrderBy();\r
- public ${myClassName} makeOrderByEffective();\r
- \r
- /**\r
- * @param orderByProperty Order-by-property. 'aliasName.columnName/aliasName.columnName/...' (NotNull)\r
- * @param registeredOrderByProperty Registered-order-by-property. ([table-name].[column-name]) (Nullable)\r
- * @param ascOrDesc Is it ascend or descend?\r
- */\r
- public void registerOrderBy(String orderByProperty, String registeredOrderByProperty, boolean ascOrDesc);\r
- \r
- /**\r
- * @param orderByProperty Order-by-property. 'aliasName.columnName/aliasName.columnName/...' (NotNull)\r
- * @param registeredOrderByProperty Registered-order-by-property. ([table-name].[column-name]) (Nullable)\r
- * @param ascOrDesc Is it ascend or descend?\r
- */\r
- public void reverseOrderBy_Or_OverrideOrderBy(String orderByProperty, String registeredOrderByProperty, boolean ascOrDesc);\r
-\r
- public void addNullsFirstToPreviousOrderBy();\r
- public void addNullsLastToPreviousOrderBy();\r
- \r
- // ===================================================================================\r
- // Union\r
- // =====\r
- public void registerUnionQuery(String unionClause, boolean unionAll);\r
-\r
- // ===================================================================================\r
- // FetchScope\r
- // ==========\r
- /**\r
- * Fetch first.\r
- * @param fetchSize Fetch-size. (NotMinus)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} fetchFirst(int fetchSize);\r
-\r
- /**\r
- * Fetch scope.\r
- * @param fetchStartIndex Fetch-start-index. 0 origin. (NotMinus)\r
- * @param fetchSize Fetch-size. (NotMinus)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} fetchScope(int fetchStartIndex, int fetchSize);\r
-\r
- /**\r
- * Fetch page.\r
- * <p>\r
- * When you invoke this, it is normally necessary to invoke 'fetchFirst()' or 'fetchScope()' ahead of that.\r
- * But you also can use default-fetch-size without invoking 'fetchFirst()' or 'fetchScope()'.\r
- * If you invoke this, your SQL returns [fetch-size] records from [fetch-start-index] calculated by [fetch-page-number].\r
- * </p>\r
- * @param fetchPageNumber Fetch-page-number. 1 origin. (NotMinus & NotZero: If minus or zero, set one.)\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} fetchPage(int fetchPageNumber);\r
-\r
- /**\r
- * Get fetch start index.\r
- * @return Fetch start index.\r
- */\r
- public int getFetchStartIndex();\r
-\r
- /**\r
- * Get fetch size.\r
- * @return Fetch size.\r
- */\r
- public int getFetchSize();\r
-\r
- /**\r
- * Get fetch page number.\r
- * @return Fetch page number.\r
- */\r
- public int getFetchPageNumber();\r
-\r
- /**\r
- * Get page start index.\r
- * @return Page start index. 0 origin. (NotMinus)\r
- */\r
- public int getPageStartIndex();\r
-\r
- /**\r
- * Get page end index.\r
- * @return Page end index. 0 origin. (NotMinus)\r
- */\r
- public int getPageEndIndex();\r
-\r
- /**\r
- * Is fetch scope effective?\r
- * @return Determiantion.\r
- */\r
- public boolean isFetchScopeEffective();\r
-\r
- /**\r
- * Ignore fetch-scope.\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} ignoreFetchScope();\r
-\r
- /**\r
- * Make fetch-scope effective.\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} makeFetchScopeEffective();\r
-\r
- /**\r
- * Is fetch start index supported?\r
- * @return Determination.\r
- */\r
- public boolean isFetchStartIndexSupported();\r
-\r
- /**\r
- * Is fetch size supported?\r
- * @return Determination.\r
- */\r
- public boolean isFetchSizeSupported();\r
-\r
- // ===================================================================================\r
- // Fetch Narrowing\r
- // ===============\r
- /**\r
- * Is fetch-narrowing effective?\r
- * @return Determiantion.\r
- */\r
- public boolean isFetchNarrowingEffective();\r
-\r
- /**\r
- * Get fetch-narrowing skip-start-index.\r
- * @return Skip-start-index.\r
- */\r
- public int getFetchNarrowingSkipStartIndex();\r
-\r
- /**\r
- * Get fetch-narrowing loop-count.\r
- * @return Loop-count.\r
- */\r
- public int getFetchNarrowingLoopCount();\r
-\r
- // ===================================================================================\r
- // Lock\r
- // ====\r
- /**\r
- * Lock for update.\r
- * <p>\r
- * If you invoke this, your SQL lock target records for update.\r
- * It depends whether this method supports this on the database type.\r
- * </p>\r
- * @return this. (NotNull)\r
- */\r
- public ${myClassName} lockForUpdate();\r
-\r
- // ===================================================================================\r
- // Resolver\r
- // ========\r
- /**\r
- * Resolve join alias name.\r
- * @param relationPath Relation path. (NotNull)\r
- * @param cqNestNo The nest no of condition query.\r
- * @return Resolved join alias name. (NotNull)\r
- */\r
- public String resolveJoinAliasName(String relationPath, int cqNestNo);\r
-\r
- /**\r
- * Resolve nest level expression.\r
- * @param name Name. (NotNull)\r
- * @param cqNestNo The nest no of condition query.\r
- * @return Resolved name about nest level. (NotNull)\r
- */\r
- public String resolveNestLevelExpression(String name, int cqNestNo);\r
-\r
- /**\r
- * Resolve relation no.\r
- * @param baseTableName The table name of base. (NotNull)\r
- * @param foreignPropertyName The property name of foreign. (NotNull)\r
- * @return Resolved relation no.\r
- */\r
- public int resolveRelationNo(String baseTableName, String foreignPropertyName);\r
-\r
- // ===================================================================================\r
- // Table Alias Info\r
- // ================\r
- public String getLocalTableAliasName();\r
- public String getForeignTableAliasPrefix();\r
-\r
- // ===================================================================================\r
- // Template Mark\r
- // =============\r
- public String getWhereClauseMark();\r
- public String getWhereFirstConditionMark();\r
- public String getUnionSelectClauseMark();\r
- public String getUnionWhereClauseMark();\r
- public String getUnionWhereFirstConditionMark();\r
- \r
- // ===================================================================================\r
- // Where Clause Simple Filter\r
- // ==========================\r
- public void addWhereClauseSimpleFilter(${glWhereClauseSimpleFilterInterfaceName} whereClauseSimpleFilter);\r
- \r
- // ===================================================================================\r
- // Selected Foreign Info\r
- // =====================\r
- public boolean isSelectedForeignInfoEmpty();\r
- public boolean hasSelectedForeignInfo(String relationPath);\r
- public void registerSelectedForeignInfo(String relationPath, String foreignPropertyName);\r
- \r
- // ===================================================================================\r
- // Format Clause\r
- // =============\r
- public boolean isFormatClauseEffective();\r
- public void makeFormatClauseEffective();\r
- \r
- // ===================================================================================\r
- // Sub Query Indent\r
- // ================\r
- public String resolveSubQueryBeginMark(String subQueryIdentity);\r
- public String resolveSubQueryEndMark(String subQueryIdentity);\r
- public String filterSubQueryIndent(String sql);\r
- \r
- // [DBFlute-0.7.4]\r
- // ===================================================================================\r
- // Specification\r
- // =============\r
- public void specifySelectColumn(String tableAliasName, String columnName);\r
- public void specifyDeriveSubQuery(String aliasName, String deriveSubQuery);\r
- public boolean hasSpecifiedDeriveSubQuery(String aliasName);\r
- public String getSpecifiedColumnNameAsOne();\r
- public void clearSpecifiedSelectColumn();\r
- \r
- // [DBFlute-0.7.5]\r
- // ===================================================================================\r
- // Query Update\r
- // ============\r
- /**\r
- * @param columnParameterMap The map of column parameters. (NotNull)\r
- * @return The clause of query update. (Nullable: If columnParameterMap is empty, return null)\r
- */\r
- public String getClauseQueryUpdate(Map<String, String> columnParameterMap);\r
- public String getClauseQueryDelete();\r
-\r
- // [DBFlute-0.7.7]\r
- // ===================================================================================\r
- // Unique Constraint\r
- // =================\r
- /**\r
- * Is the SQLException from unique constraint? {Use both SQLState and ErrorCode}\r
- * @param sqlState SQLState of the SQLException. (Nullable)\r
- * @param errorCode ErrorCode of the SQLException. (Nullable)\r
- * @return Is the SQLException from unique constraint?\r
- */ \r
- public boolean isUniqueConstraintException(String sqlState, Integer errorCode);\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonSqlClause};\r
-\r
-#set ($myClassName = "${glSqlClauseInterfaceName}Db2")\r
-\r
-/**\r
- * SqlClause for DB2.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} extends ${glSqlClauseAbstractName} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- /** String of fetch-first as sql-suffix. */\r
- protected String _fetchFirstSqlSuffix = "";\r
-\r
- /** String of lock as from-hint. */\r
- protected String _lockSqlSuffix = "";\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- /**\r
- * Constructor.\r
- * @param tableName Table name. (NotNull)\r
- **/\r
- public ${myClassName}(String tableName) {\r
- super(tableName);\r
- }\r
-\r
- // ===================================================================================\r
- // OrderBy Override\r
- // ================\r
- @Override\r
- protected ${glOrderByClauseName}.OrderByNullsSetupper createOrderByNullsSetupper() {\r
- return createOrderByNullsSetupperByCaseWhen();\r
- }\r
-\r
- // ===================================================================================\r
- // FetchScope Override\r
- // ===================\r
- /**\r
- * ${database.ImplementComment}\r
- */\r
- protected void doFetchFirst() {\r
- if (isFetchSizeSupported()) {\r
- _fetchFirstSqlSuffix = " fetch first " + getFetchSize() + " rows only";\r
- }\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment} {Unsupported!}\r
- */\r
- protected void doFetchPage() {\r
- if (isFetchSizeSupported()) {\r
- if (isFetchStartIndexSupported()) {\r
- _fetchFirstSqlSuffix = " fetch first " + getFetchSize() + " rows only";\r
- } else {\r
- _fetchFirstSqlSuffix = " fetch first " + getPageEndIndex() + " rows only";\r
- }\r
- }\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment} {Unsupported!}\r
- */\r
- protected void doClearFetchPageClause() {\r
- _fetchFirstSqlSuffix = "";\r
- }\r
-\r
- /**\r
- * ${database.OverrideComment}\r
- * @return Determination.\r
- */\r
- public boolean isFetchStartIndexSupported() {\r
- return false;\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return this. (NotNull)\r
- */\r
- public ${glSqlClauseInterfaceName} lockForUpdate() {\r
- _lockSqlSuffix = " for update with RS";\r
- return this;\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Select-hint. (NotNull)\r
- */\r
- protected String createSelectHint() {\r
- return "";\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return From-base-table-hint. {select * from table [from-base-table-hint] where ...} (NotNull)\r
- */\r
- protected String createFromBaseTableHint() {\r
- return "";\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return From-hint. (NotNull)\r
- */\r
- protected String createFromHint() {\r
- return "";\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Sql-suffix. (NotNull)\r
- */\r
- protected String createSqlSuffix() {\r
- return _fetchFirstSqlSuffix + _lockSqlSuffix;\r
- }\r
-\r
- // [DBFlute-0.7.7]\r
- // ===================================================================================\r
- // Unique Constraint Override\r
- // ==========================\r
- @Override\r
- public boolean isUniqueConstraintException(String sqlState, Integer errorCode) {\r
- return "23505".equals(sqlState);\r
- }\r
-\r
- // [DBFlute-0.7.9]\r
- // ===================================================================================\r
- // DB2 Dependency\r
- // ==============\r
- public void lockWithRR() {\r
- _lockSqlSuffix = " with RR";\r
- }\r
-\r
- public void lockWithRS() {\r
- _lockSqlSuffix = " with RS";\r
- }\r
-\r
- public void lockWithCS() {\r
- _lockSqlSuffix = " with CS";\r
- }\r
-\r
- public void lockWithUR() {\r
- _lockSqlSuffix = " with UR";\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonSqlClause};\r
-\r
-#set ($myClassName = "${glSqlClauseInterfaceName}Default")\r
-\r
-/**\r
- * SqlClause for Default.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} extends ${glSqlClauseAbstractName} {\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- /**\r
- * @param tableName Table name. (NotNull)\r
- **/\r
- public ${myClassName}(String tableName) {\r
- super(tableName);\r
- }\r
-\r
- // ===================================================================================\r
- // OrderBy Override\r
- // ================\r
- @Override\r
- protected ${glOrderByClauseName}.OrderByNullsSetupper createOrderByNullsSetupper() {\r
- return createOrderByNullsSetupperByCaseWhen();\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- */\r
- protected void doFetchFirst() {\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- */\r
- protected void doFetchPage() {\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- */\r
- protected void doClearFetchPageClause() {\r
- }\r
-\r
- /**\r
- * ${database.OverrideComment}\r
- * \r
- * @return Determination.\r
- */\r
- public boolean isFetchStartIndexSupported() {\r
- return false; // Default\r
- }\r
-\r
- /**\r
- * ${database.OverrideComment}\r
- * \r
- * @return Determination.\r
- */\r
- public boolean isFetchSizeSupported() {\r
- return false; // Default\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * \r
- * @return this. (NotNull)\r
- */\r
- public ${glSqlClauseInterfaceName} lockForUpdate() {\r
- String msg = "LockForUpdate-SQL is unsupported in the database. Sorry...: " + toString();\r
- throw new UnsupportedOperationException(msg);\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * \r
- * @return Select-hint. (NotNull)\r
- */\r
- protected String createSelectHint() {\r
- return "";\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * \r
- * @return From-base-table-hint. {select * from table [from-base-table-hint] where ...} (NotNull)\r
- */\r
- protected String createFromBaseTableHint() {\r
- return "";\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * \r
- * @return From-hint. (NotNull)\r
- */\r
- protected String createFromHint() {\r
- return "";\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * \r
- * @return Sql-suffix. (NotNull)\r
- */\r
- protected String createSqlSuffix() {\r
- return "";\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonSqlClause};\r
-\r
-#set ($myClassName = "${glSqlClauseInterfaceName}Derby")\r
-\r
-/**\r
- * SqlClause for Default.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} extends ${glSqlClauseAbstractName} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- /** String of lock as sql-suffix. */\r
- protected String _lockSqlSuffix = "";\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- /**\r
- * Constructor.\r
- * @param tableName Table name. (NotNull)\r
- **/\r
- public ${myClassName}(String tableName) {\r
- super(tableName);\r
- }\r
-\r
- // ===================================================================================\r
- // OrderBy Override\r
- // ================\r
- @Override\r
- protected ${glOrderByClauseName}.OrderByNullsSetupper createOrderByNullsSetupper() {\r
- return createOrderByNullsSetupperByCaseWhen();\r
- }\r
-\r
- // ===================================================================================\r
- // FetchScope Override\r
- // ===================\r
- /**\r
- * ${database.ImplementComment}\r
- */\r
- protected void doFetchFirst() {\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- */\r
- protected void doFetchPage() {\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- */\r
- protected void doClearFetchPageClause() {\r
- }\r
-\r
- /**\r
- * ${database.OverrideComment}\r
- * \r
- * @return Determination.\r
- */\r
- public boolean isFetchStartIndexSupported() {\r
- return false; // Default\r
- }\r
-\r
- /**\r
- * ${database.OverrideComment}\r
- * \r
- * @return Determination.\r
- */\r
- public boolean isFetchSizeSupported() {\r
- return false; // Default\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * \r
- * @return this. (NotNull)\r
- */\r
- public ${glSqlClauseInterfaceName} lockForUpdate() {\r
- _lockSqlSuffix = " for update";\r
- return this;\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * \r
- * @return Select-hint. (NotNull)\r
- */\r
- protected String createSelectHint() {\r
- return "";\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * \r
- * @return From-base-table-hint. {select * from table [from-base-table-hint] where ...} (NotNull)\r
- */\r
- protected String createFromBaseTableHint() {\r
- return "";\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * \r
- * @return From-hint. (NotNull)\r
- */\r
- protected String createFromHint() {\r
- return "";\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * \r
- * @return Sql-suffix. (NotNull)\r
- */\r
- protected String createSqlSuffix() {\r
- return _lockSqlSuffix;\r
- }\r
-\r
- // [DBFlute-0.7.7]\r
- // ===================================================================================\r
- // Unique Constraint Override\r
- // ==========================\r
- @Override\r
- public boolean isUniqueConstraintException(String sqlState, Integer errorCode) {\r
- return "23505".equals(sqlState);\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonSqlClause};\r
-\r
-#set ($myClassName = "${glSqlClauseInterfaceName}Firebird")\r
-\r
-/**\r
- * SqlClause for Firebird.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} extends ${glSqlClauseAbstractName} {\r
-\r
- /** String of fetch-scope as select-hint. */\r
- protected String _fetchScopeSelectHint = "";\r
-\r
- /** String of lock as sql-suffix. */\r
- protected String _lockSqlSuffix = "";\r
-\r
- /**\r
- * Constructor.\r
- * \r
- * @param tableName Table name. (NotNull)\r
- **/\r
- public ${myClassName}(String tableName) {\r
- super(tableName);\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- */\r
- protected void doFetchFirst() {\r
- if (isFetchSizeSupported()) {\r
- _fetchScopeSelectHint = " first " + getFetchSize();\r
- }\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- */\r
- protected void doFetchPage() {\r
- if (isFetchStartIndexSupported() && isFetchSizeSupported()) {\r
- _fetchScopeSelectHint = " first " + getFetchSize() + " skip " + getPageStartIndex();\r
- }\r
- if (isFetchStartIndexSupported() && !isFetchSizeSupported()) {\r
- _fetchScopeSelectHint = " skip " + getPageStartIndex();\r
- }\r
- if (!isFetchStartIndexSupported() && isFetchSizeSupported()) {\r
- _fetchScopeSelectHint = " first " + getPageEndIndex();\r
- }\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- */\r
- protected void doClearFetchPageClause() {\r
- _fetchScopeSelectHint = "";\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * \r
- * @return this. (NotNull)\r
- */\r
- public ${glSqlClauseInterfaceName} lockForUpdate() {\r
- _lockSqlSuffix = " for update with lock";\r
- return this;\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * \r
- * @return Select-hint. (NotNull)\r
- */\r
- protected String createSelectHint() {\r
- return _fetchScopeSelectHint;\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * \r
- * @return From-base-table-hint. {select * from table [from-base-table-hint] where ...} (NotNull)\r
- */\r
- protected String createFromBaseTableHint() {\r
- return "";\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * \r
- * @return From-hint. (NotNull)\r
- */\r
- protected String createFromHint() {\r
- return "";\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * \r
- * @return Sql-suffix. (NotNull)\r
- */\r
- protected String createSqlSuffix() {\r
- return _lockSqlSuffix;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonSqlClause};\r
-\r
-#set ($myClassName = "${glSqlClauseInterfaceName}H2")\r
-\r
-/**\r
- * SqlClause for H2.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} extends ${glSqlClauseAbstractName} {\r
-\r
- /** String of fetch-scope as sql-suffix. */\r
- protected String _fetchScopeSqlSuffix = "";\r
-\r
- /** String of lock as sql-suffix. */\r
- protected String _lockSqlSuffix = "";\r
-\r
- /**\r
- * Constructor.\r
- * @param tableName Table name. (NotNull)\r
- **/\r
- public ${myClassName}(String tableName) {\r
- super(tableName);\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- */\r
- protected void doFetchFirst() {\r
- doFetchPage();\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- */\r
- protected void doFetchPage() {\r
- _fetchScopeSqlSuffix = " limit " + getFetchSize() + " offset " + getPageStartIndex();\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- */\r
- protected void doClearFetchPageClause() {\r
- _fetchScopeSqlSuffix = "";\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return this. (NotNull)\r
- */\r
- public ${glSqlClauseInterfaceName} lockForUpdate() {\r
- _lockSqlSuffix = " for update";\r
- return this;\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Select-hint. (NotNull)\r
- */\r
- protected String createSelectHint() {\r
- return "";\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return From-base-table-hint. {select * from table [from-base-table-hint] where ...} (NotNull)\r
- */\r
- protected String createFromBaseTableHint() {\r
- return "";\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return From-hint. (NotNull)\r
- */\r
- protected String createFromHint() {\r
- return "";\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Sql-suffix. (NotNull)\r
- */\r
- protected String createSqlSuffix() {\r
- return _fetchScopeSqlSuffix + _lockSqlSuffix;\r
- }\r
-\r
- // [DBFlute-0.7.7]\r
- // ===================================================================================\r
- // Unique Constraint Override\r
- // ==========================\r
- @Override\r
- public boolean isUniqueConstraintException(String sqlState, Integer errorCode) {\r
- return "23001".equals(sqlState);\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonSqlClause};\r
-\r
-#set ($myClassName = "${glSqlClauseInterfaceName}Interbase")\r
-\r
-/**\r
- * SqlClause for Interbase.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} extends ${glSqlClauseAbstractName} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- /** String of fetch-scope as select-hint. */\r
- protected String _fetchScopeSelectHint = "";\r
-\r
- /** String of lock as sql-suffix. */\r
- protected String _lockSqlSuffix = "";\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- /**\r
- * Constructor.\r
- * @param tableName Table name. (NotNull)\r
- **/\r
- public ${myClassName}(String tableName) {\r
- super(tableName);\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- */\r
- protected void doFetchFirst() {\r
- if (isFetchSizeSupported()) {\r
- _fetchScopeSelectHint = " first " + getFetchSize();\r
- }\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- */\r
- protected void doFetchPage() {\r
- if (isFetchStartIndexSupported() && isFetchSizeSupported()) {\r
- _fetchScopeSelectHint = " first " + getFetchSize() + " skip " + getPageStartIndex();\r
- }\r
- if (isFetchStartIndexSupported() && !isFetchSizeSupported()) {\r
- _fetchScopeSelectHint = " skip " + getPageStartIndex();\r
- }\r
- if (!isFetchStartIndexSupported() && isFetchSizeSupported()) {\r
- _fetchScopeSelectHint = " first " + getPageEndIndex();\r
- }\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- */\r
- protected void doClearFetchPageClause() {\r
- _fetchScopeSelectHint = "";\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * \r
- * @return this. (NotNull)\r
- */\r
- public ${glSqlClauseInterfaceName} lockForUpdate() {\r
- _lockSqlSuffix = " for update with lock";\r
- return this;\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * \r
- * @return Select-hint. (NotNull)\r
- */\r
- protected String createSelectHint() {\r
- return _fetchScopeSelectHint;\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * \r
- * @return From-base-table-hint. {select * from table [from-base-table-hint] where ...} (NotNull)\r
- */\r
- protected String createFromBaseTableHint() {\r
- return "";\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * \r
- * @return From-hint. (NotNull)\r
- */\r
- protected String createFromHint() {\r
- return "";\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * \r
- * @return Sql-suffix. (NotNull)\r
- */\r
- protected String createSqlSuffix() {\r
- return _lockSqlSuffix;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonSqlClause};\r
-\r
-#set ($myClassName = "${glSqlClauseInterfaceName}SqlServer")\r
-\r
-/**\r
- * SqlClause for MSSQL.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} extends ${glSqlClauseAbstractName} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- /** String of fetch-first as select-hint. */\r
- protected String _fetchFirstSelectHint = "";\r
-\r
- /** String of lock as from-hint. */\r
- protected String _lockFromHint = "";\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- /**\r
- * Constructor.\r
- * @param tableName Table name. (NotNull)\r
- **/\r
- public ${myClassName}(String tableName) {\r
- super(tableName);\r
- }\r
-\r
- // ===================================================================================\r
- // OrderBy Override\r
- // ================\r
- @Override\r
- protected ${glOrderByClauseName}.OrderByNullsSetupper createOrderByNullsSetupper() {\r
- return createOrderByNullsSetupperByCaseWhen();\r
- }\r
-\r
- // ===================================================================================\r
- // FetchScope Override\r
- // ===================\r
- /**\r
- * ${database.ImplementComment}\r
- */\r
- protected void doFetchFirst() {\r
- if (isFetchSizeSupported()) {\r
- _fetchFirstSelectHint = " top " + getFetchSize();\r
- }\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- */\r
- protected void doFetchPage() {\r
- if (isFetchSizeSupported()) {\r
- if (isFetchStartIndexSupported()) {\r
- _fetchFirstSelectHint = " top " + getFetchSize();\r
- } else {\r
- _fetchFirstSelectHint = " top " + getPageEndIndex();\r
- }\r
- }\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- */\r
- protected void doClearFetchPageClause() {\r
- _fetchFirstSelectHint = "";\r
- }\r
-\r
- /**\r
- * @return Determination.\r
- */\r
- public boolean isFetchStartIndexSupported() {\r
- return false;\r
- }\r
-\r
- // ===================================================================================\r
- // Lock Override\r
- // =============\r
- /**\r
- * ${database.ImplementComment} {Implement}\r
- * @return this. (NotNull)\r
- */\r
- public ${glSqlClauseInterfaceName} lockForUpdate() {\r
- _lockFromHint = " with (updlock)";\r
- return this;\r
- }\r
-\r
- // ===================================================================================\r
- // Hint Override\r
- // =============\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Select-hint. (NotNull)\r
- */\r
- protected String createSelectHint() {\r
- return _fetchFirstSelectHint;\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return From-base-table-hint. {select * from table [from-base-table-hint] where ...} (NotNull)\r
- */\r
- protected String createFromBaseTableHint() {\r
- return _lockFromHint;\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return From-hint. (NotNull)\r
- */\r
- protected String createFromHint() {\r
- return "";\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Sql-suffix. (NotNull)\r
- */\r
- protected String createSqlSuffix() {\r
- return "";\r
- }\r
- \r
- // [DBFlute-0.7.7]\r
- // ===================================================================================\r
- // Unique Constraint Override\r
- // ==========================\r
- @Override\r
- public boolean isUniqueConstraintException(String sqlState, Integer errorCode) {\r
- return errorCode != null && errorCode == 2627;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonSqlClause};\r
-\r
-#set ($myClassName = "${glSqlClauseInterfaceName}MySql")\r
-\r
-/**\r
- * SqlClause for MySQL.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} extends ${glSqlClauseAbstractName} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- /** String of fetch-scope as sql-suffix. */\r
- protected String _fetchScopeSqlSuffix = "";\r
-\r
- /** String of lock as sql-suffix. */\r
- protected String _lockSqlSuffix = "";\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- /**\r
- * Constructor.\r
- * @param tableName Table name. (NotNull)\r
- **/\r
- public ${myClassName}(String tableName) {\r
- super(tableName);\r
- }\r
-\r
- // ===================================================================================\r
- // OrderBy Override\r
- // ================\r
- @Override\r
- protected ${glOrderByClauseName}.OrderByNullsSetupper createOrderByNullsSetupper() {\r
- return createOrderByNullsSetupperByCaseWhen();\r
- }\r
-\r
- // ===================================================================================\r
- // FetchScope Override\r
- // ===================\r
- /**\r
- * ${database.ImplementComment}\r
- */\r
- protected void doFetchFirst() {\r
- doFetchPage();\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- */\r
- protected void doFetchPage() {\r
- _fetchScopeSqlSuffix = " limit " + getPageStartIndex() + ", " + getFetchSize();\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- */\r
- protected void doClearFetchPageClause() {\r
- _fetchScopeSqlSuffix = "";\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return this. (NotNull)\r
- */\r
- public ${glSqlClauseInterfaceName} lockForUpdate() {\r
- _lockSqlSuffix = " for update";\r
- return this;\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Select-hint. (NotNull)\r
- */\r
- protected String createSelectHint() {\r
- return "";\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return From-base-table-hint. {select * from table [from-base-table-hint] where ...} (NotNull)\r
- */\r
- protected String createFromBaseTableHint() {\r
- return "";\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return From-hint. (NotNull)\r
- */\r
- protected String createFromHint() {\r
- return "";\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Sql-suffix. (NotNull)\r
- */\r
- protected String createSqlSuffix() {\r
- return _fetchScopeSqlSuffix + _lockSqlSuffix;\r
- }\r
- \r
- // [DBFlute-0.7.5]\r
- // ===================================================================================\r
- // Query Update Override\r
- // =====================\r
- @Override\r
- protected boolean isUpdateSubQueryUseLocalTableSupported() {\r
- return false;\r
- }\r
-\r
- // [DBFlute-0.7.7]\r
- // ===================================================================================\r
- // Unique Constraint Override\r
- // ==========================\r
- @Override\r
- public boolean isUniqueConstraintException(String sqlState, Integer errorCode) {\r
- return errorCode != null && errorCode == 1062;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonSqlClause};\r
-\r
-#set ($myClassName = "${glSqlClauseInterfaceName}Oracle")\r
-\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInterfaceName};\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInstanceHandlerName};\r
-import ${glPackageBaseCommonDBMetaInfo}.${glColumnInfoName};\r
-\r
-/**\r
- * SqlClause for Oracle.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} extends ${glSqlClauseAbstractName} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- /** String of fetch-scope as select-hint. */\r
- protected String _fetchScopeSelectHint = "";\r
-\r
- /** String of fetch-scope as sql-suffix. */\r
- protected String _fetchScopeSqlSuffix = "";\r
-\r
- /** String of lock as sql-suffix. */\r
- protected String _lockSqlSuffix = "";\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- /**\r
- * Constructor.\r
- * @param tableName Table name. (NotNull)\r
- **/\r
- public ${myClassName}(String tableName) {\r
- super(tableName);\r
- }\r
-\r
- // ===================================================================================\r
- // Database Original Override\r
- // ==========================\r
- @Override\r
- protected String buildUnionClause(String selectClause) {\r
- \r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- // Remove select-hint comment from select clause of union\r
- // for fetch-scope with union().\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
-\r
- selectClause = replaceString(selectClause, SELECT_HINT, "");\r
- return super.buildUnionClause(selectClause);\r
- }\r
- \r
- // ===================================================================================\r
- // FetchScope Override\r
- // ===================\r
- /**\r
- * ${database.ImplementComment}\r
- */\r
- protected void doFetchFirst() {\r
- doFetchPage();\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- */\r
- protected void doFetchPage() {\r
- if (!isFetchStartIndexSupported() && !isFetchSizeSupported()) {\r
- return;\r
- }\r
- String ln = null;\r
- if (isFormatClauseEffective()) {\r
- ln = getLineSeparator();\r
- } else {\r
- ln = "";\r
- }\r
- _fetchScopeSelectHint = " * from (select base.*, rownum as rn from (" + ln + "select";\r
- _fetchScopeSqlSuffix = "";\r
- if (isFetchStartIndexSupported()) {\r
- _fetchScopeSqlSuffix = ") base )" + ln + " where rn > " + getPageStartIndex();\r
- }\r
- if (isFetchSizeSupported()) {\r
- if (isFetchStartIndexSupported()) {\r
- _fetchScopeSqlSuffix = _fetchScopeSqlSuffix + " and rn <= " + getPageEndIndex();\r
- } else {\r
- _fetchScopeSqlSuffix = ") base )" + ln + " where rn <= " + getPageEndIndex();\r
- }\r
- }\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- */\r
- protected void doClearFetchPageClause() {\r
- _fetchScopeSelectHint = "";\r
- _fetchScopeSqlSuffix = "";\r
- }\r
-\r
- // ===================================================================================\r
- // Lock Override\r
- // =============\r
- /**\r
- * ${database.ImplementComment}\r
- * @return this. (NotNull)\r
- */\r
- public ${glSqlClauseInterfaceName} lockForUpdate() {\r
- final ${glDBMetaInterfaceName} dbmeta = ${glDBMetaInstanceHandlerName}.findDBMeta(_tableName);\r
- if (dbmeta.hasPrimaryKey()) {\r
- final String primaryKeyColumnName = dbmeta.getPrimaryUniqueInfo().getFirstColumn().getColumnDbName();\r
- _lockSqlSuffix = " for update of " + getLocalTableAliasName() + "." + primaryKeyColumnName;\r
- } else {\r
- final String randomColumnName = ((${glColumnInfoName})dbmeta.getColumnInfoList().get(0)).getColumnDbName();\r
- _lockSqlSuffix = " for update of " + getLocalTableAliasName() + "." + randomColumnName;\r
- }\r
- return this;\r
- }\r
-\r
- // ===================================================================================\r
- // Hint Override\r
- // =============\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Select-hint. (NotNull)\r
- */\r
- protected String createSelectHint() {\r
- return _fetchScopeSelectHint;\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return From-base-table-hint. {select * from table [from-base-table-hint] where ...} (NotNull)\r
- */\r
- protected String createFromBaseTableHint() {\r
- return "";\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return From-hint. (NotNull)\r
- */\r
- protected String createFromHint() {\r
- return "";\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Sql-suffix. (NotNull)\r
- */\r
- protected String createSqlSuffix() {\r
- return _fetchScopeSqlSuffix + _lockSqlSuffix;\r
- }\r
-\r
- // [DBFlute-0.7.7]\r
- // ===================================================================================\r
- // Unique Constraint Override\r
- // ==========================\r
- @Override\r
- public boolean isUniqueConstraintException(String sqlState, Integer errorCode) {\r
- return errorCode != null && errorCode == 1;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonSqlClause};\r
-\r
-#set ($myClassName = "${glSqlClauseInterfaceName}PostgreSql")\r
-\r
-/**\r
- * SqlClause for PostreSQL.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} extends ${glSqlClauseAbstractName} {\r
-\r
- /** String of fetch-scope as sql-suffix. */\r
- protected String _fetchScopeSqlSuffix = "";\r
-\r
- /** String of lock as sql-suffix. */\r
- protected String _lockSqlSuffix = "";\r
-\r
- /**\r
- * Constructor.\r
- * @param tableName Table name. (NotNull)\r
- **/\r
- public ${myClassName}(String tableName) {\r
- super(tableName);\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- */\r
- protected void doFetchFirst() {\r
- doFetchPage();\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- */\r
- protected void doFetchPage() {\r
- _fetchScopeSqlSuffix = " offset " + getPageStartIndex() + " limit " + getFetchSize();\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- */\r
- protected void doClearFetchPageClause() {\r
- _fetchScopeSqlSuffix = "";\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * \r
- * @return this. (NotNull)\r
- */\r
- public ${glSqlClauseInterfaceName} lockForUpdate() {\r
- _lockSqlSuffix = " for update";\r
- return this;\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Select-hint. (NotNull)\r
- */\r
- protected String createSelectHint() {\r
- return "";\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return From-base-table-hint. {select * from table [from-base-table-hint] where ...} (NotNull)\r
- */\r
- protected String createFromBaseTableHint() {\r
- return "";\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return From-hint. (NotNull)\r
- */\r
- protected String createFromHint() {\r
- return "";\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Sql-suffix. (NotNull)\r
- */\r
- protected String createSqlSuffix() {\r
- return _fetchScopeSqlSuffix + _lockSqlSuffix;\r
- }\r
-\r
- // [DBFlute-0.7.7]\r
- // ===================================================================================\r
- // Unique Constraint Override\r
- // ==========================\r
- @Override\r
- public boolean isUniqueConstraintException(String sqlState, Integer errorCode) {\r
- return "23505".equals(sqlState);\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonSqlClause};\r
-\r
-#set ($myClassName = "${glWhereClauseSimpleFilterInterfaceName}")\r
-\r
-import ${glPackageBaseCommonDBMetaInfo}.${glColumnInfoName};\r
-\r
-/**\r
- * The interface of simple filter for where clause.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${myClassName} {\r
-\r
- public static final String BIND_COMMENT_BEGIN_PART = "/*dto";\r
- public static final String BIND_COMMENT_END_PART = "*/null";\r
-\r
- public static final String EMBEDDED_COMMENT_BEGIN_PART = "/*$dto";\r
- public static final String EMBEDDED_COMMENT_END_PART = "*/null";\r
-\r
- public static final String EMBEDDED_COMMENT_QUOTED_BEGIN_PART = "'/*$dto";\r
- public static final String EMBEDDED_COMMENT_QUOTED_END_PART = "*/'dummy''";\r
-\r
- /**\r
- * Filter clause element.\r
- * \r
- * @param clauseElement Clause element of where. (NotNull and NotEmpty)\r
- * @return Filtered where clause. (NotNull and NotEmpty)\r
- */\r
- public String filterClauseElement(String clauseElement);\r
-\r
- /**\r
- * The simple filter for where clause to embedded. <br />\r
- * *Attension -- Target column is not perfect. This class determines by column name only!\r
- * So when the column name of base table is same as the column name of join table, both are target!\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
- public static class WhereClauseToEmbeddedSimpleFilter implements ${myClassName} {\r
-\r
- protected java.util.Set<${glColumnInfoName}> _filterTargetColumnInfoSet;\r
-\r
- public WhereClauseToEmbeddedSimpleFilter(${glColumnInfoName} filterTargetColumnInfo) {\r
- this._filterTargetColumnInfoSet = new java.util.HashSet${database.filterGenericsString(${glColumnInfoName})}();\r
- this._filterTargetColumnInfoSet.add(filterTargetColumnInfo);\r
- }\r
-\r
- public WhereClauseToEmbeddedSimpleFilter(java.util.Set${database.filterGenericsString(${glColumnInfoName})} filterTargetColumnInfoSet) {\r
- this._filterTargetColumnInfoSet = filterTargetColumnInfoSet;\r
- }\r
-\r
- /**\r
- * Filter clause element.\r
- * \r
- * @param clauseElement Clause element of where. (NotNull and NotEmpty)\r
- * @return Filtered where clause. (NotNull and NotEmpty)\r
- */\r
- public String filterClauseElement(String clauseElement) {\r
- if (_filterTargetColumnInfoSet == null || _filterTargetColumnInfoSet.isEmpty()) {\r
- return toEmbedded(clauseElement);\r
- }\r
- for (final java.util.Iterator<${glColumnInfoName}> ite = _filterTargetColumnInfoSet.iterator(); ite.hasNext(); ) {\r
- final ${glColumnInfoName} columnInfo = (${glColumnInfoName})ite.next();\r
- if (isTargetClause(clauseElement, columnInfo.getColumnDbName())) {\r
- return toEmbedded(clauseElement);\r
- }\r
- }\r
- return clauseElement;\r
- }\r
-\r
- protected boolean isTargetClause(String clauseElement, final String columnDbName) {\r
- return clauseElement.indexOf("." + columnDbName + " ") >= 0;\r
- }\r
-\r
- protected String toEmbedded(String clauseElement) {\r
- clauseElement = replace(clauseElement, BIND_COMMENT_BEGIN_PART, EMBEDDED_COMMENT_BEGIN_PART);\r
- clauseElement = replace(clauseElement, BIND_COMMENT_END_PART, EMBEDDED_COMMENT_END_PART);\r
- return clauseElement;\r
- }\r
-\r
- protected final String replace(String text, String fromText,\r
- String toText) {\r
-\r
- if (text == null || fromText == null || toText == null) {\r
- return null;\r
- }\r
- StringBuffer buf = new StringBuffer(100);\r
- int pos = 0;\r
- int pos2 = 0;\r
- while (true) {\r
- pos = text.indexOf(fromText, pos2);\r
- if (pos == 0) {\r
- buf.append(toText);\r
- pos2 = fromText.length();\r
- } else if (pos > 0) {\r
- buf.append(text.substring(pos2, pos));\r
- buf.append(toText);\r
- pos2 = pos + fromText.length();\r
- } else {\r
- buf.append(text.substring(pos2));\r
- break;\r
- }\r
- }\r
- return buf.toString();\r
- }\r
- }\r
-\r
- /**\r
- * The simple filter for where clause to embedded and quoted. <br />\r
- * *Attension -- Target column is not perfect. This class determines by column name only!\r
- * So when the column name of base table is same as the column name of join table, both are target!\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
- public static class WhereClauseToEmbeddedQuotedSimpleFilter extends WhereClauseToEmbeddedSimpleFilter {\r
-\r
- public WhereClauseToEmbeddedQuotedSimpleFilter(${glColumnInfoName} filterTargetColumnInfo) {\r
- super(filterTargetColumnInfo);\r
- }\r
-\r
- public WhereClauseToEmbeddedQuotedSimpleFilter(java.util.Set${database.filterGenericsString(${glColumnInfoName})} filterTargetColumnInfoSet) {\r
- super(filterTargetColumnInfoSet);\r
- }\r
-\r
- protected String toEmbedded(String clauseElement) {\r
- clauseElement = replace(clauseElement, BIND_COMMENT_BEGIN_PART, EMBEDDED_COMMENT_QUOTED_BEGIN_PART);\r
- clauseElement = replace(clauseElement, BIND_COMMENT_END_PART, EMBEDDED_COMMENT_QUOTED_END_PART);\r
- return clauseElement;\r
- }\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonDBMeta};\r
-\r
-#set ($myClassName = "${glDBMetaAbstractName}")\r
-import java.util.Collection;\r
-import java.util.Collections;\r
-import java.util.List;\r
-import java.util.ArrayList;\r
-import java.util.Map;\r
-import java.util.HashMap;\r
-import java.util.LinkedHashMap;\r
-import java.util.Set;\r
-import java.util.HashSet;\r
-import java.util.Iterator;\r
-import java.lang.reflect.Method;\r
-\r
-import ${glPackageBaseCommon}.${glEntityInterfaceName};\r
-import ${glPackageBaseCommonHelper}.${glMapListStringName};\r
-import ${glPackageBaseCommonHelper}.${glMapListStringImplName};\r
-import ${glPackageBaseCommonHelper}.${glMapStringBuilderName};\r
-import ${glPackageBaseCommonHelper}.${glMapStringBuilderImplName};\r
-import ${glPackageBaseCommonDBMetaInfo}.${glColumnInfoName};\r
-import ${glPackageBaseCommonDBMetaInfo}.${glForeignInfoName};\r
-import ${glPackageBaseCommonDBMetaInfo}.${glReferrerInfoName};\r
-import ${glPackageBaseCommonDBMetaInfo}.${glRelationInfoName};\r
-import ${glPackageBaseCommonDBMetaInfo}.${glUniqueInfoName};\r
-import ${glPackageBaseCommonUtil}.${glSimpleAssertUtil};\r
-import ${glPackageBaseCommonUtil}.${glSimpleStringUtil};\r
-import ${glPackageBaseCommonUtil}.${glSimpleSystemUtil};\r
-\r
-/**\r
- * The abstract class of DB meta.\r
- * @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public abstract class ${myClassName} implements ${glDBMetaInterfaceName} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected List<${glColumnInfoName}> _columnInfoList;\r
-\r
- // ===================================================================================\r
- // Column Info\r
- // ===========\r
- /**\r
- * ${database.ImplementComment}\r
- * @param columnFlexibleName The flexible name of the column. (NotNull)\r
- * @return Determination.\r
- */\r
- public boolean hasColumn(String columnFlexibleName) {\r
- if (!hasFlexibleName(columnFlexibleName)) {\r
- return false;\r
- }\r
- final String propertyName = findPropertyName(columnFlexibleName);\r
- return hasMethod("column" + initCap(propertyName));\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @param columnFlexibleName The flexible name of the column. (NotNull and NotEmpty)\r
- * @return The information of the column. (NotNull)\r
- */ \r
- public ${glColumnInfoName} findColumnInfo(String columnFlexibleName) {\r
- assertStringNotNullAndNotTrimmedEmpty("columnFlexibleName", columnFlexibleName);\r
- if (!hasColumn(columnFlexibleName)) {\r
- String msg = "Not found column by columnFlexibleName: " + columnFlexibleName;\r
- msg = msg + " tableName=" + getTableDbName();\r
- throw new IllegalArgumentException(msg);\r
- }\r
- String methodName = "column" + initCap(findPropertyName(columnFlexibleName));\r
- Method method = null;\r
- try {\r
- method = this.getClass().getMethod(methodName, new Class[]{});\r
- } catch (NoSuchMethodException e) {\r
- String msg = "Not found column by columnFlexibleName: " + columnFlexibleName;\r
- msg = msg + " tableName=" + getTableDbName() + " methodName=" + methodName;\r
- throw new RuntimeException(msg, e);\r
- }\r
- try {\r
- return (${glColumnInfoName})method.invoke(this, new Object[]{});\r
- } catch (IllegalAccessException e) {\r
- throw new RuntimeException(e);\r
- } catch (java.lang.reflect.InvocationTargetException e) {\r
- throw new RuntimeException(e.getCause());\r
- }\r
- }\r
-\r
- protected ${glColumnInfoName} cci(String columnDbName, String propertyName\r
- , Class<?> propertyType, boolean primary\r
- , Integer columnSize, Integer columnDecimalDigits) {// createColumnInfo()\r
- return new ${glColumnInfoName}(this, columnDbName, propertyName, propertyType, primary, columnSize, columnDecimalDigits);\r
- }\r
-\r
- protected ${glColumnInfoName} cci(String columnDbName, String propertyName\r
- , Class<?> propertyType, boolean primary\r
- , Integer columnSize, Integer columnDecimalDigits, OptimisticLockType optimisticLockType) {// createColumnInfo()\r
- return new ${glColumnInfoName}(this, columnDbName, propertyName, propertyType, primary, columnSize, columnDecimalDigits, optimisticLockType);\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return The list of columns. (NotNull and NotEmpty)\r
- */\r
- public List<${glColumnInfoName}> getColumnInfoList() {\r
- if (_columnInfoList != null) {\r
- return _columnInfoList;\r
- }\r
- synchronized (this) {\r
- if (_columnInfoList != null) {\r
- return _columnInfoList;\r
- }\r
- Method[] methods = this.getClass().getMethods();\r
- _columnInfoList = newArrayList();\r
- String prefix = "column";\r
- Class<${glColumnInfoName}> returnType = ${glColumnInfoName}.class;\r
- Object[] args = new Object[]{};\r
- try {\r
- for (Method method : methods) {\r
- if (method.getName().startsWith(prefix) && returnType.equals(method.getReturnType())) {\r
- _columnInfoList.add((${glColumnInfoName})method.invoke(this, args));\r
- }\r
- }\r
- } catch (Exception e) {\r
- throw new IllegalStateException(e);\r
- }\r
- return _columnInfoList;\r
- }\r
- }\r
-\r
- protected void initializeColumnInfoList() {\r
- getColumnInfoList();// Ignore return value because of initialization only!\r
- }\r
- \r
- // =====================================================================================\r
- // Name Handling\r
- // =============\r
- /**\r
- * ${database.ImplementComment}\r
- * @param flexibleName Flexible-name(IgnoreCase). (NotNull and NotEmpty)\r
- * @return Determination.\r
- */\r
- public boolean hasFlexibleName(String flexibleName) {\r
- final String key = flexibleName.toLowerCase();\r
- if (getDbNamePropertyNameKeyToLowerMap().containsKey(key)) {\r
- return true;\r
- }\r
- if (getPropertyNameDbNameKeyToLowerMap().containsKey(key)) {\r
- return true;\r
- }\r
- return false;\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @param flexibleName Flexible-name(IgnoreCase). (NotNull and NotEmpty)\r
- * @return DB name. (NotNull and NotEmpty)\r
- */\r
- public String findDbName(String flexibleName) {\r
- final String key = flexibleName.toLowerCase();\r
- if (getPropertyNameDbNameKeyToLowerMap().containsKey(key)) {\r
- return (String)getPropertyNameDbNameKeyToLowerMap().get(key);\r
- }\r
- if (getDbNamePropertyNameKeyToLowerMap().containsKey(key)) {\r
- final String dbNameKeyToLower = ((String)getDbNamePropertyNameKeyToLowerMap().get(key)).toLowerCase();\r
- if (getPropertyNameDbNameKeyToLowerMap().containsKey(dbNameKeyToLower)) {\r
- return (String)getPropertyNameDbNameKeyToLowerMap().get(dbNameKeyToLower);\r
- }\r
- }\r
- String msg = "Not found object by the flexible name: flexibleName=" + flexibleName;\r
- throw new IllegalStateException(msg);\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @param flexibleName Flexible-name(IgnoreCase). (NotNull and NotEmpty)\r
- * @return DB name. (NotNull and NotEmpty)\r
- */\r
- public String findPropertyName(String flexibleName) {\r
- final String key = flexibleName.toLowerCase();\r
- if (getDbNamePropertyNameKeyToLowerMap().containsKey(key)) {\r
- return (String)getDbNamePropertyNameKeyToLowerMap().get(key);\r
- }\r
- if (getPropertyNameDbNameKeyToLowerMap().containsKey(key)) {\r
- final String dbNameToLower = ((String)getPropertyNameDbNameKeyToLowerMap().get(key)).toLowerCase();\r
- if (getDbNamePropertyNameKeyToLowerMap().containsKey(dbNameToLower)) {\r
- return (String)getDbNamePropertyNameKeyToLowerMap().get(dbNameToLower);\r
- }\r
- }\r
- String msg = "Not found object by the flexible name: flexibleName=" + flexibleName;\r
- throw new IllegalStateException(msg);\r
- }\r
-\r
- // ===================================================================================\r
- // Unique Info\r
- // ===========\r
- protected ${glUniqueInfoName} createPrimaryUniqueInfo() {\r
- ${glUniqueInfoName} uniqueInfo = new ${glUniqueInfoName}();\r
- uniqueInfo.setDBMeta(this);\r
- uniqueInfo.setPrimary(true);\r
- return uniqueInfo;\r
- }\r
-\r
- protected ${glUniqueInfoName} createPrimaryUniqueInfo(${glColumnInfoName} uniqueColumnInfo) {\r
- ${glUniqueInfoName} uniqueInfo = new ${glUniqueInfoName}();\r
- uniqueInfo.setDBMeta(this);\r
- uniqueInfo.setPrimary(true);\r
- uniqueInfo.addUniqueColumnList(uniqueColumnInfo);\r
- return uniqueInfo;\r
- }\r
-\r
- // ===================================================================================\r
- // Relation Info\r
- // =============\r
- /**\r
- * @param relationPropertyName Relation property name. (Both OK - InitCap or not). (NotNull)\r
- * @return The information of relation. (NotNull)\r
- */ \r
- public ${glRelationInfoName} findRelationInfo(String relationPropertyName) {\r
- assertStringNotNullAndNotTrimmedEmpty("relationPropertyName", relationPropertyName);\r
- return hasForeign(relationPropertyName) ? (${glRelationInfoName})findForeignInfo(relationPropertyName) : (${glRelationInfoName})findReferrerInfo(relationPropertyName);\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Foreign Element\r
- // ---------------\r
- /**\r
- * @param foreignPropertyName The property name of foreign. (Both OK - InitCap or not). (NotNull)\r
- * @return Determination. (NotNull)\r
- */ \r
- public boolean hasForeign(String foreignPropertyName) {\r
- assertStringNotNullAndNotTrimmedEmpty("foreignPropertyName", foreignPropertyName);\r
- final String methodName = buildRelationInfoGetterMethodNameInitCap("foreign", foreignPropertyName);\r
- return hasMethod(methodName);\r
- }\r
-\r
- /**\r
- * @param foreignPropertyName The property name of foreign. (Both OK - InitCap or not). (NotNull)\r
- * @return Foreign DBMeta. (NotNull)\r
- */ \r
- public ${glDBMetaInterfaceName} findForeignDBMeta(String foreignPropertyName) {\r
- return findForeignInfo(foreignPropertyName).getForeignDBMeta();\r
- }\r
-\r
- /**\r
- * @param foreignPropertyName The property name of foreign. (Both OK - InitCap or not). (NotNull)\r
- * @return Foreign information. (NotNull)\r
- */ \r
- public ${glPackageBaseCommonDBMetaInfo}.${glForeignInfoName} findForeignInfo(String foreignPropertyName) {\r
- assertStringNotNullAndNotTrimmedEmpty("foreignPropertyName", foreignPropertyName);\r
- final String methodName = buildRelationInfoGetterMethodNameInitCap("foreign", foreignPropertyName);\r
- java.lang.reflect.Method method = null;\r
- try {\r
- method = this.getClass().getMethod(methodName, new Class[]{});\r
- } catch (NoSuchMethodException e) {\r
- String msg = "Not found foreign by foreignPropertyName: foreignPropertyName=" + foreignPropertyName;\r
- msg = msg + " tableName=" + getTableDbName() + " methodName=" + methodName;\r
- throw new RuntimeException(msg, e);\r
- }\r
- try {\r
- return (${glForeignInfoName})method.invoke(this, new Object[]{});\r
- } catch (IllegalAccessException e) {\r
- throw new RuntimeException(e);\r
- } catch (java.lang.reflect.InvocationTargetException e) {\r
- throw new RuntimeException(e.getCause());\r
- }\r
- }\r
- \r
- protected ${glForeignInfoName} cfi(String propName\r
- , ${glDBMetaInterfaceName} localDbm, ${glDBMetaInterfaceName} foreignDbm\r
- , Map<${glColumnInfoName}, ${glColumnInfoName}> localForeignColumnInfoMap\r
- , int relNo, boolean oneToOne) {// createForeignInfo()\r
- final ${glForeignInfoName} foreignInfo = new ${glForeignInfoName}();\r
- foreignInfo.setForeignPropertyName(propName);\r
- foreignInfo.setLocalDBMeta(localDbm);\r
- foreignInfo.setForeignDBMeta(foreignDbm);\r
- foreignInfo.setLocalForeignColumnInfoMap(localForeignColumnInfoMap);\r
- foreignInfo.setRelationNo(relNo);\r
- foreignInfo.setOneToOne(oneToOne);\r
- return foreignInfo;\r
- }\r
- \r
- // -----------------------------------------------------\r
- // Referrer Element\r
- // ----------------\r
- /**\r
- * @param referrerPropertyName The property name of referrer. (Both OK - InitCap or not). (NotNull)\r
- * @return Determination. (NotNull)\r
- */ \r
- public boolean hasReferrer(String referrerPropertyName) {\r
- assertStringNotNullAndNotTrimmedEmpty("referrerPropertyName", referrerPropertyName);\r
- final String methodName = buildRelationInfoGetterMethodNameInitCap("referrer", referrerPropertyName);\r
- return hasMethod(methodName);\r
- }\r
-\r
- /**\r
- * @param referrerPropertyName The property name of referrer. (Both OK - InitCap or not). (NotNull)\r
- * @return Referrer DBMeta. (NotNull)\r
- */ \r
- public ${glDBMetaInterfaceName} findReferrerDBMeta(String referrerPropertyName) {\r
- assertStringNotNullAndNotTrimmedEmpty("referrerPropertyName", referrerPropertyName);\r
- return findReferrerInfo(referrerPropertyName).getReferrerDBMeta();\r
- }\r
-\r
- /**\r
- * @param referrerPropertyName The property name of referrer. (Both OK - InitCap or not). (NotNull)\r
- * @return Referrer information. (NotNull)\r
- */ \r
- public ${glReferrerInfoName} findReferrerInfo(String referrerPropertyName) {\r
- assertStringNotNullAndNotTrimmedEmpty("referrerPropertyName", referrerPropertyName);\r
- final String methodName = buildRelationInfoGetterMethodNameInitCap("referrer", referrerPropertyName);\r
- java.lang.reflect.Method method = null;\r
- try {\r
- method = this.getClass().getMethod(methodName, new Class[]{});\r
- } catch (NoSuchMethodException e) {\r
- String msg = "Not found referrer by referrerPropertyName: referrerPropertyName=" + referrerPropertyName;\r
- msg = msg + " tableName=" + getTableDbName() + " methodName=" + methodName;\r
- throw new RuntimeException(msg, e);\r
- }\r
- try {\r
- return (${glReferrerInfoName})method.invoke(this, new Object[]{});\r
- } catch (IllegalAccessException e) {\r
- throw new RuntimeException(e);\r
- } catch (java.lang.reflect.InvocationTargetException e) {\r
- throw new RuntimeException(e.getCause());\r
- }\r
- }\r
-\r
- protected ${glReferrerInfoName} cri(String propName\r
- , ${glDBMetaInterfaceName} localDbm, ${glDBMetaInterfaceName} referrerDbm\r
- , Map<${glColumnInfoName}, ${glColumnInfoName}> localReferrerColumnInfoMap\r
- , boolean oneToOne) {// createReferrerInfo()\r
- final ${glReferrerInfoName} referrerInfo = new ${glReferrerInfoName}();\r
- referrerInfo.setReferrerPropertyName(propName);\r
- referrerInfo.setLocalDBMeta(localDbm);\r
- referrerInfo.setReferrerDBMeta(referrerDbm);\r
- referrerInfo.setLocalReferrerColumnInfoMap(localReferrerColumnInfoMap);\r
- referrerInfo.setOneToOne(oneToOne);\r
- return referrerInfo;\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Common Logic\r
- // ------------\r
- protected String buildRelationInfoGetterMethodNameInitCap(String targetName, String relationPropertyName) {\r
- return targetName + relationPropertyName.substring(0, 1).toUpperCase() + relationPropertyName.substring(1);\r
- }\r
- \r
- // -----------------------------------------------------\r
- // Relation Trace\r
- // --------------\r
- /**\r
- * Relation trace.\r
- */\r
- protected static abstract class AbstractRelationTrace implements RelationTrace {\r
-\r
- /** The list of relation. */\r
- protected List<${glRelationInfoName}> _relationList;\r
-\r
- /** The list of relation trace. */\r
- protected List<AbstractRelationTrace> _relationTraceList;\r
-\r
- /** The list of relation info as trace. */\r
- protected List<${glRelationInfoName}> _traceRelationInfoList;\r
-\r
- /** The column info as trace. */\r
- protected ${glColumnInfoName} _traceColumnInfo;\r
-\r
- /** The handler of fixed relation trace. */\r
- protected RelationTraceFixHandler _relationTraceFixHandler;\r
-\r
- /**\r
- * Constructor for first step.\r
- * \r
- * @param relationTraceFixHandler The handler of fixed relation trace. (Nullable)\r
- */\r
- public AbstractRelationTrace(RelationTraceFixHandler relationTraceFixHandler) {\r
- this(new ArrayList<${glRelationInfoName}>(), new ArrayList<AbstractRelationTrace>());\r
- this._relationTraceFixHandler = relationTraceFixHandler;\r
- }\r
-\r
- /**\r
- * Constructor for relation step.\r
- * \r
- * @param relationList The list of relation. (NotNull)\r
- * @param relationTraceList The list of relation trace. (NotNull)\r
- */\r
- public AbstractRelationTrace(List<${glRelationInfoName}> relationList, List<AbstractRelationTrace> relationTraceList) {\r
- this._relationList = relationList;\r
- this._relationTraceList = relationTraceList;\r
- this._relationTraceList.add(this);\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return The trace of relation as the list of relation info. (NotNull)\r
- */\r
- public List<${glRelationInfoName}> getTraceRelation() {\r
- return _traceRelationInfoList;\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return The trace of column as column info. (Nullable)\r
- */\r
- public ${glColumnInfoName} getTraceColumn() {\r
- return _traceColumnInfo;\r
- }\r
-\r
- /**\r
- * Fix trace.\r
- * \r
- * @param traceRelationInfoList The trace of relation as the list of relation info. (NotNull)\r
- * @param traceColumnInfo The trace of column as column info. (Nullable)\r
- * @return Relation trace(result). (NotNull)\r
- */\r
- protected RelationTrace fixTrace(List<${glRelationInfoName}> traceRelationInfoList, ${glColumnInfoName} traceColumnInfo) {\r
- final AbstractRelationTrace localRelationTrace = (AbstractRelationTrace)_relationTraceList.get(0);\r
- localRelationTrace.setTraceRelation(traceRelationInfoList);\r
- localRelationTrace.setTraceColumn(traceColumnInfo);\r
- localRelationTrace.recycle();\r
- localRelationTrace.handleFixedRelationTrace();\r
- return localRelationTrace;\r
- }\r
-\r
- protected void setTraceRelation(List<${glRelationInfoName}> traceRelationInfoList) {\r
- this._traceRelationInfoList = traceRelationInfoList;\r
- }\r
-\r
- protected void setTraceColumn(${glColumnInfoName} traceColumn) {\r
- this._traceColumnInfo = traceColumn;\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- */\r
- protected void recycle() {\r
- this._relationList = new ArrayList<${glRelationInfoName}>();\r
- this._relationTraceList = new ArrayList<AbstractRelationTrace>();\r
- this._relationTraceList.add(this);\r
- }\r
-\r
- protected void handleFixedRelationTrace() {\r
- if (_relationTraceFixHandler != null) {\r
- _relationTraceFixHandler.handleFixedTrace(this);\r
- }\r
- }\r
- }\r
-#if ($database.isMakeDBMetaJDBCSupport())\r
-\r
- // ===================================================================================\r
- // JDBC Support\r
- // ============\r
- /**\r
- * ${database.ImplementComment}\r
- * @param conn Connection. (NotNull)\r
- * @param entity Entity. (NotNull)\r
- * @return Prepared insert clause. (NotNull and NotEmpty)\r
- */\r
- public int insertEntity(java.sql.Connection conn, ${glEntityInterfaceName} entity) {\r
- return insertEntity(conn, entity, new PreparedInsertClauseOption());\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @param conn Connection. (NotNull)\r
- * @param entity Entity. (NotNull)\r
- * @param preparedInsertClauseOption Prepared insert clause option. (NotNull)\r
- * @return Prepared insert clause. (NotNull and NotEmpty)\r
- */\r
- public int insertEntity(java.sql.Connection conn, ${glEntityInterfaceName} entity, PreparedInsertClauseOption preparedInsertClauseOption) {\r
- checkDowncast(entity);\r
- final String sql = getPreparedInsertClause(preparedInsertClauseOption);\r
- java.sql.PreparedStatement ps = null;\r
- try {\r
- ps = conn.prepareStatement(sql);\r
- final List<Object> valueList = convertToColumnValueList(entity);\r
- int settingIndex = 1;\r
- for (final Iterator<Object> ite = valueList.iterator(); ite.hasNext(); ) {\r
- Object value = ite.next();\r
- if (value == null) {\r
- ps.setNull(settingIndex, java.sql.Types.VARCHAR);// Giving a clear-cut attitude!\r
- } else {\r
- ps.setObject(settingIndex, value);\r
- }\r
- ++settingIndex;\r
- }\r
- return ps.executeUpdate();\r
- } catch (java.sql.SQLException e) {\r
- String msg = "The sql threw the exception: sql=" + sql;\r
- throw new RuntimeException(msg, e);\r
- } finally {\r
- if (ps != null) {\r
- try {\r
- ps.close();\r
- } catch (java.sql.SQLException ignored) {\r
- }\r
- }\r
- }\r
- }\r
-#end\r
-\r
- // ===================================================================================\r
- // Map String\r
- // ==========\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Map list string that is prepared. (NotNull)\r
- */\r
- public ${glMapListStringName} createMapListString() {\r
- return MapStringUtil.createMapListString();\r
- }\r
-\r
- /**\r
- * ${database.ImplementComment}\r
- * @return Map string builder that is prepared. (NotNull)\r
- */\r
- public ${glMapStringBuilderName} createMapStringBuilder() {\r
- final List${database.filterGenericsString('String')} columnDbNameList = new ArrayList${database.filterGenericsString('String')}();\r
- for (final Iterator<${glColumnInfoName}> ite = getColumnInfoList().iterator(); ite.hasNext(); ) {\r
- final ${glColumnInfoName} columnInfo = (${glColumnInfoName})ite.next();\r
- columnDbNameList.add(columnInfo.getColumnDbName());\r
- }\r
- return MapStringUtil.createMapStringBuilder(columnDbNameList);\r
- }\r
-\r
- // ===================================================================================\r
- // Various Info\r
- // ============\r
- // These methods is expected to override if it needs.\r
- public boolean hasSequence() { return false; }\r
- public String getSequenceNextValSql() { return null; }\r
- public boolean hasVersionNo() { return false; }\r
- public ${glColumnInfoName} getVersionNoColumnInfo() { return null; }\r
- public boolean hasUpdateDate() { return false; }\r
- public ${glColumnInfoName} getUpdateDateColumnInfo() { return null; }\r
- public boolean hasCommonColumn() { return false; }\r
-\r
- // ===================================================================================\r
- // Entity Handling\r
- // =============== \r
- // -----------------------------------------------------\r
- // Accept\r
- // ------\r
- protected <ENTITY extends ${glEntityInterfaceName}> void doAcceptPrimaryKeyMap(ENTITY entity\r
- , Map<String, ? extends Object> columnValueMap\r
- , Map<String, Eps<ENTITY>> entityPropertySetupperMap) {\r
- MapAssertUtil.assertColumnValueMapNotNullAndNotEmpty(columnValueMap);\r
- MapStringValueAnalyzer analyzer = new MapStringValueAnalyzer(columnValueMap, entity.getModifiedPropertyNames());\r
- List<${glColumnInfoName}> columnInfoList = getPrimaryUniqueInfo().getUniqueColumnList();\r
- for (${glColumnInfoName} columnInfo : columnInfoList) {\r
- String columnName = columnInfo.getColumnDbName();\r
- String propertyName = columnInfo.getPropertyName();\r
- String uncapPropName = initUncap(propertyName);\r
- Class<?> propertyType = columnInfo.getPropertyType();\r
- if (analyzer.init(columnName, uncapPropName, propertyName)) {\r
- final Object value;\r
- if (String.class.isAssignableFrom(propertyType)) {\r
- value = analyzer.analyzeString(propertyType);\r
- } else if (Number.class.isAssignableFrom(propertyType)) {\r
- value = analyzer.analyzeNumber(propertyType);\r
- } else if (java.util.Date.class.isAssignableFrom(propertyType)) {\r
- value = analyzer.analyzeDate(propertyType);\r
- } else {\r
- value = analyzer.analyzeOther(propertyType);\r
- }\r
- findEps(entityPropertySetupperMap, propertyName).setup(entity, value);\r
- }\r
- }\r
- }\r
-\r
- protected <ENTITY extends ${glEntityInterfaceName}> void doAcceptColumnValueMap(ENTITY entity\r
- , Map<String, ? extends Object> columnValueMap\r
- , Map<String, Eps<ENTITY>> entityPropertySetupperMap) {\r
- MapAssertUtil.assertColumnValueMapNotNullAndNotEmpty(columnValueMap);\r
- MapStringValueAnalyzer analyzer = new MapStringValueAnalyzer(columnValueMap, entity.getModifiedPropertyNames());\r
- List<${glColumnInfoName}> columnInfoList = getColumnInfoList();\r
- for (${glColumnInfoName} columnInfo : columnInfoList) {\r
- String columnName = columnInfo.getColumnDbName();\r
- String propertyName = columnInfo.getPropertyName();\r
- String uncapPropName = initUncap(propertyName);\r
- Class<?> propertyType = columnInfo.getPropertyType();\r
- if (analyzer.init(columnName, uncapPropName, propertyName)) {\r
- final Object value;\r
- if (String.class.isAssignableFrom(propertyType)) {\r
- value = analyzer.analyzeString(propertyType);\r
- } else if (Number.class.isAssignableFrom(propertyType)) {\r
- value = analyzer.analyzeNumber(propertyType);\r
- } else if (java.util.Date.class.isAssignableFrom(propertyType)) {\r
- value = analyzer.analyzeDate(propertyType);\r
- } else {\r
- value = analyzer.analyzeOther(propertyType);\r
- }\r
- findEps(entityPropertySetupperMap, propertyName).setup(entity, value);\r
- }\r
- }\r
- }\r
-\r
- protected String doExtractPrimaryKeyMapString(${glEntityInterfaceName} entity\r
- , String startBrace\r
- , String endBrace\r
- , String delimiter\r
- , String equal) {\r
- String mapMarkAndStartBrace = MAP_STRING_MAP_MARK + startBrace;\r
- StringBuilder sb = new StringBuilder();\r
- List<${glColumnInfoName}> columnInfoList = getPrimaryUniqueInfo().getUniqueColumnList();\r
- try {\r
- for (${glColumnInfoName} columnInfo : columnInfoList) {\r
- String columnName = columnInfo.getColumnDbName();\r
- Method getterMethod = columnInfo.findGetter();\r
- Object value = getterMethod.invoke(entity, (Object[])null);\r
- helpAppendingColumnValueString(sb, delimiter, equal, columnName, value);\r
- }\r
- } catch (Exception e) {\r
- throw new IllegalStateException(e);\r
- }\r
- sb.delete(0, delimiter.length()).insert(0, mapMarkAndStartBrace).append(endBrace);\r
- return sb.toString();\r
- }\r
-\r
- protected String doExtractColumnValueMapString(${glEntityInterfaceName} entity\r
- , String startBrace\r
- , String endBrace\r
- , String delimiter\r
- , String equal) {\r
- String mapMarkAndStartBrace = MAP_STRING_MAP_MARK + startBrace;\r
- StringBuilder sb = new StringBuilder();\r
- List<${glColumnInfoName}> columnInfoList = getColumnInfoList();\r
- try {\r
- for (${glColumnInfoName} columnInfo : columnInfoList) {\r
- String columnName = columnInfo.getColumnDbName();\r
- Method getterMethod = columnInfo.findGetter();\r
- Object value = getterMethod.invoke(entity, (Object[])null);\r
- helpAppendingColumnValueString(sb, delimiter, equal, columnName, value);\r
- }\r
- } catch (Exception e) {\r
- throw new IllegalStateException(e);\r
- }\r
- sb.delete(0, delimiter.length()).insert(0, mapMarkAndStartBrace).append(endBrace);\r
- return sb.toString();\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Convert\r
- // -------\r
- protected Map<String, Object> doConvertToColumnValueMap(${glEntityInterfaceName} entity) {\r
- Map<String, Object> valueMap = newLinkedHashMap();\r
- try {\r
- List<${glColumnInfoName}> columnInfoList = getColumnInfoList();\r
- for (${glColumnInfoName} columnInfo : columnInfoList) {\r
- String columnName = columnInfo.getColumnDbName();\r
- Method getterMethod = columnInfo.findGetter();\r
- Object value = getterMethod.invoke(entity, (Object[])null);\r
- valueMap.put(columnName, value);\r
- }\r
- } catch (Exception e) {\r
- throw new IllegalStateException(e);\r
- }\r
- return valueMap;\r
- }\r
- \r
- protected Map<String, String> doConvertToColumnStringValueMap(${glEntityInterfaceName} entity) {\r
- Map<String, String> valueMap = newLinkedHashMap();\r
- try {\r
- List<${glColumnInfoName}> columnInfoList = getColumnInfoList();\r
- for (${glColumnInfoName} columnInfo : columnInfoList) {\r
- String columnName = columnInfo.getColumnDbName();\r
- Method getterMethod = columnInfo.findGetter();\r
- Object value = getterMethod.invoke(entity, (Object[])null);\r
- valueMap.put(columnName, helpGettingColumnStringValue(value));\r
- }\r
- } catch (Exception e) {\r
- throw new IllegalStateException(e);\r
- }\r
- return valueMap;\r
- }\r
- \r
- // ===================================================================================\r
- // Entity Property Setup\r
- // =====================\r
- // It's very INTERNAL!\r
- protected <ENTITY extends ${glEntityInterfaceName}> void setupEps(Map<String, Eps<ENTITY>> entityPropertySetupperMap\r
- , Eps<ENTITY> setupper\r
- , ${glColumnInfoName} columnInfo) {\r
- String columnName = columnInfo.getColumnDbName();\r
- String propertyName = columnInfo.getPropertyName();\r
- registerEntityPropertySetupper(columnName, propertyName, setupper, entityPropertySetupperMap);\r
- }\r
-\r
- protected <ENTITY extends ${glEntityInterfaceName}> void registerEntityPropertySetupper(\r
- String columnName\r
- , String propertyName\r
- , Eps<ENTITY> setupper\r
- , Map<String, Eps<ENTITY>> entityPropertySetupperMap) {\r
- entityPropertySetupperMap.put(columnName, setupper);\r
- entityPropertySetupperMap.put(propertyName, setupper);\r
- entityPropertySetupperMap.put(columnName.toLowerCase(), setupper);\r
- entityPropertySetupperMap.put(propertyName.toLowerCase(), setupper);\r
- }\r
- \r
- protected <ENTITY extends ${glEntityInterfaceName}> Eps<ENTITY> findEps(Map<String, Eps<ENTITY>> entityPropertySetupperMap, String propertyName) {\r
- Eps<ENTITY> setupper = entityPropertySetupperMap.get(propertyName);\r
- if (setupper == null) {\r
- String msg = "The propertyName was Not Found in the map of setupper of entity property:";\r
- msg = msg + " propertyName=" + propertyName + " _entityPropertySetupperMap.keySet()=" + entityPropertySetupperMap.keySet();\r
- throw new IllegalStateException(msg);\r
- }\r
- return setupper;\r
- }\r
- \r
- // ===================================================================================\r
- // Util Class\r
- // ==========\r
- /**\r
- * This class is for Internal. Don't use this!\r
- */\r
- protected static class MapStringUtil {\r
-\r
- public static void acceptPrimaryKeyMapString(String primaryKeyMapString, ${glEntityInterfaceName} entity) {\r
- if (primaryKeyMapString == null) {\r
- String msg = "The argument[primaryKeyMapString] should not be null.";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- final String prefix = MAP_STRING_MAP_MARK + MAP_STRING_START_BRACE;\r
- final String suffix = MAP_STRING_END_BRACE;\r
- if (!primaryKeyMapString.trim().startsWith(prefix)) {\r
- primaryKeyMapString = prefix + primaryKeyMapString;\r
- }\r
- if (!primaryKeyMapString.trim().endsWith(suffix)) {\r
- primaryKeyMapString = primaryKeyMapString + suffix;\r
- }\r
- ${glMapListStringName} mapListString = createMapListString();\r
- entity.getDBMeta().acceptPrimaryKeyMap(entity, mapListString.generateMap(primaryKeyMapString));\r
- }\r
-\r
- public static void acceptColumnValueMapString(String columnValueMapString, ${glEntityInterfaceName} entity) {\r
- if (columnValueMapString == null) {\r
- String msg = "The argument[columnValueMapString] should not be null.";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- final String prefix = MAP_STRING_MAP_MARK + MAP_STRING_START_BRACE;\r
- final String suffix = MAP_STRING_END_BRACE;\r
- if (!columnValueMapString.trim().startsWith(prefix)) {\r
- columnValueMapString = prefix + columnValueMapString;\r
- }\r
- if (!columnValueMapString.trim().endsWith(suffix)) {\r
- columnValueMapString = columnValueMapString + suffix;\r
- }\r
- ${glMapListStringName} mapListString = createMapListString();\r
- entity.getDBMeta().acceptColumnValueMap(entity, mapListString.generateMap(columnValueMapString));\r
- }\r
-\r
- public static String extractPrimaryKeyMapString(${glEntityInterfaceName} entity) {\r
- final String startBrace = MAP_STRING_START_BRACE;\r
- final String endBrace = MAP_STRING_END_BRACE;\r
- final String delimiter = MAP_STRING_DELIMITER;\r
- final String equal = MAP_STRING_EQUAL;\r
- return entity.getDBMeta().extractPrimaryKeyMapString(entity, startBrace, endBrace, delimiter, equal);\r
- }\r
-\r
- public static String extractColumnValueMapString(${glEntityInterfaceName} entity) {\r
- final String startBrace = MAP_STRING_START_BRACE;\r
- final String endBrace = MAP_STRING_END_BRACE;\r
- final String delimiter = MAP_STRING_DELIMITER;\r
- final String equal = MAP_STRING_EQUAL;\r
- return entity.getDBMeta().extractColumnValueMapString(entity, startBrace, endBrace, delimiter, equal);\r
- }\r
-\r
- public static void checkTypeString(Object value, String propertyName, String typeName) {\r
- if (value == null) {\r
- throw new IllegalArgumentException("The value should not be null: " + propertyName);\r
- }\r
- if (!(value instanceof String)) {\r
- String msg = "The value of " + propertyName + " should be " + typeName + " or String: ";\r
- msg = msg + "valueType=" + value.getClass() + " value=" + value;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-\r
- public static long parseDateStringAsMillis(Object value, String propertyName, String typeName) {\r
- checkTypeString(value, propertyName, typeName);\r
- try {\r
- final String valueString = filterTimestampValue(((String)value).trim());\r
- return java.sql.Timestamp.valueOf(valueString).getTime();\r
- } catch (RuntimeException e) {\r
- String msg = "The value of " + propertyName + " should be " + typeName + ". but: " + value;\r
- throw new RuntimeException(msg + " threw the exception: value=[" + value + "]", e);\r
- }\r
- }\r
-\r
- public static String filterTimestampValue(String value) {\r
- value = value.trim();\r
- if (value.indexOf("/") == 4 && value.lastIndexOf("/") == 7) {\r
- value = value.replaceAll("/", "-");\r
- }\r
- if (value.indexOf("-") == 4 && value.lastIndexOf("-") == 7) {\r
- if (value.length() == "2007-07-09".length()) {\r
- value = value + " 00:00:00";\r
- }\r
- }\r
- return value;\r
- }\r
-\r
- public static String formatDate(java.util.Date value) {\r
- return getFormatDateFormat().format(value);\r
- }\r
-\r
- public static String formatTimestamp(java.sql.Timestamp value) {\r
- return getFormatDateFormat().format(value);\r
- }\r
-\r
- public static java.text.DateFormat getParseDateFormat() {\r
- return java.text.DateFormat.getDateInstance();\r
- }\r
-\r
- public static java.text.DateFormat getFormatDateFormat() {\r
- return new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");\r
- }\r
-\r
- public static ${glMapListStringName} createMapListString() {\r
- final ${glMapListStringName} mapListString = new ${glMapListStringImplName}();\r
- mapListString.setMapMark(MAP_STRING_MAP_MARK);\r
- mapListString.setListMark(MAP_STRING_LIST_MARK);\r
- mapListString.setStartBrace(MAP_STRING_START_BRACE);\r
- mapListString.setEndBrace(MAP_STRING_END_BRACE);\r
- mapListString.setEqual(MAP_STRING_EQUAL);\r
- mapListString.setDelimiter(MAP_STRING_DELIMITER);\r
- return mapListString;\r
- }\r
-\r
- public static ${glMapStringBuilderName} createMapStringBuilder(List${database.filterGenericsString('String')} columnNameList) {\r
- ${glMapStringBuilderName} mapStringBuilder = new ${glMapStringBuilderImplName}();\r
- mapStringBuilder.setMsMapMark(MAP_STRING_MAP_MARK);\r
- mapStringBuilder.setMsStartBrace(MAP_STRING_START_BRACE);\r
- mapStringBuilder.setMsEndBrace(MAP_STRING_END_BRACE);\r
- mapStringBuilder.setMsEqual(MAP_STRING_EQUAL);\r
- mapStringBuilder.setMsDelimiter(MAP_STRING_DELIMITER);\r
- mapStringBuilder.setColumnNameList(columnNameList);\r
- return mapStringBuilder;\r
- }\r
- }\r
-\r
- /**\r
- * This class is for Internal. Don't use this!\r
- */\r
- protected static class MapAssertUtil {\r
- public static void assertPrimaryKeyMapNotNullAndNotEmpty(java.util.Map${database.filterGenericsString('String, ? extends Object')} primaryKeyMap) {\r
- if (primaryKeyMap == null) {\r
- String msg = "The argument[primaryKeyMap] should not be null.";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (primaryKeyMap.isEmpty()) {\r
- String msg = "The argument[primaryKeyMap] should not be empty.";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
- public static void assertColumnExistingInPrimaryKeyMap(java.util.Map${database.filterGenericsString('String, ? extends Object')} primaryKeyMap, String columnName) {\r
- if (!primaryKeyMap.containsKey(columnName)) {\r
- String msg = "The primaryKeyMap must have the value of " + columnName;\r
- throw new IllegalStateException(msg + ": primaryKeyMap --> " + primaryKeyMap);\r
- }\r
- }\r
- public static void assertColumnValueMapNotNullAndNotEmpty(java.util.Map${database.filterGenericsString('String, ? extends Object')} columnValueMap) {\r
- if (columnValueMap == null) {\r
- String msg = "The argument[columnValueMap] should not be null.";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (columnValueMap.isEmpty()) {\r
- String msg = "The argument[columnValueMap] should not be empty.";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
- }\r
-\r
- /**\r
- * This class is for Internal. Don't use this!\r
- */\r
- protected static class MapStringValueAnalyzer {\r
- protected java.util.Map<String, ? extends Object> _valueMap;\r
- protected java.util.Set<String> _modifiedPropertyNames;\r
- protected String _columnName;\r
- protected String _uncapPropName;\r
- protected String _propertyName;\r
-\r
- public MapStringValueAnalyzer(java.util.Map<String, ? extends Object> valueMap, java.util.Set<String> modifiedPropertyNames) {\r
- this._valueMap = valueMap;\r
- this._modifiedPropertyNames = modifiedPropertyNames;\r
- }\r
-\r
- public boolean init(String columnName, String uncapPropName, String propertyName) {\r
- this._columnName = columnName;\r
- this._uncapPropName = uncapPropName;\r
- this._propertyName = propertyName;\r
- return _valueMap.containsKey(_columnName);\r
- }\r
-\r
- public <COLUMN_TYPE> COLUMN_TYPE analyzeString(Class<COLUMN_TYPE> javaType) {\r
- final Object obj = _valueMap.get(_columnName);\r
- if (obj == null) {\r
- _modifiedPropertyNames.remove(_propertyName);\r
- return null;\r
- }\r
- helpCheckingTypeString(obj, _uncapPropName, javaType.getName());\r
- return (COLUMN_TYPE)obj;\r
- }\r
-\r
- public <COLUMN_TYPE> COLUMN_TYPE analyzeNumber(Class<COLUMN_TYPE> javaType) {\r
- final Object obj = _valueMap.get(_columnName);\r
- if (obj == null) {\r
- _modifiedPropertyNames.remove(_propertyName);\r
- return null;\r
- }\r
- if (javaType.isAssignableFrom(obj.getClass())) {\r
- return (COLUMN_TYPE)obj;\r
- }\r
- return (COLUMN_TYPE)newInstanceByConstructor(javaType, String.class, obj.toString());\r
- }\r
-\r
- public <COLUMN_TYPE> COLUMN_TYPE analyzeDate(Class<COLUMN_TYPE> javaType) {\r
- final Object obj = _valueMap.get(_columnName);\r
- if (obj == null) {\r
- _modifiedPropertyNames.remove(_propertyName);\r
- return null;\r
- }\r
- if (javaType.isAssignableFrom(obj.getClass())) {\r
- return (COLUMN_TYPE)obj;\r
- }\r
- return (COLUMN_TYPE)newInstanceByConstructor(javaType, long.class, helpParsingDateString(obj, _uncapPropName, javaType.getName()));\r
- }\r
-\r
- public <COLUMN_TYPE> COLUMN_TYPE analyzeOther(Class<COLUMN_TYPE> javaType) {\r
- final Object obj = _valueMap.get(_columnName);\r
- if (obj == null) {\r
- _modifiedPropertyNames.remove(_propertyName);\r
- return null;\r
- }\r
- return (COLUMN_TYPE)obj;\r
- }\r
-\r
- private void helpCheckingTypeString(Object value, String uncapPropName, String typeName) {\r
- MapStringUtil.checkTypeString(value, uncapPropName, typeName);\r
- }\r
-\r
- private long helpParsingDateString(Object value, String uncapPropName, String typeName) {\r
- return MapStringUtil.parseDateStringAsMillis(value, uncapPropName, typeName);\r
- }\r
-\r
- protected Object newInstanceByConstructor(Class targetType, Class argType, Object arg) {\r
- java.lang.reflect.Constructor constructor;\r
- try {\r
- constructor = targetType.getConstructor(new Class[]{argType});\r
- } catch (SecurityException e) {\r
- String msg = "targetType=" + targetType + " argType=" + argType + " arg=" + arg;\r
- throw new RuntimeException(msg, e);\r
- } catch (NoSuchMethodException e) {\r
- String msg = "targetType=" + targetType + " argType=" + argType + " arg=" + arg;\r
- throw new RuntimeException(msg, e);\r
- }\r
- try {\r
- return constructor.newInstance(new Object[]{arg});\r
- } catch (IllegalArgumentException e) {\r
- String msg = "targetType=" + targetType + " argType=" + argType + " arg=" + arg;\r
- throw new RuntimeException(msg, e);\r
- } catch (InstantiationException e) {\r
- String msg = "targetType=" + targetType + " argType=" + argType + " arg=" + arg;\r
- throw new RuntimeException(msg, e);\r
- } catch (IllegalAccessException e) {\r
- String msg = "targetType=" + targetType + " argType=" + argType + " arg=" + arg;\r
- throw new RuntimeException(msg, e);\r
- } catch (java.lang.reflect.InvocationTargetException e) {\r
- String msg = "targetType=" + targetType + " argType=" + argType + " arg=" + arg;\r
- throw new RuntimeException(msg, e);\r
- }\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Assist Helper\r
- // =============\r
- protected <ENTITY> ENTITY downcast(${glEntityInterfaceName} entity) {\r
- checkDowncast(entity);\r
- return (ENTITY)entity;\r
- }\r
-\r
- protected void checkDowncast(${glEntityInterfaceName} entity) {\r
- assertObjectNotNull("entity", entity);\r
- Class<? extends ${glEntityInterfaceName}> entityType = getEntityType();\r
- Class<? extends ${glEntityInterfaceName}> targetType = entity.getClass();\r
- if (!entityType.isAssignableFrom(targetType)) {\r
- String name = entityType.getSimpleName();\r
- String msg = "The entity should be " + name + " but it was: " + targetType;\r
- throw new IllegalStateException(msg);\r
- }\r
- }\r
-\r
- protected void helpAppendingColumnValueString(StringBuilder sb, String delimiter, String equal, String colName, Object value) {\r
- sb.append(delimiter).append(colName).append(equal);\r
- sb.append(helpGettingColumnStringValue(value));\r
- }\r
-\r
- protected String helpGettingColumnStringValue(Object value) {\r
- if (value instanceof java.sql.Timestamp) {\r
- return (value != null ? helpFormatingTimestamp((java.sql.Timestamp)value) : "");\r
- } else if (value instanceof java.util.Date) {\r
- return (value != null ? helpFormatingDate((java.util.Date)value) : "");\r
- } else {\r
- return (value != null ? value.toString() : "");\r
- }\r
- }\r
-\r
- protected String helpFormatingDate(java.util.Date date) {\r
- return MapStringUtil.formatDate(date);\r
- }\r
-\r
- protected String helpFormatingTimestamp(java.sql.Timestamp timestamp) {\r
- return MapStringUtil.formatTimestamp(timestamp);\r
- }\r
-\r
- protected Map<String, String> setupKeyToLowerMap(boolean dbNameKey) {\r
- final Map<String, String> map;\r
- if (dbNameKey) {\r
- map = newLinkedHashMap(getTableDbName().toLowerCase(), getTablePropertyName());\r
- } else {\r
- map = newLinkedHashMap(getTablePropertyName().toLowerCase(), getTableDbName());\r
- }\r
- Method[] methods = this.getClass().getMethods();\r
- String columnInfoMethodPrefix = "column";\r
- try {\r
- for (Method method : methods) {\r
- String name = method.getName();\r
- if (!name.startsWith(columnInfoMethodPrefix)) {\r
- continue;\r
- }\r
- ${glColumnInfoName} columnInfo = (${glColumnInfoName})method.invoke(this);\r
- String dbName = columnInfo.getColumnDbName();\r
- String propertyName = columnInfo.getPropertyName();\r
- if (dbNameKey) {\r
- map.put(dbName.toLowerCase(), propertyName);\r
- } else {\r
- map.put(propertyName.toLowerCase(), dbName); \r
- }\r
- }\r
- return Collections.unmodifiableMap(map);\r
- } catch (Exception e) {\r
- throw new IllegalStateException(e);\r
- }\r
- }\r
- \r
- // ===================================================================================\r
- // General Helper\r
- // ==============\r
- // -----------------------------------------------------\r
- // String Handling\r
- // ---------------\r
- protected final String replaceString(String text, String fromText, String toText) {\r
- return ${glSimpleStringUtil}.replace(text, fromText, toText);\r
- }\r
-\r
- protected String initCap(String str) {\r
- return ${glSimpleStringUtil}.initCap(str);\r
- }\r
-\r
- protected String initUncap(String str) {\r
- return ${glSimpleStringUtil}.initUncap(str);\r
- }\r
-\r
- protected String getLineSeparator() {\r
- return ${glSimpleSystemUtil}.getLineSeparator();\r
- }\r
- \r
- // -----------------------------------------------------\r
- // Collection Generator\r
- // --------------------\r
- protected <KEY, VALUE> HashMap<KEY, VALUE> newHashMap() {\r
- return new HashMap<KEY, VALUE>();\r
- }\r
- \r
- protected <KEY, VALUE> LinkedHashMap<KEY, VALUE> newLinkedHashMap() {\r
- return new LinkedHashMap<KEY, VALUE>();\r
- }\r
- \r
- protected <KEY, VALUE> LinkedHashMap<KEY, VALUE> newLinkedHashMap(KEY key, VALUE value) {\r
- LinkedHashMap<KEY, VALUE> map = newLinkedHashMap();\r
- map.put(key, value);\r
- return map;\r
- }\r
- \r
- protected <ELEMENT> ArrayList<ELEMENT> newArrayList() {\r
- return new ArrayList<ELEMENT>();\r
- }\r
- \r
- protected <ELEMENT> ArrayList<ELEMENT> newArrayList(Collection<ELEMENT> collection) {\r
- return new ArrayList<ELEMENT>(collection);\r
- }\r
- \r
- // -----------------------------------------------------\r
- // Reflection Handling\r
- // -------------------\r
- private Set<String> _cachedMethodNames = new HashSet<String>(); // for performance\r
- protected boolean hasMethod(String methodName) {\r
- assertStringNotNullAndNotTrimmedEmpty("methodName", methodName);\r
- if (_cachedMethodNames.isEmpty()) {\r
- synchronized (_cachedMethodNames) {\r
- if (_cachedMethodNames.isEmpty()) {\r
- final Method[] methods = this.getClass().getMethods();\r
- for (Method method : methods) {\r
- _cachedMethodNames.add(method.getName());\r
- }\r
- }\r
- }\r
- }\r
- return _cachedMethodNames.contains(methodName);\r
- }\r
- \r
- // -----------------------------------------------------\r
- // Assert Object\r
- // -------------\r
- /**\r
- * Assert that the argument is not null.\r
- * @param variableName Variable name. (NotNull)\r
- * @param value Value. (NotNull)\r
- */\r
- protected void assertObjectNotNull(String variableName, Object value) {\r
- ${glSimpleAssertUtil}.assertObjectNotNull(variableName, value);\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Assert String\r
- // -------------\r
- /**\r
- * Assert that the string is not null and not trimmed empty.\r
- * @param variableName Variable name. (NotNull)\r
- * @param value Value. (NotNull)\r
- */\r
- protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, String value) {\r
- ${glSimpleAssertUtil}.assertStringNotNullAndNotTrimmedEmpty(variableName, value);\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonDBMeta};\r
-\r
-#set ($myClassName = "${glDBMetaInterfaceName}")\r
-import java.util.Map;\r
-import java.util.List;\r
-#if ($database.isMakeDBMetaJDBCSupport())\r
-import java.sql.Connection;\r
-#end\r
-\r
-import ${glPackageBaseCommon}.${glEntityInterfaceName};\r
-import ${glPackageBaseCommonHelper}.${glMapListStringName};\r
-import ${glPackageBaseCommonHelper}.${glMapStringBuilderName};\r
-import ${glPackageBaseCommonDBMetaInfo}.${glColumnInfoName};\r
-import ${glPackageBaseCommonDBMetaInfo}.${glForeignInfoName};\r
-import ${glPackageBaseCommonDBMetaInfo}.${glReferrerInfoName};\r
-import ${glPackageBaseCommonDBMetaInfo}.${glRelationInfoName};\r
-import ${glPackageBaseCommonDBMetaInfo}.${glUniqueInfoName};\r
-\r
-/**\r
- * The interface of DB meta.\r
- * @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public interface ${myClassName} {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- /** Map-string map-mark. */\r
- public static final String MAP_STRING_MAP_MARK = "map:";\r
-\r
- /** Map-string list-mark. */\r
- public static final String MAP_STRING_LIST_MARK = "list:";\r
-\r
- /** Map-string start-brace. */\r
- public static final String MAP_STRING_START_BRACE = "${database.extractAcceptStartBrace}";\r
-\r
- /** Map-string end-brace. */\r
- public static final String MAP_STRING_END_BRACE = "${database.extractAcceptEndBrace}";\r
-\r
- /** Map-string delimiter. */\r
- public static final String MAP_STRING_DELIMITER = "${database.extractAcceptDelimiter}";\r
-\r
- /** Map-string equal. */\r
- public static final String MAP_STRING_EQUAL = "${database.extractAcceptEqual}";\r
-\r
- // ===================================================================================\r
- // Table Info\r
- // ==========\r
- /**\r
- * Get table db-name.\r
- * @return Table db-name. (NotNull)\r
- */\r
- public String getTableDbName();\r
-\r
- /**\r
- * Get table property-name(JavaBeansRule).\r
- * @return Table property-name(JavaBeansRule). (NotNull)\r
- */\r
- public String getTablePropertyName();\r
-\r
- /**\r
- * Get table SQL-name.\r
- * @return Table SQL-name. (NotNull)\r
- */\r
- public String getTableSqlName();\r
-\r
- // ===================================================================================\r
- // Name Handling\r
- // =============\r
- /**\r
- * Has object of flexible name? {Target objects are TABLE and COLUMN}\r
- * @param flexibleName The flexible name. (NotNull and NotEmpty)\r
- * @return Determination.\r
- */\r
- public boolean hasFlexibleName(String flexibleName);\r
-\r
- /**\r
- * Find db name by flexible name. {Target objects are TABLE and COLUMN}\r
- * @param flexibleName The flexible name. (NotNull and NotEmpty)\r
- * @return Db name. (NotNull and NotEmpty)\r
- */\r
- public String findDbName(String flexibleName);\r
-\r
- /**\r
- * Find property name(JavaBeansRule) by flexible name. {Target objects are TABLE and COLUMN}\r
- * @param flexibleName The flexible name. (NotNull and NotEmpty)\r
- * @return Db name. (NotNull and NotEmpty)\r
- */\r
- public String findPropertyName(String flexibleName);\r
-\r
- // ===================================================================================\r
- // Name Map\r
- // ========\r
- /**\r
- * Get the key-to-lower map of DB name(lower) and property name.\r
- * @return The key-to-lower map of DB name(lower) and property name. (NotNull)\r
- */\r
- public Map<String, String> getDbNamePropertyNameKeyToLowerMap();\r
-\r
- /**\r
- * Get the key-to-lower map of property name(lower) and db name.\r
- * @return The key-to-lower map of property name(lower) and db name. (NotNull)\r
- */\r
- public Map<String, String> getPropertyNameDbNameKeyToLowerMap();\r
-\r
- // ===================================================================================\r
- // Type Name\r
- // =========\r
- /**\r
- * Get the type-name of entity.\r
- * @return The type-name of entity. (NotNull)\r
- */ \r
- public String getEntityTypeName();\r
-\r
- /**\r
- * Get the type-name of condition-bean.\r
- * @return The type-name of condition-bean. (Nullable: If the condition-bean does not exist)\r
- */ \r
- public String getConditionBeanTypeName();\r
-\r
- /**\r
- * Get the type-name of dao.\r
- * @return The type-name of dao. (Nullable: If the dao does not exist)\r
- */ \r
- public String getDaoTypeName();\r
-\r
- /**\r
- * Get the type-name of behavior.\r
- * @return The type-name of behavior. (Nullable: If the behavior does not exist)\r
- */ \r
- public String getBehaviorTypeName();\r
-\r
- // ===================================================================================\r
- // Object Type\r
- // ===========\r
- /**\r
- * Get the type of entity.\r
- * @return The type of entity. (NotNull)\r
- */ \r
- public Class<? extends ${glEntityInterfaceName}> getEntityType();\r
-\r
- // ===================================================================================\r
- // Object Instance\r
- // ===============\r
- /**\r
- * New the instance of entity.\r
- * @return The instance of entity. (NotNull)\r
- */ \r
- public ${glEntityInterfaceName} newEntity();\r
-\r
- // ===================================================================================\r
- // Column Info\r
- // ===========\r
- /**\r
- * @return The list of DB name of column. (NotNull and NotEmpty)\r
- */\r
- public List<${glColumnInfoName}> getColumnInfoList();\r
-\r
- /**\r
- * Has column?\r
- * @param columnFlexibleName The flexible name of the column. (NotNull)\r
- * @return Determination.\r
- */\r
- public boolean hasColumn(String columnFlexibleName);\r
-\r
- /**\r
- * Find the information of the column by the flexible name of the column.\r
- * <pre>\r
- * If the table name is 'BOOK_ID', you can find the dbmeta by ...(as follows)\r
- * 'BOOK_ID', 'BOok_iD', 'book_id'\r
- * , 'BookId', 'bookid', 'bOoKiD'\r
- * </pre>\r
- * @param columnFlexibleName The flexible name of the column. (NotNull)\r
- * @return The information of the column. (NotNull)\r
- */ \r
- public ${glColumnInfoName} findColumnInfo(String columnFlexibleName);\r
-\r
- // ===================================================================================\r
- // Unique Info\r
- // ===========\r
- /**\r
- * Get primary unique info.\r
- * \r
- * @return Primary unique info. (NotNull)\r
- */\r
- public ${glUniqueInfoName} getPrimaryUniqueInfo();\r
-\r
- /**\r
- * Has primary-key?\r
- * \r
- * @return Determination.\r
- */\r
- public boolean hasPrimaryKey();\r
-\r
- /**\r
- * Has two or more primary-keys?\r
- * \r
- * @return Determination.\r
- */\r
- public boolean hasTwoOrMorePrimaryKeys();\r
-\r
- // ===================================================================================\r
- // Relation Info\r
- // =============\r
- // -----------------------------------------------------\r
- // Relation Element\r
- // ----------------\r
- /**\r
- * Find relation info.\r
- * @param relationPropertyName Relation property name. (Both OK - InitCap or not). (NotNull)\r
- * @return Relation info. (NotNull)\r
- */ \r
- public ${glRelationInfoName} findRelationInfo(String relationPropertyName);\r
-\r
- // -----------------------------------------------------\r
- // Foreign Element\r
- // ---------------\r
- /**\r
- * Has foreign?\r
- * @param foreignPropName Foreign property name. (Both OK - InitCap or not). (NotNull)\r
- * @return Determination. (NotNull)\r
- */ \r
- public boolean hasForeign(String foreignPropName);\r
-\r
- /**\r
- * Find foreign dbmeta.\r
- * @param foreignPropName Foreign property name. (Both OK - InitCap or not). (NotNull)\r
- * @return Foreign DBMeta. (NotNull)\r
- */ \r
- public ${myClassName} findForeignDBMeta(String foreignPropName);\r
-\r
- /**\r
- * Find foreign info.\r
- * @param foreignPropName Foreign property name. (Both OK - InitCap or not). (NotNull)\r
- * @return Foreign info. (NotNull)\r
- */ \r
- public ${glForeignInfoName} findForeignInfo(String foreignPropName);\r
-\r
- // -----------------------------------------------------\r
- // Referrer Element\r
- // ----------------\r
- /**\r
- * Has referrer?\r
- * @param referrerPropertyName The property name of referrer. (Both OK - InitCap or not). (NotNull)\r
- * @return Determination. (NotNull)\r
- */ \r
- public boolean hasReferrer(String referrerPropertyName);\r
-\r
- /**\r
- * Find referrer dbmeta.\r
- * @param referrerPropertyName The property name of referrer. (Both OK - InitCap or not). (NotNull)\r
- * @return Referrer DBMeta. (NotNull)\r
- */ \r
- public ${myClassName} findReferrerDBMeta(String referrerPropertyName);\r
-\r
- /**\r
- * Find referrer information.\r
- * @param referrerPropertyName The property name of referrer. (Both OK - InitCap or not). (NotNull)\r
- * @return Referrer information. (NotNull)\r
- */ \r
- public ${glReferrerInfoName} findReferrerInfo(String referrerPropertyName);\r
-\r
- // -----------------------------------------------------\r
- // Relation Trace\r
- // --------------\r
- /**\r
- * Relation trace.\r
- */\r
- public static interface RelationTrace {\r
-\r
- /**\r
- * Get the trace of relation.\r
- * @return The trace of relation as the list of relation info. (NotNull)\r
- */\r
- public List${database.filterGenericsString($glRelationInfoName)} getTraceRelation();\r
-\r
- /**\r
- * Get the trace of column.\r
- * @return The trace of column as column info. (Nullable)\r
- */\r
- public ${glColumnInfoName} getTraceColumn();\r
- }\r
-\r
- public static interface RelationTraceFixHandler {\r
- public void handleFixedTrace(RelationTrace relationTrace);\r
- }\r
-\r
-\r
- // ===================================================================================\r
- // Sequence Info\r
- // =============\r
- /**\r
- * Has sequence?\r
- * @return Determination.\r
- */\r
- public boolean hasSequence();\r
-\r
- /**\r
- * Get the SQL string for getting next value of sequence.\r
- * @return The SQL string for getting next value of sequence. (Nullable: If it does not have sequence, returns null.)\r
- */\r
- public String getSequenceNextValSql();\r
-\r
- // ===================================================================================\r
- // Optimistic Lock Info\r
- // ====================\r
- /**\r
- * Has version no?\r
- * @return Determination.\r
- */\r
- public boolean hasVersionNo();\r
-\r
- /**\r
- * Get the column information of version no.\r
- * @return The column information of version no. (Nullable: If it doesn't have the column, return null.)\r
- */\r
- public ${glColumnInfoName} getVersionNoColumnInfo();\r
-\r
- /**\r
- * Has update date?\r
- * @return Determination.\r
- */\r
- public boolean hasUpdateDate();\r
-\r
- /**\r
- * Get the column information of update date.\r
- * @return The column information of update date. (Nullable: If it doesn't have the column, return null.)\r
- */\r
- public ${glColumnInfoName} getUpdateDateColumnInfo();\r
-\r
- // ===================================================================================\r
- // Common Column Info\r
- // ==================\r
- /**\r
- * Has common column?\r
- * @return Determination.\r
- */\r
- public boolean hasCommonColumn();\r
-\r
- // ===================================================================================\r
- // Entity Handling\r
- // ===============\r
- // -----------------------------------------------------\r
- // Accept\r
- // ------\r
- /**\r
- * Accept primary-key map.\r
- * The column that column-value map-string doesn't have the value of is reflected as null.\r
- * The column that column-value map-string doesn't have the key of is NOT updated nothing.\r
- * @param entity Target entity. (NotNull)\r
- * @param primaryKeyMap Primary-key map. (NotNull and NotEmpty)\r
- */\r
- public void acceptPrimaryKeyMap(${glEntityInterfaceName} entity, Map<String, ? extends Object> primaryKeyMap);\r
-\r
- /**\r
- * Accept primary-key map-string.\r
- * The column that column-value map-string doesn't have the value of is reflected as null.\r
- * The column that column-value map-string doesn't have the key of is NOT updated nothing.\r
- * @param entity Target entity. (NotNull)\r
- * @param primaryKeyMapString Primary-key map-string. (NotNull)\r
- */\r
- public void acceptPrimaryKeyMapString(${glEntityInterfaceName} entity, String primaryKeyMapString);\r
-\r
- /**\r
- * Accept column-value map.\r
- * The column that column-value map-string doesn't have the value of is reflected as null.\r
- * The column that column-value map-string doesn't have the key of is NOT updated nothing.\r
- * @param entity Target entity. (NotNull)\r
- * @param columnValueMap Column-value map. (NotNull and NotEmpty)\r
- */\r
- public void acceptColumnValueMap(${glEntityInterfaceName} entity, Map<String, ? extends Object> columnValueMap);\r
-\r
- /**\r
- * Accept column-value map-string.\r
- * The column that column-value map-string doesn't have the value of is reflected as null.\r
- * The column that column-value map-string doesn't have the key of is NOT updated nothing.\r
- * @param entity Target entity. (NotNull)\r
- * @param columnValueMapString Column-value map-string. (NotNull)\r
- */\r
- public void acceptColumnValueMapString(${glEntityInterfaceName} entity, String columnValueMapString);\r
-\r
- // -----------------------------------------------------\r
- // Extract\r
- // -------\r
- /**\r
- * Extract primary-key map-string. Delimiter is at-mark and semicolon.\r
- * <p>\r
- * <pre>\r
- * ex) Uses that this method have.\r
- * final String primaryKeyMapString = LdBookDbm.extractPrimaryKeyMapString(entity);\r
- * final LdBook entity = dao.selectEntity(new LdBookCB().acceptPrimaryKeyMapString(primaryKeyMapString));\r
- * ... // as primary key for condition.\r
- * </pre>\r
- * \r
- * @param entity Target entity. (NotNull)\r
- * @return Primary-key map-string. (NotNull)\r
- */\r
- public String extractPrimaryKeyMapString(${glEntityInterfaceName} entity);\r
-\r
- /**\r
- * Extract primary-key map-string.\r
- * @param entity Target entity. (NotNull)\r
- * @param startBrace Start-brace. (NotNull)\r
- * @param endBrace End-brace. (NotNull)\r
- * @param delimiter Delimiter. (NotNull)\r
- * @param equal Equal. (NotNull)\r
- * @return Primary-key map-string. (NotNull)\r
- */\r
- public String extractPrimaryKeyMapString(${glEntityInterfaceName} entity, String startBrace, String endBrace, String delimiter, String equal);\r
-\r
- /**\r
- * Extract column-value map-string. Delimiter is at-mark and semicolon.\r
- * @param entity Target entity. (NotNull)\r
- * @return Column-value map-string. (NotNull)\r
- */\r
- public String extractColumnValueMapString(${glEntityInterfaceName} entity);\r
-\r
- /**\r
- * Extract column-value map-string.\r
- * @param entity Target entity. (NotNull)\r
- * @param startBrace Start-brace. (NotNull)\r
- * @param endBrace End-brace. (NotNull)\r
- * @param delimiter Delimiter. (NotNull)\r
- * @param equal Equal. (NotNull)\r
- * @return Column-value map-string. (NotNull)\r
- */\r
- public String extractColumnValueMapString(${glEntityInterfaceName} entity, String startBrace, String endBrace, String delimiter, String equal);\r
-#if ($database.isMakeDBMetaCommonColumnHandling())\r
-\r
- /**\r
- * Extract common-column-value map-string.\r
- * @param entity Target entity. (NotNull)\r
- * @return Common-column-value map-string. (NotNull)\r
- */\r
- public String extractCommonColumnValueMapString(${glEntityInterfaceName} entity);\r
-\r
- /**\r
- * Extract common-column-value map-string.\r
- * @param entity Target entity. (NotNull)\r
- * @param startBrace Start-brace. (NotNull)\r
- * @param endBrace End-brace. (NotNull)\r
- * @param delimiter Delimiter. (NotNull)\r
- * @param equal Equal. (NotNull)\r
- * @return Common-column-value map-string. (NotNull)\r
- */\r
- public String extractCommonColumnValueMapString(${glEntityInterfaceName} entity, String startBrace, String endBrace, String delimiter, String equal);\r
-#end\r
-\r
- // -----------------------------------------------------\r
- // Convert\r
- // -------\r
- /**\r
- * Convert entity to column value as list.\r
- * @param entity Target entity. (NotNull)\r
- * @return The list of column value. (NotNull)\r
- */\r
- public List<Object> convertToColumnValueList(${glEntityInterfaceName} entity);\r
-\r
- /**\r
- * Convert entity to column value as map.\r
- * @param entity Target entity. (NotNull)\r
- * @return The map of column value. (NotNull)\r
- */\r
- public Map<String, Object> convertToColumnValueMap(${glEntityInterfaceName} entity);\r
-\r
- /**\r
- * Convert entity to column string-value as list.\r
- * @param entity Target entity. (NotNull)\r
- * @return The list of column string-value. (NotNull)\r
- */\r
- public List<String> convertToColumnStringValueList(${glEntityInterfaceName} entity);\r
-\r
- /**\r
- * Convert entity to column string-value as map.\r
- * @param entity Target entity. (NotNull)\r
- * @return The map of column string-value. (NotNull)\r
- */\r
- public Map<String, String> convertToColumnStringValueMap(${glEntityInterfaceName} entity);\r
-#if ($database.isMakeDBMetaJDBCSupport())\r
-\r
- // ===================================================================================\r
- // JDBC Support\r
- // ============\r
- /**\r
- * Insert entity using specified connection.\r
- * @param conn Connection. (NotNull)\r
- * @param entity Entity. (NotNull)\r
- * @return Prepared insert clause. (NotNull and NotEmpty)\r
- */\r
- public int insertEntity(Connection conn, ${glEntityInterfaceName} entity);\r
-\r
- /**\r
- * Insert entity using specified connection.\r
- * @param conn Connection. (NotNull)\r
- * @param entity Entity. (NotNull)\r
- * @param preparedInsertClauseOption Prepared insert clause option. (NotNull)\r
- * @return Prepared insert clause. (NotNull and NotEmpty)\r
- */\r
- public int insertEntity(Connection conn, ${glEntityInterfaceName} entity, PreparedInsertClauseOption preparedInsertClauseOption);\r
-\r
- /**\r
- * Get prepared insert clause.\r
- * @return Prepared insert clause. (NotNull and NotEmpty)\r
- */\r
- public String getPreparedInsertClause();\r
-\r
- /**\r
- * Get prepared insert clause.\r
- * @param preparedInsertClauseOption Prepared insert clause option. (NotNull)\r
- * @return Prepared insert clause. (NotNull and NotEmpty)\r
- */\r
- public String getPreparedInsertClause(PreparedInsertClauseOption preparedInsertClauseOption);\r
-\r
- /**\r
- * The option of prepared insert clause.\r
- */\r
- public static class PreparedInsertClauseOption {\r
-\r
- /** Table prefix. */\r
- protected String _tablePrefix;\r
-\r
- /**\r
- * Get table prefix.\r
- * \r
- * @return Table prefix. (Nullable)\r
- */\r
- public String getTablePrefix() {\r
- return this._tablePrefix;\r
- }\r
-\r
- /**\r
- * Set table prefix.\r
- * \r
- * @param tablePrefix Table prefix. (Nullable)\r
- */\r
- public void setTablePrefix(String tablePrefix) {\r
- this._tablePrefix = tablePrefix;\r
- }\r
- }\r
-#end\r
-\r
- // ===================================================================================\r
- // Map String\r
- // ==========\r
- /**\r
- * Create map list string that is prepared. (for INTERNAL)\r
- * @return Map list string that is prepared. (NotNull)\r
- */\r
- public ${glMapListStringName} createMapListString();\r
-\r
- /**\r
- * Create map string builder that is prepared. (for INTERNAL)\r
- * @return Map string builder that is prepared. (NotNull)\r
- */\r
- public ${glMapStringBuilderName} createMapStringBuilder();\r
- \r
- // ===================================================================================\r
- // Entity Property Setup\r
- // =====================\r
- // It's very INTERNAL!\r
- /**\r
- * Has the setupper of entity property by the name of property? <br />\r
- * Comparing is so flexible. {Ignore cases and underscore}\r
- * @param propertyName The name of the property. (NotNull)\r
- * @return Determination.\r
- */\r
- public boolean hasEntityPropertySetupper(String propertyName);\r
- \r
- /**\r
- * Set up entity property. (for INTERNAL)\r
- * @param propertyName The name of the property. (NotNull)\r
- * @param entity The entity for the property. (NotNull)\r
- * @param value The value of the property. (Nullable)\r
- */\r
- public void setupEntityProperty(String propertyName, Object entity, Object value);\r
- \r
- /**\r
- * The setupper of entity property. <br />\r
- * This class is for Internal. Don't use this!\r
- * @param <ENTITY_TYPE> The type of entity.\r
- */\r
- public interface Eps<ENTITY_TYPE extends ${glEntityInterfaceName}> {\r
- \r
- /**\r
- * @param entity Entity. (NotNull)\r
- * @param value Value. (Nullable)\r
- */\r
- void setup(ENTITY_TYPE entity, Object value);\r
- }\r
-\r
- // ===================================================================================\r
- // Optimistic Lock Type\r
- // ====================\r
- public static enum OptimisticLockType {\r
- NONE, VERSION_NO, UPDATE_DATE\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonDBMeta};\r
-\r
-#set ($myClassName = "${glDBMetaInstanceHandlerName}")\r
-import java.util.Collections;\r
-import java.util.Map;\r
-import java.util.LinkedHashMap;\r
-import java.util.Set;\r
-\r
-import ${glPackageBaseCommonUtil}.${glSimpleAssertUtil};\r
-\r
-/**\r
- * DBMeta instance handler.\r
- * @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public class ${myClassName} {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- /** Table DB-name instance map. */\r
- protected static final Map<String, ${glDBMetaInterfaceName}> _tableDbNameInstanceMap = new LinkedHashMap<String, ${glDBMetaInterfaceName}>();\r
-\r
- /** The map of table DB-name and class name. */\r
- protected static final Map<String, String> _tableDbNameClassNameMap;\r
- static {\r
- Map<String, String> tmpMap = new LinkedHashMap<String, String>();\r
-\r
-#foreach ($table in $database.tables)\r
- tmpMap.put("${table.Name}", "${table.DBMetaFullClassName}");\r
-#end\r
-\r
- _tableDbNameClassNameMap = Collections.unmodifiableMap(tmpMap);\r
- }\r
-\r
- /** The key-to-lower map of DB-name and property-name for table. */\r
- protected static final Map<String, String> _tableDbNamePropertyNameKeyToLowerMap;\r
- static {\r
- Map<String, String> tmpMap = new LinkedHashMap<String, String>();\r
-\r
-#foreach ($table in $database.tables)\r
- tmpMap.put("${table.name}".toLowerCase(), "${table.javaBeansRulePropertyName}");\r
-#end\r
-\r
- _tableDbNamePropertyNameKeyToLowerMap = Collections.unmodifiableMap(tmpMap);\r
- }\r
-\r
- /** The key-to-lower map of property-name and DB-name for table. */\r
- protected static final Map<String, String> _tablePropertyNameDbNameKeyToLowerMap;\r
- static {\r
- Map<String, String> tmpMap = new LinkedHashMap<String, String>();\r
-\r
-#foreach ($table in $database.tables)\r
- tmpMap.put("${table.javaBeansRulePropertyName}".toLowerCase(), "${table.name}");\r
-#end\r
-\r
- _tablePropertyNameDbNameKeyToLowerMap = Collections.unmodifiableMap(tmpMap);\r
- }\r
-\r
- protected static ${glDBMetaInterfaceName} getDBMeta(String className) {\r
- try {\r
- Class clazz = Class.forName(className);\r
- java.lang.reflect.Method methoz = clazz.getMethod("getInstance", (Class[])null);\r
- Object result = methoz.invoke(null, (Object[])null);\r
- return (${glDBMetaInterfaceName})result;\r
- } catch (Exception e) {\r
- throw new RuntimeException(e);\r
- }\r
- }\r
-\r
- /**\r
- * @return The initialized map that contains all instances of dbmeta. (NotNull & NotEmpty)\r
- */\r
- public static Map<String, ${glDBMetaInterfaceName}> getDBMetaMap() {\r
- initializeDBMetaMap();\r
- return _tableDbNameInstanceMap;\r
- }\r
- \r
- protected static void initializeDBMetaMap() {\r
- if (isInitialized()) {\r
- return;\r
- }\r
- final Set<String> tableDbNameSet = _tableDbNameClassNameMap.keySet();\r
- for (String tableDbName : tableDbNameSet) {\r
- findDBMeta(tableDbName); // Initialize!\r
- }\r
- if (!isInitialized()) {\r
- String msg = "Failed to initialize tableDbNameInstanceMap:";\r
- msg = msg + " tableDbNameInstanceMap=" + _tableDbNameInstanceMap;\r
- throw new IllegalStateException(msg);\r
- }\r
- }\r
-\r
- protected static boolean isInitialized() {\r
- return _tableDbNameInstanceMap.size() == _tableDbNameClassNameMap.size();\r
- }\r
-\r
- // ===================================================================================\r
- // Main Method\r
- // ===========\r
- /**\r
- * Find dbmeta by table flexible-name.\r
- * <pre>\r
- * If the table name is 'ORDER_DETAIL', you can find the dbmeta by ...(as follows)\r
- * 'ORDER_DETAIL', 'ORDer_DeTAiL', 'order_detail'\r
- * , 'OrderDetail', 'orderdetail', 'oRderDetaIl'\r
- * </pre>\r
- * @param tableFlexibleName Table flexible-name. (NotNull)\r
- * @return The instance of dbmeta. (NotNull)\r
- * @exception DBMetaNotFoundException When the dbmeta is not found.\r
- */\r
- public static ${glDBMetaInterfaceName} findDBMeta(String tableFlexibleName) {\r
- assertStringNotNullAndNotTrimmedEmpty("tableFlexibleName", tableFlexibleName);\r
- if (_tableDbNameInstanceMap.containsKey(tableFlexibleName)) {\r
- return byTableDbName(tableFlexibleName);\r
- }\r
- String toLowerKey = tableFlexibleName.toLowerCase();\r
- if (_tableDbNamePropertyNameKeyToLowerMap.containsKey(toLowerKey)) {\r
- String propertyName = (String)_tableDbNamePropertyNameKeyToLowerMap.get(toLowerKey);\r
- String dbName = (String)_tablePropertyNameDbNameKeyToLowerMap.get(propertyName.toLowerCase());\r
- return byTableDbName(dbName);\r
- }\r
- if (_tablePropertyNameDbNameKeyToLowerMap.containsKey(toLowerKey)) {\r
- String dbName = (String)_tablePropertyNameDbNameKeyToLowerMap.get(toLowerKey);\r
- return byTableDbName(dbName);\r
- }\r
- final int dotLastIndex = tableFlexibleName.lastIndexOf(".");\r
- if (dotLastIndex >= 0) {\r
- try {\r
- return findDBMeta(tableFlexibleName.substring(dotLastIndex + 1));\r
- } catch (DBMetaNotFoundException e) {\r
- // Nothing\r
- }\r
- }\r
- String msg = "The instance map returned null by the key: key=" + tableFlexibleName + " instanceMap=" + _tableDbNameInstanceMap;\r
- throw new DBMetaNotFoundException(msg);\r
- }\r
-\r
- public static class DBMetaNotFoundException extends IllegalStateException {\r
- private static final long serialVersionUID = 1L;\r
- public DBMetaNotFoundException(String msg) {\r
- super(msg);\r
- }\r
- }\r
-\r
- /**\r
- * Get instance by table DB-name.\r
- * @param tableDbName Table DB-name. (NotNull)\r
- * @return Instance. (NotNull)\r
- */\r
- protected static ${glDBMetaInterfaceName} byTableDbName(String tableDbName) {\r
- assertStringNotNullAndNotTrimmedEmpty("tableDbName", tableDbName);\r
- ${glDBMetaInterfaceName} instance = getCachedDBMeta(tableDbName);\r
- if (instance == null) {\r
- String msg = "The instance map returned null by the key: key=" + tableDbName + " instanceMap=" + _tableDbNameInstanceMap;\r
- throw new DBMetaNotFoundException(msg);\r
- }\r
- return instance;\r
- }\r
- \r
- protected static ${glDBMetaInterfaceName} getCachedDBMeta(String tableName) {// For lazy-load! Thank you koyak!\r
- if (_tableDbNameInstanceMap.containsKey(tableName)) {\r
- return _tableDbNameInstanceMap.get(tableName);\r
- }\r
- synchronized (_tableDbNameInstanceMap) {\r
- if (_tableDbNameInstanceMap.containsKey(tableName)) {\r
- return _tableDbNameInstanceMap.get(tableName);\r
- }\r
- String entityName = _tableDbNameClassNameMap.get(tableName);\r
- _tableDbNameInstanceMap.put(tableName, getDBMeta(entityName));\r
- }\r
- return _tableDbNameInstanceMap.get(tableName);\r
- }\r
-\r
- // ===================================================================================\r
- // General Helper\r
- // ==============\r
- // -----------------------------------------------------\r
- // Assert Object\r
- // -------------\r
- protected static void assertObjectNotNull(String variableName, Object value) {\r
- ${glSimpleAssertUtil}.assertObjectNotNull(variableName, value);\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Assert String\r
- // -------------\r
- protected static void assertStringNotNullAndNotTrimmedEmpty(String variableName, String value) {\r
- ${glSimpleAssertUtil}.assertStringNotNullAndNotTrimmedEmpty(variableName, value);\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonDBMetaHierarchy};\r
-\r
-#set ($myClassName = "${glHierarchyArrangerName}")\r
-\r
-import java.lang.reflect.Method;\r
-import java.util.ArrayList;\r
-import java.util.HashMap;\r
-import java.util.List;\r
-import java.util.Map;\r
-import java.util.Set;\r
-\r
-import ${glPackageBaseCommon}.${glEntityInterfaceName};\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInterfaceName};\r
-import ${glPackageBaseCommonDBMetaInfo}.${glColumnInfoName};\r
-import ${glPackageBaseCommonDBMetaInfo}.${glForeignInfoName};\r
-import ${glPackageBaseCommonDBMetaInfo}.${glReferrerInfoName};\r
-import ${glPackageBaseCommonDBMetaInfo}.${glRelationInfoName};\r
-\r
-/**\r
- * The arranger of hierarchy.\r
- * <pre>\r
- * ex) LIBRARY Hierarchy\r
- * \r
- * LIBRARY\r
- * |1\r
- * |--* NEXT_LIBRARY (Referrer)\r
- * | |*\r
- * | |--1 LIBRARY (Foreign)\r
- * |\r
- * |--* COLLECTION (Referrer)\r
- * | |1 \r
- * | |--1 COLLECTION_STATUS (Referrer)\r
- * | | |*\r
- * | | |--1 COLLECTION_STATUS_LOOKUP (Foreign)\r
- * | |\r
- * | |--1 BOOK (Foreign)\r
- * | | |*\r
- * | | |--1 AUTHOR (Foreign)\r
- * | | |--1 PUBLISER (Foreign)\r
- * | | |--1 GENRE (Foreign)\r
- * | | |*\r
- * | | |--1 GENRE (Foreign)\r
- * | |\r
- * | |--* LENDING_COLLECTION (Referrer)\r
- * | |\r
- * |\r
- * |--* LIBRARY_USER (Referrer)\r
- * |* |1\r
- * | |--* LENDING (Referrer)\r
- * | |1\r
- * | |--* LENDING_COLLECTION (Referrer)\r
- * |\r
- * |--1 LB_USER (Foreign)\r
- * |1\r
- * |--* BLACK_LIST (Referrer)\r
- * |1\r
- * |--* BLACK_ACTION (Referrer)\r
- * |*\r
- * |--1 BLACK_ACTION_LOOKUP (Foreign)\r
- * \r
- * \r
- * ex) The SQL of LIBRARY Hierarchy as FLAT\r
- * \r
- * select library.LIBRARY_ID as LIBRARY_ID\r
- * , library.LIBRARY_NAME as LIBRARY_NAME\r
- * , library.R_USER as R_USER\r
- * , library.R_TIMESTAMP as R_TIMESTAMP\r
- * , nextBase.LIBRARY_ID as BASE_LIBRARY_ID\r
- * , nextBase.NEXT_LIBRARY_ID as NEXT_LIBRARY_ID\r
- * , nextBaseNextLibrary.LIBRARY_ID as NEXT_LIBRARY_NEXT_LIBRARY_ID\r
- * , nextBaseNextLibrary.LIBRARY_NAME as NEXT_LIBRARY_NEXT_LIBRARY_NAME\r
- * , collection.COLLECTION_ID as COLLECTION_ID\r
- * , collection.ARRIVAL_DATE as COLLECTION_ARRIVAL_DATE\r
- * , collectionStatus.COLLECTION_ID as COLLECTION_STATUS_ID\r
- * , collectionStatus.COLLECTION_STATUS_CODE as COLLECTION_STATUS_CODE\r
- * , collectionStatusLookup.COLLECTION_STATUS_CODE as COLLECTION_STATUS_CODE\r
- * , collectionStatusLookup.COLLECTION_STATUS_NAME as COLLECTION_STATUS_NAME\r
- * , book.BOOK_ID as COLLECTION_BOOK_ID\r
- * , book.BOOK_NAME as COLLECTION_BOOK_NAME\r
- * , author.AUTHOR_ID as COLLECTION_BOOK_AUTHOR_ID\r
- * , author.AUTHOR_NAME as COLLECTION_BOOK_AUTHOR_NAME\r
- * , libraryUser.LIBRARY_ID as LIBRARY_USER_LIBRARY_ID \r
- * , libraryUser.LB_USER_ID as LIBRARY_USER_LB_USER_ID\r
- * , lending.LIBRARY_ID as LENDING_LIBRARY_ID\r
- * , lending.LB_USER_ID as LENDING_LB_USER_ID\r
- * , lending.LENDING_DATE as LENDING_DATE\r
- * , lending.U_USER as LENDING_U_USER\r
- * , lending.U_MODULE as LENDING_U_MODULE\r
- * , lbUser.LB_USER_ID as LB_USER_ID\r
- * , lbUser.LB_USER_NAME as LB_USER_NAME\r
- * from LIBRARY library\r
- * left outer join NEXT_LIBRARY nextBase on library.LIBRARY_ID = nextBase.LIBRARY_ID\r
- * left outer join LIBRARY nextBaseNextLibrary on nextBase.NEXT_LIBRARY_ID = nextBaseNextLibrary.LIBRARY_ID\r
- * left outer join COLLECTION collection on library.LIBRARY_ID = collection.LIBRARY_ID\r
- * left outer join COLLECTION_STATUS collectionStatus on collection.COLLECTION_ID = collectionStatus.COLLECTION_ID\r
- * left outer join COLLECTION_STATUS_LOOKUP collectionStatusLookup on collectionStatus.COLLECTION_STATUS_CODE = collectionStatusLookup.COLLECTION_STATUS_CODE\r
- * left outer join BOOK book on collection.BOOK_ID = book.BOOK_ID\r
- * left outer join AUTHOR author on book.AUTHOR_ID = author.AUTHOR_ID\r
- * left outer join LIBRARY_USER libraryUser on library.LIBRARY_ID = libraryUser.LIBRARY_ID\r
- * left outer join LENDING lending on libraryUser.LIBRARY_ID = lending.LIBRARY_ID and libraryUser.LB_USER_ID = lending.LB_USER_ID\r
- * left outer join LB_USER lbUser on libraryUser.LB_USER_ID = lbUser.LB_USER_ID\r
- * \r
- * \r
- * ex) Invoking Hierarchy Arranger\r
- * \r
- * private List<Library> makeLibraryList() {\r
- * final HierarchyRequest<Library> request = createHierarchyRequest(createFlatLibraryList());\r
- * return new HierarchyArranger<Library>().arrangeHierarchy(request);\r
- * }\r
- * \r
- * \r
- * ex) Creating Hierarchy Request\r
- * \r
- * private HierarchyRequest<Library> createHierarchsyRequest(java.util.List>HierarchyFlatLibrary> flatLibraryList) {\r
- * \r
- * // Define dbmeta.\r
- * final HierarchyFlatLibraryDbm sourceDbm = HierarchyFlatLibraryDbm.getInstance();\r
- *\r
- * // Define hierarychy request as library.\r
- * final HierarchyRequest<Library> request = new HierarchyRequest<Library>(Library.class);\r
- * \r
- * // Register the list of source iterator. (by calling creator for flat library list)\r
- * request.registerSourceList(flatLibraryList);\r
- *\r
- * // Create relation trace.\r
- * final LibraryRelationTrace trace = LibraryDbm.getInstance().createRelationTrace(null);\r
- * \r
- * // Register column [libraryId]\r
- * request.mapping(sourceDbm.columnLibraryId(), trace.columnLibraryId());\r
- *\r
- * // Register column [libraryName]\r
- * request.mapping(sourceDbm.columnLibraryName(), trace.columnLibraryName());\r
- *\r
- * // Register column [RUser]\r
- * request.mapping(sourceDbm.columnRUser(), trace.columnRUser());\r
- *\r
- * // Register column [RTimestamp]\r
- * request.mapping(sourceDbm.columnRTimestamp(), trace.columnRTimestamp());\r
- *\r
- * // Register column [baseLibraryId]\r
- * request.mapping(sourceDbm.columnBaseLibraryId(), trace.referrerNextLibraryByBaseIdList().columnLibraryId());\r
- *\r
- * // Register column [nextLibraryId]\r
- * request.mapping(sourceDbm.columnNextLibraryId(), trace.referrerNextLibraryByBaseIdList().columnNextLibraryId());\r
- *\r
- * // Register column [nextLibraryNextLibraryId]\r
- * request.mapping(sourceDbm.columnNextLibraryNextLibraryId(), trace.referrerNextLibraryByBaseIdList().foreignLibraryByNextId().columnLibraryId());\r
- *\r
- * // Register column [nextLibraryNextLibraryName]\r
- * request.mapping(sourceDbm.columnNextLibraryNextLibraryName(), trace.referrerNextLibraryByBaseIdList().foreignLibraryByNextId().columnLibraryName());\r
- *\r
- * // Register column [collectionId]\r
- * request.mapping(sourceDbm.columnCollectionId(), trace.referrerCollectionList().columnCollectionId());\r
- *\r
- * // Register column [arrivalDate]\r
- * request.mapping(sourceDbm.columnCollectionArrivalDate(), trace.referrerCollectionList().columnArrivalDate());\r
- *\r
- * // Register column [collectionStatusId]\r
- * request.mapping(sourceDbm.columnCollectionStatusId(), trace.referrerCollectionList().foreignCollectionStatusAsOne().columnCollectionId());\r
- *\r
- * // Register column [collectionStatusCode]\r
- * request.mapping(sourceDbm.columnCollectionStatusCode(), trace.referrerCollectionList().foreignCollectionStatusAsOne().foreignCollectionStatusLookup().columnCollectionStatusCode());\r
- *\r
- * // Register column [collectionStatusName]\r
- * request.mapping(sourceDbm.columnCollectionStatusName(), trace.referrerCollectionList().foreignCollectionStatusAsOne().foreignCollectionStatusLookup().columnCollectionStatusName());\r
- *\r
- * // Register column [collectionBookId]\r
- * request.mapping(sourceDbm.columnCollectionBookId(), trace.referrerCollectionList().foreignBook().columnBookId());\r
- *\r
- * // Register column [collectionBookName]\r
- * request.mapping(sourceDbm.columnCollectionBookName(), trace.referrerCollectionList().foreignBook().columnBookName());\r
- *\r
- * // Register column [collectionBookAuthorId]\r
- * request.mapping(sourceDbm.columnCollectionBookAuthorId(), trace.referrerCollectionList().foreignBook().foreignAuthor().columnAuthorId());\r
- *\r
- * // Register column [collectionBookAuthorName]\r
- * request.mapping(sourceDbm.columnCollectionBookAuthorName(), trace.referrerCollectionList().foreignBook().foreignAuthor().columnAuthorName());\r
- *\r
- * // Register column [libraryUserLibraryId]\r
- * request.mapping(sourceDbm.columnLibraryUserLibraryId(), trace.referrerLibraryUserList().columnLibraryId());\r
- *\r
- * // Register column [libraryUserLbUserId]\r
- * request.mapping(sourceDbm.columnLibraryUserLbUserId(), trace.referrerLibraryUserList().columnLbUserId());\r
- *\r
- * // Register column [lendingLibraryId]\r
- * request.mapping(sourceDbm.columnLendingLibraryId(), trace.referrerLibraryUserList().referrerLendingList().columnLibraryId());\r
- *\r
- * // Register column [lendingLbUserId]\r
- * request.mapping(sourceDbm.columnLendingLbUserId(), trace.referrerLibraryUserList().referrerLendingList().columnLbUserId());\r
- *\r
- * // Register column [lendingDate]\r
- * request.mapping(sourceDbm.columnLendingDate(), trace.referrerLibraryUserList().referrerLendingList().columnLendingDate());\r
- *\r
- * // Register column [lendingUUser]\r
- * request.mapping(sourceDbm.columnLendingUUser(), trace.referrerLibraryUserList().referrerLendingList().columnUUser());\r
- *\r
- * // Register column [lendingUModule]\r
- * request.mapping(sourceDbm.columnLendingUModule(), trace.referrerLibraryUserList().referrerLendingList().columnUModule());\r
- *\r
- * // Register column [lbUserId]\r
- * request.mapping(sourceDbm.columnLbUserId(), trace.referrerLibraryUserList().foreignLbUser().columnLbUserId());\r
- *\r
- * // Register column [lbUserName]\r
- * request.mapping(sourceDbm.columnLbUserName(), trace.referrerLibraryUserList().foreignLbUser().columnLbUserName());\r
- *\r
- * return request;\r
- * }\r
- * \r
- * private java.util.List>HierarchyFlatLibrary> createFlatLibraryList() {\r
- * (...select and get list)\r
- * return flatLibraryList;\r
- * }\r
- * \r
- * \r
- * === Relation Trace Tips ===\r
- * \r
- * RelationTrace.f + [Code Assist] -- go to Foreign\r
- * RelationTrace.r + [Code Assist] -- go to Referrer\r
- * RelationTrace.c + [Code Assist] -- end relation by Column\r
- *\r
- * \r
- * <pre>\r
- * @author ${database.ClassAuthor}\r
- * @param <LOCAL_ENTITY> The type of local entity extends Entity\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public class ${myClassName}<LOCAL_ENTITY extends ${glEntityInterfaceName}> {\r
-\r
- // ===================================================================================\r
- // Main\r
- // ====\r
- /**\r
- * Arrange hierarchy.\r
- * \r
- * @param request Hierarchy request. (NotNull)\r
- * @return The list of local entity. (NotNull)\r
- */\r
- public List<LOCAL_ENTITY> arrangeHierarchy(${glHierarchyRequestName}<LOCAL_ENTITY> request) {\r
- final List<LOCAL_ENTITY> localTableList = new ArrayList<LOCAL_ENTITY>();\r
- final Map<String, ${glEntityInterfaceName}> alreadyRegisteredEntityMap = new HashMap<String, ${glEntityInterfaceName}>();\r
-\r
- // ============\r
- // Record Loop!\r
- // ============\r
- final ${glHierarchySourceIteratorName} sourceIterator = request.getSourceIterator();\r
- while (sourceIterator.hasNext()) {\r
- final ${glHierarchySourceRowName} sourceRow = sourceIterator.next();\r
- final TopInfo<LOCAL_ENTITY> topInfo = new TopInfo<LOCAL_ENTITY>();\r
- topInfo.setHierarchyRequest(request);\r
- topInfo.setSourceRow(sourceRow);\r
- topInfo.setAlreadyRegisteredEntityMap(alreadyRegisteredEntityMap);\r
-\r
- final Map<String, Object> primaryKeyMap = extractTopPrimaryKeyMapFromSource(topInfo);\r
- final String alreadyRegisteredKey = buildTopAlreadyRegisteredKey(primaryKeyMap);\r
- if (alreadyRegisteredEntityMap.containsKey(alreadyRegisteredKey)) {\r
- final ${glEntityInterfaceName} localEntity = alreadyRegisteredEntityMap.get(alreadyRegisteredKey);\r
- topInfo.setLocalEntity(localEntity);\r
- } else {\r
- // Make local entity and register it to the result list.\r
- final LOCAL_ENTITY localEntity = newLocalEntity(request.getDestinationDBMeta());\r
- topInfo.setLocalEntity(localEntity);\r
- localTableList.add(localEntity);\r
- alreadyRegisteredEntityMap.put(alreadyRegisteredKey, localEntity);\r
- }\r
-\r
- // ============\r
- // Column Loop!\r
- // ============\r
- doColumnLoop(topInfo);\r
- }\r
-\r
- // Clear modified properties.\r
- final java.util.Set<String> alreadyRegisteredEntityKeySet = alreadyRegisteredEntityMap.keySet();\r
- for (String key : alreadyRegisteredEntityKeySet) {\r
- final ${glEntityInterfaceName} currentRegisteredEntity = alreadyRegisteredEntityMap.get(key);\r
- currentRegisteredEntity.clearModifiedPropertyNames();\r
- }\r
-\r
- return localTableList;\r
- }\r
-\r
- /**\r
- * Build top already-registered key.\r
- * \r
- * @param primaryKeyMap The map of primary key. (NotNull)\r
- * @return Top already-registered key. (NotNull)\r
- */\r
- protected String buildTopAlreadyRegisteredKey(Map<String, Object> primaryKeyMap) {\r
- return ${glHierarchyRequestElementName}.TOP_KEY + ":" + primaryKeyMap;\r
- }\r
-\r
- /**\r
- * Do column loop.\r
- * \r
- * @param topInfo The information object of top that has generics of the type of local entity. (NotNull)\r
- */\r
- protected void doColumnLoop(TopInfo<LOCAL_ENTITY> topInfo) {\r
- final ${glHierarchyRequestName}<LOCAL_ENTITY> request = topInfo.getHierarchyRequest();\r
- final ${glEntityInterfaceName} localEntity = topInfo.getLocalEntity();\r
- final List<${glHierarchyRequestElementName}> requestElementList = request.getRequestElementList();\r
-\r
- // ============\r
- // Column Loop!\r
- // ============\r
- for (${glHierarchyRequestElementName} requestElement : requestElementList) {\r
- final List<String> relationPropertyNameList = requestElement.getRelationPropertyNameList();\r
-\r
- // If the column belongs to local entity, inject the value to entity and continue loop.\r
- if (relationPropertyNameList == null || relationPropertyNameList.isEmpty()) {\r
- final ${glHierarchySourceColumnName} sourceColumn = requestElement.getSourceColumnInfo();\r
- final ${glHierarchySourceRowName} sourceRow = topInfo.getSourceRow();\r
- final Object sourceColumnValue = extractColumnValueFromSource(sourceRow, sourceColumn);\r
- final ${glColumnInfoName} destinationColumnInfo = requestElement.getDestinationColumnInfo();\r
- injectColumnValueToDestinationIfNotNull(localEntity, destinationColumnInfo, sourceColumnValue);\r
- continue;\r
- }\r
-\r
- // ==============\r
- // Relation Loop!\r
- // ==============\r
- doRelationLoop(topInfo, requestElement, relationPropertyNameList);\r
- }\r
- }\r
-\r
- /**\r
- * Do relation loop.\r
- * \r
- * @param topInfo The information object of top that has generics of local entity. (NotNull)\r
- * @param requestElement The element of request. This is relation loop resource. (NotNull)\r
- * @param relationPropNameList The list of relation property name that has generics of string. (NotNull)\r
- */\r
- protected void doRelationLoop(TopInfo<LOCAL_ENTITY> topInfo, ${glHierarchyRequestElementName} requestElement, java.util.List<String> relationPropNameList) {\r
- final ${glHierarchyRequestName}<LOCAL_ENTITY> request = topInfo.getHierarchyRequest();\r
- final Map<String, ${glEntityInterfaceName}> alreadyRegisteredEntityMap = topInfo.getAlreadyRegisteredEntityMap();\r
-\r
- // Temporary variables for local\r
- ${glEntityInterfaceName} localEntity = topInfo.getLocalEntity();// as Default\r
- ${glDBMetaInterfaceName} localDBMeta = request.getDestinationDBMeta();// as Default\r
- String localRelationPath = ${glHierarchyRequestElementName}.TOP_KEY;// as Default\r
-\r
- // ==============\r
- // Relation Loop!\r
- // ==============\r
- final StringBuilder relationPropKeyStringBuilder = new StringBuilder();\r
- int relationLoopCount = 0;\r
- for (String relationPropName : relationPropNameList) {\r
- if (relationPropKeyStringBuilder.length() > 0) {\r
- relationPropKeyStringBuilder.append("_");\r
- }\r
- relationPropKeyStringBuilder.append(relationPropName);\r
- final String targetRelationPath = relationPropKeyStringBuilder.toString();\r
- final ${glRelationInfoName} relationInfo = localDBMeta.findRelationInfo(relationPropName);\r
-\r
- final Map<String, Object> targetPrimaryKeyMap;\r
- final String alreadyRegisteredEntityKey;\r
- if (!relationInfo.isReferrer()) {\r
- // =======\r
- // Foreign\r
- // =======\r
- final ${glForeignInfoName} foreignInfo = localDBMeta.findForeignInfo(relationPropName);\r
- final String foreignPropName = foreignInfo.getForeignPropertyName();\r
-\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- // If the value of primary key does not exist, break this relation path!\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- if (isNotExistPrimaryKey(topInfo, targetRelationPath)) {\r
- break;\r
- }\r
-\r
- targetPrimaryKeyMap = extractPrimaryKeyMapFromSource(topInfo, targetRelationPath);\r
- alreadyRegisteredEntityKey = targetRelationPath + ":" + targetPrimaryKeyMap.toString();\r
- if (!alreadyRegisteredEntityMap.containsKey(alreadyRegisteredEntityKey)) {\r
- // - - - - - - - - - - - - - - - - - - - - - - -\r
- // Initialize the foreign entity and inject it.\r
- // - - - - - - - - - - - - - - - - - - - - - - -\r
- final ${glEntityInterfaceName} foreignEntity = foreignInfo.getForeignDBMeta().newEntity();\r
- injectForeignEntity(localEntity, foreignPropName, foreignEntity);\r
-\r
- // - - - - - - - - - - - - - - - - - -\r
- // Initialize primary key of foreign.\r
- // - - - - - - - - - - - - - - - - - -\r
- injectForeignPrimaryKey(foreignEntity, targetPrimaryKeyMap);\r
-\r
- // - - - - - - - - - - - - - - - - - -\r
- // Initialize foreign key of local.\r
- // - - - - - - - - - - - - - - - - - -\r
- injectLocalForeignKey(topInfo, localEntity, foreignInfo, targetRelationPath);\r
-\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- // Put foreign entity to the map of already-registered-entity.\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- alreadyRegisteredEntityMap.put(alreadyRegisteredEntityKey.toString(), foreignEntity);\r
- } else {\r
- // - - - - - - - - - - - - - -\r
- // Inject the foreign entity.\r
- // - - - - - - - - - - - - - -\r
- final ${glEntityInterfaceName} foreignEntity = alreadyRegisteredEntityMap.get(alreadyRegisteredEntityKey);\r
- injectForeignEntity(localEntity, foreignPropName, foreignEntity);\r
- }\r
- } else {\r
- // =======\r
- // Referrer\r
- // =======\r
- final ${glReferrerInfoName} referrerInfo = localDBMeta.findReferrerInfo(relationPropName);\r
-\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- // Extract referrer list from current local entity and initialize it if needs.\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- List<${glEntityInterfaceName}> referrerList = extractReferrerList(localEntity, referrerInfo);\r
- if (referrerList == null) {\r
-#if (!$database.isOneToManyReturnNullIfNonSelect())\r
- String msg = "The referrer list should not be null: localEntity=" + localEntity + " referrerInfo=" + referrerInfo;\r
- throw new IllegalStateException(msg);\r
-#else\r
- // Initialize the list of referrer and inject it.\r
- referrerList = new ArrayList<${glEntityInterfaceName}>();\r
- injectReferrerList(localEntity, referrerInfo, referrerList);\r
-#end\r
- }\r
-\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- // If the value of primary key does not exist, break this relation path!\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- if (isNotExistPrimaryKey(topInfo, targetRelationPath)) {\r
- break;\r
- }\r
-\r
- targetPrimaryKeyMap = extractPrimaryKeyMapFromSource(topInfo, targetRelationPath);\r
- alreadyRegisteredEntityKey = targetRelationPath + ":" + targetPrimaryKeyMap.toString();\r
- if (!alreadyRegisteredEntityMap.containsKey(alreadyRegisteredEntityKey)) {\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- // Initialize referrer entity and register it to the list of referrer with primary key value.\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- final ${glEntityInterfaceName} referrerEntity = relationInfo.getTargetDBMeta().newEntity();\r
- referrerList.add(referrerEntity);\r
-\r
- // - - - - - - - - - - - - - - - - - -\r
- // Initialize primary key of referrer.\r
- // - - - - - - - - - - - - - - - - - -\r
- injectReferrerPrimaryKey(referrerEntity, targetPrimaryKeyMap);\r
-\r
- // - - - - - - - - - - - - - - - - - -\r
- // Initialize foreign key of referrer.\r
- // - - - - - - - - - - - - - - - - - -\r
- injectReferrerForeignKey(topInfo, referrerEntity, referrerInfo, localRelationPath);\r
-\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- // Put referrer entity to the map of already-registered-entity.\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- alreadyRegisteredEntityMap.put(alreadyRegisteredEntityKey.toString(), referrerEntity);\r
- }\r
- }\r
-\r
- // - - - - - - - - - - - - - - - - - -\r
- // Set next value to current element.\r
- // - - - - - - - - - - - - - - - - - -\r
- localEntity = alreadyRegisteredEntityMap.get(alreadyRegisteredEntityKey);\r
- localDBMeta = localEntity.getDBMeta();\r
- localRelationPath = targetRelationPath;\r
-\r
- if (relationLoopCount == (relationPropNameList.size() - 1)) {// The last loop!\r
- // - - - - - - - - - - - - \r
- // Here is the last loop!\r
- // - - - - - - - - - - - - \r
- doLastLoopInjection(topInfo, requestElement, localEntity, targetPrimaryKeyMap);\r
- }\r
- ++relationLoopCount;\r
- }\r
- }\r
-\r
- /**\r
- * Is not existing primary key at the relation path?.\r
- * \r
- * @param topInfo The information object of top that has generics of local entity. (NotNull)\r
- * @param relationPath The path of relation. (NotNull)\r
- * @return Determination.\r
- */\r
- protected boolean isNotExistPrimaryKey(TopInfo<LOCAL_ENTITY> topInfo, String relationPath) {\r
- final Map<String, Object> primaryKeyMap = extractPrimaryKeyMapFromSource(topInfo, relationPath);\r
- final Set<String> keySet = primaryKeyMap.keySet();\r
- for (String key : keySet) {\r
- final Object value = primaryKeyMap.get(key);\r
- if (value == null) {\r
- return true;\r
- }\r
- }\r
- return false;\r
- }\r
-\r
- /**\r
- * Do last loop injection.\r
- * \r
- * @param topInfo The information object of top that has generics of local entity. (NotNull)\r
- * @param requestElement The element of request. This is relation loop resource. (NotNull)\r
- * @param localEntity The interface of local entity. (NotNull)\r
- * @param primaryKeyMap The map of primary key. (NotNull)\r
- */\r
- protected void doLastLoopInjection(TopInfo<LOCAL_ENTITY> topInfo, ${glHierarchyRequestElementName} requestElement,\r
- ${glEntityInterfaceName} localEntity, Map<String, Object> primaryKeyMap) {\r
- final ${glColumnInfoName} destinationColumnInfo = requestElement.getDestinationColumnInfo();\r
- if (!primaryKeyMap.containsKey(destinationColumnInfo.getColumnDbName())) {// The column is primary key!\r
- final ${glHierarchySourceRowName} sourceRow = topInfo.getSourceRow();\r
- final ${glHierarchySourceColumnName} sourceColumnInfo = requestElement.getSourceColumnInfo();\r
- final Object sourceColumnValue = extractColumnValueFromSource(sourceRow, sourceColumnInfo);\r
- if (sourceColumnValue != null) {\r
- injectColumnValueToDestinationIfNotNull(localEntity, destinationColumnInfo, sourceColumnValue);\r
- }\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Extract Logic\r
- // =============\r
- protected Map<String, Object> extractTopPrimaryKeyMapFromSource(TopInfo<LOCAL_ENTITY> topInfo) {\r
- return extractPrimaryKeyMapFromSource(topInfo, ${glHierarchyRequestElementName}.TOP_KEY);\r
- }\r
-\r
- protected Map<String, Object> extractPrimaryKeyMapFromSource(TopInfo<LOCAL_ENTITY> topInfo, String relationPath) {\r
- final ${glHierarchyRequestName}<LOCAL_ENTITY> request = topInfo.getHierarchyRequest();\r
- final ${glHierarchySourceRowName} sourceRow = topInfo.getSourceRow();\r
- final java.util.List<${glHierarchyRequestElementName}> primaryKeyElement = request.findPrimaryKeyElement(relationPath);\r
- final java.util.Map<String, Object> primaryKeyMap = new java.util.LinkedHashMap<String, Object>();\r
- for (${glHierarchyRequestElementName} element : primaryKeyElement) {\r
- final ${glHierarchySourceColumnName} sourcePrimaryKey = element.getSourceColumnInfo();\r
- final Object sourcePrimaryKeyValue = extractColumnValueFromSource(sourceRow, sourcePrimaryKey);\r
- primaryKeyMap.put(element.getDestinationColumnInfo().getColumnDbName(), sourcePrimaryKeyValue);\r
- }\r
- return primaryKeyMap;\r
- }\r
-\r
- protected Object extractColumnValueFromSource(${glHierarchySourceRowName} sourceRow,\r
- ${glHierarchySourceColumnName} sourceColumn) {\r
- return sourceRow.extractColumnValue(sourceColumn);\r
- }\r
-\r
- @SuppressWarnings("unchecked")\r
- protected java.util.List<${glEntityInterfaceName}> extractReferrerList(${glEntityInterfaceName} entity, ${glReferrerInfoName} referrerInfo) {\r
- return (java.util.List<${glEntityInterfaceName}>) invoke(referrerInfo.findGetter(), entity, new Object[] {});\r
- }\r
-\r
- // ===================================================================================\r
- // Inject Logic\r
- // ============\r
- /**\r
- * @param entity Entity. (NotNull)\r
- * @param columnInfo Column info. (NotNull)\r
- * @param columnValue Column value. (NotNull)\r
- */\r
- protected void injectColumnValueToDestinationIfNotNull(${glEntityInterfaceName} entity, ${glColumnInfoName} columnInfo, final Object columnValue) {\r
- if (columnValue != null) {\r
- injectColumnValueToDestination(entity, columnInfo.getColumnDbName(), columnValue);\r
- }\r
- }\r
-\r
- protected void injectColumnValueToDestination(${glEntityInterfaceName} entity, String columnDbName, final Object columnValue) {\r
- if (columnValue == null) {\r
- String msg = "The argument[columnValue] should not be null: ";\r
- msg = msg + " table=" + entity.getTableDbName() + " column=" + columnDbName;\r
- throw new IllegalStateException(msg);\r
- }\r
- invoke(entity.getDBMeta().findColumnInfo(columnDbName).findSetter(), entity, new Object[] { columnValue });\r
- }\r
-\r
- protected void injectColumnValueMapToDestination(${glEntityInterfaceName} entity, final Map<String, Object> columnValueMap) {\r
- final Set<String> columnNameSet = columnValueMap.keySet();\r
- for (String columnName : columnNameSet) {\r
- final Object columnValue = columnValueMap.get(columnName);\r
- injectColumnValueToDestination(entity, columnName, columnValue);\r
- }\r
- }\r
-\r
- protected void injectForeignEntity(${glEntityInterfaceName} entity, String foreignPropName, ${glEntityInterfaceName} foreignEntity) {\r
- final String capPropReferrerName = initCap(foreignPropName);\r
- final Method method = findMethod(entity.getClass(), "set" + capPropReferrerName, new Class[] { foreignEntity.getDBMeta().getEntityType() });\r
- invoke(method, entity, new Object[] { foreignEntity });\r
- }\r
-\r
- protected void injectReferrerList(${glEntityInterfaceName} entity, ${glReferrerInfoName} referrerInfo, java.util.List<${glEntityInterfaceName}> referrerList) {\r
- invoke(referrerInfo.findSetter(), entity, new Object[] { referrerList });\r
- }\r
-\r
- protected void injectForeignPrimaryKey(${glEntityInterfaceName} foreignEntity, Map<String, Object> foreigPrimaryKeyMap) {\r
- injectColumnValueMapToDestination(foreignEntity, foreigPrimaryKeyMap);\r
- }\r
-\r
- protected void injectReferrerPrimaryKey(${glEntityInterfaceName} referrerEntity, Map<String, Object> referrerPrimaryKeyMap) {\r
- injectColumnValueMapToDestination(referrerEntity, referrerPrimaryKeyMap);\r
- }\r
-\r
- protected void injectLocalForeignKey(TopInfo<LOCAL_ENTITY> topInfo, ${glEntityInterfaceName} localEntity, ${glForeignInfoName} foreignInfo, String foreignRelationPath) {\r
- final ${glHierarchyRequestName}<LOCAL_ENTITY> request = topInfo.getHierarchyRequest();\r
- final Map<String, Object> foreignPrimaryKeyMap = extractPrimaryKeyMapFromSource(topInfo, foreignRelationPath);\r
- final List<${glHierarchyRequestElementName}> primaryKeyElementList = request.findPrimaryKeyElement(foreignRelationPath);\r
- final Map<String, Object> localForeignKeyMap = new HashMap<String, Object>();\r
- for (${glHierarchyRequestElementName} foreignElement : primaryKeyElementList) {\r
- final String foreignPrimaryKeyColumnName = foreignElement.getDestinationColumnInfo().getColumnDbName();\r
- final ${glColumnInfoName} localForeignKeyInfo = foreignInfo.findLocalByForeign(foreignPrimaryKeyColumnName);\r
- final Object localForeignKeyValue = foreignPrimaryKeyMap.get(foreignPrimaryKeyColumnName);\r
- localForeignKeyMap.put(localForeignKeyInfo.getColumnDbName(), localForeignKeyValue);\r
- }\r
- injectColumnValueMapToDestination(localEntity, localForeignKeyMap);\r
- }\r
-\r
- protected void injectReferrerForeignKey(TopInfo<LOCAL_ENTITY> topInfo, ${glEntityInterfaceName} referrerEntity,\r
- ${glReferrerInfoName} referrerInfo, String localRelationPath) {\r
- final ${glHierarchyRequestName}<LOCAL_ENTITY> request = topInfo.getHierarchyRequest();\r
- final Map<String, Object> localPrimaryKeyMap = extractPrimaryKeyMapFromSource(topInfo, localRelationPath);\r
- final List<${glHierarchyRequestElementName}> primaryKeyElementList = request.findPrimaryKeyElement(localRelationPath);\r
- final Map<String, Object> referrerForeignKeyMap = new HashMap<String, Object>();\r
- for (${glHierarchyRequestElementName} localElement : primaryKeyElementList) {\r
- final String localPrimaryKeyName = localElement.getDestinationColumnInfo().getColumnDbName();\r
- final ${glColumnInfoName} referrerForeignKeyInfo = referrerInfo.findReferrerByLocal(localPrimaryKeyName);\r
- final Object referrerForeignKeyValue = localPrimaryKeyMap.get(localPrimaryKeyName);\r
- referrerForeignKeyMap.put(referrerForeignKeyInfo.getColumnDbName(), referrerForeignKeyValue);\r
- }\r
- injectColumnValueMapToDestination(referrerEntity, referrerForeignKeyMap);\r
- }\r
-\r
- // ===================================================================================\r
- // Other Logic\r
- // ===========\r
- @SuppressWarnings("unchecked")\r
- protected LOCAL_ENTITY newLocalEntity(final ${glDBMetaInterfaceName} destinationDBMeta) {\r
- final LOCAL_ENTITY localEntity;\r
- try {\r
- localEntity = (LOCAL_ENTITY) destinationDBMeta.getEntityType().newInstance();\r
- } catch (InstantiationException e) {\r
- throw new IllegalStateException(e);\r
- } catch (IllegalAccessException e) {\r
- throw new IllegalStateException(e);\r
- }\r
- return localEntity;\r
- }\r
-\r
- // ===================================================================================\r
- // Helper\r
- // ======\r
- protected String initCap(final String name) {\r
- final String capPropReferrerName = name.substring(0, 1).toUpperCase() + name.substring(1);\r
- return capPropReferrerName;\r
- }\r
-\r
- private java.lang.reflect.Method findMethod(Class clazz, String methodName, Class[] argTypes) {\r
- try {\r
- return clazz.getMethod(methodName, argTypes);\r
- } catch (NoSuchMethodException ex) {\r
- String msg = "class=" + clazz + " method=" + methodName + "-" + java.util.Arrays.asList(argTypes);\r
- throw new RuntimeException(msg, ex);\r
- }\r
- }\r
-\r
- private Object invoke(java.lang.reflect.Method method, Object target, Object[] args) {\r
- try {\r
- return method.invoke(target, args);\r
- } catch (RuntimeException e) {\r
- final String lineSeparator = System.getProperty("line.separator");\r
- final Class<?>[] parameterTypes = method.getParameterTypes();\r
- String msg = "Invoking method threw the exception:" + lineSeparator;\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * *" + lineSeparator;\r
- msg = msg + "[" + method.getDeclaringClass().getSimpleName() + "." + method.getName() + "()]" + lineSeparator;\r
- msg = msg + " methodArgTypes = {" + createTypeViewFromTypeArray(parameterTypes) + "}" + lineSeparator;\r
- msg = msg + " specifiedArgValues = {" + createValueViewFromValueArray(args) + "}" + lineSeparator;\r
- msg = msg + " specifiedArgTypes = {" + createTypeViewFromValueArray(args) + "}" + lineSeparator;\r
- if (parameterTypes.length > 0 && args.length > 0 && args[0] != null && !parameterTypes[0].equals(args[0].getClass())) {\r
- msg = msg + " " + lineSeparator;\r
- final String compareString = "{" + parameterTypes[0] + " -- " + args[0].getClass() + "}";\r
- msg = msg + " *Warning! The argType is ummatched: " + compareString + lineSeparator; \r
- }\r
- msg = msg + "* * * * * * * * * */" + lineSeparator;\r
- throw new RuntimeException(msg, e);\r
- } catch (java.lang.reflect.InvocationTargetException ex) {\r
- Throwable t = ex.getCause();\r
- if (t instanceof RuntimeException) {\r
- throw (RuntimeException) t;\r
- }\r
- if (t instanceof Error) {\r
- throw (Error) t;\r
- }\r
- String msg = "target=" + target + " method=" + method + "-" + java.util.Arrays.asList(args);\r
- throw new RuntimeException(msg, ex);\r
- } catch (IllegalAccessException ex) {\r
- String msg = "target=" + target + " method=" + method + "-" + java.util.Arrays.asList(args);\r
- throw new RuntimeException(msg, ex);\r
- }\r
- }\r
-\r
- private String createValueViewFromValueArray(Object[] array) {\r
- final StringBuffer sb = new StringBuffer();\r
- for (int i=0; i < array.length; i++) {\r
- final Object value = array[i];\r
- if (sb.length() == 0) {\r
- sb.append(value);\r
- } else {\r
- sb.append(", ").append(value);\r
- }\r
- }\r
- return sb.toString();\r
- }\r
- \r
- private String createTypeViewFromValueArray(Object[] array) {\r
- final StringBuffer sb = new StringBuffer();\r
- for (int i=0; i < array.length; i++) {\r
- final Object value = array[i];\r
- final String typeName = value != null ? value.getClass().getSimpleName() : "null";\r
- if (sb.length() == 0) {\r
- sb.append(typeName);\r
- } else {\r
- sb.append(", ").append(typeName);\r
- }\r
- }\r
- return sb.toString();\r
- }\r
- \r
- private String createTypeViewFromTypeArray(Class[] array) {\r
- final StringBuffer sb = new StringBuffer();\r
- for (int i=0; i < array.length; i++) {\r
- final Class type = array[i];\r
- if (sb.length() == 0) {\r
- sb.append(type.getSimpleName());\r
- } else {\r
- sb.append(", ").append(type.getSimpleName());\r
- }\r
- }\r
- return sb.toString();\r
- }\r
-\r
- // ===================================================================================\r
- // Info Class\r
- // ==========\r
- protected static class TopInfo<LOCAL_ENTITY extends ${glEntityInterfaceName}> {\r
- private ${glHierarchyRequestName}<LOCAL_ENTITY> hierarchyRequest;\r
-\r
- private ${glHierarchySourceRowName} sourceRow;\r
-\r
- private ${glEntityInterfaceName} localEntity;\r
-\r
- private Map<String, ${glEntityInterfaceName}> alreadyRegisteredEntityMap;\r
-\r
- public ${glHierarchySourceRowName} getSourceRow() {\r
- return sourceRow;\r
- }\r
-\r
- public void setSourceRow(${glHierarchySourceRowName} sourceRow) {\r
- this.sourceRow = sourceRow;\r
- }\r
-\r
- public ${glEntityInterfaceName} getLocalEntity() {\r
- return localEntity;\r
- }\r
-\r
- public void setLocalEntity(${glEntityInterfaceName} localEntity) {\r
- this.localEntity = localEntity;\r
- }\r
-\r
- public Map<String, ${glEntityInterfaceName}> getAlreadyRegisteredEntityMap() {\r
- return alreadyRegisteredEntityMap;\r
- }\r
-\r
- public void setAlreadyRegisteredEntityMap(Map<String, ${glEntityInterfaceName}> alreadyRegisteredEntityMap) {\r
- this.alreadyRegisteredEntityMap = alreadyRegisteredEntityMap;\r
- }\r
-\r
- public ${glHierarchyRequestName}<LOCAL_ENTITY> getHierarchyRequest() {\r
- return hierarchyRequest;\r
- }\r
-\r
- public void setHierarchyRequest(${glHierarchyRequestName}<LOCAL_ENTITY> hierarchyRequest) {\r
- this.hierarchyRequest = hierarchyRequest;\r
- }\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonDBMetaHierarchy};\r
-\r
-#set ($myClassName = "${glHierarchyBasicRequestName}")\r
-\r
-import ${glPackageBaseCommon}.${glEntityInterfaceName};\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInterfaceName};\r
-import ${glPackageBaseCommonDBMetaInfo}.${glColumnInfoName};\r
-\r
-/**\r
- * The basic request of hierarchy.\r
- * \r
- * @author ${database.ClassAuthor}\r
- * @param <LOCAL_ENTITY> The type of local entity.\r
- * @param <LOCAL_RELATION_TRACE> The type of local relation trace.\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public class ${myClassName}<LOCAL_ENTITY extends ${glEntityInterfaceName}, LOCAL_RELATION_TRACE extends ${glDBMetaInterfaceName}.RelationTrace> extends ${glHierarchyRequestName}<LOCAL_ENTITY> {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected ${glColumnInfoName} _currentSourceColumnInfo;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- /**\r
- * Constructor.\r
- * \r
- * @param localEntityType The type of local entity. (NotNull)\r
- */\r
- public ${myClassName}(Class<LOCAL_ENTITY> localEntityType) {\r
- super(localEntityType);\r
- }\r
-\r
- // ===================================================================================\r
- // Easy-to-Use\r
- // ===========\r
- // -----------------------------------------------------\r
- // public\r
- // ------\r
- /**\r
- * Set up source.\r
- * \r
- * @param sourceColumnInfo The column info of source. (NotNull)\r
- * @return Destination relation trace. (NotNull)\r
- */\r
- public DestinationRelationTrace<LOCAL_RELATION_TRACE> src(${glColumnInfoName} sourceColumnInfo) {\r
- this._currentSourceColumnInfo = sourceColumnInfo;\r
- final ${myClassName}<LOCAL_ENTITY, LOCAL_RELATION_TRACE> outer = this;\r
- return new DestinationRelationTrace<LOCAL_RELATION_TRACE>() {\r
- public LOCAL_RELATION_TRACE dst() {\r
- return outer.dst();\r
- }\r
- };\r
- }\r
-\r
- /**\r
- * Set up destination.\r
- * \r
- * @return Local relation trace. (NotNull)\r
- */\r
- public LOCAL_RELATION_TRACE dst() {\r
- final ${glDBMetaInterfaceName}.RelationTraceFixHandler handler = new ${glDBMetaInterfaceName}.RelationTraceFixHandler() {\r
- public void handleFixedTrace(${glDBMetaInterfaceName}.RelationTrace relationTrace) {\r
- mapping(_currentSourceColumnInfo, relationTrace);\r
- }\r
- };\r
- final Object target = destinationDBMeta;\r
- java.lang.reflect.Method method = null;\r
- try {\r
- method = target.getClass().getMethod("createRelationTrace", new Class[]{${glDBMetaInterfaceName}.RelationTraceFixHandler.class});\r
- } catch (NoSuchMethodException e) {\r
- String msg = "Not found method: method=createRelationTrace(${glDBMetaInterfaceName}.RelationTraceFixHandler)";\r
- throw new IllegalStateException(msg, e);\r
- }\r
- try {\r
- return (LOCAL_RELATION_TRACE)method.invoke(target, new Object[]{handler});\r
- } catch (IllegalAccessException e) {\r
- throw new IllegalStateException(e);\r
- } catch (java.lang.reflect.InvocationTargetException e) {\r
- throw new IllegalStateException(e.getCause());\r
- }\r
- }\r
-\r
- public static interface DestinationRelationTrace<LOCAL_RELATION_TRACE> {\r
- public LOCAL_RELATION_TRACE dst();\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonDBMetaHierarchy};\r
-\r
-#set ($myClassName = "${glHierarchyRequestName}")\r
-\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-\r
-import ${glPackageBaseCommon}.${glEntityInterfaceName};\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInterfaceName};\r
-import ${glPackageBaseCommonDBMetaHierarchyBasic}.${glHierarchySourceEntityColumnName};\r
-import ${glPackageBaseCommonDBMetaHierarchyBasic}.${glHierarchySourceEntityListIteratorName};\r
-import ${glPackageBaseCommonDBMetaInfo}.${glColumnInfoName};\r
-import ${glPackageBaseCommonDBMetaInfo}.${glRelationInfoName};\r
-\r
-/**\r
- * The request of hierarchy.\r
- * \r
- * @author ${database.ClassAuthor}\r
- * @param <LOCAL_ENTITY> The type of local entity.\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public class ${myClassName}<LOCAL_ENTITY extends ${glEntityInterfaceName}> {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- /** The dbmeta of desination. */\r
- protected ${glDBMetaInterfaceName} destinationDBMeta;\r
-\r
- /** The iterator of hierarychy source. */\r
- protected ${glHierarchySourceIteratorName} sourceIterator;\r
-\r
- /** The list of request element. */\r
- protected List<${glHierarchyRequestElementName}> requestElementList = new ArrayList<${glHierarchyRequestElementName}>();\r
-\r
- /** The set of already registered source column info for check. */\r
- protected java.util.Set<${glColumnInfoName}> alreadyRegisteredSourceColumnInfoSet4Check = new java.util.HashSet<${glColumnInfoName}>();\r
-\r
- /** First source column info for check. */\r
- protected ${glColumnInfoName} firstSourceColumnInfo4Check;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- /**\r
- * Constructor.\r
- * \r
- * @param localEntityType The type of local entity. (NotNull)\r
- */\r
- public ${myClassName}(Class<LOCAL_ENTITY> localEntityType) {\r
- LOCAL_ENTITY localEntity;\r
- try {\r
- localEntity = localEntityType.newInstance();\r
- } catch (InstantiationException e) {\r
- String msg = "localEntityType.newInstance() threw the InstantiationException:";\r
- msg = msg + " localEntityType=" + localEntityType;\r
- throw new IllegalStateException(msg, e);\r
- } catch (IllegalAccessException e) {\r
- String msg = "localEntityType.newInstance() threw the IllegalAccessException:";\r
- msg = msg + " localEntityType=" + localEntityType;\r
- throw new IllegalStateException(msg, e);\r
- }\r
- destinationDBMeta = localEntity.getDBMeta();\r
- }\r
-\r
- // ===================================================================================\r
- // Easy-to-Use\r
- // ===========\r
- // -----------------------------------------------------\r
- // public\r
- // ------\r
- /**\r
- * Register the list of source. <br />\r
- * This method uses the default source iterator.\r
- * \r
- * @param sourceList The list of source. (NotNull)\r
- * @param <SOURCE> The type of source. (NotNull)\r
- */\r
- public <SOURCE> void registerSourceList(java.util.List<SOURCE> sourceList) {\r
- sourceIterator = createDefaultSourceIterator(sourceList);\r
- }\r
-\r
- /**\r
- * Set up mapping between the source column and the destination relation.\r
- * \r
- * @param sourceColumn The column of source. (NotNull)\r
- * @param relationTrace The relation trace of destination. (NotNull)\r
- */\r
- public void mapping(${glHierarchySourceColumnName} sourceColumn, ${glDBMetaInterfaceName}.RelationTrace relationTrace) {\r
- setupElement(sourceColumn, relationTrace.getTraceColumn());\r
- addRelationToLastElement(relationTrace.getTraceRelation());\r
- }\r
-\r
- /**\r
- * Set up mapping between the source column and the destination relation.\r
- * \r
- * @param sourceColumnInfo The column info of source. (NotNull)\r
- * @param relationTrace The relation trace of destination. (NotNull)\r
- */\r
- public void mapping(${glColumnInfoName} sourceColumnInfo, ${glDBMetaInterfaceName}.RelationTrace relationTrace) {\r
- setupElement(sourceColumnInfo, relationTrace.getTraceColumn());\r
- addRelationToLastElement(relationTrace.getTraceRelation());\r
- }\r
-\r
- // -----------------------------------------------------\r
- // internal\r
- // -------\r
- /**\r
- * Set up element.\r
- * \r
- * @param sourceColumn The column of source. (NotNull)\r
- * @param destinationColumnInfo The column info of destination. (NotNull)\r
- */\r
- protected void setupElement(${glHierarchySourceColumnName} sourceColumn, ${glColumnInfoName} destinationColumnInfo) {\r
- assertSameLocalDestinationDBMeta(destinationColumnInfo);\r
- final ${glHierarchyRequestElementName} element = new ${glHierarchyRequestElementName}();\r
- requestElementList.add(element);\r
- element.mapping(sourceColumn, destinationColumnInfo);\r
- element.setDestinationDBMeta(destinationColumnInfo.getDBMeta());\r
- }\r
-\r
- /**\r
- * Set up element. <br />\r
- * This method uses the default source column.\r
- * \r
- * @param sourceColumnInfo The column info of source. (NotNull)\r
- * @param destinationColumnInfo The column info of destination. (NotNull)\r
- */\r
- protected void setupElement(${glColumnInfoName} sourceColumnInfo, ${glColumnInfoName} destinationColumnInfo) {\r
- if (alreadyRegisteredSourceColumnInfoSet4Check.contains(sourceColumnInfo)) {\r
- String msg = "The wrong sourceColumnInfo!" + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The source column has already been registered:" + getLineSeparator();\r
- msg = msg + "- - - - -" + getLineSeparator();\r
- msg = msg + " sourceColumnInfo=" + sourceColumnInfo + getLineSeparator();\r
- msg = msg + " registeredColumnInfo=" + alreadyRegisteredSourceColumnInfoSet4Check + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */" + getLineSeparator();\r
- throw new IllegalStateException(msg);\r
- }\r
- alreadyRegisteredSourceColumnInfoSet4Check.add(sourceColumnInfo);\r
- assertSameSourceDBMeta(sourceColumnInfo);\r
- assertSameLocalDestinationDBMeta(destinationColumnInfo);\r
- final ${glHierarchyRequestElementName} element = new ${glHierarchyRequestElementName}();\r
- requestElementList.add(element);\r
- final ${glHierarchySourceColumnName} sourceColumn = createDefaultSourceColumn(sourceColumnInfo);\r
- element.mapping(sourceColumn, destinationColumnInfo);\r
- element.setDestinationDBMeta(destinationColumnInfo.getDBMeta());\r
- }\r
-\r
- /**\r
- * Make relatetion by the list of relation info.\r
- * \r
- * @param relationInfoList The list of relation info. (NotNull)\r
- */\r
- protected void addRelationToLastElement(List<${glRelationInfoName}> relationInfoList) {\r
- if (requestElementList.isEmpty()) {\r
- String msg = "You shuold invoke mapping() before invoking relation()!";\r
- throw new IllegalStateException(msg);\r
- }\r
- for (${glRelationInfoName} relationInfo : relationInfoList) {\r
- final int lastIndex = requestElementList.size() - 1;\r
- final ${glHierarchyRequestElementName} element = (${glHierarchyRequestElementName}) requestElementList.get(lastIndex);\r
- element.relation(relationInfo);\r
- }\r
- }\r
-\r
- /**\r
- * Assert same source dbmeta.\r
- * \r
- * @param sourceColumnInfo The column info of source. (NotNull)\r
- */\r
- protected void assertSameSourceDBMeta(${glColumnInfoName} sourceColumnInfo) {\r
- if (firstSourceColumnInfo4Check == null) {\r
- firstSourceColumnInfo4Check = sourceColumnInfo;\r
- return;\r
- }\r
- final ${glDBMetaInterfaceName} expectedDBMeta = firstSourceColumnInfo4Check.getDBMeta();\r
- final ${glDBMetaInterfaceName} actualDBMeta = sourceColumnInfo.getDBMeta();\r
- if (!expectedDBMeta.equals(actualDBMeta)) {\r
- String msg = "The wrong sourceColumnInfo!" + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The dbmeta of sourceColumnInfo is difference from";\r
- msg = msg + " the one of Your First Source Column Info:" + getLineSeparator();\r
- msg = msg + "- - - - -" + getLineSeparator();\r
- msg = msg + "sourceColumnInfo=" + sourceColumnInfo + getLineSeparator();\r
- msg = msg + "firstSourceColumnInfo4Check=" + firstSourceColumnInfo4Check + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */" + getLineSeparator();\r
- throw new IllegalStateException(msg);\r
- }\r
- }\r
-\r
- /**\r
- * Assert same source dbmeta.\r
- * @param destinationColumnInfo The column info of destination. (NotNull)\r
- */\r
- protected void assertSameLocalDestinationDBMeta(${glColumnInfoName} destinationColumnInfo) {\r
- if (!requestElementList.isEmpty()) {\r
- final ${glHierarchyRequestElementName} currentElement = currentElement();\r
- final List<${glRelationInfoName}> relationInfoList = currentElement.getRelationInfoList();\r
- if (relationInfoList.isEmpty()) {\r
- final ${glDBMetaInterfaceName} actualDBMeta = currentElement().getDestinationDBMeta();\r
- final ${glDBMetaInterfaceName} expectedDBMeta = destinationDBMeta;\r
- if (!expectedDBMeta.equals(actualDBMeta)) {\r
- String msg = "The wrong destinationColumnInfo!" + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The dbmeta of destinationColumnInfo is difference from";\r
- msg = msg + " the one of Your Local Entity:" + getLineSeparator();\r
- msg = msg + "- - - - -" + getLineSeparator();\r
- msg = msg + "destinationColumnInfo=" + currentElement.getDestinationColumnInfo() + getLineSeparator();\r
- msg = msg + "localEntity=" + destinationDBMeta.getEntityTypeName() + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */" + getLineSeparator();\r
- throw new IllegalStateException(msg);\r
- }\r
- }\r
- }\r
- }\r
-\r
- /**\r
- * @param sourceList The list of source. (NotNull)\r
- * @param <SOURCE> The type of source. (NotNull)\r
- * @return Default source iterator. (NotNull)\r
- */\r
- protected <SOURCE> ${glHierarchySourceIteratorName} createDefaultSourceIterator(java.util.List<SOURCE> sourceList) {\r
- return new ${glHierarchySourceEntityListIteratorName}<SOURCE>(sourceList);\r
- }\r
-\r
- /**\r
- * @param sourceColumnInfo The column info of source. (NotNull)\r
- * @return Default source column. (NotNull)\r
- */\r
- protected ${glHierarchySourceColumnName} createDefaultSourceColumn(${glColumnInfoName} sourceColumnInfo) {\r
- return new ${glHierarchySourceEntityColumnName}(sourceColumnInfo);\r
- }\r
-\r
- /**\r
- * Get current element.\r
- * \r
- * @return Current element. (NotNull)\r
- */\r
- protected ${glHierarchyRequestElementName} currentElement() {\r
- final int lastIndex = requestElementList.size() - 1;\r
- return (${glHierarchyRequestElementName}) requestElementList.get(lastIndex);\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Internal\r
- // --------\r
- /**\r
- * @param relationPropertyKey Relation Property key. (NotNull)\r
- * @return The list of request element. (NotNull)\r
- */\r
- public List<${glHierarchyRequestElementName}> findPrimaryKeyElement(String relationPropertyKey) {\r
- final List<${glHierarchyRequestElementName}> resultList = new ArrayList<${glHierarchyRequestElementName}>();\r
- for (${glHierarchyRequestElementName} element : requestElementList) {\r
- if (!relationPropertyKey.equals(element.getRelationPropertyKey())) {\r
- continue;\r
- }\r
- final ${glColumnInfoName} destinationColumnInfo = element.getDestinationColumnInfo();\r
- if (!destinationColumnInfo.isPrimary()) {\r
- continue;\r
- }\r
- resultList.add(element);\r
- }\r
- if (resultList.isEmpty()) {\r
- String msg = "Not found primary key element by relationPropertyKey in requestElementList: ";\r
- msg = msg + " relationPropertyKey=" + relationPropertyKey + " requestElementList=" + requestElementList;\r
- throw new IllegalStateException(msg);\r
- }\r
- return resultList;\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public ${glDBMetaInterfaceName} getDestinationDBMeta() {\r
- return destinationDBMeta;\r
- }\r
-\r
- public void setDestinationDBMeta(${glDBMetaInterfaceName} destinationDBMeta) {\r
- this.destinationDBMeta = destinationDBMeta;\r
- }\r
-\r
- public List<${glHierarchyRequestElementName}> getRequestElementList() {\r
- return requestElementList;\r
- }\r
-\r
- public void addRequestElementList(${glHierarchyRequestElementName} element) {\r
- this.requestElementList.add(element);\r
- }\r
-\r
- public ${glHierarchySourceIteratorName} getSourceIterator() {\r
- return sourceIterator;\r
- }\r
-\r
- public void setSourceIterator(${glHierarchySourceIteratorName} sourceIterator) {\r
- this.sourceIterator = sourceIterator;\r
- }\r
-\r
- // ===================================================================================\r
- // Helper\r
- // ======\r
- /**\r
- * Get the value of line separator.\r
- * \r
- * @return The value of line separator. (NotNull)\r
- */\r
- protected String getLineSeparator() {\r
- return System.getProperty("line.separator");\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonDBMetaHierarchy};\r
-\r
-#set ($myClassName = "${glHierarchyRequestElementName}")\r
-\r
-import java.util.List;\r
-\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInterfaceName};\r
-import ${glPackageBaseCommonDBMetaInfo}.${glColumnInfoName};\r
-import ${glPackageBaseCommonDBMetaInfo}.${glRelationInfoName};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public class ${myClassName} {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- /** Top key. */\r
- public static final String TOP_KEY = "$top$";\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- /** The column of source. */\r
- protected ${glHierarchySourceColumnName} sourceColumn;\r
-\r
- /** The dbmeta of destination. */\r
- protected ${glDBMetaInterfaceName} destinationDBMeta;\r
-\r
- /** The column info of destination. */\r
- protected ${glColumnInfoName} destinationColumnInfo;\r
-\r
- /** The list of relation info. */\r
- protected java.util.List<${glRelationInfoName}> relationInfoList = new java.util.ArrayList<${glRelationInfoName}>();\r
-\r
- /** the list of relation property name. */\r
- protected java.util.List<String> relationPropertyNameList = new java.util.ArrayList<String>();\r
-\r
- /** Relation property key. Default value is TOP_KEY. */\r
- protected String relationPropertyKey = TOP_KEY;\r
-\r
- // ===================================================================================\r
- // Easy-to-Use\r
- // ===========\r
- // -----------------------------------------------------\r
- // Internal\r
- // --------\r
- /**\r
- * Make mapping between the source column and the destination one.\r
- * \r
- * @param sourceColumn The column of source. (NotNull)\r
- * @param destinationColumnInfo The column info of destination. (NotNull)\r
- */\r
- public void mapping(${glHierarchySourceColumnName} sourceColumn, ${glColumnInfoName} destinationColumnInfo) {\r
- this.sourceColumn = sourceColumn;\r
- this.destinationColumnInfo = destinationColumnInfo;\r
- }\r
-\r
- /**\r
- * Make relatetion by relation info.\r
- * \r
- * @param relationInfo Relation info. (NotNull)\r
- */\r
- public void relation(${glRelationInfoName} relationInfo) {\r
- addRelationInfoList(relationInfo);\r
- }\r
-\r
- protected void addRelationInfoList(${glRelationInfoName} relationInfo) {\r
- relationInfoList.add(relationInfo);\r
- addRelationPropertyNameList(relationInfo.getRelationPropertyName());\r
- }\r
-\r
- protected void addRelationPropertyNameList(String relationPropertyName) {\r
- relationPropertyNameList.add(relationPropertyName);\r
- setupRelationPropertyKey();\r
- }\r
-\r
- protected void setupRelationPropertyKey() {\r
- final StringBuilder sb = new StringBuilder();\r
- for (String relationPropertyName : relationPropertyNameList) {\r
- if (sb.length() > 0) {\r
- sb.append("_");\r
- }\r
- sb.append(relationPropertyName);\r
- }\r
- this.relationPropertyKey = sb.toString();\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public ${glHierarchySourceColumnName} getSourceColumnInfo() {\r
- return sourceColumn;\r
- }\r
-\r
- public void setSourceColumnInfo(${glHierarchySourceColumnName} sourceColumn) {\r
- this.sourceColumn = sourceColumn;\r
- }\r
-\r
- public void setDestinationDBMeta(${glDBMetaInterfaceName} destinationDBMeta) {\r
- this.destinationDBMeta = destinationDBMeta;\r
- }\r
-\r
- public ${glDBMetaInterfaceName} getDestinationDBMeta() {\r
- return destinationDBMeta;\r
- }\r
-\r
- public ${glColumnInfoName} getDestinationColumnInfo() {\r
- return destinationColumnInfo;\r
- }\r
-\r
- public java.util.List<${glRelationInfoName}> getRelationInfoList() {\r
- return relationInfoList;\r
- }\r
-\r
- public List<String> getRelationPropertyNameList() {\r
- return relationPropertyNameList;\r
- }\r
-\r
- public String getRelationPropertyKey() {\r
- return relationPropertyKey;\r
- }\r
-\r
- public String toString() {\r
- return sourceColumn + "," + destinationColumnInfo;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonDBMetaHierarchy};\r
-\r
-#set ($myClassName = "${glHierarchySourceColumnName}")\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public interface ${myClassName} {\r
-\r
- public String getColumnName();\r
-}
\ No newline at end of file
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonDBMetaHierarchy};\r
-\r
-#set ($myClassName = "${glHierarchySourceIteratorName}")\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public interface ${myClassName} {\r
-\r
- public boolean hasNext();\r
-\r
- public ${glHierarchySourceRowName} next();\r
-\r
- public ${glHierarchySourceRowName} current();\r
-}
\ No newline at end of file
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonDBMetaHierarchy};\r
-\r
-#set ($myClassName = "${glHierarchySourceRowName}")\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public interface ${myClassName} {\r
-\r
- public Object extractColumnValue(${glHierarchySourceColumnName} columnInfo);\r
-}
\ No newline at end of file
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonDBMetaHierarchyBasic};\r
-\r
-#set ($myClassName = "${glHierarchySourceEntityColumnName}")\r
-\r
-import ${glPackageBaseCommonDBMetaHierarchy}.${glHierarchySourceColumnName};\r
-import ${glPackageBaseCommonDBMetaInfo}.${glColumnInfoName};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} implements ${glHierarchySourceColumnName} {\r
-\r
- protected ${glColumnInfoName} columnInfo;\r
-\r
- public ${myClassName}(${glColumnInfoName} columnInfo) {\r
- this.columnInfo = columnInfo;\r
- }\r
-\r
- public String getColumnName() {\r
- return columnInfo.getColumnDbName();\r
- }\r
-\r
- public java.lang.reflect.Method findGetter() {\r
- return columnInfo.findGetter();\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonDBMetaHierarchyBasic};\r
-\r
-#set ($myClassName = "${glHierarchySourceEntityListIteratorName}")\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- * @param <SOURCE_ROW> The type of source.\r
- */\r
-public class ${myClassName}<SOURCE_ROW> extends ${glHierarchySourceListIteratorName}<SOURCE_ROW> {\r
-\r
- /**\r
- * Constructor.\r
- * \r
- * @param sourceRowList The list of source row. (NotNull)\r
- */\r
- public ${myClassName}(java.util.List<SOURCE_ROW> sourceRowList) {\r
- super(sourceRowList, new ${glHierarchySourceRowSetupperName}<SOURCE_ROW>() {\r
- public ${glPackageBaseCommonDBMetaHierarchy}.${glHierarchySourceRowName} setup(SOURCE_ROW source) {\r
- return new ${glHierarchySourceEntityRowName}(source);\r
- }\r
- });\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonDBMetaHierarchyBasic};\r
-\r
-#set ($myClassName = "${glHierarchySourceEntityRowName}")\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} implements ${glPackageBaseCommonDBMetaHierarchy}.${glHierarchySourceRowName} {\r
-\r
- protected Object sourceBean;\r
-\r
- public ${myClassName}(Object sourceBean) {\r
- this.sourceBean = sourceBean;\r
- }\r
-\r
- public Object extractColumnValue(${glPackageBaseCommonDBMetaHierarchy}.${glHierarchySourceColumnName} columnInfo) {\r
- if (!(columnInfo instanceof ${glHierarchySourceEntityColumnName})) {\r
- String msg = "The column info should be ${glHierarchySourceEntityColumnName}! but: " + columnInfo;\r
- throw new IllegalStateException(msg);\r
- }\r
- final ${glHierarchySourceEntityColumnName} sourceEntityColumn = (${glHierarchySourceEntityColumnName}) columnInfo;\r
- return invoke(sourceEntityColumn.findGetter(), sourceBean, new Object[] {});\r
- }\r
-\r
- private Object invoke(java.lang.reflect.Method method, Object target, Object[] args) {\r
- try {\r
- return method.invoke(target, args);\r
- } catch (java.lang.reflect.InvocationTargetException ex) {\r
- Throwable t = ex.getCause();\r
- if (t instanceof RuntimeException) {\r
- throw (RuntimeException) t;\r
- }\r
- if (t instanceof Error) {\r
- throw (Error) t;\r
- }\r
- String msg = "target=" + target + " method=" + method + "-" + java.util.Arrays.asList(args);\r
- throw new RuntimeException(msg, ex);\r
- } catch (IllegalAccessException ex) {\r
- String msg = "target=" + target + " method=" + method + "-" + java.util.Arrays.asList(args);\r
- throw new RuntimeException(msg, ex);\r
- }\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonDBMetaHierarchyBasic};\r
-\r
-#set ($myClassName = "${glHierarchySourceListIteratorName}")\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- * @param <SOURCE_ROW> The type of source.\r
- */\r
-public class ${myClassName}<SOURCE_ROW> implements ${glPackageBaseCommonDBMetaHierarchy}.${glHierarchySourceIteratorName} {\r
-\r
- protected java.util.List<? extends Object> sourceRowList;\r
-\r
- protected ${glHierarchySourceRowSetupperName}<SOURCE_ROW> sourceRowSetupper;\r
-\r
- protected java.util.Iterator<SOURCE_ROW> sourceBeanListIterator;\r
-\r
- protected ${glPackageBaseCommonDBMetaHierarchy}.${glHierarchySourceRowName} currentSourceEntity;\r
-\r
- public ${myClassName}(java.util.List<SOURCE_ROW> sourceRowList,\r
- ${glHierarchySourceRowSetupperName}<SOURCE_ROW> sourceRowSetupper) {\r
- this.sourceRowList = sourceRowList;\r
- this.sourceRowSetupper = sourceRowSetupper;\r
- this.sourceBeanListIterator = sourceRowList.iterator();\r
- }\r
-\r
- public boolean hasNext() {\r
- return this.sourceBeanListIterator.hasNext();\r
- }\r
-\r
- public ${glPackageBaseCommonDBMetaHierarchy}.${glHierarchySourceRowName} next() {\r
- this.currentSourceEntity = this.sourceRowSetupper.setup(this.sourceBeanListIterator.next());\r
- return this.currentSourceEntity;\r
- }\r
-\r
- public ${glPackageBaseCommonDBMetaHierarchy}.${glHierarchySourceRowName} current() {\r
- return this.currentSourceEntity;\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonDBMetaHierarchyBasic};\r
-\r
-#set ($myClassName = "${glHierarchySourceRowSetupperName}")\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- * @param <SOURCE_ROW> The type of source.\r
- */\r
-public interface ${myClassName}<SOURCE_ROW> {\r
-\r
- public ${glPackageBaseCommonDBMetaHierarchy}.${glHierarchySourceRowName} setup(SOURCE_ROW source);\r
-}
\ No newline at end of file
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonDBMetaInfo};\r
-\r
-#set ($myClassName = "${glColumnInfoName}")\r
-\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInterfaceName};\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInterfaceName}.OptimisticLockType;\r
-\r
-/**\r
- * The information of column.\r
- * @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public class ${myClassName} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected ${glDBMetaInterfaceName} dbmeta;\r
- protected String columnDbName;\r
- protected String propertyName;\r
- protected Class<?> propertyType;\r
- protected boolean primary;\r
- protected Integer columnSize;\r
- protected Integer columnDecimalDigits;\r
- protected OptimisticLockType optimisticLockType;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${myClassName}(${glDBMetaInterfaceName} dbmeta, String columnDbName) {\r
- this(dbmeta, columnDbName, null, null, false, null, null);\r
- }\r
-\r
- public ${myClassName}(${glDBMetaInterfaceName} dbmeta, String columnDbName, String propertyName\r
- , Class<?> propertyType, boolean primary, Integer columnSize) {\r
- this(dbmeta, columnDbName, propertyName, propertyType, primary, columnSize, null);\r
- }\r
-\r
- public ${myClassName}(${glDBMetaInterfaceName} dbmeta, String columnDbName, String propertyName\r
- , Class<?> propertyType, boolean primary, Integer columnSize, Integer columnDecimalDigits) {\r
- this(dbmeta, columnDbName, propertyName, propertyType, primary, columnSize, columnDecimalDigits, OptimisticLockType.NONE);\r
- }\r
-\r
- public ${myClassName}(${glDBMetaInterfaceName} dbmeta, String columnDbName, String propertyName\r
- , Class<?> propertyType, boolean primary, Integer columnSize\r
- , Integer columnDecimalDigits, OptimisticLockType optimisticLockType) {\r
- this.dbmeta = dbmeta;\r
- this.columnDbName = columnDbName;\r
- this.propertyName = propertyName;\r
- this.propertyType = propertyType;\r
- this.primary = primary;\r
- this.columnSize = columnSize;\r
- this.columnDecimalDigits = columnDecimalDigits;\r
- this.optimisticLockType = optimisticLockType;\r
- }\r
-\r
- // ===================================================================================\r
- // Builder\r
- // =======\r
- public String buildInitCapPropertyName() {\r
- return initCap(this.propertyName);\r
- }\r
-\r
- // ===================================================================================\r
- // Finder\r
- // ======\r
- public java.lang.reflect.Method findSetter() {\r
- return findMethod(dbmeta.getEntityType(), "set" + buildInitCapPropertyName(), new Class<?>[] { this.propertyType });\r
- }\r
-\r
- public java.lang.reflect.Method findGetter() {\r
- return findMethod(dbmeta.getEntityType(), "get" + buildInitCapPropertyName(), new Class<?>[] {});\r
- }\r
-\r
- // ===================================================================================\r
- // Optimistic Lock Type\r
- // ====================\r
- public boolean isOptimisticLock() {\r
- return isVersionNo() || isUpdateDate();\r
- }\r
-\r
- public boolean isVersionNo() {\r
- return OptimisticLockType.VERSION_NO == optimisticLockType;\r
- }\r
-\r
- public boolean isUpdateDate() {\r
- return OptimisticLockType.UPDATE_DATE == optimisticLockType;\r
- }\r
-\r
- // ===================================================================================\r
- // Internal Helper\r
- // ===============\r
- protected String initCap(final String name) {\r
- return name.substring(0, 1).toUpperCase() + name.substring(1);\r
- }\r
-\r
- protected java.lang.reflect.Method findMethod(Class<?> clazz, String methodName, Class<?>[] argTypes) {\r
- try {\r
- return clazz.getMethod(methodName, argTypes);\r
- } catch (NoSuchMethodException ex) {\r
- String msg = "class=" + clazz + " method=" + methodName + "-" + java.util.Arrays.asList(argTypes);\r
- throw new RuntimeException(msg, ex);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Basic Override\r
- // ==============\r
- public int hashCode() {\r
- return dbmeta.hashCode() + columnDbName.hashCode();\r
- }\r
-\r
- public boolean equals(Object obj) {\r
- if (!(obj instanceof ${myClassName})) {\r
- return false;\r
- }\r
- final ${myClassName} target = (${myClassName})obj;\r
- if (this.dbmeta == null || target.getDBMeta() == null) {\r
- return false;\r
- }\r
- if (!this.dbmeta.equals(target.getDBMeta())) {\r
- return false;\r
- }\r
- if (this.columnDbName == null || target.getColumnDbName() == null) {\r
- return false;\r
- }\r
- if (!this.columnDbName.equals(target.getColumnDbName())) {\r
- return false;\r
- }\r
- return true;\r
- }\r
-\r
- public String toString() {\r
- return dbmeta.getTableDbName() + "." + columnDbName;\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public ${glDBMetaInterfaceName} getDBMeta() {\r
- return dbmeta;\r
- }\r
-\r
- public void setDBMeta(${glDBMetaInterfaceName} dbmeta) {\r
- this.dbmeta = dbmeta;\r
- }\r
-\r
- public String getColumnDbName() {\r
- return this.columnDbName;\r
- }\r
-\r
- public void setColumnDbName(String columnDbName) {\r
- this.columnDbName = columnDbName;\r
- }\r
-\r
- public String getPropertyName() {\r
- return this.propertyName;\r
- }\r
-\r
- public void setPropertyName(String propertyName) {\r
- this.propertyName = propertyName;\r
- }\r
- \r
- public Class<?> getPropertyType() {\r
- return this.propertyType;\r
- }\r
-\r
- public void setPropertyType(Class<?> propertyType) {\r
- this.propertyType = propertyType;\r
- }\r
-\r
- public boolean isPrimary() {\r
- return this.primary;\r
- }\r
-\r
- public void setPrimary(boolean primary) {\r
- this.primary = primary;\r
- }\r
-\r
- public Integer getColumnSize() {\r
- return this.columnSize;\r
- }\r
-\r
- public void setColumnSize(Integer columnSize) {\r
- this.columnSize = columnSize;\r
- }\r
-\r
- public Integer getColumnDecimalDigits() {\r
- return this.columnDecimalDigits;\r
- }\r
-\r
- public void setColumnDecimalDigits(Integer columnDecimalDigits) {\r
- this.columnDecimalDigits = columnDecimalDigits;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonDBMetaInfo};\r
-\r
-#set ($myClassName = "${glForeignInfoName}")\r
-\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInterfaceName};\r
-\r
-/**\r
- * The class of foreign information.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public class ${myClassName} implements ${glRelationInfoName} {\r
-\r
-#set ($genericsColumnInfoMap = "${glColumnInfoName}, ${glColumnInfoName}")\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected String foreignPropertyName;\r
- protected ${glDBMetaInterfaceName} localDBMeta;\r
- protected ${glDBMetaInterfaceName} foreignDBMeta;\r
- protected java.util.Map${database.filterGenericsString(${genericsColumnInfoMap})} localForeignColumnInfoMap;\r
- protected java.util.Map${database.filterGenericsString(${genericsColumnInfoMap})} foreignLocalColumnInfoMap;\r
- protected int relationNo;\r
- protected boolean oneToOne;\r
-\r
- // ===================================================================================\r
- // Finder\r
- // ======\r
- public ${glColumnInfoName} findLocalByForeign(String foreignColumnDbName) {\r
- final ${glColumnInfoName} keyColumnInfo = new ${glColumnInfoName}(foreignDBMeta, foreignColumnDbName);\r
- final ${glColumnInfoName} resultColumnInfo = (${glColumnInfoName})foreignLocalColumnInfoMap.get(keyColumnInfo);\r
- if (resultColumnInfo == null) {\r
- String msg = "Not found by foreignColumnDbName in foreignLocalColumnInfoMap:";\r
- msg = msg + " foreignColumnDbName=" + foreignColumnDbName + " foreignLocalColumnInfoMap=" + foreignLocalColumnInfoMap;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- return resultColumnInfo;\r
- }\r
-\r
- // ===================================================================================\r
- // Builder\r
- // =======\r
- public String buildInitCapPropertyName() {\r
- return initCap(this.foreignPropertyName);\r
- }\r
-\r
- // ===================================================================================\r
- // Finder\r
- // ======\r
- public java.lang.reflect.Method findSetter() {\r
- return findMethod(localDBMeta.getEntityType(), "set" + buildInitCapPropertyName(), new Class[] { java.util.List.class });\r
- }\r
-\r
- public java.lang.reflect.Method findGetter() {\r
- return findMethod(localDBMeta.getEntityType(), "get" + buildInitCapPropertyName(), new Class[] {});\r
- }\r
-\r
- // ===================================================================================\r
- // Implement\r
- // =========\r
- public String getRelationPropertyName() {\r
- return getForeignPropertyName();\r
- }\r
-\r
- public ${glDBMetaInterfaceName} getTargetDBMeta() {\r
- return getForeignDBMeta();\r
- }\r
-\r
- public java.util.Map${database.filterGenericsString(${genericsColumnInfoMap})} getLocalTargetColumnInfoMap() {\r
- return getLocalForeignColumnInfoMap();\r
- }\r
-\r
- public boolean isReferrer() {\r
- return false;\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public String getForeignPropertyName() {\r
- return foreignPropertyName;\r
- }\r
-\r
- public void setForeignPropertyName(String foreignPropertyName) {\r
- this.foreignPropertyName = foreignPropertyName;\r
- }\r
-\r
- public ${glDBMetaInterfaceName} getLocalDBMeta() {\r
- return localDBMeta;\r
- }\r
-\r
- public void setLocalDBMeta(${glDBMetaInterfaceName} localDBMeta) {\r
- this.localDBMeta = localDBMeta;\r
- }\r
-\r
- public ${glDBMetaInterfaceName} getForeignDBMeta() {\r
- return foreignDBMeta;\r
- }\r
-\r
- public void setForeignDBMeta(${glDBMetaInterfaceName} foreignDBMeta) {\r
- this.foreignDBMeta = foreignDBMeta;\r
- }\r
-\r
- public java.util.Map${database.filterGenericsString(${genericsColumnInfoMap})} getLocalForeignColumnInfoMap() {\r
- return localForeignColumnInfoMap;\r
- }\r
-\r
- public void setLocalForeignColumnInfoMap(java.util.Map${database.filterGenericsString(${genericsColumnInfoMap})} localForeignColumnInfoMap) {\r
- this.localForeignColumnInfoMap = localForeignColumnInfoMap;\r
- final java.util.Set keySet = localForeignColumnInfoMap.keySet();\r
- foreignLocalColumnInfoMap = new java.util.LinkedHashMap${database.filterGenericsString(${genericsColumnInfoMap})}();\r
- for (final java.util.Iterator ite = keySet.iterator(); ite.hasNext(); ) {\r
- final ${glColumnInfoName} key = (${glColumnInfoName})ite.next();\r
- final ${glColumnInfoName} value = (${glColumnInfoName})localForeignColumnInfoMap.get(key);\r
- foreignLocalColumnInfoMap.put(value, key);\r
- }\r
- }\r
-\r
- public java.util.Map${database.filterGenericsString(${genericsColumnInfoMap})} getForeignLocalColumnInfoMap() {\r
- return foreignLocalColumnInfoMap;\r
- }\r
-\r
- public int getRelationNo() {\r
- return relationNo;\r
- }\r
-\r
- public void setRelationNo(int relationNo) {\r
- this.relationNo = relationNo;\r
- }\r
-\r
- public boolean isOneToOne() {\r
- return oneToOne;\r
- }\r
-\r
- public void setOneToOne(boolean oneToOne) {\r
- this.oneToOne = oneToOne;\r
- }\r
-\r
- // ===================================================================================\r
- // General Helper\r
- // ==============\r
- protected java.lang.reflect.Method findMethod(Class clazz, String methodName, Class[] argTypes) {\r
- try {\r
- return clazz.getMethod(methodName, argTypes);\r
- } catch (NoSuchMethodException ex) {\r
- String msg = "class=" + clazz + " method=" + methodName + "-" + java.util.Arrays.asList(argTypes);\r
- throw new RuntimeException(msg, ex);\r
- }\r
- }\r
- \r
- protected String initCap(final String name) {\r
- return name.substring(0, 1).toUpperCase() + name.substring(1);\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonDBMetaInfo};\r
-\r
-#set ($myClassName = "${glReferrerInfoName}")\r
-\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInterfaceName};\r
-\r
-/**\r
- * The class of referrer information.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public class ${myClassName} implements ${glRelationInfoName} {\r
-\r
-#set ($genericsColumnInfoMap = "${glColumnInfoName}, ${glColumnInfoName}")\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected String referrerPropertyName;\r
- protected ${glDBMetaInterfaceName} localDBMeta;\r
- protected ${glDBMetaInterfaceName} referrerDBMeta;\r
- protected java.util.Map${database.filterGenericsString($genericsColumnInfoMap)} localReferrerColumnInfoMap;\r
- protected java.util.Map${database.filterGenericsString($genericsColumnInfoMap)} referrerLocalColumnInfoMap;\r
- protected boolean oneToOne;\r
-\r
- // ===================================================================================\r
- // Finder\r
- // ======\r
- public ${glColumnInfoName} findLocalByReferrer(String referrerColumnDbName) {\r
- final ${glColumnInfoName} keyColumnInfo = new ${glColumnInfoName}(referrerDBMeta, referrerColumnDbName);\r
- final ${glColumnInfoName} resultColumnInfo = (${glColumnInfoName})referrerLocalColumnInfoMap.get(keyColumnInfo);\r
- if (resultColumnInfo == null) {\r
- String msg = "Not found by referrerColumnDbName in referrerLocalColumnInfoMap:";\r
- msg = msg + " referrerColumnDbName=" + referrerColumnDbName + " referrerLocalColumnInfoMap=" + referrerLocalColumnInfoMap;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- return resultColumnInfo;\r
- }\r
-\r
- public ${glColumnInfoName} findReferrerByLocal(String localColumnDbName) {\r
- final ${glColumnInfoName} keyColumnInfo = new ${glColumnInfoName}(localDBMeta, localColumnDbName);\r
- final ${glColumnInfoName} resultColumnInfo = (${glColumnInfoName})localReferrerColumnInfoMap.get(keyColumnInfo);\r
- if (resultColumnInfo == null) {\r
- String msg = "Not found by localColumnDbName in localReferrerColumnInfoMap:";\r
- msg = msg + " localColumnDbName=" + localColumnDbName + " localReferrerColumnInfoMap=" + localReferrerColumnInfoMap;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- return resultColumnInfo;\r
- }\r
-\r
- // ===================================================================================\r
- // Builder\r
- // =======\r
- public String buildInitCapPropertyName() {\r
- return initCap(this.referrerPropertyName);\r
- }\r
-\r
- // ===================================================================================\r
- // Finder\r
- // ======\r
- public java.lang.reflect.Method findSetter() {\r
- return findMethod(localDBMeta.getEntityType(), "set" + buildInitCapPropertyName(), new Class[] { java.util.List.class });\r
- }\r
-\r
- public java.lang.reflect.Method findGetter() {\r
- return findMethod(localDBMeta.getEntityType(), "get" + buildInitCapPropertyName(), new Class[] {});\r
- }\r
-\r
- // ===================================================================================\r
- // Implement\r
- // =========\r
- public String getRelationPropertyName() {\r
- return getReferrerPropertyName();\r
- }\r
-\r
- public ${glDBMetaInterfaceName} getTargetDBMeta() {\r
- return getReferrerDBMeta();\r
- }\r
-\r
- public java.util.Map${database.filterGenericsString($genericsColumnInfoMap)} getLocalTargetColumnInfoMap() {\r
- return getLocalReferrerColumnInfoMap();\r
- }\r
-\r
- public boolean isReferrer() {\r
- return true;\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public String getReferrerPropertyName() {\r
- return referrerPropertyName;\r
- }\r
-\r
- public void setReferrerPropertyName(String referrerPropertyName) {\r
- this.referrerPropertyName = referrerPropertyName;\r
- }\r
-\r
- public ${glDBMetaInterfaceName} getLocalDBMeta() {\r
- return localDBMeta;\r
- }\r
-\r
- public void setLocalDBMeta(${glDBMetaInterfaceName} localDBMeta) {\r
- this.localDBMeta = localDBMeta;\r
- }\r
-\r
- public ${glDBMetaInterfaceName} getReferrerDBMeta() {\r
- return referrerDBMeta;\r
- }\r
-\r
- public void setReferrerDBMeta(${glDBMetaInterfaceName} referrerDBMeta) {\r
- this.referrerDBMeta = referrerDBMeta;\r
- }\r
-\r
- public java.util.Map${database.filterGenericsString($genericsColumnInfoMap)} getLocalReferrerColumnInfoMap() {\r
- return localReferrerColumnInfoMap;\r
- }\r
-\r
- public void setLocalReferrerColumnInfoMap(java.util.Map${database.filterGenericsString($genericsColumnInfoMap)} localReferrerColumnInfoMap) {\r
- this.localReferrerColumnInfoMap = localReferrerColumnInfoMap;\r
- final java.util.Set keySet = localReferrerColumnInfoMap.keySet();\r
- referrerLocalColumnInfoMap = new java.util.LinkedHashMap${database.filterGenericsString(${genericsColumnInfoMap})}();\r
- for (final java.util.Iterator ite = keySet.iterator(); ite.hasNext(); ) {\r
- final ${glColumnInfoName} key = (${glColumnInfoName})ite.next();\r
- final ${glColumnInfoName} value = (${glColumnInfoName})localReferrerColumnInfoMap.get(key);\r
- referrerLocalColumnInfoMap.put(value, key);\r
- }\r
- }\r
-\r
- public java.util.Map${database.filterGenericsString($genericsColumnInfoMap)} getReferrerLocalColumnInfoMap() {\r
- return referrerLocalColumnInfoMap;\r
- }\r
-\r
- public boolean isOneToOne() {\r
- return oneToOne;\r
- }\r
-\r
- public void setOneToOne(boolean oneToOne) {\r
- this.oneToOne = oneToOne;\r
- }\r
-\r
- // ===================================================================================\r
- // Internal Helper\r
- // ===============\r
- protected String initCap(final String name) {\r
- return name.substring(0, 1).toUpperCase() + name.substring(1);\r
- }\r
-\r
- protected java.lang.reflect.Method findMethod(Class clazz, String methodName, Class[] argTypes) {\r
- try {\r
- return clazz.getMethod(methodName, argTypes);\r
- } catch (NoSuchMethodException ex) {\r
- String msg = "class=" + clazz + " method=" + methodName + "-" + java.util.Arrays.asList(argTypes);\r
- throw new RuntimeException(msg, ex);\r
- }\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonDBMetaInfo};\r
-\r
-#set ($myClassName = "${glRelationInfoName}")\r
-\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInterfaceName};\r
-\r
-/**\r
- * The class of referer information.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public interface ${myClassName} {\r
-\r
- public String getRelationPropertyName();\r
-\r
- public ${glDBMetaInterfaceName} getLocalDBMeta();\r
-\r
- public ${glDBMetaInterfaceName} getTargetDBMeta();\r
-\r
- public java.util.Map<${glColumnInfoName}, ${glColumnInfoName}> getLocalTargetColumnInfoMap();\r
-\r
- public boolean isOneToOne();\r
-\r
- public boolean isReferrer();\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonDBMetaInfo};\r
-\r
-#set ($myClassName = "${glUniqueInfoName}")\r
-\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInterfaceName};\r
-\r
-/**\r
- * The class of unique info.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public class ${myClassName} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected ${glDBMetaInterfaceName} dbmeta;\r
- protected java.util.List${database.filterGenericsString(${glColumnInfoName})} uniqueColumnList = new java.util.ArrayList${database.filterGenericsString(${glColumnInfoName})}();\r
- protected boolean primary;\r
-\r
- // ===================================================================================\r
- // Easy-to-Use\r
- // ===========\r
- public boolean containsColumn(String columnName) {\r
- for (final java.util.Iterator ite = uniqueColumnList.iterator(); ite.hasNext(); ) {\r
- final ${glColumnInfoName} columnInfo = (${glColumnInfoName})ite.next();\r
- if (columnInfo.getColumnDbName().equals(columnName)) {\r
- return true;\r
- }\r
- }\r
- return false;\r
- }\r
-\r
- public boolean containsColumn(${glColumnInfoName} column) {\r
- return containsColumn(column.getColumnDbName());\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public ${glDBMetaInterfaceName} getDBMeta() {\r
- return dbmeta;\r
- }\r
-\r
- public void setDBMeta(${glDBMetaInterfaceName} dbmeta) {\r
- this.dbmeta = dbmeta;\r
- }\r
-\r
- public java.util.List${database.filterGenericsString(${glColumnInfoName})} getUniqueColumnList() {\r
- return uniqueColumnList;\r
- }\r
-\r
- public void addUniqueColumnList(${glColumnInfoName} uniqueColumn) {\r
- this.uniqueColumnList.add(uniqueColumn);\r
- }\r
-\r
- public ${glColumnInfoName} getFirstColumn() {\r
- return (${glColumnInfoName})this.uniqueColumnList.get(0);\r
- }\r
-\r
- public boolean isTwoOrMore() {\r
- return this.uniqueColumnList.size() > 1;\r
- }\r
-\r
- public boolean isPrimary() {\r
- return this.primary;\r
- }\r
-\r
- public void setPrimary(boolean primary) {\r
- this.primary = primary;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonException};\r
-\r
-/**\r
- * The exception of when the entity has already been updated by other thread in batch update.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glBatchEntityAlreadyUpdatedException} extends ${glEntityAlreadyUpdatedException} {\r
-\r
- /** Serial version UID. (Default) */\r
- private static final long serialVersionUID = 1L;\r
- \r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected Integer _batchUpdateCount;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- /**\r
- * Constructor.\r
- * @param bean Bean. (NotNull)\r
- * @param rows Rows(Update count per One entity).\r
- * @param batchUpdateCount Batch update count(Total).\r
- */\r
- public ${glBatchEntityAlreadyUpdatedException}(Object bean, int rows, Integer batchUpdateCount) {\r
- super(bean, rows);\r
- _batchUpdateCount = batchUpdateCount;\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public Integer getBatchUpdateCount() {\r
- return _batchUpdateCount;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonException};\r
-\r
-/**\r
- * The exception of when the property on bind variable comment is not found about outsideSql.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glBindVariableCommentNotFoundPropertyException} extends RuntimeException {\r
-\r
- /** Serial version UID. (Default) */\r
- private static final long serialVersionUID = 1L;\r
-\r
- /**\r
- * Constructor.\r
- * @param msg Exception message. (NotNull)\r
- */\r
- public ${glBindVariableCommentNotFoundPropertyException}(String msg) {\r
- super(msg);\r
- }\r
-\r
- /**\r
- * Constructor.\r
- * @param msg Exception message. (NotNull)\r
- * @param cause Throwable.\r
- */\r
- public ${glBindVariableCommentNotFoundPropertyException}(String msg, Throwable cause) {\r
- super(msg, cause);\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonException};\r
-\r
-/**\r
- * The exception of when the value of bind variable is null about outsideSql.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glBindVariableParameterNullValueException} extends RuntimeException {\r
-\r
- /** Serial version UID. (Default) */\r
- private static final long serialVersionUID = 1L;\r
-\r
- /**\r
- * Constructor.\r
- * @param msg Exception message. (NotNull)\r
- */\r
- public ${glBindVariableParameterNullValueException}(String msg) {\r
- super(msg);\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonException};\r
-\r
-/**\r
- * The exception of when the result size is dangerous.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glDangerousResultSizeException} extends RuntimeException {\r
-\r
- /** Serial version UID. (Default) */\r
- private static final long serialVersionUID = 1L;\r
-\r
- /** Safety max result size. */\r
- protected int _safetyMaxResultSize;\r
-\r
- /**\r
- * Constructor.\r
- * \r
- * @param msg Exception message.\r
- * @param safetyMaxResultSize Safety max result size.\r
- * @param selectedCount Selected count.\r
- */\r
- public ${glDangerousResultSizeException}(String msg, int safetyMaxResultSize) {\r
- super(msg);\r
- this._safetyMaxResultSize = safetyMaxResultSize;\r
- }\r
-\r
- /**\r
- * Get safety max result size.\r
- * \r
- * @return Safety max result size.\r
- */\r
- public int getSafetyMaxResultSize() {\r
- return _safetyMaxResultSize;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonException};\r
-\r
-/**\r
- * The exception of when the property on embedded value comment is not found about outsideSql.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glEmbeddedValueCommentNotFoundPropertyException} extends RuntimeException {\r
-\r
- /** Serial version UID. (Default) */\r
- private static final long serialVersionUID = 1L;\r
-\r
- /**\r
- * Constructor.\r
- * @param msg Exception message. (NotNull)\r
- */\r
- public ${glEmbeddedValueCommentNotFoundPropertyException}(String msg) {\r
- super(msg);\r
- }\r
-\r
- /**\r
- * Constructor.\r
- * @param msg Exception message. (NotNull)\r
- * @param cause Throwable.\r
- */\r
- public ${glEmbeddedValueCommentNotFoundPropertyException}(String msg, Throwable cause) {\r
- super(msg, cause);\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonException};\r
-\r
-/**\r
- * The exception of when the value of embedded value is null about outsideSql.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glEmbeddedValueParameterNullValueException} extends RuntimeException {\r
-\r
- /** Serial version UID. (Default) */\r
- private static final long serialVersionUID = 1L;\r
-\r
- /**\r
- * Constructor.\r
- * @param msg Exception message. (NotNull)\r
- */\r
- public ${glEmbeddedValueParameterNullValueException}(String msg) {\r
- super(msg);\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonException};\r
-\r
-/**\r
- * The exception of when the end comment is not found about outsideSql.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glEndCommentNotFoundException} extends RuntimeException {\r
-\r
- /** Serial version UID. (Default) */\r
- private static final long serialVersionUID = 1L;\r
-\r
- /**\r
- * Constructor.\r
- * @param msg Exception message. (NotNull)\r
- */\r
- public ${glEndCommentNotFoundException}(String msg) {\r
- super(msg);\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonException};\r
-\r
-/**\r
- * The exception of when the entity has already been deleted by other thread.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glEntityAlreadyDeletedException} extends ${glRecordHasAlreadyBeenDeletedException} {\r
-\r
- /** Serial version UID. (Default) */\r
- private static final long serialVersionUID = 1L;\r
-\r
- /**\r
- * Constructor.\r
- * \r
- * @param msg Exception message.\r
- */\r
- public ${glEntityAlreadyDeletedException}(String msg) {\r
- super(msg);\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonException};\r
-\r
-import java.sql.SQLException;\r
-\r
-/**\r
- * The exception of when the entity already exists on the database.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glEntityAlreadyExistsException} extends ${glSQLFailureException} {\r
-\r
- /** Serial version UID. (Default) */\r
- private static final long serialVersionUID = 1L;\r
-\r
- /**\r
- * Constructor.\r
- * @param msg Exception message. (NotNull)\r
- * @param cause SQLException. (NotNull)\r
- */\r
- public ${glEntityAlreadyExistsException}(String msg, SQLException cause) {\r
- super(msg, cause);\r
- sqlEx = cause;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonException};\r
-\r
-import org.seasar.dao.NotSingleRowUpdatedRuntimeException;\r
-\r
-/**\r
- * The exception of when the entity has already been updated by other thread.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glEntityAlreadyUpdatedException} extends NotSingleRowUpdatedRuntimeException {\r
-\r
- /** Serial version UID. (Default) */\r
- private static final long serialVersionUID = 1L;\r
- \r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- /**\r
- * Constructor.\r
- * @param bean Bean. (NotNull)\r
- * @param rows Rows.\r
- */\r
- public ${glEntityAlreadyUpdatedException}(Object bean, int rows) {\r
- super(bean, rows);\r
- }\r
-\r
- /**\r
- * Constructor.\r
- * @param e NotSingleRowUpdatedRuntimeException. (NotNull)\r
- */\r
- public ${glEntityAlreadyUpdatedException}(NotSingleRowUpdatedRuntimeException e) {\r
- super(e.getBean(), e.getRows());\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonException};\r
-\r
-/**\r
- * The exception of when the entity has been duplicated.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glEntityDuplicatedException} extends ${glRecordHasOverlappedException} {\r
-\r
- /** Serial version UID. (Default) */\r
- private static final long serialVersionUID = 1L;\r
-\r
- /**\r
- * Constructor.\r
- * @param msg Exception message.\r
- */\r
- public ${glEntityDuplicatedException}(String msg) {\r
- super(msg);\r
- }\r
-\r
- /**\r
- * Constructor.\r
- * @param msg Exception message.\r
- * @param cause Throwable.\r
- */\r
- public ${glEntityDuplicatedException}(String msg, Throwable cause) {\r
- super(msg, cause);\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonException};\r
-\r
-/**\r
- * The exception of when the condition of IF comment is not found about outsideSql.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glIfCommentConditionNotFoundException} extends ${glIfCommentWrongExpressionException} {\r
-\r
- /** Serial version UID. (Default) */\r
- private static final long serialVersionUID = 1L;\r
-\r
- /**\r
- * Constructor.\r
- * @param msg Exception message. (NotNull)\r
- */\r
- public ${glIfCommentConditionNotFoundException}(String msg) {\r
- super(msg);\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonException};\r
-\r
-/**\r
- * The exception of when the result of IF comment is not boolean about outsideSql.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glIfCommentNotBooleanResultException} extends ${glIfCommentWrongExpressionException} {\r
-\r
- /** Serial version UID. (Default) */\r
- private static final long serialVersionUID = 1L;\r
-\r
- /**\r
- * Constructor.\r
- * \r
- * @param msg Exception message. (NotNull)\r
- */\r
- public ${glIfCommentNotBooleanResultException}(String msg) {\r
- super(msg);\r
- }\r
-\r
- /**\r
- * Constructor.\r
- * \r
- * @param msg Exception message. (NotNull)\r
- * @param cause Throwable.\r
- */\r
- public ${glIfCommentNotBooleanResultException}(String msg, Throwable cause) {\r
- super(msg, cause);\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonException};\r
-\r
-/**\r
- * The exception of when the IF comment has a wrong expression about outsideSql.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glIfCommentWrongExpressionException} extends RuntimeException {\r
-\r
- /** Serial version UID. (Default) */\r
- private static final long serialVersionUID = 1L;\r
-\r
- /**\r
- * Constructor.\r
- * @param msg Exception message. (NotNull)\r
- */\r
- public ${glIfCommentWrongExpressionException}(String msg) {\r
- super(msg);\r
- }\r
-\r
- /**\r
- * Constructor.\r
- * @param msg Exception message. (NotNull)\r
- * @param cause Throwable.\r
- */\r
- public ${glIfCommentWrongExpressionException}(String msg, Throwable cause) {\r
- super(msg, cause);\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonException};\r
-\r
-/**\r
- * The exception of when the outside-sql is not found.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glOutsideSqlNotFoundException} extends RuntimeException {\r
-\r
- /** Serial version UID. (Default) */\r
- private static final long serialVersionUID = 1L;\r
-\r
- /**\r
- * Constructor.\r
- * \r
- * @param msg Exception message.\r
- */\r
- public ${glOutsideSqlNotFoundException}(String msg) {\r
- super(msg);\r
- }\r
-\r
- /**\r
- * Constructor.\r
- * \r
- * @param msg Exception message.\r
- * @param cause Throwable.\r
- */\r
- public ${glOutsideSqlNotFoundException}(String msg, Throwable cause) {\r
- super(msg, cause);\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonException};\r
-\r
-/**\r
- * The exception when the record has already been deleted (by other thread). <br />\r
- * This class is old.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glRecordHasAlreadyBeenDeletedException} extends RuntimeException {\r
-\r
- /** Serial version UID. (Default) */\r
- private static final long serialVersionUID = 1L;\r
-\r
- /**\r
- * Constructor.\r
- * \r
- * @param msg Exception message.\r
- */\r
- public ${glRecordHasAlreadyBeenDeletedException}(String msg) {\r
- super(msg);\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonException};\r
-\r
-/**\r
- * The exception when the record has overlapped.\r
- * This class is old.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glRecordHasOverlappedException} extends RuntimeException {\r
-\r
- /** Serial version UID. (Default) */\r
- private static final long serialVersionUID = 1L;\r
-\r
- /**\r
- * Constructor.\r
- * \r
- * @param msg Exception message.\r
- */\r
- public ${glRecordHasOverlappedException}(String msg) {\r
- super(msg);\r
- }\r
-\r
- /**\r
- * Constructor.\r
- * \r
- * @param msg Exception message.\r
- * @param cause Throwable.\r
- */\r
- public ${glRecordHasOverlappedException}(String msg, Throwable cause) {\r
- super(msg, cause);\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonException};\r
-\r
-/**\r
- * The exception of when the required option is not found.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glRequiredOptionNotFoundException} extends RuntimeException {\r
-\r
- /** Serial version UID. (Default) */\r
- private static final long serialVersionUID = 1L;\r
-\r
- /**\r
- * Constructor.\r
- * @param msg Exception message.\r
- */\r
- public ${glRequiredOptionNotFoundException}(String msg) {\r
- super(msg);\r
- }\r
-\r
- /**\r
- * Constructor.\r
- * @param msg Exception message.\r
- * @param cause Throwable.\r
- */\r
- public ${glRequiredOptionNotFoundException}(String msg, Throwable cause) {\r
- super(msg, cause);\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonException};\r
-\r
-import java.sql.SQLException;\r
-\r
-/**\r
- * The exception of when the SQL failed to execute.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glSQLFailureException} extends RuntimeException {\r
-\r
- /** Serial version UID. (Default) */\r
- private static final long serialVersionUID = 1L;\r
-\r
- protected SQLException sqlEx;\r
-\r
- /**\r
- * Constructor.\r
- * @param msg Exception message. (NotNull)\r
- * @param cause SQLException. (NotNull)\r
- */\r
- public ${glSQLFailureException}(String msg, SQLException cause) {\r
- super(msg, cause);\r
- sqlEx = cause;\r
- }\r
- \r
- public SQLException getSQLException() {\r
- return sqlEx;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonHelper};\r
-\r
-import java.util.List;\r
-import java.util.Map;\r
-\r
-/**\r
- * MapList-String.\r
- * <p>\r
- * <pre>\r
- * # Interface that offers generation of map and list from the following character strings (map list string). \r
- * # \r
- * # ex) map:{key1=value1,key2=list:{value21,value22,value23},key3=map:{key31=value31}}\r
- * # ex) list:{key1=value1,key2=list:{value21,value22,value23},key3=map:{key31=value31}}\r
- * # \r
- * </pre>\r
- *\r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glMapListStringName} {\r
-\r
- /** Default of map-mark. */\r
- public static final String DEFAULT_MAP_MARK = "map:";\r
-\r
- /** Default of list-mark. */\r
- public static final String DEFAULT_LIST_MARK = "list:";\r
-\r
- /** Default of start-brace. */\r
- public static final String DEFAULT_START_BRACE = "{";\r
-\r
- /** Default of end-brace. */\r
- public static final String DEFAULT_END_BRACE = "}";\r
-\r
- /** Default of delimter. */\r
- public static final String DEFAULT_DELIMITER = ";";\r
-\r
- /** Default of equal. */\r
- public static final String DEFAULT_EQUAL = "=";\r
-\r
- // ==========================================================================================\r
- // Setter\r
- // ======\r
- /**\r
- * Set map-mark.\r
- * \r
- * @param mapMark Map-mark. (NotNull)\r
- */\r
- public void setMapMark(String mapMark);\r
-\r
- /**\r
- * Set list-mark.\r
- * \r
- * @param listMark List-mark. (NotNull)\r
- */\r
- public void setListMark(String listMark);\r
-\r
- /**\r
- * Set start brace.\r
- * \r
- * @param startBrace Start brace. (NotNull)\r
- */\r
- public void setStartBrace(String startBrace);\r
-\r
- /**\r
- * Set end brace.\r
- * \r
- * @param endBrace End brace. (NotNull)\r
- */\r
- public void setEndBrace(String endBrace);\r
-\r
- /**\r
- * Set delimiter.\r
- * \r
- * @param delimiter Delimiter. (NotNull)\r
- */\r
- public void setDelimiter(String delimiter);\r
-\r
- /**\r
- * Set equal.\r
- * \r
- * @param equal Equal. (NotNull)\r
- */\r
- public void setEqual(String equal);\r
- \r
- // ==========================================================================================\r
- // Generate\r
- // ========\r
- /**\r
- * Generate map from map-string.\r
- * \r
- * @param mapString Map-string (NotNull)\r
- * @return Generated map. (NotNull)\r
- */\r
- public Map${database.filterGenericsString('String, Object')} generateMap(String mapString);\r
-\r
- /**\r
- * Generate map from list-string. {Implement}\r
- * \r
- * @param listString List-string (NotNull)\r
- * @return Generated list. (NotNull)\r
- */\r
- public List${database.filterGenericsString('Object')} generateList(String listString);\r
-}
\ No newline at end of file
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonHelper};\r
-\r
-import java.util.ArrayList;\r
-import java.util.LinkedHashMap;\r
-import java.util.List;\r
-import java.util.Map;\r
-\r
-/**\r
- * The implementation of MapList-String.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glMapListStringImplName} implements ${glMapListStringName} {\r
-\r
- /** Line separator. */\r
- public static final String NEW_LINE = System.getProperty("line.separator");\r
-\r
- /** Map-mark. */\r
- protected String _mapMark;\r
-\r
- /** List-mark. */\r
- protected String _listMark;\r
-\r
- /** Start-brace. */\r
- protected String _startBrace;\r
-\r
- /** End-brace. */\r
- protected String _endBrace;\r
-\r
- /** Delimiter. */\r
- protected String _delimiter;\r
-\r
- /** Equal. */\r
- protected String _equal;\r
-\r
- /** Top string. */\r
- protected String _topString;\r
-\r
- /** Remainder string. */\r
- protected String _remainderString;\r
-\r
- /**\r
- * Constructor.\r
- */\r
- public ${glMapListStringImplName}() {\r
- _mapMark = DEFAULT_MAP_MARK;\r
- _listMark = DEFAULT_LIST_MARK;\r
- _startBrace = DEFAULT_START_BRACE;\r
- _endBrace = DEFAULT_END_BRACE;\r
- _delimiter = DEFAULT_DELIMITER;\r
- _equal = DEFAULT_EQUAL;\r
- }\r
-\r
- // ==========================================================================================\r
- // Setter\r
- // ======\r
- /**\r
- * Set map-mark.\r
- * \r
- * @param mapMark Map mark. (NotNull)\r
- */\r
- public void setMapMark(String mapMark) {\r
- _mapMark = mapMark;\r
- }\r
-\r
- /**\r
- * Set list-mark.\r
- * \r
- * @param listMark List mark. (NotNull)\r
- */\r
- public void setListMark(String listMark) {\r
- _listMark = listMark;\r
- }\r
-\r
- /**\r
- * Set start-brace.\r
- * \r
- * @param startBrace Start-brace. (NotNull)\r
- */\r
- public synchronized void setStartBrace(String startBrace) {\r
- _startBrace = startBrace;\r
- }\r
-\r
- /**\r
- * Set end-brace.\r
- * \r
- * @param endBrace End-brace. (NotNull)\r
- */\r
- public synchronized void setEndBrace(String endBrace) {\r
- _endBrace = endBrace;\r
- }\r
-\r
- /**\r
- * Set delimiter.\r
- * \r
- * @param delimiter Delimiter. (NotNull)\r
- */\r
- public synchronized void setDelimiter(String delimiter) {\r
- _delimiter = delimiter;\r
- }\r
-\r
- /**\r
- * Set equal.\r
- * \r
- * @param equal Equal. (NotNull)\r
- */\r
- public void setEqual(String equal) {\r
- _equal = equal;\r
- }\r
-\r
- // ****************************************************************************************************\r
- // Main Method\r
- // ***********\r
-\r
- // ==========================================================================================\r
- // Generate\r
- // ========\r
- /**\r
- * Generate map from map-string. {Implement}\r
- * \r
- * @param mapString Map-string (NotNull)\r
- * @return Generated map. (NotNull)\r
- */\r
- public synchronized Map${database.filterGenericsString('String, Object')} generateMap(String mapString) {\r
- assertMapString(mapString);\r
-\r
- _topString = mapString;\r
- _remainderString = mapString;\r
-\r
- removeBothSideSpaceAndTabAndNewLine();\r
- removePrefixMapMarkAndStartBrace();\r
-\r
- final Map${database.filterGenericsString('String, Object')} generatedMap = newStringObjectMap();\r
- parseRemainderMapString(generatedMap);\r
- if (!"".equals(_remainderString)) {\r
- String msg = "Final remainderString must be empty string:";\r
- msg = msg + getNewLineAndIndent() + " # remainderString --> " + _remainderString;\r
- msg = msg + getNewLineAndIndent() + " # mapString --> " + mapString;\r
- msg = msg + getNewLineAndIndent() + " # generatedMap --> " + generatedMap;\r
- throw new IllegalStateException(msg);\r
- }\r
- return generatedMap;\r
- }\r
-\r
- /**\r
- * Generate map from list-string. {Implement}\r
- * \r
- * @param listString List-string (NotNull)\r
- * @return Generated list. (NotNull)\r
- */\r
- public synchronized List${database.filterGenericsString('Object')} generateList(String listString) {\r
- assertListString(listString);\r
-\r
- _topString = listString;\r
- _remainderString = listString;\r
-\r
- removeBothSideSpaceAndTabAndNewLine();\r
- removePrefixListMarkAndStartBrace();\r
-\r
- final List${database.filterGenericsString('Object')} generatedList = newObjectList();\r
- parseRemainderListString(generatedList);\r
- if (!"".equals(_remainderString)) {\r
- String msg = "Final remainderString must be empty string:";\r
- msg = msg + getNewLineAndIndent() + " # remainderString --> " + _remainderString;\r
- msg = msg + getNewLineAndIndent() + " # listString --> " + listString;\r
- msg = msg + getNewLineAndIndent() + " # generatedList --> " + generatedList;\r
- throw new IllegalStateException(msg);\r
- }\r
- return generatedList;\r
- }\r
-\r
- // ==========================================================================================\r
- // Parse\r
- // =====\r
- /**\r
- * Parse remainder map string.\r
- * \r
- * @param currentMap current map.\r
- */\r
- protected void parseRemainderMapString(final Map${database.filterGenericsString('String, Object')} currentMap) {\r
- while (true) {\r
- if (initializeAtLoopBeginning()) {\r
- return;\r
- }\r
-\r
- // *** Now, _remainderString should starts with the key of the map. ***\r
-\r
- final int equalIndex = _remainderString.indexOf(_equal);\r
- assertEqualIndex(_remainderString, equalIndex, _topString, currentMap);\r
- final String mapKey = _remainderString.substring(0, equalIndex).trim();\r
- removePrefixTargetIndexPlus(equalIndex, _equal.length());\r
- removeBothSideSpaceAndTabAndNewLine();\r
-\r
- // *** Now, _remainderString should starts with the value of the map. ***\r
-\r
- if (isStartsWithMapPrefix(_remainderString)) {\r
- removePrefixMapMarkAndStartBrace();\r
- parseRemainderMapString(setupNestMap(currentMap, mapKey));\r
- if (closingAfterParseNestMapList()) {\r
- return;\r
- }\r
- continue;\r
- }\r
-\r
- if (isStartsWithListPrefix(_remainderString)) {\r
- removePrefixListMarkAndStartBrace();\r
- parseRemainderListString(setupNestList(currentMap, mapKey));\r
- if (closingAfterParseNestMapList()) {\r
- return;\r
- }\r
- continue;\r
- }\r
-\r
- final int delimiterIndex = _remainderString.indexOf(_delimiter);\r
- final int endBraceIndex = _remainderString.indexOf(_endBrace);\r
- assertEndBracekIndex(_remainderString, endBraceIndex, _topString, currentMap);\r
-\r
- // If delimiter exists and delimiter is closer than end brace, \r
- // Everything from the head of the present remainder string to the delimiter becomes map value.\r
- // ex) value1,key2=value2}\r
- if (delimiterIndex >= 0 && delimiterIndex < endBraceIndex) {\r
- final String mapValue = _remainderString.substring(0, delimiterIndex);\r
- currentMap.put(mapKey, filterMapListValue(mapValue));\r
-\r
- // Because the map element continues since the delimiter, skip the delimiter and continue the loop.\r
- removePrefixTargetIndexPlus(delimiterIndex, _delimiter.length());\r
- continue;\r
- }\r
-\r
- // Everything from the head of the present remainder string to the delimiter becomes map value.\r
- // ex) value1}, key2=value2}\r
- final String mapValue = _remainderString.substring(0, endBraceIndex);\r
- currentMap.put(mapKey, filterMapListValue(mapValue));\r
-\r
- // Analyzing map is over. So closing and return.\r
- closingByEndBraceIndex(endBraceIndex);\r
- return;\r
- }\r
- }\r
-\r
- /**\r
- * Parse remainder list string.\r
- * \r
- * @param currentList current list.\r
- */\r
- protected void parseRemainderListString(final List${database.filterGenericsString('Object')} currentList) {\r
- while (true) {\r
- if (initializeAtLoopBeginning()) {\r
- return;\r
- }\r
-\r
- // *** Now, _remainderString should starts with the value of the list. ***\r
-\r
- if (isStartsWithMapPrefix(_remainderString)) {\r
- removePrefixMapMarkAndStartBrace();\r
- parseRemainderMapString(setupNestMap(currentList));\r
- if (closingAfterParseNestMapList()) {\r
- return;\r
- }\r
- continue;\r
- }\r
-\r
- if (isStartsWithListPrefix(_remainderString)) {\r
- removePrefixListMarkAndStartBrace();\r
- parseRemainderListString(setupNestList(currentList));\r
- if (closingAfterParseNestMapList()) {\r
- return;\r
- }\r
- continue;\r
- }\r
-\r
- final int delimiterIndex = _remainderString.indexOf(_delimiter);\r
- final int endBraceIndex = _remainderString.indexOf(_endBrace);\r
- assertEndBraceIndex(_remainderString, endBraceIndex, _topString, currentList);\r
-\r
- // If delimiter exists and delimiter is closer than end brace, \r
- // Everything from the head of the present remainder string to the delimiter becomes list value.\r
- // ex) value1,value2,value3}\r
- if (delimiterIndex >= 0 && delimiterIndex < endBraceIndex) {\r
- final String listValue = _remainderString.substring(0, delimiterIndex);\r
- currentList.add(filterMapListValue(listValue));\r
-\r
- // Because the list element continues since the delimiter, skip the delimiter and continue the loop.\r
- removePrefixTargetIndexPlus(delimiterIndex, _delimiter.length());\r
- continue;\r
- }\r
-\r
- // Everything from the head of the present remainder string to the delimiter becomes list value.\r
- // ex) value1}, value2, }\r
- final String listValue = _remainderString.substring(0, endBraceIndex);\r
- currentList.add(filterMapListValue(listValue));\r
-\r
- // Analyzing list is over. So closing and return.\r
- closingByEndBraceIndex(endBraceIndex);\r
- return;\r
- }\r
- }\r
-\r
- /**\r
- * Initialize at loop beginning.\r
- * \r
- * @return Is return?\r
- */\r
- protected boolean initializeAtLoopBeginning() {\r
- // Remove prefix delimiter. (Result string is always trimmed.)\r
- removePrefixAllDelimiter();\r
-\r
- // If the remainder string is empty-string, Analyzing is over!\r
- if (_remainderString.equals("")) {\r
- return true;\r
- }\r
-\r
- // If the remainder string starts with end-brace, Analyzing current map is over!\r
- // And then remove the end-brace.\r
- if (isStartsWithEndBrace(_remainderString)) {\r
- removePrefixEndBrace();\r
- return true;\r
- }\r
- return false;\r
- }\r
-\r
- /**\r
- * Close after parse nest map list.\r
- * \r
- * @return Is return?\r
- */\r
- protected boolean closingAfterParseNestMapList() {\r
- // If the remainder string starts with end-brace, remove it and return true.\r
- if (isStartsWithEndBrace(_remainderString)) {\r
- removePrefixEndBrace();\r
- return true;\r
- }\r
- return false;\r
- }\r
-\r
- /**\r
- * Close by end-brace index.\r
- * \r
- * @param endBraceIndex End-brace index.\r
- */\r
- protected void closingByEndBraceIndex(int endBraceIndex) {\r
- // Remove the value that was finished analyzing and end-brace.\r
- _remainderString = _remainderString.substring(endBraceIndex);\r
- removePrefixEndBrace();\r
- }\r
-\r
- // ****************************************************************************************************\r
- // StateFul Method\r
- // ***************\r
-\r
- // ==========================================================================================\r
- // Remove\r
- // ======\r
- /**\r
- * Remove prefix map-mark and start-brace.\r
- */\r
- protected void removePrefixMapMarkAndStartBrace() {\r
- removePrefix(_mapMark + _startBrace);\r
- }\r
-\r
- /**\r
- * Remove prefix list-mark and start-brace.\r
- */\r
- protected void removePrefixListMarkAndStartBrace() {\r
- removePrefix(_listMark + _startBrace);\r
- }\r
-\r
- /**\r
- * Remove prefix delimiter.\r
- */\r
- protected void removePrefixDelimiter() {\r
- removePrefix(_delimiter);\r
- }\r
-\r
- /**\r
- * Remove prefix end-brace.\r
- */\r
- protected void removePrefixEndBrace() {\r
- removePrefix(_endBrace);\r
- }\r
-\r
- /**\r
- * Remove prefix.\r
- * \r
- * @param prefixString Prefix string. (NotNull)\r
- */\r
- protected void removePrefix(String prefixString) {\r
- if (_remainderString == null) {\r
- String msg = "Argument[remainderString] must not be null: " + _remainderString;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (prefixString == null) {\r
- String msg = "Argument[prefixString] must not be null: " + prefixString;\r
- throw new IllegalArgumentException(msg);\r
- }\r
-\r
- removeBothSideSpaceAndTabAndNewLine();\r
-\r
- if (_remainderString.length() < prefixString.length()) {\r
- String msg = "Argument[remainderString] length must be larger than Argument[prefixString] length:";\r
- msg = msg + getNewLineAndIndent() + " # remainderString --> " + _remainderString;\r
- msg = msg + getNewLineAndIndent() + " # prefixString=" + prefixString;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (!_remainderString.startsWith(prefixString)) {\r
- String msg = "Argument[remainderString] must start with Argument[prefixString:]";\r
- msg = msg + getNewLineAndIndent() + " # remainderString --> " + _remainderString;\r
- msg = msg + getNewLineAndIndent() + " # prefixString --> " + prefixString;\r
- throw new IllegalArgumentException(msg);\r
- }\r
-\r
- _remainderString = _remainderString.substring(prefixString.length());\r
- removeBothSideSpaceAndTabAndNewLine();\r
- }\r
-\r
- /**\r
- * Remove prefix and delimiter.\r
- */\r
- protected void removePrefixAllDelimiter() {\r
- removeBothSideSpaceAndTabAndNewLine();\r
-\r
- while (true) {\r
- if (!isStartsWithDelimiter(_remainderString)) {\r
- break;\r
- }\r
-\r
- if (isStartsWithDelimiter(_remainderString)) {\r
- removePrefixDelimiter();\r
- removeBothSideSpaceAndTabAndNewLine();\r
- }\r
- }\r
- }\r
-\r
- /**\r
- * Remove both side space and tab and new-line.\r
- */\r
- protected void removeBothSideSpaceAndTabAndNewLine() {\r
- _remainderString = _remainderString.trim();\r
- }\r
-\r
- /**\r
- * Remove prefix (target index plus one).\r
- * \r
- * @param index Index.\r
- * @param plusCount Plus count.\r
- */\r
- protected void removePrefixTargetIndexPlus(int index, int plusCount) {\r
- _remainderString = _remainderString.substring(index + plusCount);\r
- }\r
-\r
- // ****************************************************************************************************\r
- // StateLess Method\r
- // ****************\r
-\r
- // ==========================================================================================\r
- // Assert\r
- // ======\r
- /**\r
- * Assert map-string.\r
- * \r
- * @param mapString Map-string. (NotNull)\r
- */\r
- protected void assertMapString(String mapString) {\r
- if (mapString == null) {\r
- String msg = "Argument[mapString] must not be null: ";\r
- throw new IllegalArgumentException(msg + "mapString=" + mapString);\r
- }\r
- mapString = mapString.trim();\r
- if (!isStartsWithMapPrefix(mapString)) {\r
- String msg = "Argument[mapString] must start with '" + _mapMark + _startBrace + "': ";\r
- throw new IllegalArgumentException(msg + "mapString=" + mapString);\r
- }\r
- if (!isEndsWithEndBrace(mapString)) {\r
- String msg = "Argument[mapString] must end with '" + _endBrace + "': ";\r
- throw new IllegalArgumentException(msg + "mapString=" + mapString);\r
- }\r
-\r
- final int startBraceCount = getDelimiterCount(mapString, _startBrace);\r
- final int endBraceCount = getDelimiterCount(mapString, _endBrace);\r
- if (startBraceCount != endBraceCount) {\r
- String msg = "It is necessary to have braces of the same number on start and end:";\r
- msg = msg + getNewLineAndIndent() + " # mapString --> " + mapString;\r
- msg = msg + getNewLineAndIndent() + " # startBraceCount --> " + startBraceCount;\r
- msg = msg + getNewLineAndIndent() + " # endBraceCount --> " + endBraceCount;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-\r
- /**\r
- * Assert list-string.\r
- * \r
- * @param listString List-string. (NotNull)\r
- */\r
- protected void assertListString(String listString) {\r
- if (listString == null) {\r
- String msg = "Argument[listString] must not be null: ";\r
- throw new IllegalArgumentException(msg + "listString=" + listString);\r
- }\r
- listString = listString.trim();\r
- if (!isStartsWithListPrefix(listString)) {\r
- String msg = "Argument[listString] must start with '" + _mapMark + "': ";\r
- throw new IllegalArgumentException(msg + "listString=" + listString);\r
- }\r
- if (!isEndsWithEndBrace(listString)) {\r
- String msg = "Argument[listString] must end with '" + _endBrace + "': ";\r
- throw new IllegalArgumentException(msg + "listString=" + listString);\r
- }\r
-\r
- final int startBraceCount = getDelimiterCount(listString, _startBrace);\r
- final int endBraceCount = getDelimiterCount(listString, _endBrace);\r
- if (startBraceCount != endBraceCount) {\r
- String msg = "It is necessary to have braces of the same number on start and end:";\r
- msg = msg + getNewLineAndIndent() + " # listString --> " + listString;\r
- msg = msg + getNewLineAndIndent() + " # startBraceCount --> " + startBraceCount;\r
- msg = msg + getNewLineAndIndent() + " # endBraceCount --> " + endBraceCount;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-\r
- /**\r
- * Assert equal-index.\r
- * \r
- * @param remainderMapString Remainder map-string. (NotNull)\r
- * @param equalIndex Equal-index.\r
- * @param mapString4Log Map-string for log. (NotNull)\r
- * @param currentMap4Log Current-map for log. (NotNull)\r
- */\r
- protected void assertEqualIndex(String remainderMapString, int equalIndex, String mapString4Log\r
- , Map${database.filterGenericsString('String, Object')} currentMap4Log) {\r
- if (remainderMapString == null) {\r
- String msg = "Argument[remainderMapString] must not be null:";\r
- msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + remainderMapString;\r
- msg = msg + getNewLineAndIndent() + " # equalIndex --> " + equalIndex;\r
- msg = msg + getNewLineAndIndent() + " # mapString4Log --> " + mapString4Log;\r
- msg = msg + getNewLineAndIndent() + " # currentMap4Log --> " + currentMap4Log;\r
- msg = msg + getNewLineAndIndent() + " # _startBrace --> " + _startBrace;\r
- msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace;\r
- msg = msg + getNewLineAndIndent() + " # _delimiter --> " + _delimiter;\r
- msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal;\r
- throw new IllegalArgumentException(msg);\r
- }\r
-\r
- if (equalIndex < 0) {\r
- String msg = "Argument[equalIndex] must be plus or zero:";\r
- msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + remainderMapString;\r
- msg = msg + getNewLineAndIndent() + " # equalIndex --> " + equalIndex;\r
- msg = msg + getNewLineAndIndent() + " # mapString4Log --> " + mapString4Log;\r
- msg = msg + getNewLineAndIndent() + " # currentMap4Log --> " + currentMap4Log;\r
- msg = msg + getNewLineAndIndent() + " # _startBrace --> " + _startBrace;\r
- msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace;\r
- msg = msg + getNewLineAndIndent() + " # _delimiter --> " + _delimiter;\r
- msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal;\r
- throw new IllegalArgumentException(msg);\r
- }\r
-\r
- if (remainderMapString.length() < equalIndex) {\r
- String msg = "Argument[remainderMapString] length must be larger than equalIndex value:";\r
- msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + remainderMapString;\r
- msg = msg + getNewLineAndIndent() + " # equalIndex --> " + equalIndex;\r
- msg = msg + getNewLineAndIndent() + " # mapString4Log --> " + mapString4Log;\r
- msg = msg + getNewLineAndIndent() + " # currentMap4Log --> " + currentMap4Log;\r
- msg = msg + getNewLineAndIndent() + " # _startBrace --> " + _startBrace;\r
- msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace;\r
- msg = msg + getNewLineAndIndent() + " # _delimiter --> " + _delimiter;\r
- msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal;\r
- throw new IllegalArgumentException(msg);\r
- }\r
-\r
- final String expectedAsEndMark = remainderMapString.substring(equalIndex, equalIndex + _equal.length());\r
- if (!expectedAsEndMark.equals(_equal)) {\r
- String msg = "Argument[remainderMapString] must have '" + _equal + "' at Argument[equalIndex]:";\r
- msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + remainderMapString;\r
- msg = msg + getNewLineAndIndent() + " # equalIndex --> " + equalIndex;\r
- msg = msg + getNewLineAndIndent() + " # expectedAsEndMark --> " + expectedAsEndMark;\r
- msg = msg + getNewLineAndIndent() + " # mapString --> " + mapString4Log;\r
- msg = msg + getNewLineAndIndent() + " # currentMap --> " + currentMap4Log;\r
- msg = msg + getNewLineAndIndent() + " # _startBrace --> " + _startBrace;\r
- msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace;\r
- msg = msg + getNewLineAndIndent() + " # _delimiter --> " + _delimiter;\r
- msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-\r
- /**\r
- * Assert end-brace-index.\r
- * \r
- * @param remainderMapString Remainder map-string. (NotNull)\r
- * @param endBraceIndex End-brace-index.\r
- * @param mapString4Log Map-string for log. (NotNull)\r
- * @param currentMap4Log Current-map for log. (NotNull)\r
- */\r
- protected void assertEndBracekIndex(String remainderMapString, int endBraceIndex, String mapString4Log\r
- , Map${database.filterGenericsString('String, Object')} currentMap4Log) {\r
- if (remainderMapString == null) {\r
- String msg = "Argument[remainderMapString] must not be null:";\r
- msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + remainderMapString;\r
- msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + endBraceIndex;\r
- msg = msg + getNewLineAndIndent() + " # mapString --> " + mapString4Log;\r
- msg = msg + getNewLineAndIndent() + " # currentMap --> " + currentMap4Log;\r
- msg = msg + getNewLineAndIndent() + " # _startBrace --> " + _startBrace;\r
- msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace;\r
- msg = msg + getNewLineAndIndent() + " # _delimiter --> " + _delimiter;\r
- msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal;\r
- throw new IllegalArgumentException(msg);\r
- }\r
-\r
- if (endBraceIndex < 0) {\r
- String msg = "Argument[endMarkIndex] must be plus or zero:";\r
- msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + remainderMapString;\r
- msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + endBraceIndex;\r
- msg = msg + getNewLineAndIndent() + " # mapString --> =" + mapString4Log;\r
- msg = msg + getNewLineAndIndent() + " # currentMap --> " + currentMap4Log;\r
- msg = msg + getNewLineAndIndent() + " # _startBrace --> " + _startBrace;\r
- msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace;\r
- msg = msg + getNewLineAndIndent() + " # _delimiter --> " + _delimiter;\r
- msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal;\r
- throw new IllegalArgumentException(msg);\r
- }\r
-\r
- if (remainderMapString.length() < endBraceIndex) {\r
- String msg = "Argument[remainderMapString] length must be larger than endMarkIndex value:";\r
- msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + remainderMapString;\r
- msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + endBraceIndex;\r
- msg = msg + getNewLineAndIndent() + " # mapString --> " + mapString4Log;\r
- msg = msg + getNewLineAndIndent() + " # currentMap --> " + currentMap4Log;\r
- msg = msg + getNewLineAndIndent() + " # _startBrace --> " + _startBrace;\r
- msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace;\r
- msg = msg + getNewLineAndIndent() + " # _delimiter --> " + _delimiter;\r
- msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal;\r
- throw new IllegalArgumentException(msg);\r
- }\r
-\r
- final String expectedAsEndMark = remainderMapString.substring(endBraceIndex, endBraceIndex + _endBrace.length());\r
- if (!expectedAsEndMark.equals(_endBrace)) {\r
- String msg = "Argument[remainderMapString] must have '" + _endBrace + "' at Argument[endBraceIndex]:";\r
- msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + remainderMapString;\r
- msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + endBraceIndex;\r
- msg = msg + getNewLineAndIndent() + " # expectedAsEndMark --> " + expectedAsEndMark;\r
- msg = msg + getNewLineAndIndent() + " # mapString --> " + mapString4Log;\r
- msg = msg + getNewLineAndIndent() + " # currentMap --> " + currentMap4Log;\r
- msg = msg + getNewLineAndIndent() + " # _startBrace --> " + _startBrace;\r
- msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace;\r
- msg = msg + getNewLineAndIndent() + " # _delimiter --> " + _delimiter;\r
- msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-\r
- /**\r
- * Assert end-brace-index.\r
- * @param remainderListString Remainder list-string. (NotNull)\r
- * @param endBraceIndex End-brace-index.\r
- * @param listString4Log List-string for log. (NotNull)\r
- * @param currentList4Log Current-list for log. (NotNull)\r
- */\r
- protected void assertEndBraceIndex(String remainderListString, int endBraceIndex, String listString4Log, List<?> currentList4Log) {\r
- if (remainderListString == null) {\r
- String msg = "Argument[remainderListString] must not be null:";\r
- msg = msg + getNewLineAndIndent() + " # remainderListString --> " + remainderListString;\r
- msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + endBraceIndex;\r
- msg = msg + getNewLineAndIndent() + " # listString --> " + listString4Log;\r
- msg = msg + getNewLineAndIndent() + " # currentList --> " + currentList4Log;\r
- msg = msg + getNewLineAndIndent() + " # _startBrace --> " + _startBrace;\r
- msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace;\r
- msg = msg + getNewLineAndIndent() + " # _delimiter --> " + _delimiter;\r
- msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal;\r
- throw new IllegalArgumentException(msg);\r
- }\r
-\r
- if (endBraceIndex < 0) {\r
- String msg = "Argument[endMarkIndex] must be plus or zero:";\r
- msg = msg + getNewLineAndIndent() + " # remainderListString --> " + remainderListString;\r
- msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + endBraceIndex;\r
- msg = msg + getNewLineAndIndent() + " # listString --> " + listString4Log;\r
- msg = msg + getNewLineAndIndent() + " # currentList --> " + currentList4Log;\r
- msg = msg + getNewLineAndIndent() + " # _startBrace --> " + _startBrace;\r
- msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace;\r
- msg = msg + getNewLineAndIndent() + " # _delimiter --> " + _delimiter;\r
- msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal;\r
- throw new IllegalArgumentException(msg);\r
- }\r
-\r
- if (remainderListString.length() < endBraceIndex) {\r
- String msg = "Argument[remainderListString] length must be larger than endMarkIndex value:";\r
- msg = msg + getNewLineAndIndent() + " # remainderListString --> " + remainderListString;\r
- msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + endBraceIndex;\r
- msg = msg + getNewLineAndIndent() + " # listString --> " + listString4Log;\r
- msg = msg + getNewLineAndIndent() + " # currentList --> " + currentList4Log;\r
- msg = msg + getNewLineAndIndent() + " # _startBrace --> " + _startBrace;\r
- msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace;\r
- msg = msg + getNewLineAndIndent() + " # _delimiter --> " + _delimiter;\r
- msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal;\r
- throw new IllegalArgumentException(msg);\r
- }\r
-\r
- final String expectedAsEndBrace = remainderListString.substring(endBraceIndex, endBraceIndex + _endBrace.length());\r
- if (!expectedAsEndBrace.equals(_endBrace)) {\r
- String msg = "Argument[remainderListString] must have '" + _endBrace + "' at Argument[endBraceIndex]:";\r
- msg = msg + getNewLineAndIndent() + " # remainderListString --> " + remainderListString;\r
- msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + endBraceIndex;\r
- msg = msg + getNewLineAndIndent() + " # expectedAsEndBrace --> " + expectedAsEndBrace;\r
- msg = msg + getNewLineAndIndent() + " # listString --> " + listString4Log;\r
- msg = msg + getNewLineAndIndent() + " # currentList --> " + currentList4Log;\r
- msg = msg + getNewLineAndIndent() + " # _startBrace --> " + _startBrace;\r
- msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace;\r
- msg = msg + getNewLineAndIndent() + " # _delimiter --> " + _delimiter;\r
- msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-\r
- // ==========================================================================================\r
- // Filter\r
- // ======\r
- /**\r
- * Filter map or list value.\r
- * <p>\r
- * <pre>\r
- * # The value is trimmed.\r
- * # If the value is null, this returns null.\r
- * # If the value is 'null', this returns null.\r
- * # If the trimmed value is empty string, this returns null.\r
- * </pre>\r
- * @param value value. (Nullable)\r
- * @return Filtered value. (Nullable)\r
- */\r
- protected String filterMapListValue(String value) {\r
- if (value == null) {\r
- return null;\r
- }\r
- value = value.trim();\r
- return (("".equals(value) || "null".equals(value)) ? null : value);\r
- }\r
-\r
- // ==========================================================================================\r
- // Judgement\r
- // =========\r
- /**\r
- * Does it start with map-prefix?\r
- * \r
- * @param targetString Target-string. (NotNull)\r
- * @return Determination.\r
- */\r
- protected boolean isStartsWithMapPrefix(String targetString) {\r
- if (targetString == null) {\r
- String msg = "Argument[targetString] must not be null: " + targetString;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- targetString = targetString.trim();\r
- if (targetString.startsWith(_mapMark + _startBrace)) {\r
- return true;\r
- } else {\r
- return false;\r
- }\r
- }\r
-\r
- /**\r
- * Does it start with list-prefix?\r
- * \r
- * @param targetString Target-string. (NotNull)\r
- * @return Determination.\r
- */\r
- protected boolean isStartsWithListPrefix(String targetString) {\r
- if (targetString == null) {\r
- String msg = "Argument[targetString] must not be null: " + targetString;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- targetString = targetString.trim();\r
- if (targetString.startsWith(_listMark + _startBrace)) {\r
- return true;\r
- } else {\r
- return false;\r
- }\r
- }\r
-\r
- /**\r
- * Does it start with delimiter?\r
- * \r
- * @param targetString Target-string. (NotNull)\r
- * @return Determination.\r
- */\r
- protected boolean isStartsWithDelimiter(String targetString) {\r
- if (targetString == null) {\r
- String msg = "Argument[targetString] must not be null: " + targetString;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- targetString = targetString.trim();\r
- if (targetString.startsWith(_delimiter)) {\r
- return true;\r
- } else {\r
- return false;\r
- }\r
- }\r
-\r
- /**\r
- * Does it start with end-brace?\r
- * \r
- * @param targetString Target-string. (NotNull)\r
- * @return Determination.\r
- */\r
- protected boolean isStartsWithEndBrace(String targetString) {\r
- if (targetString == null) {\r
- String msg = "Argument[targetString] must not be null: " + targetString;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- targetString = targetString.trim();\r
- if (targetString.startsWith(_endBrace)) {\r
- return true;\r
- } else {\r
- return false;\r
- }\r
- }\r
-\r
- /**\r
- * Does it end with end-brace?\r
- * \r
- * @param targetString Target-string. (NotNull)\r
- * @return Determination.\r
- */\r
- protected boolean isEndsWithEndBrace(String targetString) {\r
- if (targetString == null) {\r
- String msg = "Argument[targetString] must not be null: " + targetString;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- targetString = targetString.trim();\r
- if (targetString.endsWith(_endBrace)) {\r
- return true;\r
- } else {\r
- return false;\r
- }\r
- }\r
-\r
- // ==========================================================================================\r
- // Other\r
- // =====\r
- /**\r
- * Setup nest map.\r
- * \r
- * @param currentMap Current-map. (NotNull)\r
- * @param mapKey Map-key. (NotNull)\r
- * @return Nest map. (NotNull)\r
- */\r
- protected Map${database.filterGenericsString('String, Object')} setupNestMap(Map${database.filterGenericsString('String, Object')} currentMap, String mapKey) {\r
- final Map${database.filterGenericsString('String, Object')} nestMap = newStringObjectMap();\r
- currentMap.put(mapKey, nestMap);\r
- return nestMap;\r
- }\r
-\r
- /**\r
- * Setup nest map.\r
- * \r
- * @param currentList Current-list. (NotNull)\r
- * @return Nest map. (NotNull)\r
- */\r
- protected Map${database.filterGenericsString('String, Object')} setupNestMap(List${database.filterGenericsString('Object')} currentList) {\r
- final Map${database.filterGenericsString('String, Object')} nestMap = newStringObjectMap();\r
- currentList.add(nestMap);\r
- return nestMap;\r
- }\r
-\r
- /**\r
- * Setup nest list.\r
- * \r
- * @param currentMap Current-map. (NotNull)\r
- * @param mapKey Map-key. (NotNull)\r
- * @return Nest list. (NotNull)\r
- */\r
- protected List${database.filterGenericsString('Object')} setupNestList(Map${database.filterGenericsString('String, Object')} currentMap, String mapKey) {\r
- final List${database.filterGenericsString('Object')} nestList = newObjectList();\r
- currentMap.put(mapKey, nestList);\r
- return nestList;\r
- }\r
-\r
- /**\r
- * Setup nest list.\r
- * \r
- * @param currentList Current-list. (NotNull)\r
- * @return Nest list. (NotNull)\r
- */\r
- protected List${database.filterGenericsString('Object')} setupNestList(List${database.filterGenericsString('Object')} currentList) {\r
- final List${database.filterGenericsString('Object')} nestList = newObjectList();\r
- currentList.add(nestList);\r
- return nestList;\r
- }\r
-\r
- /**\r
- * New string-object-map.\r
- * \r
- * @return String-object-map. (NotNull)\r
- */\r
- protected Map${database.filterGenericsString('String, Object')} newStringObjectMap() {\r
- return new LinkedHashMap${database.filterGenericsString('String, Object')}();\r
- }\r
-\r
- /**\r
- * New object-list.\r
- * \r
- * @return String-object-list. (NotNull)\r
- */\r
- protected List${database.filterGenericsString('Object')} newObjectList() {\r
- return new ArrayList${database.filterGenericsString('Object')}();\r
- }\r
-\r
- /**\r
- * Get new-line and indent.\r
- * \r
- * @return New-line and indent. (NotNull)\r
- */\r
- protected String getNewLineAndIndent() {\r
- return NEW_LINE + " ";\r
- }\r
-\r
- /**\r
- * Get count that target string exist in the base string.\r
- * \r
- * @param targetString Target string.\r
- * @param delimiter Delimiter\r
- * @return Delimiter count that _remainderString contains.\r
- */\r
- protected int getDelimiterCount(String targetString, String delimiter) {\r
- int result = 0;\r
- for (int i = 0;;) {\r
- if (targetString.indexOf(delimiter, i) != -1) {\r
- result++;\r
- i = targetString.indexOf(delimiter, i) + 1;\r
- } else {\r
- break;\r
- }\r
- }\r
- if (result == 0) {\r
- result = -1;\r
- }\r
- return result;\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonHelper};\r
-\r
-/**\r
- * The interface of map-string-builder.\r
- *\r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glMapStringBuilderName} {\r
-\r
- // =====================================================================================\r
- // Setter\r
- // ======\r
- public void setColumnNames(String[] columnNames);\r
-\r
- public void setColumnNameList(java.util.List${database.filterGenericsString('String')} columnNameList);\r
-\r
- public void setMsMapMark(String value);\r
-\r
- public void setMsStartBrace(String value);\r
-\r
- public void setMsEndBrace(String value);\r
-\r
- public void setMsDelimiter(String value);\r
-\r
- public void setMsEqual(String value);\r
-\r
- // =====================================================================================\r
- // Main\r
- // ====\r
- public String buildByDelimiter(String values, String delimiter);\r
-\r
- public String buildFromList(java.util.List${database.filterGenericsString('String')} valueList);\r
-\r
- // =====================================================================================\r
- // Exception Static Class\r
- // ======================\r
- public static class DifferentDelimiterCountException extends RuntimeException {\r
-\r
- /** Serial version UID. (Default) */\r
- private static final long serialVersionUID = 1L;\r
-\r
- // =====================================================================================\r
- // Attribute\r
- // =========\r
- protected java.util.List${database.filterGenericsString('String')} _columnNameList;\r
- protected java.util.List${database.filterGenericsString('String')} _valueList;\r
-\r
- // =====================================================================================\r
- // Constructor\r
- // ===========\r
- public DifferentDelimiterCountException(String msg, java.util.List${database.filterGenericsString('String')} columnNameList, java.util.List${database.filterGenericsString('String')} valueList) {\r
- super(msg);\r
- _columnNameList = columnNameList;\r
- _valueList = valueList;\r
- }\r
-\r
- // =====================================================================================\r
- // Accessor\r
- // ========\r
- public java.util.List${database.filterGenericsString('String')} getColumnNameList() {\r
- return _columnNameList;\r
- }\r
- public java.util.List${database.filterGenericsString('String')} getValueList() {\r
- return _valueList;\r
- }\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonHelper};\r
-\r
-import ${glPackageBaseCommonHelperTokenLine}.${glLineTokenName};\r
-import ${glPackageBaseCommonHelperTokenLine}.${glLineTokenizingOptionName};\r
-import ${glPackageBaseCommonHelperTokenLineImpl}.${glLineTokenImplName};\r
-\r
-/**\r
- * The implementation of map-string-builder.\r
- *\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glMapStringBuilderImplName} implements ${glMapStringBuilderName} {\r
-\r
- protected java.util.List${database.filterGenericsString('String')} _columnNameList;\r
-\r
- protected String _msMapMark;\r
-\r
- protected String _msStartBrace;\r
-\r
- protected String _msEndBrace;\r
-\r
- protected String _msDelimiter;\r
-\r
- protected String _msEqual;\r
-\r
- protected boolean _trimDoubleQuotation;\r
-\r
- public void setColumnNames(String[] columnNames) {\r
- _columnNameList = java.util.Arrays.asList(columnNames);\r
- }\r
-\r
- public void setColumnNameList(java.util.List${database.filterGenericsString('String')} columnNameList) {\r
- _columnNameList = columnNameList;\r
- }\r
-\r
- public void setMsMapMark(String value) {\r
- _msMapMark = value;\r
- }\r
-\r
- public void setMsStartBrace(String value) {\r
- _msStartBrace = value;\r
- }\r
-\r
- public void setMsEndBrace(String value) {\r
- _msEndBrace = value;\r
- }\r
-\r
- public void setMsDelimiter(String value) {\r
- _msDelimiter = value;\r
- }\r
-\r
- public void setMsEqual(String value) {\r
- _msEqual = value;\r
- }\r
-\r
- public void trimDoubleQuotation() {\r
- _trimDoubleQuotation = true;\r
- }\r
-\r
- public String buildByDelimiter(String values, String delimiter) {\r
- if (values == null) {\r
- String msg = "The argument[values] should not be null.";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (delimiter == null) {\r
- String msg = "The argument[delimiter] should not be null.";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- assertStringComponent();\r
-\r
- final java.util.List${database.filterGenericsString('String')} valueList = tokenize(values, delimiter);\r
- assertColumnValueList(_columnNameList, valueList);\r
-\r
- final StringBuffer sb = new StringBuffer();\r
- sb.append(_msMapMark).append(_msStartBrace);\r
- for (int i = 0; i < _columnNameList.size(); i++ ) {\r
- sb.append(_columnNameList.get(i)).append(_msEqual).append(valueList.get(i)).append(_msDelimiter);\r
- }\r
-\r
- sb.delete(sb.length() - _msDelimiter.length(), sb.length());\r
- sb.append(_msEndBrace);\r
- return sb.toString(); \r
- }\r
-\r
- public String buildFromList(java.util.List${database.filterGenericsString('String')} valueList) {\r
- if (valueList == null) {\r
- String msg = "The argument[valueList] should not be null.";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- assertStringComponent();\r
- assertColumnValueList(_columnNameList, valueList);\r
-\r
- final StringBuffer sb = new StringBuffer();\r
- sb.append(_msMapMark).append(_msStartBrace);\r
- for (int i = 0; i < _columnNameList.size(); i++ ) {\r
- sb.append(_columnNameList.get(i)).append(_msEqual).append(valueList.get(i)).append(_msDelimiter);\r
- }\r
-\r
- sb.delete(sb.length() - _msDelimiter.length(), sb.length());\r
- sb.append(_msEndBrace);\r
- return sb.toString(); \r
- }\r
-\r
- protected java.util.List${database.filterGenericsString('String')} tokenize(String value, String delimiter) {\r
- final ${glLineTokenName} lineToken = new ${glLineTokenImplName}();\r
- final ${glLineTokenizingOptionName} lineTokenizingOption = new ${glLineTokenizingOptionName}();\r
- lineTokenizingOption.setDelimiter(delimiter);\r
- if (_trimDoubleQuotation) {\r
- lineTokenizingOption.trimDoubleQuotation();\r
- }\r
- return lineToken.tokenize(value, lineTokenizingOption);\r
- }\r
-\r
- protected void assertStringComponent() {\r
- if (_columnNameList == null) {\r
- String msg = "The columnNameList should not be null.";\r
- throw new IllegalStateException(msg);\r
- }\r
- if (_columnNameList.isEmpty()) {\r
- String msg = "The columnNameList should not be empty.";\r
- throw new IllegalStateException(msg);\r
- }\r
- if (_msMapMark == null) {\r
- String msg = "The msMapMark should not be null.";\r
- throw new IllegalStateException(msg);\r
- }\r
- if (_msStartBrace == null) {\r
- String msg = "The msStartBrace should not be null.";\r
- throw new IllegalStateException(msg);\r
- }\r
- if (_msEndBrace == null) {\r
- String msg = "The msEndBrace should not be null.";\r
- throw new IllegalStateException(msg);\r
- }\r
- if (_msDelimiter == null) {\r
- String msg = "The msDelimiter should not be null.";\r
- throw new IllegalStateException(msg);\r
- }\r
- if (_msEqual == null) {\r
- String msg = "The msEqual should not be null.";\r
- throw new IllegalStateException(msg);\r
- }\r
- }\r
-\r
- protected void assertColumnValueList(java.util.List${database.filterGenericsString('String')} columnNameList, java.util.List${database.filterGenericsString('String')} valueList) {\r
- if (columnNameList.size() != valueList.size()) {\r
- String msg = "The length of columnNameList and valueList are difference. (" + columnNameList.size() + ", " + valueList.size() + ")";\r
- msg = msg + " columnNameList=" + columnNameList;\r
- msg = msg + " valueList=" + valueList;\r
- throw new DifferentDelimiterCountException(msg, columnNameList, valueList);\r
- }\r
- }\r
-\r
- protected static final String replace(String text, String fromText, String toText) {\r
- if (text == null || fromText == null || toText == null) {\r
- return null;\r
- }\r
- final StringBuffer buf = new StringBuffer(100);\r
- int pos = 0;\r
- int pos2 = 0;\r
- while (true) {\r
- pos = text.indexOf(fromText, pos2);\r
- if (pos == 0) {\r
- buf.append(toText);\r
- pos2 = fromText.length();\r
- } else if (pos > 0) {\r
- buf.append(text.substring(pos2, pos));\r
- buf.append(toText);\r
- pos2 = pos + fromText.length();\r
- } else {\r
- buf.append(text.substring(pos2));\r
- break;\r
- }\r
- }\r
- return buf.toString();\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonHelperCharacter};\r
-\r
-/**\r
- * The interface of general character.\r
- *\r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glGeneralCharacterName} {\r
-\r
- public String toSingleByteAlphabet(String s);\r
-\r
- public String toSingleByteNumber(String s);\r
-\r
- public String toSingleByteAlphabetNumber(String target);\r
-\r
- public String toSingleByteAlphabetNumberMark(String target);\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonHelperCharacter};\r
-\r
-/**\r
- * The interface of Japanese character.\r
- *\r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glJapaneseCharacterName} {\r
-\r
- public String toDoubleByteKatakana(String target);\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonHelperCharacterImpl};\r
-\r
-import ${glPackageBaseCommonHelperCharacter}.${glGeneralCharacterName};\r
-\r
-/**\r
- * The implementation of general character.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glGeneralCharacterImplName} implements ${glGeneralCharacterName} {\r
-\r
- public String toSingleByteAlphabet(String target) {\r
- if (target == null) {\r
- return target;\r
- }\r
- final StringBuffer sb = new StringBuffer();\r
- for (int i = 0; i < target.length(); i++) {\r
- final char currentChar = target.charAt(i);\r
-\r
- if (currentChar >= 0xff21 && currentChar <= 0xff3a) {\r
- sb.append(toSingleByteCharacter(currentChar));\r
- } else if (currentChar >= 0xff41 && currentChar <= 0xff5a) {\r
- sb.append(toSingleByteCharacter(currentChar));\r
- } else {\r
- sb.append(currentChar);\r
- }\r
- }\r
- return sb.toString();\r
- }\r
-\r
- public String toSingleByteNumber(String target) {\r
- if (target == null) {\r
- return target;\r
- }\r
- final StringBuffer sb = new StringBuffer();\r
- for (int i = 0; i < target.length(); i++) {\r
- final char currentChar = target.charAt(i);\r
- if (currentChar >= 0xff10 && currentChar <= 0xff19) {\r
- sb.append(toSingleByteCharacter(currentChar));\r
- } else {\r
- sb.append(currentChar);\r
- }\r
- }\r
- return sb.toString();\r
- }\r
-\r
- public String toSingleByteAlphabetNumber(String target) {\r
- if (target == null) {\r
- return target;\r
- }\r
- final StringBuffer sb = new StringBuffer();\r
- for (int i = 0; i < target.length(); i++) {\r
- final char currentChar = target.charAt(i);\r
-\r
- if (currentChar >= 0xff10 && currentChar <= 0xff19) {\r
- sb.append(toSingleByteCharacter(currentChar));\r
- } else if (currentChar >= 0xff21 && currentChar <= 0xff3a) {\r
- sb.append(toSingleByteCharacter(currentChar));\r
- } else if (currentChar >= 0xff41 && currentChar <= 0xff5a) {\r
- sb.append(toSingleByteCharacter(currentChar));\r
- } else {\r
- sb.append(currentChar);\r
- }\r
- }\r
- return sb.toString();\r
- }\r
-\r
- public String toSingleByteAlphabetNumberMark(String target) {\r
- if (target == null) {\r
- return target;\r
- }\r
- final StringBuffer sb = new StringBuffer(target.length());\r
- for (int i = 0; i < target.length(); i++) {\r
- final char currentChar = target.charAt(i);\r
- if (currentChar >= 0xff01 && currentChar <= 0xff5e) {\r
- sb.append(toSingleByteCharacter(currentChar));\r
-\r
- // It needs to append more mark...\r
- } else if (currentChar == '\u2019' || currentChar == '\u2018' || currentChar == '\u2032') {\r
- sb.append('\'');\r
- } else if (currentChar == '\u201d' || currentChar == '\u201c' || currentChar == '\u2033') {\r
- sb.append('\"');\r
- } else if (currentChar == '\uffe5') {\r
- sb.append('\\');\r
- } else if (currentChar == '\u2010') {\r
- sb.append('-');\r
- } else if (currentChar == '\uff5e') {\r
- sb.append('~');\r
- } else {\r
- sb.append(currentChar);\r
- }\r
- }\r
- return sb.toString();\r
- }\r
-\r
- protected char toSingleByteCharacter(final char currentChar) {\r
- return (char) (currentChar - 0xfee0);\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonHelperCharacterImpl};\r
-\r
-import ${glPackageBaseCommonHelperCharacter}.${glJapaneseCharacterName};\r
-\r
-/**\r
- * The implementation of Japanese character.\r
- *\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glJapaneseCharacterImplName} implements ${glJapaneseCharacterName} {\r
-\r
- // Double-byte Katakana\r
- protected static final String TABLE_ZENKANA = \r
- "\u3002\u300c\u300d\u3001\u30fb\u30f2\u30a1\u30a3\u30a5"\r
- + "\u30a7\u30a9\u30e3\u30e5\u30e7\u30c3\u30fc\u30a2\u30a4"\r
- + "\u30a6\u30a8\u30aa\u30ab\u30ad\u30af\u30b1\u30b3\u30b5"\r
- + "\u30b7\u30b9\u30bb\u30bd\u30bf\u30c1\u30c4\u30c6\u30c8"\r
- + "\u30ca\u30cb\u30cc\u30cd\u30ce\u30cf\u30d2\u30d5\u30d8"\r
- + "\u30db\u30de\u30df\u30e0\u30e1\u30e2\u30e4\u30e6\u30e8"\r
- + "\u30e9\u30ea\u30eb\u30ec\u30ed\u30ef\u30f3\u309b\u309c";\r
-\r
- // (uff71 - uff9d)\r
- protected static final String DEF_DOUBLE_BYTE_VOICED_SOUND_NORMAL_KATAKANA = \r
- "\u30a2\u30a4\u30f4\u30a8\u30aa" +\r
- "\u30ac\u30ae\u30b0\u30b2\u30b4" +\r
- "\u30b6\u30b8\u30ba\u30bc\u30be" +\r
- "\u30c0\u30c2\u30c5\u30c7\u30c9" +\r
- "\u30ca\u30cb\u30cc\u30cd\u30ce" +\r
- "\u30d0\u30d3\u30d6\u30d9\u30dc" +\r
- "\u30de\u30df\u30e0\u30e1\u30e2" +\r
- "\u30e4\u30e6\u30e8" +\r
- "\u30e9\u30ea\u30eb\u30ec\u30ed" +\r
- "\u30ef\u30f3";\r
-\r
- // (uff66 - uff6f)\r
- protected static final String DEF_DOUBLE_BYTE_VOICED_SOUND_SPECIAL_KATAKANA = "\u30fa\u30a1\u30a3\u30a5\u30a7\u30a9\u30e3\u30e5\u30e7";\r
-\r
- // (u30cf - u30dd)\r
- protected static final String DEF_DOUBLE_BYTE_SEMI_VOICED_SOUND_KATAKANA = "\u30d1\u30d4\u30d7\u30da\u30dd";\r
-\r
- public String toDoubleByteKatakana(String target) {\r
- if (target == null) {\r
- return target;\r
- }\r
-\r
- final StringBuffer sb = new StringBuffer();\r
- for (int i = 0; i < target.length(); i++) {\r
- final char currentChar = target.charAt(i);\r
- final char nextChar;\r
- if (i < target.length() - 1) {\r
- nextChar = target.charAt(i + 1);\r
- } else {\r
- nextChar = ' ';\r
- }\r
-\r
- if (isVoicedSoundKatakana(currentChar, nextChar)) {\r
- if (currentChar >= 0xff66 && currentChar <= 0xff6f) {// Voiced sound special Katakana\r
- sb.append(DEF_DOUBLE_BYTE_VOICED_SOUND_SPECIAL_KATAKANA.charAt(currentChar - 0xff66));\r
- i++;\r
- } else if (currentChar >= 0xff71 && currentChar <= 0xff9d) {// Voiced sound normal Katakana\r
- sb.append(DEF_DOUBLE_BYTE_VOICED_SOUND_NORMAL_KATAKANA.charAt(currentChar - 0xff71));\r
- i++;\r
- }\r
-\r
- } else if (isSemiVoicedSoundKatakana(currentChar, nextChar)) {\r
- sb.append(DEF_DOUBLE_BYTE_SEMI_VOICED_SOUND_KATAKANA.charAt(currentChar - 0xff8a));\r
- i++;\r
- } else if (currentChar != 0xff9e && currentChar != 0xff9f) {\r
- if (currentChar >= 0xff61 && currentChar <= 0xff9f) {\r
- sb.append(TABLE_ZENKANA.charAt(currentChar - 0xff61));\r
- } else {\r
- sb.append(currentChar);\r
- }\r
- }\r
- }\r
- return sb.toString();\r
- }\r
-\r
- protected boolean isVoicedSoundKatakana(final char currentChar, final char nextChar) {\r
- return ((currentChar >= 0xff66 && currentChar <= 0xff6f) || (currentChar >= 0xff71 && (currentChar <= 0xff9d)))\r
- && (nextChar == 0xff9e);\r
- }\r
-\r
- protected boolean isSemiVoicedSoundKatakana(final char currentChar, final char nextChar) {\r
- return (currentChar >= 0xff8a && currentChar <= 0xff8e) && (nextChar == 0xff9f);\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonHelperCollectionOrder};\r
-\r
-import java.util.List;\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glAccordingToOrderName} {\r
-\r
- /**\r
- * Order the unordered list.\r
- * \r
- * @param option The option of according-to-order. (NotNull)\r
- * @param unorderedList The unordered list. (NotNull)\r
- * @param <ELEMENT_TYPE> The type of element.\r
- * @param <ID_TYPE> The type of ID.\r
- */\r
- <ELEMENT_TYPE, ID_TYPE> void order(List<ELEMENT_TYPE> unorderedList, ${glAccordingToOrderOptionName}<ELEMENT_TYPE, ID_TYPE> option);\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonHelperCollectionOrder};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- * @param <ELEMENT_TYPE> The type of element.\r
- * @param <ID_TYPE> The type of ID.\r
- */\r
-public interface ${glAccordingToOrderIdExtractorName}<ELEMENT_TYPE, ID_TYPE> {\r
-\r
- /**\r
- * Extract ID from the element instance.\r
- * \r
- * @param element Element instance. (NotNull)\r
- * @return Extracted ID. (NotNull)\r
- */\r
- ID_TYPE extractId(ELEMENT_TYPE element);\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonHelperCollectionOrder};\r
-\r
-import java.util.List;\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- * @param <ELEMENT_TYPE> The type of element.\r
- * @param <ID_TYPE> The type of ID.\r
- */\r
-public class ${glAccordingToOrderOptionName}<ELEMENT_TYPE, ID_TYPE> {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected List<ID_TYPE> _orderedUniqueIdList;\r
-\r
- protected ${glAccordingToOrderIdExtractorName}<ELEMENT_TYPE, ID_TYPE> _idExtractor;\r
-\r
- // ===================================================================================\r
- // Easy-to-Use\r
- // ===========\r
- public void setupOrderedResource(List<ID_TYPE> orderedUniqueIdList, ${glAccordingToOrderIdExtractorName}<ELEMENT_TYPE, ID_TYPE> idExtractor) {\r
- setOrderedUniqueIdList(orderedUniqueIdList);\r
- setIdExtractor(idExtractor);\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public List<ID_TYPE> getOrderedUniqueIdList() {\r
- return _orderedUniqueIdList;\r
- }\r
-\r
- public void setOrderedUniqueIdList(List<ID_TYPE> orderedUniqueIdList) {\r
- this._orderedUniqueIdList = orderedUniqueIdList;\r
- }\r
-\r
- public ${glAccordingToOrderIdExtractorName}<ELEMENT_TYPE, ID_TYPE> getIdExtractor() {\r
- return _idExtractor;\r
- }\r
-\r
- public void setIdExtractor(${glAccordingToOrderIdExtractorName}<ELEMENT_TYPE, ID_TYPE> idExtractor) {\r
- _idExtractor = idExtractor;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonHelperCollectionOrderImpl};\r
-\r
-import java.util.Collections;\r
-import java.util.Comparator;\r
-import java.util.LinkedHashMap;\r
-import java.util.List;\r
-import java.util.Map;\r
-\r
-import ${glPackageBaseCommonHelperCollectionOrder}.${glAccordingToOrderName};\r
-import ${glPackageBaseCommonHelperCollectionOrder}.${glAccordingToOrderIdExtractorName};\r
-import ${glPackageBaseCommonHelperCollectionOrder}.${glAccordingToOrderOptionName};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glAccordingToOrderImplName} implements ${glAccordingToOrderName} {\r
-\r
- // ===================================================================================\r
- // Main\r
- // ====\r
- /**\r
- * The implementation.\r
- * \r
- * @param unorderedList The unordered list. (NotNull)\r
- * @param option The option of according-to-order. (NotNull)\r
- * @param <ELEMENT_TYPE> The type of element.\r
- * @param <ID_TYPE> The type of ID.\r
- */\r
- public <ELEMENT_TYPE, ID_TYPE> void order(final List<ELEMENT_TYPE> unorderedList, final ${glAccordingToOrderOptionName}<ELEMENT_TYPE, ID_TYPE> option) {\r
- assertObjectNotNull("unorderedList", unorderedList);\r
- if (unorderedList.isEmpty()) {\r
- return;\r
- }\r
- assertObjectNotNull("option", option);\r
- final List<ID_TYPE> orderedUniqueIdList = option.getOrderedUniqueIdList();\r
- assertObjectNotNull("option.getOrderedUniqueIdList()", orderedUniqueIdList);\r
- if (orderedUniqueIdList.isEmpty()) {\r
- return;\r
- }\r
- final ${glAccordingToOrderIdExtractorName}<ELEMENT_TYPE, ID_TYPE> idExtractor = option.getIdExtractor();\r
- assertObjectNotNull("option.getIdExtractor()", idExtractor);\r
-\r
- final Map<ID_TYPE, Integer> idIndexMap = new LinkedHashMap<ID_TYPE, Integer>();\r
- int index = 0;\r
- for (ID_TYPE id : orderedUniqueIdList) {\r
- if (idIndexMap.containsKey(id)) {\r
- String msg = "The id was duplicated: id=" + id + " orderedUniqueIdList=" + orderedUniqueIdList;\r
- throw new IllegalStateException(msg);\r
- }\r
- idIndexMap.put(id, index);\r
- ++index;\r
- }\r
- final Comparator<ELEMENT_TYPE> comp = new Comparator<ELEMENT_TYPE>() {\r
- public int compare(ELEMENT_TYPE o1, ELEMENT_TYPE o2) {\r
- final ID_TYPE id1 = idExtractor.extractId(o1);\r
- final ID_TYPE id2 = idExtractor.extractId(o2);\r
- assertObjectNotNull("id1 of " + o1, id1);\r
- assertObjectNotNull("id2 of " + o2, id2);\r
- final Integer index1 = idIndexMap.get(id1);\r
- final Integer index2 = idIndexMap.get(id2);\r
- if (index1 != null && index2 != null) {\r
- return index1.compareTo(index2);\r
- }\r
- if (index1 == null && index2 == null) {\r
- return 0;\r
- }\r
- return index1 == null ? 1 : -1;\r
- }\r
- };\r
- Collections.sort(unorderedList, comp);\r
- }\r
-\r
- // ===================================================================================\r
- // Assert Helper\r
- // =============\r
- /**\r
- * Assert that the object is not null.\r
- * \r
- * @param variableName Variable name. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @exception IllegalArgumentException\r
- */\r
- protected void assertObjectNotNull(String variableName, Object value) {\r
- if (variableName == null) {\r
- String msg = "The value should not be null: variableName=" + variableName + " value=" + value;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (value == null) {\r
- String msg = "The value should not be null: variableName=" + variableName;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonHelperStackTrace};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glInvokeNameExtractingResourceName} {\r
-\r
- public boolean isTargetElement(String className, String methodName);\r
- public String filterSimpleClassName(String simpleClassName);\r
- public boolean isUseAdditionalInfo();\r
- public int getStartIndex();\r
- public int getLoopSize();\r
-}
\ No newline at end of file
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonHelperStackTrace};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glInvokeNameExtractorName} {\r
-\r
- /**\r
- * @param resource the call-back resource for invoke-name-extracting. (NotNull)\r
- * @return The result of invoke name. (NotNull: If not found, returns empty string.)\r
- */\r
- public ${glInvokeNameResultName} extractInvokeName(${glInvokeNameExtractingResourceName} resource);\r
-}
\ No newline at end of file
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonHelperStackTrace};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInvokeNameResultName} {\r
-\r
- // ==========================================================================================\r
- // Attribute\r
- // =========\r
- protected String _simpleClassName;\r
- protected String _methodName;\r
- protected String _invokeName;\r
- protected int _foundIndex;\r
- protected int _foundFirstIndex;\r
-\r
- // ==========================================================================================\r
- // Manipulation\r
- // ============\r
- public int getNextStartIndex() {\r
- return _foundIndex + 1;\r
- }\r
-\r
- public void beEmptyResult() {\r
- _simpleClassName = null;\r
- _invokeName = ""; // As Default\r
- }\r
-\r
- // ==========================================================================================\r
- // Determination\r
- // =============\r
- public boolean isEmptyResult() {\r
- return _simpleClassName == null;\r
- }\r
- \r
- // ==========================================================================================\r
- // Accessor\r
- // ========\r
- public String getSimpleClassName() {\r
- return _simpleClassName;\r
- }\r
- public void setSimpleClassName(String simpleClassName) {\r
- _simpleClassName = simpleClassName;\r
- }\r
- public String getMethodName() {\r
- return _methodName;\r
- }\r
- public void setMethodName(String methodName) {\r
- _methodName = methodName;\r
- }\r
- public String getInvokeName() {\r
- return _invokeName;\r
- }\r
- public void setInvokeName(String invokeName) {\r
- _invokeName = invokeName;\r
- }\r
- public int getFoundIndex() {\r
- return _foundIndex;\r
- }\r
- public void setFoundIndex(int foundIndex) {\r
- _foundIndex = foundIndex;\r
- }\r
- public int getFoundFirstIndex() {\r
- return _foundFirstIndex;\r
- }\r
- public void setFoundFirstIndex(int foundFirstIndex) {\r
- _foundFirstIndex = foundFirstIndex;\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonHelperStackTraceImpl};\r
-\r
-import ${glPackageBaseCommonHelperStackTrace}.${glInvokeNameResultName};\r
-import ${glPackageBaseCommonHelperStackTrace}.${glInvokeNameExtractingResourceName};\r
-import ${glPackageBaseCommonHelperStackTrace}.${glInvokeNameExtractorName};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInvokeNameExtractorImplName} implements ${glInvokeNameExtractorName} {\r
-\r
- // ==========================================================================================\r
- // Attribute\r
- // =========\r
- protected StackTraceElement[] _stackTrace;\r
-\r
- // ==========================================================================================\r
- // Main\r
- // ====\r
- /**\r
- * @param resource the call-back resource for invoke-name-extracting. (NotNull)\r
- * @return Invoke name. (NotNull: If not found, returns empty string.)\r
- */\r
- public ${glInvokeNameResultName} extractInvokeName(${glInvokeNameExtractingResourceName} resource) {\r
- if (_stackTrace == null) {\r
- String msg = "The attribute 'stackTrace' should not be null: resource=" + resource;\r
- throw new IllegalStateException(msg);\r
- }\r
- String targetSimpleClassName = null;\r
- String targetMethodName = null;\r
- int lineNumber = 0;\r
- int foundIndex = -1; // The minus one means 'Not Found'.\r
- int foundFirstIndex = -1; // The minus one means 'Not Found'.\r
- boolean onTarget = false;\r
- for (int i=resource.getStartIndex(); i < _stackTrace.length; i++) {\r
- final StackTraceElement element = _stackTrace[i];\r
- if (i > resource.getStartIndex() + resource.getLoopSize()) {\r
- break;\r
- }\r
- final String className = element.getClassName();\r
- if (className.startsWith("sun.") || className.startsWith("java.")) {\r
- if (onTarget) {\r
- break;\r
- }\r
- continue;\r
- }\r
- final String methodName = element.getMethodName();\r
- if (resource.isTargetElement(className, methodName)) {\r
- if (methodName.equals("invoke")) {\r
- continue;\r
- }\r
- targetSimpleClassName = className.substring(className.lastIndexOf(".") + 1);\r
- targetMethodName = methodName;\r
- if (resource.isUseAdditionalInfo()) {\r
- lineNumber = element.getLineNumber();\r
- }\r
- foundIndex = i;\r
- if (foundFirstIndex == -1) {\r
- foundFirstIndex = i;\r
- }\r
- onTarget = true;\r
- continue;\r
- }\r
- if (onTarget) {\r
- break;\r
- }\r
- }\r
- final ${glInvokeNameResultName} result = new ${glInvokeNameResultName}();\r
- if (targetSimpleClassName == null) {\r
- result.beEmptyResult(); // Not Found! It sets empty result.\r
- return result;\r
- }\r
- final String filteredClassName = resource.filterSimpleClassName(targetSimpleClassName);\r
- result.setSimpleClassName(resource.filterSimpleClassName(targetSimpleClassName));\r
- result.setMethodName(targetMethodName);\r
- if (lineNumber > 0) {\r
- result.setInvokeName(filteredClassName + "." + targetMethodName + "():" + lineNumber + " --> ");\r
- } else {\r
- result.setInvokeName(filteredClassName + "." + targetMethodName + "() --> ");\r
- }\r
- result.setFoundIndex(foundIndex);\r
- result.setFoundFirstIndex(foundFirstIndex);\r
- return result;\r
- }\r
-\r
- // ==========================================================================================\r
- // Accessor\r
- // ========\r
- public void setStackTrace(StackTraceElement[] stackTrace) {\r
- _stackTrace = stackTrace;\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonHelperTokenFile};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glFileMakingCallbackName} {\r
-\r
- /**\r
- * Get file-making header information.\r
- * <pre>\r
- * You should return your row resource for file-making.\r
- * It continues invoking until this method returns null.\r
- * </pre>\r
- * @return File-making header information. (Nullable)\r
- */\r
- public ${glFileMakingRowResourceName} getRowResource();\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonHelperTokenFile};\r
-\r
-import java.util.List;\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glFileMakingHeaderInfoName} {\r
-\r
- protected List${database.filterGenericsString('String')} columnNameList = new java.util.ArrayList${database.filterGenericsString('String')}();\r
-\r
- public List${database.filterGenericsString('String')} getColumnNameList() {\r
- return columnNameList;\r
- }\r
-\r
- public void setColumnNameList(List${database.filterGenericsString('String')} columnNameList) {\r
- this.columnNameList = columnNameList;\r
- }\r
-\r
- public boolean isEmpty() {\r
- return this.columnNameList.isEmpty();\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonHelperTokenFile};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glFileMakingOptionName} {\r
-\r
- // =====================================================================================\r
- // Attribute\r
- // =========\r
- /** Encoding. (Required) */\r
- protected String _encoding;\r
-\r
- /** Delimiter. (Required) */\r
- protected String _delimiter;\r
-\r
- /** Line separator. (NotRequired) */\r
- protected String _lineSeparator;\r
-\r
- /** Good bye double quotation. (NotRequired) */\r
- protected boolean _goodByeDoubleQuotation;\r
-\r
- /** File-making header information. (NotRequired) */\r
- protected ${glFileMakingHeaderInfoName} _fileMakingHeaderInfo;\r
-\r
- // =====================================================================================\r
- // Easy-to-Use\r
- // ===========\r
- public ${glFileMakingOptionName} delimitateByComma() {\r
- _delimiter = ",";\r
- return this;\r
- }\r
-\r
- public ${glFileMakingOptionName} delimitateByTab() {\r
- _delimiter = "\t";\r
- return this;\r
- }\r
-\r
- public ${glFileMakingOptionName} encodeAsUTF8() {\r
- _encoding = "UTF-8";\r
- return this;\r
- }\r
-\r
- public ${glFileMakingOptionName} encodeAsWindows31J() {\r
- _encoding = "Windows-31J";\r
- return this;\r
- }\r
-\r
- public ${glFileMakingOptionName} separateCrLf() {\r
- _lineSeparator = "\r\n";\r
- return this;\r
- }\r
-\r
- public ${glFileMakingOptionName} separateLf() {\r
- _lineSeparator = "\n";\r
- return this;\r
- }\r
-\r
- public ${glFileMakingOptionName} goodByeDoubleQuotation() {\r
- _goodByeDoubleQuotation = true;\r
- return this;\r
- }\r
-\r
- // =====================================================================================\r
- // Accessor\r
- // ========\r
- public String getEncoding() {\r
- return _encoding;\r
- }\r
-\r
- public void setEncoding(String encoding) {\r
- _encoding = encoding;\r
- }\r
-\r
- public String getDelimiter() {\r
- return _delimiter;\r
- }\r
-\r
- public void setDelimiter(String delimiter) {\r
- _delimiter = delimiter;\r
- }\r
-\r
- public String getLineSeparator() {\r
- return _lineSeparator;\r
- }\r
-\r
- public void setLineSeparator(String lineSeparator) {\r
- _lineSeparator = lineSeparator;\r
- }\r
-\r
- public boolean isGoodByeDoubleQuotation() {\r
- return _goodByeDoubleQuotation;\r
- }\r
-\r
- public ${glFileMakingHeaderInfoName} getFileMakingHeaderInfo() {\r
- return _fileMakingHeaderInfo;\r
- }\r
-\r
- public void setFileMakingHeaderInfo(${glFileMakingHeaderInfoName} fileMakingHeaderInfo) {\r
- _fileMakingHeaderInfo = fileMakingHeaderInfo;\r
- }\r
-\r
-}
\ No newline at end of file
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonHelperTokenFile};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glFileMakingRowResourceName} {\r
-\r
- // =====================================================================================\r
- // Attribute\r
- // =========\r
- protected java.util.List${database.filterGenericsString('String')} _valueList;\r
-\r
- protected java.util.LinkedHashMap<String, String> _nameValueMap;\r
-\r
- // =====================================================================================\r
- // Accessor\r
- // ========\r
- public java.util.List<String> getValueList() {\r
- return _valueList;\r
- }\r
-\r
- /**\r
- * Set the list of value. {Priority One}\r
- * \r
- * @param valueList The list of value. (NotNull and NotEmpty)\r
- */\r
- public void setValueList(java.util.List${database.filterGenericsString('String')} valueList) {\r
- this._valueList = valueList;\r
- }\r
-\r
- public java.util.LinkedHashMap<String, String> getNameValueMap() {\r
- return _nameValueMap;\r
- }\r
-\r
- /**\r
- * Set the map of name and value. {Priority Two} <br />\r
- * If valueList is set, This nameValueMap is ignored.\r
- * \r
- * @param nameValueMap The map of name and value. (NotNull and NotEmpty)\r
- */\r
- public void setNameValueMap(java.util.LinkedHashMap<String, String> nameValueMap) {\r
- this._nameValueMap = nameValueMap;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonHelperTokenFile};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glFileMakingSimpleFacadeName} {\r
-\r
- /**\r
- * Make token-file from row-list.\r
- * \r
- * @param filename Output target file name. (NotNull)\r
- * @param rowList Row-list composed of value-list. (NotNull)\r
- * @param fileMakingOption File-making option. (NotNull and Required{encoding and delimiter})\r
- * @throws java.io.FileNotFoundException\r
- * @throws java.io.IOException\r
- */\r
- public void makeFromRowList(final String filename, final java.util.List${database.filterGenericsString('java.util.List<String>')} rowList, final ${glFileMakingOptionName} fileMakingOption) throws java.io.FileNotFoundException, java.io.IOException;\r
-\r
- /**\r
- * Make bytes from row-list.\r
- * \r
- * @param rowList Row-list composed of value-list. (NotNull)\r
- * @param fileMakingOption File-making option. (NotNull and Required{encoding and delimiter})\r
- * @return Result byte array. (NotNull)\r
- * @throws java.io.FileNotFoundException\r
- * @throws java.io.IOException\r
- */\r
- public byte[] makeFromRowList(final java.util.List${database.filterGenericsString('java.util.List<String>')} rowList, final ${glFileMakingOptionName} fileMakingOption) throws java.io.FileNotFoundException, java.io.IOException;\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonHelperTokenFile};\r
-\r
-/**\r
- * File-Token.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glFileTokenName} {\r
-\r
- /**\r
- * Tokenize token-file data of a specified file.\r
- * \r
- * @param filename Input target file name. (NotNull)\r
- * @param fileTokenizingCallback File-tokenizing callback. (NotNull)\r
- * @param fileTokenizingOption File-tokenizing option. (NotNull and Required{encoding and delimiter})\r
- * @throws java.io.FileNotFoundException\r
- * @throws java.io.IOException\r
- */\r
- public void tokenize(String filename, ${glFileTokenizingCallbackName} fileTokenizingCallback, ${glFileTokenizingOptionName} fileTokenizingOption) throws java.io.FileNotFoundException, java.io.IOException;\r
-\r
- /**\r
- * Tokenize token-file data of a specified file.\r
- * <pre>\r
- * This method uses java.io.InputStreamReader and java.io.BufferedReader that wrap the argument[inputStream].\r
- * These objects are closed. (Invoking close() at finally)\r
- * </pre>\r
- * @param inputStream Input target stream. (NotNull)\r
- * @param fileTokenizingCallback File-tokenizing callback. (NotNull)\r
- * @param fileTokenizingOption File-tokenizing option. (NotNull and Required{encoding and delimiter})\r
- * @throws java.io.FileNotFoundException\r
- * @throws java.io.IOException\r
- */\r
- public void tokenize(java.io.InputStream inputStream, ${glFileTokenizingCallbackName} fileTokenizingCallback, ${glFileTokenizingOptionName} fileTokenizingOption) throws java.io.FileNotFoundException, java.io.IOException;\r
-\r
- /**\r
- * Make token-file from specified row resources.\r
- * \r
- * @param filename Output target file name. (NotNull)\r
- * @param fileMakingCallback File-making callback. (NotNull)\r
- * @param fileMakingOption File-making option. (NotNull and Required{encoding and delimiter})\r
- * @throws java.io.FileNotFoundException\r
- * @throws java.io.IOException\r
- */\r
- public void make(String filename, ${glFileMakingCallbackName} fileMakingCallback, ${glFileMakingOptionName} fileMakingOption) throws java.io.FileNotFoundException, java.io.IOException;\r
-\r
- /**\r
- * Make token-file from specified row resources.\r
- * <pre>\r
- * This method uses java.io.BufferedOutputStream and java.io.OutputStreamWriter that wrap the argument[outputStream].\r
- * These objects are closed. (Invoking close() at finally)\r
- * </pre>\r
- * @param outputStream Output target stream. (NotNull)\r
- * @param fileMakingCallback File-making callback. (NotNull)\r
- * @param fileMakingOption File-making option. (NotNull and Required{encoding and delimiter})\r
- * @throws java.io.FileNotFoundException\r
- * @throws java.io.IOException\r
- */\r
- public void make(java.io.OutputStream outputStream, ${glFileMakingCallbackName} fileMakingCallback, ${glFileMakingOptionName} fileMakingOption) throws java.io.FileNotFoundException, java.io.IOException;\r
-}
\ No newline at end of file
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonHelperTokenFile};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glFileTokenizingCallbackName} {\r
- public void handleRowResource(${glFileTokenizingRowResourceName} fileTokenizingRowResource);\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonHelperTokenFile};\r
-\r
-import java.util.List;\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glFileTokenizingHeaderInfoName} {\r
-\r
- // =====================================================================================\r
- // Attribute\r
- // =========\r
- protected List${database.filterGenericsString('String')} _columnNameList = new java.util.ArrayList${database.filterGenericsString('String')}();\r
-\r
- // =====================================================================================\r
- // Easy-to-Use\r
- // ===========\r
- protected String _columnNameRowString;\r
-\r
- public boolean isEmpty() {\r
- return this._columnNameList.isEmpty();\r
- }\r
-\r
- // =====================================================================================\r
- // Accessor\r
- // ========\r
- public List${database.filterGenericsString('String')} getColumnNameList() {\r
- return _columnNameList;\r
- }\r
-\r
- public void setColumnNameList(List${database.filterGenericsString('String')} columnNameList) {\r
- this._columnNameList = columnNameList;\r
- }\r
-\r
- public String getColumnNameRowString() {\r
- return _columnNameRowString;\r
- }\r
-\r
- public void setColumnNameRowString(String columnNameRowString) {\r
- _columnNameRowString = columnNameRowString;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonHelperTokenFile};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glFileTokenizingOptionName} {\r
-\r
- // =====================================================================================\r
- // Attribute\r
- // =========\r
- protected String _encoding;\r
-\r
- protected String _delimiter;\r
-\r
- protected boolean _beginFirstLine;\r
-\r
- protected boolean _handleEmptyAsNull;\r
-\r
- // =====================================================================================\r
- // Easy-to-Use\r
- // ===========\r
- public ${glFileTokenizingOptionName} delimitateByComma() {\r
- _delimiter = ",";\r
- return this;\r
- }\r
-\r
- public ${glFileTokenizingOptionName} delimitateByTab() {\r
- _delimiter = "\t";\r
- return this;\r
- }\r
-\r
- public ${glFileTokenizingOptionName} encodeAsUTF8() {\r
- _encoding = "UTF-8";\r
- return this;\r
- }\r
-\r
- public ${glFileTokenizingOptionName} encodeAsWindows31J() {\r
- _encoding = "Windows-31J";\r
- return this;\r
- }\r
-\r
- public ${glFileTokenizingOptionName} beginFirstLine() {\r
- _beginFirstLine = true;\r
- return this;\r
- }\r
-\r
- public ${glFileTokenizingOptionName} handleEmptyAsNull() {\r
- _handleEmptyAsNull = true;\r
- return this;\r
- }\r
-\r
- // =====================================================================================\r
- // Accessor\r
- // ========\r
- public String getDelimiter() {\r
- return _delimiter;\r
- }\r
-\r
- public void setDelimiter(String delimiter) {\r
- _delimiter = delimiter;\r
- }\r
-\r
- public String getEncoding() {\r
- return _encoding;\r
- }\r
-\r
- public void setEncoding(String encoding) {\r
- _encoding = encoding;\r
- }\r
-\r
- public boolean isBeginFirstLine() {\r
- return _beginFirstLine;\r
- }\r
-\r
- public boolean isHandleEmptyAsNull() {\r
- return _handleEmptyAsNull;\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonHelperTokenFile};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glFileTokenizingRowResourceName} {\r
-\r
- // =====================================================================================\r
- // Attribute\r
- // =========\r
- protected ${glFileTokenizingHeaderInfoName} fileTokenizingHeaderInfo;\r
-\r
- protected java.util.List${database.filterGenericsString('String')} valueList;\r
-\r
- protected String rowString;\r
-\r
- /** The row number. */\r
- protected int _rowNumber;\r
-\r
- /** The line number. */\r
- protected int _lineNumber;\r
-\r
- // =====================================================================================\r
- // Accessor\r
- // ========\r
- public ${glFileTokenizingHeaderInfoName} getFileTokenizingHeaderInfo() {\r
- return fileTokenizingHeaderInfo;\r
- }\r
-\r
- public void setFirstLineInfo(${glFileTokenizingHeaderInfoName} fileTokenizingHeaderInfo) {\r
- this.fileTokenizingHeaderInfo = fileTokenizingHeaderInfo;\r
- }\r
-\r
- public java.util.List${database.filterGenericsString('String')} getValueList() {\r
- return valueList;\r
- }\r
-\r
- public void setValueList(java.util.List${database.filterGenericsString('String')} valueList) {\r
- this.valueList = valueList;\r
- }\r
-\r
- public String getRowString() {\r
- return rowString;\r
- }\r
-\r
- public void setRowString(String rowString) {\r
- this.rowString = rowString;\r
- }\r
-\r
- public int getRowNumber() {\r
- return _rowNumber;\r
- }\r
-\r
- public void setRowNumber(int rowNumber) {\r
- _rowNumber = rowNumber;\r
- }\r
-\r
- public int getLineNumber() {\r
- return _lineNumber;\r
- }\r
-\r
- public void setLineNumber(int lineNumber) {\r
- _lineNumber = lineNumber;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonHelperTokenFileImpl};\r
-\r
-import ${glPackageBaseCommonHelperTokenFile}.${glFileTokenName};\r
-\r
-import ${glPackageBaseCommonHelperTokenFile}.${glFileMakingCallbackName};\r
-import ${glPackageBaseCommonHelperTokenFile}.${glFileMakingOptionName};\r
-import ${glPackageBaseCommonHelperTokenFile}.${glFileMakingRowResourceName};\r
-import ${glPackageBaseCommonHelperTokenFile}.${glFileMakingSimpleFacadeName};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glFileMakingSimpleFacadeImplName} implements ${glFileMakingSimpleFacadeName} {\r
-\r
- protected ${glFileTokenName} _fileToken = new ${glFileTokenImplName}();\r
-\r
- public void setFileToken(${glFileTokenName} fileToken) {\r
- this._fileToken = fileToken;\r
- }\r
-\r
- /**\r
- * Make token-file from row-list.\r
- * \r
- * @param filename Output target file name. (NotNull)\r
- * @param rowList Row-list composed of value-list. (NotNull)\r
- * @param fileMakingOption File-making option. (NotNull and Required{encoding and delimiter})\r
- * @throws java.io.FileNotFoundException\r
- * @throws java.io.IOException\r
- */\r
- public void makeFromRowList(final String filename, final java.util.List${database.filterGenericsString('java.util.List<String>')} rowList, final ${glFileMakingOptionName} fileMakingOption) throws java.io.FileNotFoundException, java.io.IOException {\r
- final ${glFileMakingCallbackName} fileMakingCallback = new ${glFileMakingCallbackName}() {\r
- protected int rowCount = 0;\r
- public ${glFileMakingRowResourceName} getRowResource() {\r
- ++rowCount;\r
- if (rowList.size() < rowCount) {\r
- return null;// The End!\r
- }\r
- final java.util.List${database.filterGenericsString('String')} valueList = (java.util.List${database.filterGenericsString('String')})rowList.get(rowCount - 1);\r
- final ${glFileMakingRowResourceName} fileMakingRowResource = new ${glFileMakingRowResourceName}();\r
- fileMakingRowResource.setValueList(valueList);\r
- return fileMakingRowResource;\r
- }\r
- };\r
- _fileToken.make(filename, fileMakingCallback, fileMakingOption);\r
- }\r
-\r
- /**\r
- * Make bytes from row-list.\r
- * \r
- * @param rowList Row-list composed of value-list. (NotNull)\r
- * @param fileMakingOption File-making option. (NotNull and Required{encoding and delimiter})\r
- * @return Result byte array. (NotNull)\r
- * @throws java.io.FileNotFoundException\r
- * @throws java.io.IOException\r
- */\r
- public byte[] makeFromRowList(final java.util.List${database.filterGenericsString('java.util.List<String>')} rowList, final ${glFileMakingOptionName} fileMakingOption) throws java.io.FileNotFoundException, java.io.IOException {\r
- final ${glFileMakingCallbackName} fileMakingCallback = new ${glFileMakingCallbackName}() {\r
- protected int rowCount = 0;\r
- public ${glFileMakingRowResourceName} getRowResource() {\r
- ++rowCount;\r
- if (rowList.size() < rowCount) {\r
- return null;// The End!\r
- }\r
- final java.util.List${database.filterGenericsString('String')} valueList = (java.util.List${database.filterGenericsString('String')})rowList.get(rowCount - 1);\r
- final ${glFileMakingRowResourceName} fileMakingRowResource = new ${glFileMakingRowResourceName}();\r
- fileMakingRowResource.setValueList(valueList);\r
- return fileMakingRowResource;\r
- }\r
- };\r
- final java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream();\r
- _fileToken.make(baos, fileMakingCallback, fileMakingOption);\r
- return baos.toByteArray();\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonHelperTokenFileImpl};\r
-\r
-import java.util.List;\r
-import java.util.ArrayList;\r
-import java.util.Iterator;\r
-\r
-import ${glPackageBaseCommonHelperTokenFile}.${glFileTokenName};\r
-\r
-import ${glPackageBaseCommonHelperTokenFile}.${glFileTokenizingCallbackName};\r
-import ${glPackageBaseCommonHelperTokenFile}.${glFileTokenizingOptionName};\r
-import ${glPackageBaseCommonHelperTokenFile}.${glFileTokenizingRowResourceName};\r
-import ${glPackageBaseCommonHelperTokenFile}.${glFileTokenizingHeaderInfoName};\r
-\r
-import ${glPackageBaseCommonHelperTokenFile}.${glFileMakingCallbackName};\r
-import ${glPackageBaseCommonHelperTokenFile}.${glFileMakingOptionName};\r
-import ${glPackageBaseCommonHelperTokenFile}.${glFileMakingRowResourceName};\r
-import ${glPackageBaseCommonHelperTokenFile}.${glFileMakingHeaderInfoName};\r
-\r
-import ${glPackageBaseCommonHelperTokenLine}.${glLineTokenName};\r
-import ${glPackageBaseCommonHelperTokenLine}.${glLineTokenizingOptionName};\r
-import ${glPackageBaseCommonHelperTokenLine}.${glLineMakingOptionName};\r
-import ${glPackageBaseCommonHelperTokenLineImpl}.${glLineTokenImplName};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glFileTokenImplName} implements ${glFileTokenName} {\r
-\r
- // =====================================================================================\r
- // Attribute\r
- // =========\r
- /** Line-token for help. */\r
- protected final ${glLineTokenName} _lineToken = new ${glLineTokenImplName}();\r
-\r
- // =====================================================================================\r
- // Main\r
- // ====\r
- /**\r
- * Tokenize token-file data of a specified file.\r
- * \r
- * @param filename File name. (NotNull)\r
- * @param fileTokenizingCallback File-tokenizing callback. (NotNull)\r
- * @param fileTokenizingOption File-tokenizing option. (NotNull and Required{encoding and delimiter})\r
- * @throws java.io.FileNotFoundException\r
- * @throws java.io.IOException\r
- */\r
- public void tokenize(String filename, ${glFileTokenizingCallbackName} fileTokenizingCallback, ${glFileTokenizingOptionName} fileTokenizingOption) throws java.io.FileNotFoundException, java.io.IOException {\r
- assertStringNotNullAndNotTrimmedEmpty("filename", filename);\r
-\r
- java.io.FileInputStream fis = null;\r
- try {\r
- fis = new java.io.FileInputStream(filename);\r
- tokenize(fis, fileTokenizingCallback, fileTokenizingOption);\r
- } catch (java.io.FileNotFoundException e) {\r
- throw e;\r
- } catch (java.io.IOException e) {\r
- throw e;\r
- } finally {\r
- try {\r
- if (fis != null) {\r
- fis.close();\r
- }\r
- } catch (java.io.IOException ignored) {\r
- }\r
- }\r
- }\r
-\r
-\r
- /**\r
- * Tokenize token-file data of a specified file.\r
- * <pre>\r
- * This method uses java.io.InputStreamReader and java.io.BufferedReader that wrap the argument[inputStream].\r
- * These objects are closed. (Invoking close() at finally)\r
- * </pre>\r
- * @param inputStream Input target stream. (NotNull)\r
- * @param fileTokenizingCallback File-tokenizing callback. (NotNull)\r
- * @param fileTokenizingOption File-tokenizing option. (NotNull and Required{encoding and delimiter})\r
- * @throws java.io.FileNotFoundException\r
- * @throws java.io.IOException\r
- */\r
- public void tokenize(java.io.InputStream inputStream, ${glFileTokenizingCallbackName} fileTokenizingCallback, ${glFileTokenizingOptionName} fileTokenizingOption) throws java.io.FileNotFoundException, java.io.IOException {\r
- assertObjectNotNull("inputStream", inputStream);\r
- assertObjectNotNull("fileTokenizingCallback", fileTokenizingCallback);\r
- assertObjectNotNull("fileTokenizingOption", fileTokenizingOption);\r
- final String delimiter = fileTokenizingOption.getDelimiter();\r
- final String encoding = fileTokenizingOption.getEncoding();\r
- assertStringNotNullAndNotTrimmedEmpty("encoding", encoding);\r
- assertObjectNotNull("delimiter", delimiter);\r
-\r
- java.io.InputStreamReader ir = null;\r
- java.io.BufferedReader br = null;\r
-\r
- String lineString = null;\r
- String preContinueString = "";\r
- final List${database.filterGenericsString('String')} temporaryValueList = new ArrayList${database.filterGenericsString('String')}();\r
- final List${database.filterGenericsString('String')} filteredValueList = new ArrayList${database.filterGenericsString('String')}();\r
-\r
- try {\r
- ir = new java.io.InputStreamReader(inputStream, encoding);\r
- br = new java.io.BufferedReader(ir);\r
-\r
- ${glFileTokenizingHeaderInfoName} fileTokenizingHeaderInfo = null;\r
- int count = -1;\r
- int rowNumber = 1;\r
- int lineNumber = 0;\r
- while (true) {\r
- ++count;\r
- if ("".equals(preContinueString)) {\r
- lineNumber = count + 1;\r
- }\r
-\r
- lineString = br.readLine();\r
- if (lineString == null) {\r
- break;\r
- }\r
- if (count == 0) {\r
- if (fileTokenizingOption.isBeginFirstLine()) {\r
- fileTokenizingHeaderInfo = new ${glFileTokenizingHeaderInfoName}();// As empty\r
- } else {\r
- fileTokenizingHeaderInfo = analyzeHeaderInfo(delimiter, lineString);\r
- continue;\r
- }\r
- }\r
- final String rowString;\r
- if (preContinueString.equals("")) {\r
- rowString = lineString;\r
- } else {\r
- final String lineSeparator = System.getProperty("line.separator");\r
- rowString = preContinueString + lineSeparator + lineString;\r
- }\r
- final ValueLineInfo valueLineInfo = arrangeValueList(rowString, delimiter);\r
- final List${database.filterGenericsString('String')} ls = valueLineInfo.getValueList();\r
- if (valueLineInfo.isContinueNextLine()) {\r
- preContinueString = (String)ls.remove(ls.size() - 1);\r
- temporaryValueList.addAll(ls);\r
- continue;\r
- }\r
- temporaryValueList.addAll(ls);\r
-\r
- try {\r
- final ${glFileTokenizingRowResourceName} fileTokenizingRowResource = new ${glFileTokenizingRowResourceName}();\r
- fileTokenizingRowResource.setFirstLineInfo(fileTokenizingHeaderInfo);\r
-\r
- if (fileTokenizingOption.isHandleEmptyAsNull()) {\r
- for (final Iterator<String> ite = temporaryValueList.iterator(); ite.hasNext(); ) {\r
- final String value = (String)ite.next();\r
- if ("".equals(value)) {\r
- filteredValueList.add(null);\r
- } else {\r
- filteredValueList.add(value);\r
- }\r
- }\r
- fileTokenizingRowResource.setValueList(filteredValueList);\r
- } else {\r
- fileTokenizingRowResource.setValueList(temporaryValueList);\r
- }\r
-\r
- fileTokenizingRowResource.setRowString(rowString);\r
- fileTokenizingRowResource.setRowNumber(rowNumber);\r
- fileTokenizingRowResource.setLineNumber(lineNumber);\r
- fileTokenizingCallback.handleRowResource(fileTokenizingRowResource);\r
- } finally {\r
- ++rowNumber;\r
- temporaryValueList.clear();\r
- filteredValueList.clear();\r
- preContinueString = "";\r
- }\r
- }\r
- } catch (java.io.FileNotFoundException e) {\r
- throw e;\r
- } catch (java.io.IOException e) {\r
- throw e;\r
- } finally {\r
- try {\r
- if (ir != null) {\r
- ir.close();\r
- }\r
- if (br != null) {\r
- br.close();\r
- }\r
- } catch (java.io.IOException ignored) {\r
- }\r
- }\r
- }\r
-\r
- protected ValueLineInfo arrangeValueList(final String lineString, String delimiter) {\r
- final List${database.filterGenericsString('String')} valueList = new ArrayList${database.filterGenericsString('String')}();\r
-\r
- // Don't use split!\r
- // final String[] values = lineString.split(delimiter);\r
- final ${glLineTokenizingOptionName} tokenizingOption = new ${glLineTokenizingOptionName}();\r
- tokenizingOption.setDelimiter(delimiter);\r
- final List${database.filterGenericsString('String')} list = _lineToken.tokenize(lineString, tokenizingOption);\r
- final String[] values = (String[])list.toArray(new String[list.size()]);\r
- for (int i=0; i < values.length; i++) {\r
- valueList.add(values[i]);\r
- }\r
- return arrangeValueList(valueList, delimiter);\r
- }\r
-\r
- protected ValueLineInfo arrangeValueList(List${database.filterGenericsString('String')} valueList, String delimiter) {\r
- final ValueLineInfo valueLineInfo = new ValueLineInfo();\r
- final ArrayList${database.filterGenericsString('String')} resultList = new ArrayList${database.filterGenericsString('String')}();\r
- String preString = "";\r
- for (int i = 0; i < valueList.size(); i++) {\r
- final String value = (String)valueList.get(i);\r
- if (value == null) {\r
- continue;\r
- }\r
- if (i == valueList.size() - 1) {// The last loop\r
- if (preString.equals("")) {\r
- if (isFrontQOnly(value)) {\r
- valueLineInfo.setContinueNextLine(true);\r
- resultList.add(value);\r
- break;\r
- } else if (isRearQOnly(value)) {\r
- resultList.add(value);\r
- break;\r
- } else if (isNotBothQ(value)) {\r
- resultList.add(value);\r
- break;\r
- } else {\r
- resultList.add(removeDoubleQuotation(value));\r
- break;\r
- }\r
- } else {\r
- if (isFrontQOnly(value)) {\r
- valueLineInfo.setContinueNextLine(true);\r
- resultList.add(connectPreString(preString, delimiter, value));\r
- break;\r
- } else if (isRearQOnly(value)) {\r
- resultList.add(removeDoubleQuotation(connectPreString(preString, delimiter, value)));\r
- break;\r
- } else if (isNotBothQ(value)) {\r
- valueLineInfo.setContinueNextLine(true);\r
- resultList.add(connectPreString(preString, delimiter, value));\r
- break;\r
- } else {\r
- resultList.add(removeDoubleQuotation(connectPreString(preString, delimiter, value)));\r
- break;\r
- }\r
- }\r
- }\r
-\r
- if (preString.equals("")) {\r
- if (isFrontQOnly(value)) {\r
- preString = value;\r
- continue;\r
- } else if (isRearQOnly(value)) {\r
- preString = value;\r
- continue;\r
- } else if (isNotBothQ(value)) {\r
- resultList.add(value);\r
- } else {\r
- resultList.add(removeDoubleQuotation(value));\r
- }\r
- } else {\r
- if (isFrontQOnly(value)) {\r
- preString = connectPreString(preString, delimiter, value);\r
- continue;\r
- } else if (isRearQOnly(value)) {\r
- resultList.add(removeDoubleQuotation(connectPreString(preString, delimiter, value)));\r
- } else if (isNotBothQ(value)) {\r
- preString = connectPreString(preString, delimiter, value);\r
- continue;\r
- } else {\r
- resultList.add(removeDoubleQuotation(connectPreString(preString, delimiter, value)));\r
- }\r
- }\r
- preString = "";\r
- }\r
- valueLineInfo.setValueList(resultList);\r
- return valueLineInfo;\r
- }\r
-\r
- protected String connectPreString(String preString, String delimiter, String value) {\r
- if (preString.equals("")) {\r
- return value;\r
- } else {\r
- return preString + delimiter + value;\r
- }\r
- }\r
-\r
- protected boolean isNotBothQ(final String value) {\r
- return !value.startsWith("\"") && !value.endsWith("\"");\r
- }\r
-\r
- protected boolean isRearQOnly(final String value) {\r
- return !value.startsWith("\"") && value.endsWith("\"");\r
- }\r
-\r
- protected boolean isFrontQOnly(final String value) {\r
- return value.startsWith("\"") && !value.endsWith("\"");\r
- }\r
-\r
- protected String removeDoubleQuotation(String value) {\r
- if (!value.startsWith("\"") && !value.endsWith("\"")) {\r
- return value;\r
- }\r
- if (value.startsWith("\"")) {\r
- value = value.substring(1);\r
- }\r
- if (value.endsWith("\"")) {\r
- value = value.substring(0, value.length() - 1);\r
- }\r
- return value;\r
- }\r
-\r
- protected String removeRightDoubleQuotation(String value) {\r
- if (value.endsWith("\"")) {\r
- value = value.substring(0, value.length() - 1);\r
- }\r
- return value;\r
- }\r
-\r
- protected ${glFileTokenizingHeaderInfoName} analyzeHeaderInfo(String delimiter, final String lineString) {\r
- final java.util.List<String> columnNameList = new ArrayList<String>();\r
- final String[] values = lineString.split(delimiter);\r
- for (int i=0; i < values.length; i++) {\r
- final String value = values[i].trim();// Trimming is Header Only!;\r
- if (value.startsWith("\"") && value.endsWith("\"")) {\r
- columnNameList.add(value.substring(1, value.length() - 1));\r
- } else {\r
- columnNameList.add(value);\r
- }\r
- }\r
- final ${glFileTokenizingHeaderInfoName} fileTokenizingHeaderInfo = new ${glFileTokenizingHeaderInfoName}();\r
- fileTokenizingHeaderInfo.setColumnNameList(columnNameList);\r
- fileTokenizingHeaderInfo.setColumnNameRowString(lineString);\r
- return fileTokenizingHeaderInfo;\r
- }\r
-\r
- public static class ValueLineInfo {\r
- protected java.util.List${database.filterGenericsString('String')} valueList;\r
-\r
- protected boolean continueNextLine;\r
-\r
- public java.util.List${database.filterGenericsString('String')} getValueList() {\r
- return valueList;\r
- }\r
-\r
- public void setValueList(List${database.filterGenericsString('String')} valueList) {\r
- this.valueList = valueList;\r
- }\r
-\r
- public boolean isContinueNextLine() {\r
- return continueNextLine;\r
- }\r
-\r
- public void setContinueNextLine(boolean continueNextLine) {\r
- this.continueNextLine = continueNextLine;\r
- }\r
- }\r
-\r
- /**\r
- * Make token-file from specified row resources.\r
- * \r
- * @param filename File name. (NotNull)\r
- * @param fileMakingCallback File-making callback. (NotNull)\r
- * @param fileMakingOption File-making option. (NotNull and Required{encoding and delimiter})\r
- * @throws java.io.FileNotFoundException\r
- * @throws java.io.IOException\r
- */\r
- public void make(String filename, ${glFileMakingCallbackName} fileMakingCallback, ${glFileMakingOptionName} fileMakingOption) throws java.io.FileNotFoundException, java.io.IOException {\r
- assertStringNotNullAndNotTrimmedEmpty("filename", filename);\r
-\r
- java.io.FileOutputStream fos = null;\r
- try {\r
- fos = new java.io.FileOutputStream(filename);\r
- make(fos, fileMakingCallback, fileMakingOption);\r
- } catch (java.io.FileNotFoundException e) {\r
- throw e;\r
- } catch (java.io.IOException e) {\r
- throw e;\r
- } finally {\r
- if (fos != null) {\r
- fos.close();\r
- }\r
- }\r
- }\r
-\r
- /**\r
- * Make token-file from specified row resources.\r
- * <pre>\r
- * This method uses java.io.BufferedOutputStream and java.io.OutputStreamWriter that wrap the argument[outputStream].\r
- * These objects are closed. (Invoking close() at finally)\r
- * </pre>\r
- * @param outputStream Output target stream. (NotNull)\r
- * @param fileMakingCallback File-making callback. (NotNull)\r
- * @param fileMakingOption File-making option. (NotNull and Required{encoding and delimiter})\r
- * @throws java.io.FileNotFoundException\r
- * @throws java.io.IOException\r
- */\r
- public void make(java.io.OutputStream outputStream, ${glFileMakingCallbackName} fileMakingCallback, ${glFileMakingOptionName} fileMakingOption) throws java.io.FileNotFoundException, java.io.IOException {\r
- assertObjectNotNull("outputStream", outputStream);\r
- assertObjectNotNull("fileMakingCallback", fileMakingCallback);\r
- assertObjectNotNull("fileMakingOption", fileMakingOption);\r
- final String encoding = fileMakingOption.getEncoding();\r
- final String delimiter = fileMakingOption.getDelimiter();\r
- assertStringNotNullAndNotTrimmedEmpty("encoding", encoding);\r
- assertObjectNotNull("delimiter", delimiter);\r
- final String lineSeparator;\r
- if (fileMakingOption.getLineSeparator() != null && !fileMakingOption.getLineSeparator().equals("")) {\r
- lineSeparator = fileMakingOption.getLineSeparator();\r
- } else {\r
- lineSeparator = System.getProperty("line.separator");// Default!\r
- }\r
-\r
- java.io.BufferedOutputStream bos = null;\r
- java.io.Writer writer = null;\r
- try {\r
- bos = new java.io.BufferedOutputStream(outputStream);\r
- writer = new java.io.OutputStreamWriter(bos, encoding);\r
-\r
- boolean headerDone = false;\r
-\r
- // Make header.\r
- final ${glFileMakingHeaderInfoName} fileMakingHeaderInfo = fileMakingOption.getFileMakingHeaderInfo();\r
- if (fileMakingHeaderInfo != null) {\r
- final List<String> columnNameList = fileMakingHeaderInfo.getColumnNameList();\r
- if (columnNameList != null && !columnNameList.isEmpty()) {\r
- final ${glLineMakingOptionName} lineMakingOption = new ${glLineMakingOptionName}();\r
- lineMakingOption.setDelimiter(delimiter);\r
- lineMakingOption.trimSpace();// Trimming is Header Only!\r
- final String columnHeaderString = _lineToken.make(columnNameList, lineMakingOption);\r
- writer.write(columnHeaderString + lineSeparator);\r
- headerDone = true;\r
- }\r
- }\r
-\r
- // Make row.\r
- ${glFileMakingRowResourceName} rowResource = null;\r
- while (true) {\r
- rowResource = fileMakingCallback.getRowResource();\r
- if (rowResource == null) {\r
- break;// The End!\r
- }\r
- final java.util.List<String> valueList;\r
- if (rowResource.getValueList() != null) {\r
- valueList = rowResource.getValueList();\r
- } else {\r
- final java.util.LinkedHashMap<String, String> nameValueMap = rowResource.getNameValueMap();\r
- if (!headerDone) {\r
- final java.util.List<String> columnNameList = new java.util.ArrayList<String>(nameValueMap.keySet());\r
- final ${glLineMakingOptionName} lineMakingOption = new ${glLineMakingOptionName}();\r
- lineMakingOption.setDelimiter(delimiter);\r
- lineMakingOption.trimSpace();// Trimming is Header Only!\r
- final String columnHeaderString = _lineToken.make(columnNameList, lineMakingOption);\r
- writer.write(columnHeaderString + lineSeparator);\r
- headerDone = true;\r
- }\r
- valueList = new ArrayList<String>(nameValueMap.values());\r
- }\r
- final ${glLineMakingOptionName} lineMakingOption = new ${glLineMakingOptionName}();\r
- lineMakingOption.setDelimiter(delimiter);\r
- if (!fileMakingOption.isGoodByeDoubleQuotation()) {\r
- lineMakingOption.quoteByDoubleQuotation();\r
- }\r
- final String lineString = _lineToken.make(valueList, lineMakingOption);\r
- writer.write(lineString + lineSeparator);\r
- }\r
- writer.flush();\r
- } catch (java.io.FileNotFoundException e) {\r
- throw e;\r
- } catch (java.io.IOException e) {\r
- throw e;\r
- } finally {\r
- if (bos != null) {\r
- bos.close();\r
- }\r
- if (writer != null) {\r
- writer.close();\r
- }\r
- }\r
- }\r
-\r
- // ----------------------------------------------------------------\r
- // Assert Object\r
- // -------------\r
- /**\r
- * Assert that the object is not null.\r
- * \r
- * @param variableName Variable name. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @exception IllegalArgumentException\r
- */\r
- protected void assertObjectNotNull(String variableName, Object value) {\r
- if (variableName == null) {\r
- String msg = "The value should not be null: variableName=" + variableName + " value=" + value;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (value == null) {\r
- String msg = "The value should not be null: variableName=" + variableName;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-\r
- // ----------------------------------------------------------------\r
- // Assert String\r
- // -------------\r
- /**\r
- * Assert that the entity is not null and not trimmed empty.\r
- * \r
- * @param variableName Variable name. (NotNull)\r
- * @param value Value. (NotNull)\r
- */\r
- protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, String value) {\r
- assertObjectNotNull("variableName", variableName);\r
- assertObjectNotNull(variableName, value);\r
- if (value.trim().length() ==0) {\r
- String msg = "The value should not be empty: variableName=" + variableName + " value=" + value;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonHelperTokenLine};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glLineMakingOptionName} {\r
-\r
- protected String _delimiter;\r
-\r
- protected boolean _quoteByDoubleQuotation;\r
-\r
- protected boolean _trimSpace;\r
-\r
- public ${glLineMakingOptionName} delimitateByComma() {\r
- _delimiter = ",";\r
- return this;\r
- }\r
-\r
- public ${glLineMakingOptionName} delimitateByTab() {\r
- _delimiter = "\t";\r
- return this;\r
- }\r
-\r
- public String getDelimiter() {\r
- return _delimiter;\r
- }\r
-\r
- public void setDelimiter(String delimiter) {\r
- _delimiter = delimiter;\r
- }\r
-\r
- public ${glLineMakingOptionName} quoteByDoubleQuotation() {\r
- _quoteByDoubleQuotation = true;\r
- return this;\r
- }\r
-\r
- public boolean isQuoteByDoubleQuotation() {\r
- return _quoteByDoubleQuotation;\r
- }\r
-\r
- public ${glLineMakingOptionName} trimSpace() {\r
- _trimSpace = true;\r
- return this;\r
- }\r
-\r
- public boolean isTrimSpace() {\r
- return _trimSpace;\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonHelperTokenLine};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glLineTokenName} {\r
-\r
- public java.util.List${database.filterGenericsString('String')} tokenize(String lineString, ${glLineTokenizingOptionName} lineTokenizingOption);\r
-\r
- public String make(java.util.List${database.filterGenericsString('String')} valueList, ${glLineMakingOptionName} lineMakingOption);\r
-}
\ No newline at end of file
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonHelperTokenLine};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glLineTokenizingOptionName} {\r
-\r
- // =====================================================================================\r
- // Attribute\r
- // =========\r
- protected String _delimiter;\r
-\r
- protected boolean _trimDoubleQuotation;\r
-\r
- protected boolean _handleEmtpyAsNull;\r
-\r
- // =====================================================================================\r
- // Easy-to-Use\r
- // ===========\r
- public ${glLineTokenizingOptionName} delimitateByComma() {\r
- _delimiter = ",";\r
- return this;\r
- }\r
-\r
- public ${glLineTokenizingOptionName} delimitateByTab() {\r
- _delimiter = "\t";\r
- return this;\r
- }\r
-\r
- public ${glLineTokenizingOptionName} trimDoubleQuotation() {\r
- _trimDoubleQuotation = true;\r
- return this;\r
- }\r
-\r
- public ${glLineTokenizingOptionName} handleEmtpyAsNull() {\r
- _handleEmtpyAsNull = true;\r
- return this;\r
- }\r
-\r
- // =====================================================================================\r
- // Accessor\r
- // ========\r
- public String getDelimiter() {\r
- return _delimiter;\r
- }\r
-\r
- public void setDelimiter(String delimiter) {\r
- _delimiter = delimiter;\r
- }\r
-\r
- public boolean isTrimDoubleQuotation() {\r
- return _trimDoubleQuotation;\r
- }\r
-\r
- public boolean isHandleEmtpyAsNull() {\r
- return _handleEmtpyAsNull;\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonHelperTokenLineImpl};\r
-\r
-import java.util.List;\r
-import java.util.ArrayList;\r
-import java.util.Iterator;\r
-\r
-import ${glPackageBaseCommonHelperTokenLine}.${glLineTokenName};\r
-import ${glPackageBaseCommonHelperTokenLine}.${glLineTokenizingOptionName};\r
-import ${glPackageBaseCommonHelperTokenLine}.${glLineMakingOptionName};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glLineTokenImplName} implements ${glLineTokenName} {\r
-\r
- public List<String> tokenize(String lineString, ${glLineTokenizingOptionName} lineTokenizingOption) {\r
- final String delimiter = lineTokenizingOption.getDelimiter();\r
- final List<String> list = new ArrayList<String>();\r
- int i = 0;\r
- int j = lineString.indexOf(delimiter);\r
- for (int h = 0; j >= 0; h++) {\r
- final String pureValue = lineString.substring(i, j);\r
- if (lineTokenizingOption.isTrimDoubleQuotation()) {\r
- final String before = pureValue;\r
- if (before.length() > 1 && before.startsWith("\"") && before.endsWith("\"")) {\r
- final String after = before.substring(1, before.length() - 1);\r
- list.add(filterHandlingEmptyAsNull(after, lineTokenizingOption));\r
- } else {\r
- list.add(filterHandlingEmptyAsNull(before, lineTokenizingOption));\r
- }\r
- } else {\r
- list.add(filterHandlingEmptyAsNull(pureValue, lineTokenizingOption));\r
- }\r
- i = j + 1;\r
- j = lineString.indexOf(delimiter, i);\r
- }\r
- list.add(filterHandlingEmptyAsNull(lineString.substring(i), lineTokenizingOption));\r
- return list;\r
- }\r
-\r
- protected String filterHandlingEmptyAsNull(String target, ${glLineTokenizingOptionName} lineTokenizingOption) {\r
- if (target == null) {\r
- return null;\r
- }\r
- if (lineTokenizingOption.isHandleEmtpyAsNull() && "".equals(target)) {\r
- return null;\r
- }\r
- return target;\r
- }\r
-\r
- public String make(java.util.List<String> valueList, ${glLineMakingOptionName} lineMakingOption) {\r
- assertObjectNotNull("valueList", valueList);\r
- assertObjectNotNull("lineMakingOption", lineMakingOption);\r
- final String delimiter = lineMakingOption.getDelimiter();\r
- assertObjectNotNull("lineMakingOption.getDelimiter()", delimiter);\r
- return createLineString(valueList, delimiter, lineMakingOption.isQuoteByDoubleQuotation(), lineMakingOption.isTrimSpace());\r
- }\r
-\r
- protected String createLineString(List<String> valueList, String delimiter, boolean quoteByDoubleQuotation, boolean trimSpace) {\r
- final StringBuffer sb = new StringBuffer();\r
- for (final Iterator<String> ite = valueList.iterator(); ite.hasNext(); ) {\r
- String value = (String)ite.next();\r
- value = (value != null ? value : "");\r
- if (trimSpace) {\r
- value = value.trim();\r
- }\r
- if (quoteByDoubleQuotation) {\r
- sb.append(delimiter).append("\"").append(value).append("\"");\r
- } else {\r
- sb.append(delimiter).append(value);\r
- }\r
- }\r
- sb.delete(0, delimiter.length());\r
- return sb.toString();\r
- }\r
-\r
- // ----------------------------------------------------------------\r
- // Assert Object\r
- // -------------\r
- /**\r
- * Assert that the object is not null.\r
- * \r
- * @param variableName Variable name. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @exception IllegalArgumentException\r
- */\r
- protected void assertObjectNotNull(String variableName, Object value) {\r
- if (variableName == null) {\r
- String msg = "The value should not be null: variableName=" + variableName + " value=" + value;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (value == null) {\r
- String msg = "The value should not be null: variableName=" + variableName;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-\r
- // ----------------------------------------------------------------\r
- // Assert String\r
- // -------------\r
- /**\r
- * Assert that the entity is not null and not trimmed empty.\r
- * \r
- * @param variableName Variable name. (NotNull)\r
- * @param value Value. (NotNull)\r
- */\r
- protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, String value) {\r
- assertObjectNotNull("variableName", variableName);\r
- assertObjectNotNull(variableName, value);\r
- if (value.trim().length() ==0) {\r
- String msg = "The value should not be empty: variableName=" + variableName + " value=" + value;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonJdbc};\r
-\r
-/**\r
- * The interface of statement history witness.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glCursorHandlerName} {\r
-\r
- /**\r
- * @param resultSet Result set. (NotNull)\r
- * @return Result\r
- * @throws java.sql.SQLException\r
- */\r
- Object handle(java.sql.ResultSet resultSet) throws java.sql.SQLException;\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonJdbc};\r
-\r
-/**\r
- * The provider of latest SQL.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${glLatestSqlProviderName} {\r
-\r
- /**\r
- * Get display SQL.\r
- * @return Display SQL. (Nullable: If it was not found, returns null.)\r
- */\r
- public String getDisplaySql();\r
- \r
- /**\r
- * Clear the cache of SQL.\r
- */\r
- public void clearSqlCache();\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonJdbc};\r
-\r
-import java.sql.ResultSet;\r
-\r
-/**\r
- * The config of statement.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glStatementConfig} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- // -----------------------------------------------------\r
- // ResultSet TYPE\r
- // --------------\r
- protected Integer _resultSetType;\r
- \r
- // -----------------------------------------------------\r
- // Statement Option\r
- // ----------------\r
- protected Integer _queryTimeout;\r
- protected Integer _fetchSize;\r
- protected Integer _maxRows;\r
- \r
- // ===================================================================================\r
- // Setting Interface\r
- // =================\r
- // -----------------------------------------------------\r
- // ResultSet TYPE\r
- // --------------\r
- public ${glStatementConfig} typeForwardOnly() {\r
- _resultSetType = ResultSet.TYPE_FORWARD_ONLY;\r
- return this;\r
- }\r
- \r
- public ${glStatementConfig} typeScrollInsensitive() {\r
- _resultSetType = ResultSet.TYPE_SCROLL_INSENSITIVE;\r
- return this;\r
- }\r
- \r
- public ${glStatementConfig} typeScrollSensitive() {\r
- _resultSetType = ResultSet.TYPE_SCROLL_SENSITIVE;\r
- return this;\r
- }\r
- \r
- // -----------------------------------------------------\r
- // Statement Option\r
- // ----------------\r
- public ${glStatementConfig} queryTimeout(int queryTimeout) {\r
- this._queryTimeout = queryTimeout;\r
- return this;\r
- }\r
- \r
- public ${glStatementConfig} fetchSize(int fetchSize) {\r
- this._fetchSize = fetchSize;\r
- return this;\r
- }\r
- \r
- public ${glStatementConfig} maxRows(int maxRows) {\r
- this._maxRows = maxRows;\r
- return this;\r
- }\r
- \r
- // ===================================================================================\r
- // Determination\r
- // =============\r
- // -----------------------------------------------------\r
- // ResultSet TYPE\r
- // --------------\r
- public boolean hasResultSetType() {\r
- return _resultSetType != null;\r
- }\r
- \r
- // -----------------------------------------------------\r
- // Statement Option\r
- // ----------------\r
- public boolean hasStatementOptions() {\r
- return hasQueryTimeout() || hasFetchSize() || hasMaxRows();\r
- }\r
- \r
- public boolean hasQueryTimeout() {\r
- return _queryTimeout != null;\r
- }\r
- \r
- public boolean hasFetchSize() {\r
- return _fetchSize != null;\r
- }\r
- \r
- public boolean hasMaxRows() {\r
- return _maxRows != null;\r
- }\r
- \r
- // ===================================================================================\r
- // Basic Override\r
- // ==============\r
- @Override\r
- public String toString() {\r
- return "{" + _resultSetType + ", " + _queryTimeout + ", " + _fetchSize + ", " + _maxRows + "}";\r
- }\r
- \r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- // -----------------------------------------------------\r
- // ResultSet TYPE\r
- // --------------\r
- public Integer getResultSetType() {\r
- return _resultSetType;\r
- }\r
- \r
- // -----------------------------------------------------\r
- // Statement Option\r
- // ----------------\r
- public Integer getQueryTimeout() {\r
- return _queryTimeout;\r
- }\r
- \r
- public Integer getFetchSize() {\r
- return _fetchSize;\r
- }\r
- \r
- public Integer getMaxRows() {\r
- return _maxRows;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonJdbcHistory};\r
-\r
-/**\r
- * The bean of prepared execution.\r
- * \r
- * @author ${database.ClassAuthor}\r
- * @deprecated Please use SqlLogRegistry\r
- */\r
-public class ${glPreparedExecutionBeanName} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected java.util.List<${glPreparedParameterElementName}> preparedParameterElementList = new java.util.ArrayList<${glPreparedParameterElementName}>();\r
-\r
- protected String displaySql;\r
-\r
- // ===================================================================================\r
- // Easy-to-Use\r
- // ===========\r
- public void addParameterElement(${glPreparedParameterElementName} parameterElement) {\r
- this.preparedParameterElementList.add(parameterElement);\r
- }\r
-\r
- public boolean isEmpty() {\r
- return preparedParameterElementList.isEmpty();\r
- }\r
-\r
- public int size() {\r
- return preparedParameterElementList.size();\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public java.util.List<${glPreparedParameterElementName}> getPreparedParameterElementList() {\r
- return preparedParameterElementList;\r
- }\r
-\r
- public String getDisplaySql() {\r
- return displaySql;\r
- }\r
-\r
- public void setDisplaySql(String displaySql) {\r
- this.displaySql = displaySql;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonJdbcHistory};\r
-\r
-/**\r
- * The element of prepared parameters.\r
- * \r
- * @author ${database.ClassAuthor}\r
- * @deprecated Please use SqlLogRegistry\r
- */\r
-public class ${glPreparedParameterElementName} {\r
-\r
- // =====================================================================================\r
- // Attribute\r
- // =========\r
- protected int settingIndex;\r
-\r
- /** JDBC type. (java.sql.Types) */\r
- protected int jdbcType;\r
-\r
- protected Object parameterValue;\r
-\r
- // =====================================================================================\r
- // Accessor\r
- // ========\r
- public int getSettingIndex() {\r
- return settingIndex;\r
- }\r
-\r
- public void setSettingIndex(int settingIndex) {\r
- this.settingIndex = settingIndex;\r
- }\r
-\r
- public int getJdbcType() {\r
- return jdbcType;\r
- }\r
-\r
- public void setJdbcType(int jdbcType) {\r
- this.jdbcType = jdbcType;\r
- }\r
-\r
- public Object getParameterValue() {\r
- return parameterValue;\r
- }\r
-\r
- public void setParameterValue(Object parameterValue) {\r
- this.parameterValue = parameterValue;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonJdbcHistory};\r
-\r
-/**\r
- * The history of statement.\r
- * \r
- * @author ${database.ClassAuthor}\r
- * @deprecated Please use SqlLogRegistry\r
- */\r
-public class ${glStatementHistoryName} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected java.util.List<${glPreparedExecutionBeanName}> preparedExecutionBeanList = new java.util.ArrayList<${glPreparedExecutionBeanName}>();\r
-\r
- // ===================================================================================\r
- // Easy-to-Use\r
- // ===========\r
- public void addExecutionBean(${glPreparedExecutionBeanName} parameterBean) {\r
- this.preparedExecutionBeanList.add(parameterBean);\r
- }\r
-\r
- public ${glPreparedExecutionBeanName} current() {\r
- if (preparedExecutionBeanList.isEmpty()) {\r
- preparedExecutionBeanList.add(new ${glPreparedExecutionBeanName}());\r
- }\r
- return preparedExecutionBeanList.get(preparedExecutionBeanList.size() - 1);\r
- }\r
-\r
- public ${glPreparedExecutionBeanName} next() {\r
- preparedExecutionBeanList.add(new ${glPreparedExecutionBeanName}());\r
- return current();\r
- }\r
-\r
- public ${glPreparedExecutionBeanName} removeLast() {\r
- return preparedExecutionBeanList.remove(preparedExecutionBeanList.size() - 1);\r
- }\r
-\r
- public int size() {\r
- return preparedExecutionBeanList.size();\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public java.util.List<${glPreparedExecutionBeanName}> getPreparedExecutionBeanList() {\r
- return preparedExecutionBeanList;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonJdbcHistory};\r
-\r
-/**\r
- * The interface of statement history witness.\r
- * \r
- * @author ${database.ClassAuthor}\r
- * @deprecated Please use SqlLogRegistry\r
- */\r
-public interface ${glStatementHistoryWitnessName} {\r
-\r
- /**\r
- * Witness the history.\r
- * \r
- * @param statementHistory Statement history. (NotNull)\r
- */\r
- public void witnessTheHistory(${glStatementHistoryName} statementHistory);\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonJdbcHistory};\r
-\r
-import java.io.InputStream;\r
-import java.io.Reader;\r
-import java.math.BigDecimal;\r
-import java.net.URL;\r
-import java.sql.Array;\r
-import java.sql.Blob;\r
-import java.sql.Clob;\r
-import java.sql.Connection;\r
-import java.sql.Date;\r
-import java.sql.ParameterMetaData;\r
-import java.sql.PreparedStatement;\r
-import java.sql.Ref;\r
-import java.sql.ResultSet;\r
-import java.sql.ResultSetMetaData;\r
-import java.sql.SQLException;\r
-import java.sql.SQLWarning;\r
-import java.sql.Time;\r
-import java.sql.Timestamp;\r
-import java.sql.Types;\r
-import java.text.SimpleDateFormat;\r
-import java.util.Calendar;\r
-\r
-/**\r
- * The implementation of prepared statement as traceable prepared statement.\r
- * \r
- * @author ${database.ClassAuthor}\r
- * @deprecated Please use SqlLogRegistry\r
- */\r
-public class ${glTraceablePreparedStatementName} implements PreparedStatement {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected PreparedStatement _preparedStatement;\r
-\r
- protected String _preparedSql;\r
-\r
- protected ${glStatementHistoryName} _statementHistory = new ${glStatementHistoryName}();\r
-\r
- protected ${glStatementHistoryWitnessName} _statementHistoryWitness;\r
-\r
- protected boolean _movingNextBatchPoint;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- /**\r
- * Constructor.\r
- * \r
- * @param preparedStatement Wrap target prepared statement. (NotNull)\r
- * @param preparedSql Prepared sql. (NotNull)\r
- * @param statementHistoryWitness Statement history witness. (NotNull)\r
- */\r
- public ${glTraceablePreparedStatementName}(PreparedStatement preparedStatement, String preparedSql, ${glStatementHistoryWitnessName} statementHistoryWitness) {\r
- this._preparedStatement = preparedStatement;\r
- this._preparedSql = preparedSql;\r
- this._statementHistoryWitness = statementHistoryWitness;\r
- }\r
-\r
- // ===================================================================================\r
- // Delegate\r
- // ========\r
- // -----------------------------------------------------\r
- // Add-Batch\r
- // ---------\r
- public void addBatch() throws SQLException {\r
- moveNextBatchPoint();\r
- _preparedStatement.addBatch();\r
- }\r
-\r
- public void addBatch(String sql) throws SQLException {\r
- _preparedStatement.addBatch(sql);\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Cancel\r
- // ------\r
- public void cancel() throws SQLException {\r
- _preparedStatement.cancel();\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Clear\r
- // -----\r
- public void clearBatch() throws SQLException {\r
- _preparedStatement.clearBatch();\r
- }\r
-\r
- public void clearParameters() throws SQLException {\r
- _preparedStatement.clearParameters();\r
- }\r
-\r
- public void clearWarnings() throws SQLException {\r
- _preparedStatement.clearWarnings();\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Close\r
- // -----\r
- public void close() throws SQLException {\r
- _preparedStatement.close();\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Execute\r
- // -------\r
- public boolean execute() throws SQLException {\r
- traceSql(_preparedSql);\r
- return _preparedStatement.execute();\r
- }\r
-\r
- public boolean execute(String sql, int autoGeneratedKeys) throws SQLException {\r
- traceSql(sql);\r
- return _preparedStatement.execute(sql, autoGeneratedKeys);\r
- }\r
-\r
- public boolean execute(String sql, int[] columnIndexes) throws SQLException {\r
- traceSql(sql);\r
- return _preparedStatement.execute(sql, columnIndexes);\r
- }\r
-\r
- public boolean execute(String sql, String[] columnNames) throws SQLException {\r
- traceSql(sql);\r
- return _preparedStatement.execute(sql, columnNames);\r
- }\r
-\r
- public boolean execute(String sql) throws SQLException {\r
- traceSql(sql);\r
- return _preparedStatement.execute(sql);\r
- }\r
-\r
- public int[] executeBatch() throws SQLException {\r
- traceSql(_preparedSql);\r
- return _preparedStatement.executeBatch();\r
- }\r
-\r
- public ResultSet executeQuery() throws SQLException {\r
- traceSql(_preparedSql);\r
- return _preparedStatement.executeQuery();\r
- }\r
-\r
- public ResultSet executeQuery(String sql) throws SQLException {\r
- traceSql(sql);\r
- return _preparedStatement.executeQuery(sql);\r
- }\r
-\r
- public int executeUpdate() throws SQLException {\r
- traceSql(_preparedSql);\r
- return _preparedStatement.executeUpdate();\r
- }\r
-\r
- public int executeUpdate(String sql, int autoGeneratedKeys) throws SQLException {\r
- traceSql(sql);\r
- return _preparedStatement.executeUpdate(sql, autoGeneratedKeys);\r
- }\r
-\r
- public int executeUpdate(String sql, int[] columnIndexes) throws SQLException {\r
- traceSql(sql);\r
- return _preparedStatement.executeUpdate(sql, columnIndexes);\r
- }\r
-\r
- public int executeUpdate(String sql, String[] columnNames) throws SQLException {\r
- traceSql(sql);\r
- return _preparedStatement.executeUpdate(sql, columnNames);\r
- }\r
-\r
- public int executeUpdate(String sql) throws SQLException {\r
- traceSql(sql);\r
- return _preparedStatement.executeUpdate(sql);\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Other\r
- // -----\r
- public Connection getConnection() throws SQLException {\r
- return _preparedStatement.getConnection();\r
- }\r
-\r
- public int getFetchDirection() throws SQLException {\r
- return _preparedStatement.getFetchDirection();\r
- }\r
-\r
- public int getFetchSize() throws SQLException {\r
- return _preparedStatement.getFetchSize();\r
- }\r
-\r
- public ResultSet getGeneratedKeys() throws SQLException {\r
- return _preparedStatement.getGeneratedKeys();\r
- }\r
-\r
- public int getMaxFieldSize() throws SQLException {\r
- return _preparedStatement.getMaxFieldSize();\r
- }\r
-\r
- public int getMaxRows() throws SQLException {\r
- return _preparedStatement.getMaxRows();\r
- }\r
-\r
- public ResultSetMetaData getMetaData() throws SQLException {\r
- return _preparedStatement.getMetaData();\r
- }\r
-\r
- public boolean getMoreResults() throws SQLException {\r
- return _preparedStatement.getMoreResults();\r
- }\r
-\r
- public boolean getMoreResults(int current) throws SQLException {\r
- return _preparedStatement.getMoreResults(current);\r
- }\r
-\r
- public ParameterMetaData getParameterMetaData() throws SQLException {\r
- return _preparedStatement.getParameterMetaData();\r
- }\r
-\r
- public int getQueryTimeout() throws SQLException {\r
- return _preparedStatement.getQueryTimeout();\r
- }\r
-\r
- public ResultSet getResultSet() throws SQLException {\r
- return _preparedStatement.getResultSet();\r
- }\r
-\r
- public int getResultSetConcurrency() throws SQLException {\r
- return _preparedStatement.getResultSetConcurrency();\r
- }\r
-\r
- public int getResultSetHoldability() throws SQLException {\r
- return _preparedStatement.getResultSetHoldability();\r
- }\r
-\r
- public int getResultSetType() throws SQLException {\r
- return _preparedStatement.getResultSetType();\r
- }\r
-\r
- public int getUpdateCount() throws SQLException {\r
- return _preparedStatement.getUpdateCount();\r
- }\r
-\r
- public SQLWarning getWarnings() throws SQLException {\r
- return _preparedStatement.getWarnings();\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Setting Parameter\r
- // -----------------\r
- public void setArray(int parameterIndex, Array x) throws SQLException {\r
- registerPreparedParameter(parameterIndex, Types.ARRAY, x);\r
- _preparedStatement.setArray(parameterIndex, x);\r
- }\r
-\r
- public void setAsciiStream(int parameterIndex, InputStream x, int length) throws SQLException {\r
- _preparedStatement.setAsciiStream(parameterIndex, x, length);\r
- }\r
-\r
- public void setBigDecimal(int parameterIndex, BigDecimal x) throws SQLException {\r
- registerPreparedParameter(parameterIndex, Types.DECIMAL, x);\r
- _preparedStatement.setBigDecimal(parameterIndex, x);\r
- }\r
-\r
- public void setBinaryStream(int parameterIndex, InputStream x, int length) throws SQLException {\r
- _preparedStatement.setBinaryStream(parameterIndex, x, length);\r
- }\r
-\r
- public void setBlob(int i, Blob x) throws SQLException {\r
- registerPreparedParameter(i, Types.BLOB, x);\r
- _preparedStatement.setBlob(i, x);\r
- }\r
-\r
- public void setBoolean(int parameterIndex, boolean x) throws SQLException {\r
- registerPreparedParameter(parameterIndex, Types.BOOLEAN, x);\r
- _preparedStatement.setBoolean(parameterIndex, x);\r
- }\r
-\r
- public void setByte(int parameterIndex, byte x) throws SQLException {\r
- _preparedStatement.setByte(parameterIndex, x);\r
- }\r
-\r
- public void setBytes(int parameterIndex, byte[] x) throws SQLException {\r
- _preparedStatement.setBytes(parameterIndex, x);\r
- }\r
-\r
- public void setCharacterStream(int parameterIndex, Reader reader, int length) throws SQLException {\r
- // *Out of target about registering prepared parameter.\r
- _preparedStatement.setCharacterStream(parameterIndex, reader, length);\r
- }\r
-\r
- public void setClob(int i, Clob x) throws SQLException {\r
- registerPreparedParameter(i, Types.CLOB, x);\r
- _preparedStatement.setClob(i, x);\r
- }\r
-\r
- public void setCursorName(String name) throws SQLException {\r
- _preparedStatement.setCursorName(name);\r
- }\r
-\r
- public void setDate(int parameterIndex, Date x, Calendar cal) throws SQLException {\r
- registerPreparedParameter(parameterIndex, Types.DATE, x);\r
- _preparedStatement.setDate(parameterIndex, x, cal);\r
- }\r
-\r
- public void setDate(int parameterIndex, Date x) throws SQLException {\r
- registerPreparedParameter(parameterIndex, Types.DATE, x);\r
- _preparedStatement.setDate(parameterIndex, x);\r
- }\r
-\r
- public void setDouble(int parameterIndex, double x) throws SQLException {\r
- registerPreparedParameter(parameterIndex, Types.DOUBLE, x);\r
- _preparedStatement.setDouble(parameterIndex, x);\r
- }\r
-\r
- public void setEscapeProcessing(boolean enable) throws SQLException {\r
- _preparedStatement.setEscapeProcessing(enable);\r
- }\r
-\r
- public void setFetchDirection(int direction) throws SQLException {\r
- _preparedStatement.setFetchDirection(direction);\r
- }\r
-\r
- public void setFetchSize(int rows) throws SQLException {\r
- _preparedStatement.setFetchSize(rows);\r
- }\r
-\r
- public void setFloat(int parameterIndex, float x) throws SQLException {\r
- registerPreparedParameter(parameterIndex, Types.FLOAT, x);\r
- _preparedStatement.setFloat(parameterIndex, x);\r
- }\r
-\r
- public void setInt(int parameterIndex, int x) throws SQLException {\r
- registerPreparedParameter(parameterIndex, Types.INTEGER, x);\r
- _preparedStatement.setInt(parameterIndex, x);\r
- }\r
-\r
- public void setLong(int parameterIndex, long x) throws SQLException {\r
- registerPreparedParameter(parameterIndex, Types.LONGVARCHAR, x);\r
- _preparedStatement.setLong(parameterIndex, x);\r
- }\r
-\r
- public void setMaxFieldSize(int max) throws SQLException {\r
- _preparedStatement.setMaxFieldSize(max);\r
- }\r
-\r
- public void setMaxRows(int max) throws SQLException {\r
- _preparedStatement.setMaxRows(max);\r
- }\r
-\r
- public void setNull(int paramIndex, int sqlType, String typeName) throws SQLException {\r
- registerPreparedParameter(paramIndex, Types.NULL, null);\r
- _preparedStatement.setNull(paramIndex, sqlType, typeName);\r
- }\r
-\r
- public void setNull(int parameterIndex, int sqlType) throws SQLException {\r
- registerPreparedParameter(parameterIndex, Types.NULL, null);\r
- _preparedStatement.setNull(parameterIndex, sqlType);\r
- }\r
-\r
- public void setObject(int parameterIndex, Object x, int targetSqlType, int scale) throws SQLException {\r
- registerPreparedParameter(parameterIndex, Types.OTHER, x);\r
- _preparedStatement.setObject(parameterIndex, x, targetSqlType, scale);\r
- }\r
-\r
- public void setObject(int parameterIndex, Object x, int targetSqlType) throws SQLException {\r
- registerPreparedParameter(parameterIndex, Types.OTHER, x);\r
- _preparedStatement.setObject(parameterIndex, x, targetSqlType);\r
- }\r
-\r
- public void setObject(int parameterIndex, Object x) throws SQLException {\r
- registerPreparedParameter(parameterIndex, Types.OTHER, x);\r
- _preparedStatement.setObject(parameterIndex, x);\r
- }\r
-\r
- public void setQueryTimeout(int seconds) throws SQLException {\r
- _preparedStatement.setQueryTimeout(seconds);\r
- }\r
-\r
- public void setRef(int i, Ref x) throws SQLException {\r
- _preparedStatement.setRef(i, x);\r
- }\r
-\r
- public void setShort(int parameterIndex, short x) throws SQLException {\r
- registerPreparedParameter(parameterIndex, Types.INTEGER, x);\r
- _preparedStatement.setShort(parameterIndex, x);\r
- }\r
-\r
- public void setString(int parameterIndex, String x) throws SQLException {\r
- registerPreparedParameter(parameterIndex, Types.VARCHAR, x);\r
- _preparedStatement.setString(parameterIndex, x);\r
- }\r
-\r
- public void setTime(int parameterIndex, Time x, Calendar cal) throws SQLException {\r
- registerPreparedParameter(parameterIndex, Types.TIME, x);\r
- _preparedStatement.setTime(parameterIndex, x, cal);\r
- }\r
-\r
- public void setTime(int parameterIndex, Time x) throws SQLException {\r
- registerPreparedParameter(parameterIndex, Types.TIME, x);\r
- _preparedStatement.setTime(parameterIndex, x);\r
- }\r
-\r
- public void setTimestamp(int parameterIndex, Timestamp x, Calendar cal) throws SQLException {\r
- registerPreparedParameter(parameterIndex, Types.TIMESTAMP, x);\r
- _preparedStatement.setTimestamp(parameterIndex, x, cal);\r
- }\r
-\r
- public void setTimestamp(int parameterIndex, Timestamp x) throws SQLException {\r
- registerPreparedParameter(parameterIndex, Types.TIMESTAMP, x);\r
- _preparedStatement.setTimestamp(parameterIndex, x);\r
- }\r
-\r
- /**\r
- * @deprecated\r
- */\r
- public void setUnicodeStream(int parameterIndex, InputStream x, int length) throws SQLException {\r
- _preparedStatement.setUnicodeStream(parameterIndex, x, length);\r
- }\r
-\r
- public void setURL(int parameterIndex, URL x) throws SQLException {\r
- _preparedStatement.setURL(parameterIndex, x);\r
- }\r
-\r
-#if ($database.isJavaVersionGreaterEqualMustang())\r
- public void setAsciiStream(int arg0, InputStream arg1) throws SQLException {\r
- _preparedStatement.setAsciiStream(arg0, arg1);\r
- }\r
-\r
- public void setAsciiStream(int arg0, InputStream arg1, long arg2) throws SQLException {\r
- _preparedStatement.setAsciiStream(arg0, arg1, arg2);\r
- }\r
-\r
- public void setBinaryStream(int arg0, InputStream arg1) throws SQLException {\r
- _preparedStatement.setBinaryStream(arg0, arg1);\r
- }\r
-\r
- public void setBinaryStream(int arg0, InputStream arg1, long arg2) throws SQLException {\r
- _preparedStatement.setBinaryStream(arg0, arg1, arg2);\r
- }\r
-\r
- public void setBlob(int arg0, InputStream arg1) throws SQLException {\r
- _preparedStatement.setBlob(arg0, arg1);\r
- }\r
-\r
- public void setBlob(int arg0, InputStream arg1, long arg2) throws SQLException {\r
- _preparedStatement.setBlob(arg0, arg1, arg2);\r
- }\r
-\r
- public void setCharacterStream(int arg0, Reader arg1) throws SQLException {\r
- _preparedStatement.setCharacterStream(arg0, arg1);\r
- }\r
-\r
- public void setCharacterStream(int arg0, Reader arg1, long arg2) throws SQLException {\r
- _preparedStatement.setCharacterStream(arg0, arg1, arg2);\r
- }\r
-\r
- public void setClob(int arg0, Reader arg1) throws SQLException {\r
- _preparedStatement.setClob(arg0, arg1);\r
- }\r
-\r
- public void setClob(int arg0, Reader arg1, long arg2) throws SQLException {\r
- _preparedStatement.setClob(arg0, arg1, arg2);\r
- }\r
-\r
- public void setNCharacterStream(int arg0, Reader arg1) throws SQLException {\r
- _preparedStatement.setNCharacterStream(arg0, arg1);\r
- }\r
-\r
- public void setNCharacterStream(int arg0, Reader arg1, long arg2) throws SQLException {\r
- _preparedStatement.setNCharacterStream(arg0, arg1, arg2);\r
- }\r
-\r
- public void setNClob(int arg0, NClob arg1) throws SQLException {\r
- _preparedStatement.setNClob(arg0, arg1);\r
- }\r
-\r
- public void setNClob(int arg0, Reader arg1) throws SQLException {\r
- _preparedStatement.setNClob(arg0, arg1);\r
- }\r
-\r
- public void setNClob(int arg0, Reader arg1, long arg2) throws SQLException {\r
- _preparedStatement.setNClob(arg0, arg1, arg2);\r
- }\r
-\r
- public void setNString(int arg0, String arg1) throws SQLException {\r
- _preparedStatement.setNString(arg0, arg1);\r
- }\r
-\r
- public void setRowId(int arg0, RowId arg1) throws SQLException {\r
- _preparedStatement.setRowId(arg0, arg1);\r
- }\r
-\r
- public void setSQLXML(int arg0, SQLXML arg1) throws SQLException {\r
- _preparedStatement.setSQLXML(arg0, arg1);\r
- }\r
-\r
- public boolean isClosed() throws SQLException {\r
- return _preparedStatement.isClosed();\r
- }\r
-\r
- public boolean isPoolable() throws SQLException {\r
- return _preparedStatement.isPoolable();\r
- }\r
-\r
- public void setPoolable(boolean arg0) throws SQLException {\r
- _preparedStatement.setPoolable(arg0);\r
- }\r
-\r
- public boolean isWrapperFor(Class<?> arg0) throws SQLException {\r
- return _preparedStatement.isWrapperFor(arg0);\r
- }\r
-\r
- public <T> T unwrap(Class<T> arg0) throws SQLException {\r
- return _preparedStatement.unwrap(arg0);\r
- }\r
-#end\r
-\r
- // ===================================================================================\r
- // Trace\r
- // =====\r
- protected void traceSql(String sql) {\r
- // Initialize for zero parameter.\r
- _statementHistory.current();\r
-\r
- if (_movingNextBatchPoint && _statementHistory.current().isEmpty()) {\r
- _statementHistory.removeLast();\r
- }\r
-\r
- setupSqlDisplayList(sql);\r
- _statementHistoryWitness.witnessTheHistory(_statementHistory);\r
- }\r
-\r
- protected void registerPreparedParameter(int settingIndex, int jdbcType, Object parameterValue) {\r
- final ${glPreparedParameterElementName} parameterElement = createPreparedParameterElement(settingIndex, jdbcType, parameterValue);\r
- _statementHistory.current().addParameterElement(parameterElement);\r
- }\r
-\r
- protected ${glPreparedParameterElementName} createPreparedParameterElement(int settingIndex, int jdbcType, Object parameterValue) {\r
- final ${glPreparedParameterElementName} element = new ${glPreparedParameterElementName}();\r
- element.setSettingIndex(settingIndex);\r
- element.setJdbcType(jdbcType);\r
- element.setParameterValue(parameterValue);\r
- return element;\r
- }\r
-\r
- // ===================================================================================\r
- // Set up\r
- // ======\r
- protected void setupSqlDisplayList(String realSql) {\r
- final java.util.List<${glPreparedExecutionBeanName}> executionBeanList = _statementHistory.getPreparedExecutionBeanList();\r
- for (${glPreparedExecutionBeanName} executionBean : executionBeanList) {\r
- final Object[] args = new Object[executionBean.size()];\r
- int index = 0;\r
- final java.util.List<${glPreparedParameterElementName}> parameterElementList = executionBean.getPreparedParameterElementList();\r
- for (${glPreparedParameterElementName} parameterElement : parameterElementList) {\r
- final Object parameterValue = parameterElement.getParameterValue();\r
- args[index] = parameterValue;\r
- ++index;\r
- }\r
- final String displaySql = getCompleteSql(realSql, args);\r
- executionBean.setDisplaySql(displaySql);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Batch\r
- // =====\r
- protected void moveNextBatchPoint() {\r
- _movingNextBatchPoint = true;\r
- _statementHistory.next();\r
- }\r
-\r
- // ===================================================================================\r
- // Helper\r
- // ======\r
- protected String getCompleteSql(String sql, Object[] args) {\r
- if (args == null || args.length == 0) {\r
- return sql;\r
- }\r
- StringBuffer buf = new StringBuffer(200);\r
- int pos = 0;\r
- int pos2 = 0;\r
- int pos3 = 0;\r
- int pos4 = 0;\r
- int index = 0;\r
- while (true) {\r
- pos = sql.indexOf('?', pos2);\r
- pos3 = sql.indexOf('\'', pos2);\r
- pos4 = sql.indexOf('\'', pos3 + 1);\r
- if (pos > 0) {\r
- if (pos3 >= 0 && pos3 < pos && pos < pos4) {\r
- buf.append(sql.substring(pos2, pos4 + 1));\r
- pos2 = pos4 + 1;\r
- } else {\r
- buf.append(sql.substring(pos2, pos));\r
- buf.append(getBindVariableText(args[index++]));\r
- pos2 = pos + 1;\r
- }\r
- } else {\r
- buf.append(sql.substring(pos2));\r
- break;\r
- }\r
- }\r
- return buf.toString();\r
- }\r
-\r
- protected String getBindVariableText(Object bindVariable) {\r
- if (bindVariable instanceof String) {\r
- return "'" + bindVariable + "'";\r
- } else if (bindVariable instanceof Number) {\r
- return bindVariable.toString();\r
- } else if (bindVariable instanceof Timestamp) {\r
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH.mm.ss");\r
- return "'" + sdf.format((java.util.Date) bindVariable) + "'";\r
- } else if (bindVariable instanceof java.util.Date) {\r
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");\r
- return "'" + sdf.format((java.util.Date) bindVariable) + "'";\r
- } else if (bindVariable instanceof Boolean) {\r
- return bindVariable.toString();\r
- } else if (bindVariable == null) {\r
- return "null";\r
- } else {\r
- return "'" + bindVariable.toString() + "'";\r
- }\r
- }\r
-\r
-}\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE beans\r
- PUBLIC "-//SPRING//DTD BEAN//EN"\r
- "http://www.springframework.org/dtd/spring-beans.dtd"\r
->\r
-<beans>\r
-\r
- <bean id="daoMetaDataFactory" class="${database.extendedDaoMetaDataFactoryImplClassName}">\r
- <constructor-arg index="0">\r
- <ref bean="dataSource"/>\r
- </constructor-arg>\r
- <constructor-arg index="1">\r
- <ref bean="annotationReaderFactory"/>\r
- </constructor-arg>\r
- <constructor-arg index="2">\r
- <ref bean="xaDataSource"/>\r
- </constructor-arg>\r
- <property name="resultSetHandlerFactory" ref="resultSetHandlerFactory"></property>\r
- <property name="valueTypeFactory" ref="valueTypeFactory"></property>\r
- <property name="daoNamingConvention" ref="daoNamingConvention"></property>\r
- <property name="dtoMetaDataFactory" ref="dtoMetaDataFactory"></property>\r
- <property name="beanMetaDataFactory" ref="beanMetaDataFactory"></property>\r
- <property name="procedureMetaDataFactory" ref="procedureMetaDataFactory"></property>\r
- <property name="propertyTypeFactoryBuilder" ref="propertyTypeFactoryBuilder"></property>\r
- <property name="relationPropertyTypeFactoryBuilder" ref="relationPropertyTypeFactoryBuilder"></property>\r
- <property name="tableNaming" ref="tableNaming"></property>\r
- <property name="columnNaming" ref="columnNaming"></property>\r
- <property name="beanEnhancer" ref="beanEnhancer"></property>\r
- <property name="sqlFileEncoding"><value>${database.daoSqlFileEncoding}</value></property>\r
- </bean>\r
- <bean id="s2daoInterceptor" class="${glPackageBaseCommonS2Dao}.${glDaoInterceptor}">\r
- <constructor-arg>\r
- <ref bean="daoMetaDataFactory"/>\r
- </constructor-arg>\r
- </bean>\r
- <bean id="beanMetaDataFactory" class="${glPackageBaseCommonS2Dao}.${glBeanMetaDataFactoryImpl}" autowire="byType"/>\r
- <bean id="annotationReaderFactory" class="${database.extendedAnnotationReaderFactoryClassName}" autowire="byType"/>\r
- <bean id="valueTypeFactory" class="org.seasar.dao.impl.ValueTypeFactoryImpl" autowire="byType"/>\r
- <bean id="daoNamingConvention" class="org.seasar.dao.impl.DaoNamingConventionImpl" autowire="byType"/>\r
- <bean id="beanEnhancer" class="org.seasar.dao.impl.NullBeanEnhancer" autowire="byType"/>\r
- <bean id="resultSetHandlerFactory" class="${glPackageBaseCommonS2Dao}.${glDaoMetaDataExtension}$ResultSetHandlerFactoryExtension" autowire="byType"/>\r
- <bean id="dtoMetaDataFactory" class="org.seasar.dao.impl.DtoMetaDataFactoryImpl" autowire="byType"/>\r
- <bean id="propertyTypeFactoryBuilder" class="${glPackageBaseCommonS2Dao}.${glDaoPropertyTypeFactoryBuilderExtension}" autowire="byType"/>\r
- <bean id="relationPropertyTypeFactoryBuilder" class="org.seasar.dao.impl.RelationPropertyTypeFactoryBuilderImpl" autowire="byType"/>\r
- <bean id="tableNaming" class="org.seasar.dao.impl.DefaultTableNaming" autowire="byType"/>\r
- <bean id="columnNaming" class="org.seasar.dao.impl.DefaultColumnNaming" autowire="byType"/>\r
- <bean id="procedureMetaDataFactory" class="org.seasar.dao.impl.ProcedureMetaDataFactoryImpl" autowire="byType"/>\r
-\r
- <bean id="dbfluteStringClobType" class="org.seasar.extension.jdbc.types.StringClobType"/>\r
-\r
- <bean id="${database.behaviorSelectorComponentName}" class="${glPackageBaseCommon}.${glCacheBehaviorSelectorName}" autowire="byType" destroy-method="destroy"/>\r
- <bean id="${database.daoSelectorComponentName}" class="${glPackageBaseCommon}.${glCacheDaoSelectorName}" autowire="byType" destroy-method="destroy"/>\r
-\r
- <bean class="org.seasar.dao.spring.autoregister.FileSystemBeanAutoRegister">\r
- <property name="addPackageName">\r
- <value>${glPackageBaseCommonCBeanOutsidesql}</value>\r
- </property>\r
- <property name="addClassNames">\r
- <value>OutsideSqlDao</value>\r
- </property>\r
- <property name="interceptorNames">\r
- <list>\r
- <value>s2daoInterceptor</value>\r
- </list>\r
- </property>\r
- </bean>\r
- \r
- <bean class="org.seasar.dao.spring.autoregister.FileSystemBeanAutoRegister">\r
- <property name="addPackageName">\r
- <value>${glPackageExtendedDao}</value>\r
- </property>\r
- <property name="addClassNames">\r
- <value>.*Dao</value>\r
- </property>\r
- <property name="interceptorNames">\r
- <list>\r
- <value>s2daoInterceptor</value>\r
- </list>\r
- </property>\r
- </bean>\r
-\r
-#foreach ($table in $database.tables)\r
- <bean id="${table.behaviorComponentName}" class="${table.extendedBehaviorFullClassName}" autowire="byType"/>\r
-#end\r
-</beans>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN"\r
- "http://www.seasar.org/dtd/components21.dtd">\r
-\r
-<components namespace="${glDBFluteDiconNamespace}">\r
-#foreach ($includePath in $database.DBFluteDiconBeforeJ2eeIncludePathList)\r
- <include path="${includePath}"/>\r
-#end\r
-\r
- <include path="${glJdbcDiconResourceName}"/>\r
-#foreach ($includePath in $database.DBFluteDiconOtherIncludePathList)\r
- <include path="${includePath}"/>\r
-#end\r
-\r
- <!-- S2Dao component. -->\r
- <component class="${database.extendedAnnotationReaderFactoryClassName}"/>\r
- <component class="org.seasar.dao.impl.ValueTypeFactoryImpl"/>\r
-\r
- <component class="${database.extendedDaoMetaDataFactoryImplClassName}">\r
-#if ($database.hasDaoSqlFileEncoding())\r
- <property name="sqlFileEncoding">"${database.daoSqlFileEncoding}"</property>\r
-#end\r
- </component>\r
-\r
- <component name="interceptor" class="${glPackageBaseCommonS2Dao}.${glDaoInterceptor}"/>\r
-#if ($database.isVersionAfter1040())\r
- <component class="${glPackageBaseCommonS2Dao}.${glBeanMetaDataFactoryImpl}"/>\r
- <component class="org.seasar.dao.impl.DaoNamingConventionImpl"/>\r
- <component class="org.seasar.dao.impl.NullBeanEnhancer"/>\r
-#end\r
-#if ($database.isVersionAfter1047())\r
- <component class="${glPackageBaseCommonS2Dao}.${glDaoMetaDataExtension}$ResultSetHandlerFactoryExtension"/>\r
- <component class="org.seasar.dao.impl.DtoMetaDataFactoryImpl"/>\r
-#if ($database.isAvailableDaoMethodMetaDataInitializing())\r
- <component class="org.seasar.dao.impl.PropertyTypeFactoryBuilderImpl"/>\r
-#else\r
- <component class="${glPackageBaseCommonS2Dao}.${glDaoPropertyTypeFactoryBuilderExtension}"/>\r
-#end\r
- <component class="org.seasar.dao.impl.RelationPropertyTypeFactoryBuilderImpl"/>\r
- <component class="org.seasar.dao.impl.DefaultTableNaming"/>\r
- <component class="org.seasar.dao.impl.DefaultColumnNaming"/>\r
- <component class="org.seasar.dao.impl.ProcedureMetaDataFactoryImpl"/>\r
-#end\r
-#if ($database.isVersionAfter1046())\r
- <component class="${glPackageBaseCommonS2Dao}.${glDaoLatestSqlProvider}"/>\r
-#end\r
- <component name="dbfluteStringClobType" class="org.seasar.extension.jdbc.types.StringClobType" />\r
-\r
- <!-- Behavior selector. -->\r
- <component name="${database.behaviorSelectorComponentName}" class="${glPackageBaseCommon}.${glCacheBehaviorSelectorName}">\r
- <destroyMethod name="destroy"/>\r
- </component>\r
-\r
- <!-- Dao selector. -->\r
- <component name="${database.daoSelectorComponentName}" class="${glPackageBaseCommon}.${glCacheDaoSelectorName}">\r
- <destroyMethod name="destroy"/>\r
- </component>\r
-\r
- <!-- The dao of outside-sql. -->\r
- <component class="${glPackageBaseCommonCBeanOutsidesql}.${glOutsideSqlDaoName}">\r
- <aspect>${glDBFluteDiconNamespace}.interceptor</aspect>\r
- </component>\r
-\r
-</components>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN"\r
- "http://www.seasar.org/dtd/components21.dtd">\r
-\r
-<components namespace="${glDBFluteDiconNamespace}">\r
-#foreach ($includePath in $database.DBFluteDiconBeforeJ2eeIncludePathList)\r
- <include path="${includePath}"/>\r
-#end\r
- <include path="${glJdbcDiconResourceName}"/>\r
-#foreach ($includePath in $database.DBFluteDiconOtherIncludePathList)\r
- <include path="${includePath}"/>\r
-#end\r
-\r
- <!-- S2Dao component. -->\r
- <component class="${database.extendedDaoMetaDataFactoryImplClassName}">\r
-#if ($database.hasDaoSqlFileEncoding())\r
- <property name="sqlFileEncoding">"${database.daoSqlFileEncoding}"</property>\r
-#end\r
- </component>\r
- <component name="interceptor" class="${glPackageBaseCommonS2Dao}.${glDaoInterceptor}"/>\r
- <component class="${database.extendedAnnotationReaderFactoryClassName}"/>\r
- <component class="org.seasar.dao.impl.ValueTypeFactoryImpl"/>\r
- <component class="${glPackageBaseCommonS2Dao}.${glBeanMetaDataFactoryImpl}"/>\r
- <component class="org.seasar.dao.impl.DaoNamingConventionImpl"/>\r
-#if ($database.isVersionAfter1047())\r
- <component class="org.seasar.dao.impl.NullBeanEnhancer"/>\r
-#else\r
- <component class="org.seasar.dao.impl.BeanEnhancerImpl"/>\r
-#end\r
-#if ($database.isVersionAfter1047())\r
- <component class="${glPackageBaseCommonS2Dao}.${glDaoMetaDataExtension}$ResultSetHandlerFactoryExtension"/>\r
- <component class="org.seasar.dao.impl.DtoMetaDataFactoryImpl"/>\r
-#if ($database.isAvailableDaoMethodMetaDataInitializing())\r
- <component class="org.seasar.dao.impl.PropertyTypeFactoryBuilderImpl"/>\r
-#else\r
- <component class="${glPackageBaseCommonS2Dao}.${glDaoPropertyTypeFactoryBuilderExtension}"/>\r
-#end\r
- <component class="org.seasar.dao.impl.RelationPropertyTypeFactoryBuilderImpl"/>\r
- <component class="org.seasar.dao.impl.DefaultTableNaming"/>\r
- <component class="org.seasar.dao.impl.DefaultColumnNaming"/>\r
- <component class="org.seasar.dao.impl.ProcedureMetaDataFactoryImpl"/>\r
-#end\r
-#if ($database.isVersionAfter1046())\r
- <component class="${glPackageBaseCommonS2Dao}.${glDaoLatestSqlProvider}"/>\r
-#end\r
- <component name="dbfluteStringClobType" class="org.seasar.extension.jdbc.types.StringClobType" />\r
-\r
- <!-- The selector of behavior. -->\r
- <component name="${database.behaviorSelectorComponentName}" class="${glPackageBaseCommon}.${glCacheBehaviorSelectorName}">\r
- <destroyMethod name="destroy"/>\r
- </component>\r
-\r
- <!-- The selector of DAO. -->\r
- <component name="${database.daoSelectorComponentName}" class="${glPackageBaseCommon}.${glCacheDaoSelectorName}">\r
- <destroyMethod name="destroy"/>\r
- </component>\r
-\r
- <!-- The dao of outsideSql. -->\r
- <component class="${glPackageBaseCommonCBeanOutsidesql}.${glOutsideSqlDaoName}">\r
- <aspect>${glDBFluteDiconNamespace}.interceptor</aspect>\r
- </component>\r
-\r
-#foreach ($table in $database.tables)\r
-\r
- <!-- ${table.name} -->\r
- <component name="${table.daoComponentName}" class="${table.extendedDaoFullClassName}">\r
- <aspect>${glDBFluteDiconNamespace}.interceptor</aspect>\r
- </component>\r
- <component name="${table.behaviorComponentName}" class="${table.extendedBehaviorFullClassName}"/>\r
-#end\r
-\r
-</components>\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2Dao};\r
-\r
-import java.sql.Statement;\r
-import java.sql.PreparedStatement;\r
-import java.sql.ResultSet;\r
-import java.sql.SQLException;\r
-\r
-import org.seasar.extension.jdbc.ResultSetFactory;\r
-\r
-// import ${glPackageBaseCommonCBean}.${glFetchNarrowingBeanInterfaceName};\r
-// import ${glPackageBaseCommonCBean}.${glFetchNarrowingBeanContextName};\r
-// import ${glPackageBaseCommonCBeanOutsidesql}.${glOutsideSqlContextName};\r
-import ${glPackageBaseCommonS2DaoInternalSqlHandler}.${glInternalBasicHandler}.SQLExceptionHandler;\r
-\r
-/**\r
- * This is unused in DBFlute so this is very NORMAL result-set-factory for S2Dao.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glFetchNarrowingResultSetFactory} implements ResultSetFactory {\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- /**\r
- * Constructor.\r
- */\r
- public ${glFetchNarrowingResultSetFactory}() {\r
- }\r
-\r
- // ===================================================================================\r
- // Main\r
- // ====\r
- /**\r
- * Get result set.\r
- * @param statement Statement. (NotNull)\r
- * @return Result set for procedure executing of s2dao. (NotNull)\r
- */\r
- public ResultSet getResultSet(Statement statement) { // Unused in DBFlute\r
- return doGetResultSet(statement);\r
- }\r
-\r
- /**\r
- * Create result set.\r
- * @param ps Prepared statement. (NotNull)\r
- * @return Result set. (NotNull)\r
- */\r
- public ResultSet createResultSet(PreparedStatement ps) { // Unused in DBFlute\r
- return executeQuery(ps);\r
-\r
- // *Move to InternalBasicSelectHandler \r
- // if (!${glFetchNarrowingBeanContextName}.isExistFetchNarrowingBeanOnThread()) {\r
- // return resultSet;\r
- // }\r
- // final ${glFetchNarrowingBeanInterfaceName} cb = ${glFetchNarrowingBeanContextName}.getFetchNarrowingBeanOnThread();\r
- // if (!isUseFetchNarrowingResultSetWrapper(cb)) {\r
- // return resultSet;\r
- // }\r
- // final ${glFetchNarrowingResultSetWrapper} wrapper;\r
- // if (${glOutsideSqlContextName}.isExistOutsideSqlContextOnThread()) {\r
- // final ${glOutsideSqlContextName} outsideSqlContext = ${glOutsideSqlContextName}.getOutsideSqlContextOnThread();\r
- // wrapper = new ${glFetchNarrowingResultSetWrapper}(resultSet, ${glAttachedCBArgsVariableName}, outsideSqlContext.isOffsetByCursorForcedly(), outsideSqlContext.isLimitByCursorForcedly());\r
- // } else {\r
- // wrapper = new ${glFetchNarrowingResultSetWrapper}(resultSet, ${glAttachedCBArgsVariableName}, false, false);\r
- // }\r
- // return wrapper;\r
- }\r
-\r
- // protected boolean isUseFetchNarrowingResultSetWrapper(${glFetchNarrowingBeanInterfaceName} cb) {\r
- // if (cb.getSafetyMaxResultSize() > 0) {\r
- // return true;\r
- // }\r
- // if (!cb.isFetchNarrowingEffective()) {\r
- // return false;// It is not necessary to control.\r
- // }\r
- // if (${glOutsideSqlContextName}.isExistOutsideSqlContextOnThread()) {\r
- // final ${glOutsideSqlContextName} outsideSqlContext = ${glOutsideSqlContextName}.getOutsideSqlContextOnThread();\r
- // if (outsideSqlContext.isOffsetByCursorForcedly() || outsideSqlContext.isLimitByCursorForcedly()) {\r
- // return true;\r
- // }\r
- // }\r
- // if (cb.isFetchNarrowingSkipStartIndexEffective() || cb.isFetchNarrowingLoopCountEffective()) {\r
- // return true;\r
- // }\r
- // return false;\r
- // }\r
-\r
- // ===================================================================================\r
- // JDBC Delegator\r
- // ==============\r
- protected ResultSet doGetResultSet(Statement statement) {\r
- try {\r
- return statement.getResultSet();\r
- } catch (SQLException e) {\r
- handleSQLException(e, statement);\r
- return null;// Unreachable!\r
- }\r
- }\r
-\r
- protected ResultSet executeQuery(PreparedStatement ps) {\r
- try {\r
- return ps.executeQuery();\r
- } catch (SQLException e) {\r
- handleSQLException(e, ps);\r
- return null;// Unreachable!\r
- }\r
- }\r
-\r
- protected void handleSQLException(SQLException e, Statement statement) {\r
- new SQLExceptionHandler().handleSQLException(e, statement);\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2Dao};\r
-\r
-import java.sql.ResultSet;\r
-import java.sql.Statement;\r
-import java.sql.SQLException;\r
-\r
-import org.seasar.extension.jdbc.impl.ResultSetWrapper;\r
-\r
-import ${glPackageBaseCommonCBean}.${glFetchNarrowingBeanInterfaceName};\r
-import ${glPackageBaseCommonS2DaoInternalSqlHandler}.${glInternalBasicHandler}.SQLExceptionHandler;\r
-\r
-/**\r
- * The wrapper of fetch narrowing result set.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glFetchNarrowingResultSetWrapper} extends ResultSetWrapper {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- /** The real result set. (NotNull) */\r
- protected ResultSet _resultSet;\r
-\r
- /** The bean of fetch narrowing. (NotNull) */\r
- protected ${glFetchNarrowingBeanInterfaceName} _fetchNarrowingBean;\r
-\r
- /** The counter of fetch. */\r
- protected long _fetchCounter;\r
-\r
- /** the counter of request. */\r
- protected long _requestCounter;\r
-\r
- /** Does it offset by cursor forcedly? */\r
- protected boolean _offsetByCursorForcedly;\r
-\r
- /** Does it limit by cursor forcedly? */\r
- protected boolean _limitByCursorForcedly;\r
- \r
- /** Does it skip to cursor end? */\r
- protected boolean _skipToCursorEnd;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- /**\r
- * Constructor.\r
- * @param resultSet Original result set. (NotNull)\r
- * @param fetchNarrowingBean Fetch-narrowing-bean. (NotNull)\r
- * @param offsetByCursorForcedly Offset by cursor forcedly.\r
- * @param limitByCursorForcedly Limit by cursor forcedly.\r
- */\r
- public ${glFetchNarrowingResultSetWrapper}(ResultSet resultSet, ${glFetchNarrowingBeanInterfaceName} fetchNarrowingBean\r
- , boolean offsetByCursorForcedly, boolean limitByCursorForcedly) {\r
- super(resultSet);\r
-\r
- _resultSet = resultSet;\r
- _fetchNarrowingBean = fetchNarrowingBean;\r
- _offsetByCursorForcedly = offsetByCursorForcedly;\r
- _limitByCursorForcedly = limitByCursorForcedly;\r
-\r
- skip();\r
- }\r
-\r
- // ===================================================================================\r
- // Skip\r
- // ====\r
- /**\r
- * Skip to start-index.\r
- */\r
- protected void skip() {\r
- if (!isAvailableSkipRecord()) {\r
- return;\r
- }\r
- final int skipStartIndex = getFetchNarrowingSkipStartIndex();\r
- if (isScrollableCursor()) {\r
- try {\r
- if (0 == skipStartIndex) {\r
- _resultSet.beforeFirst();\r
- } else {\r
- _resultSet.absolute(skipStartIndex);\r
- }\r
- _fetchCounter = _resultSet.getRow();\r
- } catch (SQLException e) {\r
- handleSQLException(e, null);\r
- }\r
- } else {\r
- try {\r
- while (true) {\r
- if (_fetchCounter >= skipStartIndex) {\r
- break;\r
- }\r
- if (!_resultSet.next()) {\r
- _skipToCursorEnd = true;// [DBFLUTE-243]\r
- break;\r
- }\r
- ++_fetchCounter;\r
- }\r
- } catch (SQLException e) {\r
- handleSQLException(e, null);\r
- }\r
- }\r
- }\r
-\r
- protected boolean isAvailableSkipRecord() {\r
- if (!isFetchNarrowingEffective()) {\r
- return false;\r
- }\r
- if (isOffsetByCursorForcedly()) {\r
- return true;\r
- }\r
- if (isFetchNarrowingSkipStartIndexEffective()) {\r
- return true;\r
- }\r
- return false;\r
- }\r
-\r
- // ===================================================================================\r
- // Next\r
- // ====\r
- /**\r
- * Next.\r
- * @return Does the result set have next record?\r
- * @throws SQLException\r
- */\r
- public boolean next() throws SQLException {\r
-#if ($database.isDatabaseDB2())\r
- if (_skipToCursorEnd) {// [DBFLUTE-243]\r
- return false;\r
- }\r
-#end\r
- final boolean hasNext = super.next();\r
- ++_requestCounter;\r
- if (!isAvailableLimitLoopCount()) {\r
- checkSafetyResult(hasNext);\r
- return hasNext;\r
- }\r
-\r
- if (hasNext && _fetchCounter < getFetchNarrowingSkipStartIndex() + getFetchNarrowingLoopCount()) {\r
- ++_fetchCounter;\r
- checkSafetyResult(true);\r
- return true;\r
- } else {\r
- return false;\r
- }\r
- }\r
-\r
- protected boolean isAvailableLimitLoopCount() {\r
- if (!isFetchNarrowingEffective()) {\r
- return false;\r
- }\r
- if (isLimitByCursorForcedly()) {\r
- return true;\r
- }\r
- if (isFetchNarrowingLoopCountEffective()) {\r
- return true;\r
- }\r
- return false;\r
- }\r
-\r
- protected void checkSafetyResult(boolean hasNext) {\r
- if (hasNext && getSafetyMaxResultSize() > 0 && _requestCounter > (getSafetyMaxResultSize() + 1)) {\r
- String msg = "You have already been in Danger Zone!";\r
- msg = msg + " Please confirm your query or data of table: safetyMaxResultSize=" + getSafetyMaxResultSize();\r
- throw new ${glPackageBaseCommonException}.${glDangerousResultSizeException}(msg, getSafetyMaxResultSize());\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Fetch Option\r
- // ============\r
- protected boolean isFetchNarrowingEffective() {\r
- return _fetchNarrowingBean.isFetchNarrowingEffective();\r
- }\r
-\r
- protected boolean isFetchNarrowingSkipStartIndexEffective() {\r
- return _fetchNarrowingBean.isFetchNarrowingSkipStartIndexEffective();\r
- }\r
-\r
- protected boolean isFetchNarrowingLoopCountEffective() {\r
- return _fetchNarrowingBean.isFetchNarrowingLoopCountEffective();\r
- }\r
-\r
- protected int getFetchNarrowingSkipStartIndex() {\r
- return _fetchNarrowingBean.getFetchNarrowingSkipStartIndex();\r
- }\r
-\r
- protected int getFetchNarrowingLoopCount() {\r
- return _fetchNarrowingBean.getFetchNarrowingLoopCount();\r
- }\r
-\r
- public int getSafetyMaxResultSize() {\r
- return _fetchNarrowingBean.getSafetyMaxResultSize();\r
- }\r
-\r
- protected boolean isScrollableCursor() {\r
- try {\r
- return !(_resultSet.getType() == ResultSet.TYPE_FORWARD_ONLY);\r
- } catch (SQLException e) {\r
- handleSQLException(e, null);\r
- return false;// Unreachable!\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Exception Handler\r
- // =================\r
- protected void handleSQLException(SQLException e, Statement statement) {\r
- new SQLExceptionHandler().handleSQLException(e, statement);\r
- }\r
- \r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public boolean isOffsetByCursorForcedly() {\r
- return _offsetByCursorForcedly;\r
- }\r
-\r
- public boolean isLimitByCursorForcedly() {\r
- return _limitByCursorForcedly;\r
- }\r
- \r
- public boolean isSkipToCursorEnd() {\r
- return _skipToCursorEnd;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2Dao};\r
-\r
-import java.sql.DatabaseMetaData;\r
-import java.util.Collections;\r
-import java.util.HashMap;\r
-import java.util.Map;\r
-\r
-import org.seasar.dao.BeanMetaData;\r
-import org.seasar.dao.impl.BeanMetaDataImpl;\r
-import org.seasar.dao.impl.BeanMetaDataFactoryImpl;\r
-\r
-import ${glPackageBaseCommon}.${glEntityInterfaceName};\r
-\r
-/**\r
- * BeanMetaDataFactoryImpl for DBFlute.\r
- * @author ${database.ClassAuthor}\r
- */\r
- @SuppressWarnings("unchecked")\r
-public class ${glBeanMetaDataFactoryImpl} extends BeanMetaDataFactoryImpl {\r
-\r
- protected Map<Class<? extends ${glEntityInterfaceName}>, BeanMetaData> _metaMap = Collections.synchronizedMap(new HashMap<Class<? extends ${glEntityInterfaceName}>, BeanMetaData>());\r
-\r
- @Override\r
- public BeanMetaData createBeanMetaData(Class beanClass) {\r
- final BeanMetaData cachedMeta = findCachedMeta(beanClass);\r
- if (cachedMeta != null) {\r
- return cachedMeta;\r
- } else {\r
- return super.createBeanMetaData(beanClass);\r
- }\r
- }\r
- \r
- @Override\r
- public BeanMetaData createBeanMetaData(Class beanClass, int relationNestLevel) {\r
- final BeanMetaData cachedMeta = findCachedMeta(beanClass);\r
- if (cachedMeta != null) {\r
- return cachedMeta;\r
- } else {\r
- return super.createBeanMetaData(beanClass, relationNestLevel);\r
- }\r
- }\r
-\r
- @Override\r
- public BeanMetaData createBeanMetaData(DatabaseMetaData dbMetaData, Class beanClass, int relationNestLevel) {\r
- final BeanMetaData cachedMeta = findOrCreateCachedMetaIfNeeds(dbMetaData, beanClass, relationNestLevel);\r
- if (cachedMeta != null) {\r
- return cachedMeta;\r
- } else {\r
- return super.createBeanMetaData(dbMetaData, beanClass, relationNestLevel);\r
- }\r
- }\r
- \r
- protected BeanMetaData findCachedMeta(Class beanClass) {\r
- if (isDBFluteEntity(beanClass)) {\r
- final BeanMetaData cachedMeta = getMetaFromCache(beanClass);\r
- if (cachedMeta != null) {\r
- return cachedMeta;\r
- }\r
- }\r
- return null;\r
- }\r
- \r
- protected BeanMetaData findOrCreateCachedMetaIfNeeds(DatabaseMetaData dbMetaData, Class beanClass, int relationNestLevel) {\r
- if (isDBFluteEntity(beanClass)) {\r
- final BeanMetaData cachedMeta = getMetaFromCache(beanClass);\r
- if (cachedMeta != null) {\r
- return cachedMeta;\r
- } else {\r
- return super.createBeanMetaData(dbMetaData, beanClass, 0);\r
- }\r
- }\r
- return null;\r
- }\r
- \r
- @Override\r
- protected BeanMetaDataImpl createBeanMetaDataImpl() {\r
- return new BeanMetaDataImpl() {\r
- @Override\r
- public void initialize() {\r
- final Class myBeanClass = getBeanClass();\r
- if (isDBFluteEntity(myBeanClass)) {\r
- final BeanMetaData cachedMeta = getMetaFromCache(myBeanClass);\r
- if (cachedMeta == null) {\r
- _metaMap.put(myBeanClass, this);\r
- }\r
- }\r
- super.initialize();\r
- }\r
- };\r
- }\r
- \r
- protected boolean isDBFluteEntity(Class beanClass) {\r
- return ${glEntityInterfaceName}.class.isAssignableFrom(beanClass);\r
- }\r
- \r
- protected BeanMetaData getMetaFromCache(Class beanClass) {\r
- return _metaMap.get(beanClass);\r
- }\r
- \r
- /**\r
- * Get the limit nest level of relation.\r
- * @return The limit nest level of relation.\r
- */\r
- @Override\r
- protected int getLimitRelationNestLevel() {\r
- return 2;// for Compatible to old version DBFlute\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2Dao};\r
-\r
-import java.util.Arrays;\r
-import java.util.List;\r
-import java.lang.reflect.Method;\r
-import java.lang.reflect.Modifier;\r
-\r
-import org.aopalliance.intercept.MethodInvocation;\r
-import org.seasar.framework.beans.MethodNotFoundRuntimeException;\r
-import org.seasar.dao.DaoMetaData;\r
-import org.seasar.dao.DaoMetaDataFactory;\r
-import org.seasar.dao.SqlCommand;\r
-import org.seasar.dao.NotSingleRowUpdatedRuntimeException;\r
-\r
-import ${glPackageBaseCommon}.${glXLog};\r
-import ${glPackageBaseCommon}.${glEntityInterfaceName};\r
-import ${glPackageBaseCommon}.${glInternalMapContextName};\r
-import ${glPackageBaseCommonCBean}.${glConditionBeanInterfaceName};\r
-import ${glPackageBaseCommonCBean}.${glConditionBeanContextName};\r
-import ${glPackageBaseCommonCBean}.${glFetchNarrowingBeanContextName};\r
-import ${glPackageBaseCommonCBean}.${glFetchNarrowingBeanInterfaceName};\r
-import ${glPackageBaseCommonCBeanOutsidesql}.${glOutsideSqlContextName};\r
-import ${glPackageBaseCommonCBeanOutsidesql}.${glOutsideSqlDaoName};\r
-import ${glPackageBaseCommonCBeanOutsidesql}.${glOutsideSqlOptionName};\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInterfaceName};\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInstanceHandlerName};\r
-import ${glPackageBaseCommonException}.${glEntityAlreadyUpdatedException};\r
-import ${glPackageBaseCommonHelperStackTrace}.${glInvokeNameExtractingResourceName};\r
-import ${glPackageBaseCommonHelperStackTrace}.${glInvokeNameResultName};\r
-import ${glPackageBaseCommonHelperStackTraceImpl}.${glInvokeNameExtractorImplName};\r
-import ${glPackageBaseCommonUtil}.${glTraceViewUtilName};\r
-\r
-/**\r
- * The interceptor of S2Dao for DBFlute.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glDaoInterceptor} extends org.seasar.framework.aop.interceptors.AbstractInterceptor {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- /** Serial version UID. (Default) */\r
- private static final long serialVersionUID = 1L;\r
-\r
- /** Log instance. */\r
- private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory.getLog(${glDaoInterceptor}.class);\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- /** The factory of DAO meta data. */\r
- protected DaoMetaDataFactory _daoMetaDataFactory;\r
- \r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- /**\r
- * Constructor.\r
- * @param daoMetaDataFactory The factory of DAO meta data. (NotNull)\r
- */\r
- public ${glDaoInterceptor}(DaoMetaDataFactory daoMetaDataFactory) {\r
- _daoMetaDataFactory = daoMetaDataFactory;\r
- }\r
-\r
- // ===================================================================================\r
- // Execute Status Log\r
- // ==================\r
- protected void log(String msg) {\r
- ${glXLog}.log(msg);\r
- }\r
- \r
- protected boolean isLogEnabled() {\r
- return ${glXLog}.isLogEnabled();\r
- }\r
- \r
- // ===================================================================================\r
- // Invoke\r
- // ======\r
- /**\r
- * Invoke the method.\r
- * @param invocation The method invocation. (NotNull)\r
- * @return The result of the method. (Nullable)\r
- * @throws Throwable\r
- */\r
- public Object invoke(MethodInvocation invocation) throws Throwable {\r
- clearThreadLocal();\r
- try {\r
- return dispatchInvoking(invocation);\r
- } finally {\r
- clearThreadLocal();\r
- }\r
- }\r
-\r
- /**\r
- * Dispatch invoking the method.\r
- * @param invocation The method invocation. (NotNull)\r
- * @return The result of the method. (Nullable)\r
- * @throws Throwable\r
- */\r
- protected Object dispatchInvoking(MethodInvocation invocation) throws Throwable {\r
- final Method method = invocation.getMethod();\r
- if (!isAbstract(method)) {\r
- return invocation.proceed();\r
- }\r
-\r
- // - - - - - - - - - - - - -\r
- // Initialize DAO meta data\r
- // - - - - - - - - - - - - -\r
- if (method.getName().equals("initializeDaoMetaData")) {\r
- initializeSqlCommand(invocation);\r
- return null;// The end! (Initilization Only)\r
- }\r
-\r
- // - - - - - - - - - - - -\r
- // Preprocess outside-SQL\r
- // - - - - - - - - - - - -\r
- preprocessOutsideSql(invocation);\r
-\r
- // - - - - - - - - - - - - -\r
- // Preprocess condition-bean\r
- // - - - - - - - - - - - - -\r
- final ${glConditionBeanInterfaceName} cb = preprocessConditionBean(invocation);\r
-\r
- // - - - - - - - - - -\r
- // Set up SQL-command\r
- // - - - - - - - - - -\r
- final SqlCommand cmd;\r
- try {\r
- long beforeCmd = 0;\r
- if (isLogEnabled()) {\r
- beforeCmd = System.currentTimeMillis();\r
- }\r
- cmd = findSqlCommand(invocation);\r
- if (isLogEnabled()) {\r
- final long afterCmd = System.currentTimeMillis();\r
- if (beforeCmd != afterCmd) {\r
- logSqlCommand(invocation, cmd, beforeCmd, afterCmd);\r
- }\r
- }\r
- } finally {\r
- if (isLogEnabled()) {\r
- logInvocation(invocation);\r
- }\r
- }\r
-\r
- long before = 0;\r
- if (isLogEnabled()) {\r
- before = System.currentTimeMillis();\r
- }\r
-\r
- // - - - - - - - - - -\r
- // Execute SQL-command\r
- // - - - - - - - - - -\r
- Object ret = null;\r
- try {\r
- ret = cmd.execute(invocation.getArguments());\r
- } catch (Exception e) {\r
- if (e.getClass().equals(NotSingleRowUpdatedRuntimeException.class)) {\r
- throw new ${glEntityAlreadyUpdatedException}((NotSingleRowUpdatedRuntimeException)e);\r
- }\r
- throw e;\r
- } finally {\r
- postprocessConditionBean(invocation, cb);\r
- }\r
- final Class<?> retType = method.getReturnType();\r
- assertRetType(retType, ret);\r
-\r
- if (isLogEnabled()) {\r
- final long after = System.currentTimeMillis();\r
- logReturn(invocation, retType, ret, before, after);\r
- }\r
-\r
- // - - - - - - - - - -\r
- // Convert and Return!\r
- // - - - - - - - - - -\r
- if (retType.isPrimitive()) {\r
- return org.seasar.framework.util.NumberConversionUtil.convertPrimitiveWrapper(retType, ret);\r
- } else if (Number.class.isAssignableFrom(retType)) {\r
- return org.seasar.framework.util.NumberConversionUtil.convertNumber(retType, ret);\r
- } else {\r
- return ret;\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // SqlCommand\r
- // ==========\r
- protected void initializeSqlCommand(MethodInvocation invocation) {\r
- final Class<?> targetType = getTargetClass(invocation);\r
- final DaoMetaData dmd = _daoMetaDataFactory.getDaoMetaData(targetType);\r
- if (${glOutsideSqlDaoName}.class.isAssignableFrom(targetType)) {\r
- return;// Do nothing!\r
- } else {\r
- final Object[] arguments = invocation.getArguments();\r
- if (arguments != null && arguments.length > 0 && arguments[0] instanceof String) {\r
- final String methodName = (String)arguments[0];\r
- try {\r
- dmd.getSqlCommand(methodName);\r
- } catch (MethodNotFoundRuntimeException ignored) {\r
- // Do nothing!\r
- if (isLogEnabled()) {\r
- log("Not Found the method: " + methodName + " msg=" + ignored.getMessage());\r
- }\r
- }\r
- return;\r
- } else {\r
- String msg = "The method should have one string argument as method name: " + invocation;\r
- throw new IllegalStateException(msg);\r
- }\r
- }\r
- }\r
- \r
- protected SqlCommand findSqlCommand(MethodInvocation invocation) {\r
- final SqlCommand cmd;\r
- final Class<?> targetType = getTargetClass(invocation);\r
- final DaoMetaData dmd = _daoMetaDataFactory.getDaoMetaData(targetType);\r
- if (${glOutsideSqlDaoName}.class.isAssignableFrom(targetType)) {\r
- cmd = dmd.getSqlCommand(generateSpecifiedOutsideSqlUniqueKey(invocation));\r
- } else {\r
- cmd = dmd.getSqlCommand(invocation.getMethod().getName());\r
- }\r
- return cmd;\r
- }\r
-\r
- protected String generateSpecifiedOutsideSqlUniqueKey(MethodInvocation invocation) {\r
- final Object[] args = invocation.getArguments();\r
- final String path = (String)args[0];\r
- final Object pmb = args[1];\r
- final ${glOutsideSqlOptionName} option = (${glOutsideSqlOptionName})args[2];\r
- Object resultTypeSpecification = null;\r
- if (args.length > 3) {\r
- resultTypeSpecification = args[3];\r
- }\r
- return ${glOutsideSqlContextName}.generateSpecifiedOutsideSqlUniqueKey(invocation.getMethod().getName(), path, pmb, option, resultTypeSpecification);\r
- }\r
-\r
- // ===================================================================================\r
- // Log Invocation\r
- // ==============\r
- protected void logInvocation(MethodInvocation invocation) {\r
- final StackTraceElement[] stackTrace = new Exception().getStackTrace();\r
- final ${glInvokeNameResultName} behaviorResult = extractBehaviorInvokeName(stackTrace);\r
-\r
- final String invokeClassName;\r
- final String invokeMethodName;\r
- if (!behaviorResult.isEmptyResult()) {\r
- invokeClassName = behaviorResult.getSimpleClassName();\r
- invokeMethodName = behaviorResult.getMethodName();\r
- } else {\r
- final Method method = invocation.getMethod();\r
- invokeClassName = extractInvocationExpression(method);\r
- invokeMethodName = method.getName();\r
- }\r
- final String expWithoutKakko = buildInvocationExpressionWithoutKakko(invocation, invokeClassName, invokeMethodName);\r
-\r
- // Save behavior invoke name for error message.\r
- putObjectToMapContext("df:BehaviorInvokeName", expWithoutKakko + "()");\r
-\r
- final String equalBorder = buildFitBorder("", "=", expWithoutKakko, false);\r
- final String invocationExpression = expWithoutKakko + "()";\r
-\r
- log("/=====================================================" + equalBorder + "==");\r
- log(" " + invocationExpression);\r
- log(" " + equalBorder + "=/");\r
-\r
- logPath(invocation, stackTrace, behaviorResult);\r
-\r
- // Specified OutsideSql\r
- if (isSpecifiedOutsideSql(invocation)) {\r
- final ${glOutsideSqlContextName} outsideSqlContext = getOutsideSqlContext();\r
- if (!outsideSqlContext.isProcedure()) {// [DBFlute-0.7.5]\r
- Object[] args = invocation.getArguments();\r
- if (outsideSqlContext != null) {\r
- log("path: " + outsideSqlContext.getOutsideSqlPath());\r
- } else {\r
- log("path: " + getOutsideSqlPath(args));\r
- }\r
- log("option: " + getOutsideSqlOption(args));\r
- }\r
- }\r
- }\r
-\r
- protected String buildInvocationExpressionWithoutKakko(MethodInvocation invocation, String invokeClassName, String invokeMethodName) {\r
- if (invokeClassName.contains("OutsideSql") && invokeClassName.endsWith("Executor")) { // OutsideSql Executor Handling\r
- try {\r
- final String originalName = invokeClassName;\r
- if (isSpecifiedOutsideSql()) {\r
- final ${glOutsideSqlContextName} outsideSqlContext = getOutsideSqlContext();\r
- final String tableDbName = outsideSqlContext.getTableDbName();\r
- final ${glDBMetaInterfaceName} dbmeta = ${glDBMetaInstanceHandlerName}.findDBMeta(tableDbName);\r
- final String behaviorTypeName = dbmeta.getBehaviorTypeName();\r
- final String behaviorClassName = behaviorTypeName.substring(behaviorTypeName.lastIndexOf(".") + ".".length());\r
- invokeClassName = behaviorClassName + ".outsideSql()";\r
- if (originalName.endsWith("OutsideSqlEntityExecutor")) {\r
- invokeClassName = invokeClassName + ".entityHandling()";\r
- } else if (originalName.endsWith("OutsideSqlPagingExecutor")) {\r
- if (outsideSqlContext.isOffsetByCursorForcedly() || outsideSqlContext.isLimitByCursorForcedly()) {\r
- invokeClassName = invokeClassName + ".autoPaging()";\r
- } else {\r
- invokeClassName = invokeClassName + ".manualPaging()";\r
- }\r
- } else if (originalName.endsWith("OutsideSqlCursorExecutor")) {\r
- invokeClassName = invokeClassName + ".cursorHandling()";\r
- }\r
- } else {\r
- invokeClassName = "OutsideSql";\r
- }\r
- } catch (RuntimeException ignored) {\r
- log("Ignored exception occurred: msg=" + ignored.getMessage());\r
- }\r
- }\r
- String invocationExpressionWithoutKakko = invokeClassName + "." + invokeMethodName;\r
- if ("selectPage".equals(invokeMethodName)) { // Special Handling!\r
- boolean resultTypeInteger = false;\r
- if (isSpecifiedOutsideSql()) {\r
- final ${glOutsideSqlContextName} outsideSqlContext = getOutsideSqlContext();\r
- final Object resultTypeSpecification = outsideSqlContext.getResultTypeSpecification();\r
- if (resultTypeSpecification != null && resultTypeSpecification instanceof Class<?>) {\r
- final Class<?> resultType = (Class<?>)resultTypeSpecification;\r
- if (Integer.class.isAssignableFrom(resultType)) {\r
- resultTypeInteger = true;\r
- }\r
- }\r
- }\r
- if (resultTypeInteger || "selectCount".equals(invocation.getMethod().getName())) {\r
- invocationExpressionWithoutKakko = invocationExpressionWithoutKakko + "():count";\r
- } else {\r
- invocationExpressionWithoutKakko = invocationExpressionWithoutKakko + "():paging";\r
- }\r
- }\r
- return invocationExpressionWithoutKakko;\r
- }\r
-\r
- protected void logPath(MethodInvocation invocation, StackTraceElement[] stackTrace, ${glInvokeNameResultName} behaviorResult) {\r
- final int bhvNextIndex = behaviorResult.getNextStartIndex();\r
- final ${glInvokeNameResultName} clientResult = extractClientInvokeName(stackTrace, bhvNextIndex);\r
- final int clientFirstIndex = clientResult.getFoundFirstIndex();\r
- final ${glInvokeNameResultName} byPassResult = extractByPassInvokeName(stackTrace, bhvNextIndex, clientFirstIndex - bhvNextIndex);\r
-\r
- final String clientInvokeName = clientResult.getInvokeName();\r
- final String byPassInvokeName = byPassResult.getInvokeName();\r
- final String behaviorInvokeName = behaviorResult.getInvokeName();\r
- if (clientInvokeName.trim().length() == 0 && byPassInvokeName.trim().length() == 0) {\r
- return;\r
- }\r
- \r
- // Save client invoke name for error message.\r
- if (!clientResult.isEmptyResult()) {\r
- putObjectToMapContext("df:ClientInvokeName", clientInvokeName);\r
- }\r
- // Save by-pass invoke name for error message.\r
- if (!byPassResult.isEmptyResult()) {\r
- putObjectToMapContext("df:ByPassInvokeName", byPassInvokeName);\r
- }\r
- \r
- log(clientInvokeName + byPassInvokeName + behaviorInvokeName + "...");\r
- }\r
-\r
- protected String buildFitBorder(String prefix, String element, String lengthTargetString, boolean space) {\r
- final int length = space ? lengthTargetString.length() / 2 : lengthTargetString.length();\r
- final StringBuffer sb = new StringBuffer();\r
- sb.append(prefix);\r
- for (int i = 0; i < length; i++) {\r
- sb.append(element);\r
- if (space) {\r
- sb.append(" ");\r
- }\r
- }\r
- if (space) {\r
- sb.append(element);\r
- }\r
- return sb.toString();\r
- }\r
-\r
- protected ${glInvokeNameResultName} extractClientInvokeName(StackTraceElement[] stackTrace, final int startIndex) {\r
- final List<String> suffixList = Arrays.asList(new String[]{"Page", "Action"});\r
- final ${glInvokeNameExtractingResourceName} resource = new ${glInvokeNameExtractingResourceName}() {\r
- public boolean isTargetElement(String className, String methodName) {\r
- return isClassNameEndsWith(className, suffixList);\r
- }\r
- public String filterSimpleClassName(String simpleClassName) {\r
- return simpleClassName;\r
- }\r
- public boolean isUseAdditionalInfo() {\r
- return true;\r
- }\r
- public int getStartIndex() {\r
- return startIndex;\r
- }\r
- public int getLoopSize() {\r
- return 25;\r
- }\r
- };\r
- return extractInvokeName(resource, stackTrace);\r
- }\r
-\r
- protected ${glInvokeNameResultName} extractByPassInvokeName(StackTraceElement[] stackTrace, final int startIndex, final int loopSize) {\r
- final List<String> suffixList = Arrays.asList(new String[]{"Service", "ServiceImpl", "Facade", "FacadeImpl"});\r
- final ${glInvokeNameExtractingResourceName} resource = new ${glInvokeNameExtractingResourceName}() {\r
- public boolean isTargetElement(String className, String methodName) {\r
- return isClassNameEndsWith(className, suffixList);\r
- }\r
- public String filterSimpleClassName(String simpleClassName) {\r
- return simpleClassName;\r
- }\r
- public boolean isUseAdditionalInfo() {\r
- return true;\r
- }\r
- public int getStartIndex() {\r
- return startIndex;\r
- }\r
- public int getLoopSize() {\r
- return loopSize >= 0 ? loopSize : 25;\r
- }\r
- };\r
- return extractInvokeName(resource, stackTrace);\r
- }\r
-\r
- protected ${glInvokeNameResultName} extractBehaviorInvokeName(StackTraceElement[] stackTrace) {\r
- final List<String> suffixList = Arrays.asList(new String[]{"Bhv", "BehaviorReadable", "BehaviorWritable" , "PagingInvoker"});\r
- final List<String> keywordList = Arrays.asList(new String[]{"Bhv$", "BehaviorReadable$", "BehaviorWritable$"});\r
- final List<String> ousideSql1List = Arrays.asList(new String[]{"OutsideSql"});\r
- final List<String> ousideSql2List = Arrays.asList(new String[]{"Executor"});\r
- final List<String> ousideSql3List = Arrays.asList(new String[]{"Executor$"});\r
- final ${glInvokeNameExtractingResourceName} resource = new ${glInvokeNameExtractingResourceName}() {\r
- public boolean isTargetElement(String className, String methodName) {\r
- if (isClassNameEndsWith(className, suffixList)) {\r
- return true;\r
- }\r
- if (isClassNameContains(className, keywordList)) {\r
- return true;\r
- }\r
- if (isClassNameContains(className, ousideSql1List)\r
- && (isClassNameEndsWith(className, ousideSql2List) || isClassNameContains(className, ousideSql3List))) {\r
- return true;\r
- }\r
- return false;\r
- }\r
- public String filterSimpleClassName(String simpleClassName) {\r
- return removeBasePrefixFromSimpleClassName(simpleClassName);\r
- }\r
- public boolean isUseAdditionalInfo() {\r
- return false;\r
- }\r
- public int getStartIndex() {\r
- return 0;\r
- }\r
- public int getLoopSize() {\r
- return 25;\r
- }\r
- };\r
- return extractInvokeName(resource, stackTrace);\r
- }\r
-\r
- protected boolean isClassNameEndsWith(String className, List<String> suffixList) {\r
- for (String suffix : suffixList) {\r
- if (className.endsWith(suffix)) {\r
- return true;\r
- }\r
- }\r
- return false;\r
- }\r
- \r
- \r
- protected boolean isClassNameContains(String className, List<String> keywordList) {\r
- for (String keyword : keywordList) {\r
- if (className.contains(keyword)) {\r
- return true;\r
- }\r
- }\r
- return false;\r
- }\r
-\r
- /**\r
- * @param resource the call-back resource for invoke-name-extracting. (NotNull)\r
- * @param stackTrace Stack log. (NotNull)\r
- * @return The result of invoke name. (NotNull: If not found, returns empty string.)\r
- */\r
- protected ${glInvokeNameResultName} extractInvokeName(${glInvokeNameExtractingResourceName} resource, StackTraceElement[] stackTrace) {\r
- final ${glInvokeNameExtractorImplName} extractor = new ${glInvokeNameExtractorImplName}();\r
- extractor.setStackTrace(stackTrace);\r
- return extractor.extractInvokeName(resource);\r
- }\r
-\r
- /**\r
- * @param method The invoked method. (NotNull)\r
- * @return The expression of invocation. (NotNull)\r
- */\r
- protected String extractInvocationExpression(Method method) {\r
- final Class<?> declaringClass = method.getDeclaringClass();\r
- return removeBasePrefixFromSimpleClassName(declaringClass.getSimpleName());\r
- }\r
- \r
- /**\r
- * @param simpleClassName The simple class name. (NotNull)\r
- * @return The simple class name removed the base prefix. (NotNull)\r
- */\r
- protected String removeBasePrefixFromSimpleClassName(String simpleClassName) {\r
- if (!simpleClassName.startsWith("${glProjectPrefix}${glBasePrefix}")) {\r
- return simpleClassName;\r
- }\r
- final int prefixLength = "${glProjectPrefix}${glBasePrefix}".length();\r
- if (!Character.isUpperCase(simpleClassName.substring(prefixLength).charAt(0))) {\r
- return simpleClassName;\r
- }\r
- if (simpleClassName.length() <= prefixLength) {\r
- return simpleClassName;\r
- }\r
- return "${glProjectPrefix}" + simpleClassName.substring(prefixLength);\r
- }\r
-\r
- // ===================================================================================\r
- // Log SqlCommand\r
- // ==============\r
- protected void logSqlCommand(MethodInvocation invocation, SqlCommand cmd, long beforeCmd, long afterCmd) {\r
- log("SqlCommand Initialization Cost: [" + ${glTraceViewUtilName}.convertToPerformanceView(afterCmd - beforeCmd) + "]");\r
- }\r
-\r
- protected void assertRetType(Class<?> retType, Object ret) {\r
- if (java.util.List.class.isAssignableFrom(retType)) {\r
- if (ret != null && !(ret instanceof java.util.List)) {\r
- String msg = "The retType is difference from actual return: ";\r
- msg = msg + "retType=" + retType + " ret.getClass()=" + ret.getClass() + " ref=" + ret;\r
- throw new IllegalStateException(msg);\r
- }\r
- } else if (${glEntityInterfaceName}.class.isAssignableFrom(retType)) {\r
- if (ret != null && !(ret instanceof ${glEntityInterfaceName})) {\r
- String msg = "The retType is difference from actual return: ";\r
- msg = msg + "retType=" + retType + " ret.getClass()=" + ret.getClass() + " ref=" + ret;\r
- throw new IllegalStateException(msg);\r
- }\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Log Return\r
- // ==========\r
- protected void logReturn(org.aopalliance.intercept.MethodInvocation invocation, Class<?> retType, Object ret, long before, long after) throws Throwable {\r
- try {\r
- final String daoResultPrefix = "===========/ [" + ${glTraceViewUtilName}.convertToPerformanceView(after - before) + " - ";\r
- if (java.util.List.class.isAssignableFrom(retType)) {\r
- if (ret == null) {\r
- log(daoResultPrefix + "Selected list: null]");\r
- } else {\r
- final java.util.List<?> ls = (java.util.List<?>) ret;\r
- if (ls.isEmpty()) {\r
- log(daoResultPrefix + "Selected list: 0]");\r
- } else if (ls.size() == 1 && ls.get(0) instanceof Number) {\r
- log(daoResultPrefix + "Selected count: " + ls.get(0) + "]");\r
- } else {\r
- log(daoResultPrefix + "Selected list: " + ls.size() + " first=" + ls.get(0) + "]");\r
- }\r
- }\r
- } else if (${glEntityInterfaceName}.class.isAssignableFrom(retType)) {\r
- if (ret == null) {\r
- log(daoResultPrefix + "Selected entity: null" + "]");\r
- } else {\r
- final ${glEntityInterfaceName} entity = (${glEntityInterfaceName}) ret;\r
- log(daoResultPrefix + "Selected entity: " + entity + "]");\r
- }\r
- } else if (${glEntityInterfaceName}.class.isAssignableFrom(retType)) {\r
- if (ret == null) {\r
- log(daoResultPrefix + "Selected entity: null" + "]");\r
- } else {\r
- final ${glEntityInterfaceName} entity = (${glEntityInterfaceName}) ret;\r
- log(daoResultPrefix + "Selected entity: " + entity + "]");\r
- }\r
- } else if (int[].class.isAssignableFrom(retType)) {\r
- if (ret == null) {\r
- log(daoResultPrefix + "Selected entity: null" + "]");\r
- } else {\r
- final int[] resultArray = (int[]) ret;\r
- if (resultArray.length == 0) {\r
- log(daoResultPrefix + "All updated count: 0]");\r
- } else {\r
- final StringBuilder sb = new StringBuilder();\r
- boolean resultExpressionScope = true;\r
- int resultCount = 0;\r
- int loopCount = 0;\r
- for (int element : resultArray) {\r
- resultCount = resultCount + element;\r
- if (resultExpressionScope) {\r
- if (loopCount <= 10) {\r
- if (sb.length() == 0) {\r
- sb.append(element);\r
- } else {\r
- sb.append(",").append(element);\r
- }\r
- } else {\r
- sb.append(",").append("...");\r
- resultExpressionScope = false;\r
- }\r
- }\r
- ++loopCount;\r
- }\r
- sb.insert(0, "{").append("}");\r
- log(daoResultPrefix + "All updated count: " + resultCount + " result=" + sb + "]");\r
- }\r
- }\r
- } else {\r
- if (isSelectCountIgnoreFetchScopeMethod(invocation)) {\r
- log(daoResultPrefix + "Selected count: " + ret + "]");\r
- } else {\r
- log(daoResultPrefix + "Result: " + ret + "]");\r
- }\r
- }\r
- log(" ");\r
- } catch (Exception e) {\r
- String msg = "Result object debug threw the exception: methodName=";\r
- msg = msg + invocation.getMethod().getName() + " retType=" + retType;\r
- msg = msg + " ret=" + ret;\r
- _log.warn(msg, e);\r
- throw e;\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Pre Post Process\r
- // ================\r
- // -----------------------------------------------------\r
- // OutsideSql\r
- // ----------\r
- protected void preprocessOutsideSql(MethodInvocation invocation) {\r
- final Class<${glPackageBaseCommonAnnotation}.${glOutsideSqlAnnotation}> outsideSqlType = ${glPackageBaseCommonAnnotation}.${glOutsideSqlAnnotation}.class;\r
- final ${glPackageBaseCommonAnnotation}.${glOutsideSqlAnnotation} outsideSql = invocation.getMethod().getAnnotation(outsideSqlType);\r
-\r
- // Traditional OutsideSql\r
- if (outsideSql != null && (outsideSql.dynamicBinding() || outsideSql.offsetByCursor() || outsideSql.offsetByCursor() || outsideSql.limitByCursor())) {\r
- final ${glOutsideSqlContextName} outsideSqlContext = new ${glOutsideSqlContextName}();\r
- outsideSqlContext.setDynamicBinding(outsideSql.dynamicBinding());\r
- outsideSqlContext.setOffsetByCursorForcedly(outsideSql.offsetByCursor());\r
- outsideSqlContext.setLimitByCursorForcedly(outsideSql.limitByCursor());\r
- ${glOutsideSqlContextName}.setOutsideSqlContextOnThread(outsideSqlContext);\r
-\r
- // Set up fetchNarrowingBean.\r
- final Object[] args = invocation.getArguments();\r
- if (args == null || args.length == 0) {\r
- return;\r
- }\r
- if (${glFetchNarrowingBeanContextName}.isTheTypeFetchNarrowingBean(args[0].getClass())) {\r
- ${glFetchNarrowingBeanContextName}.setFetchNarrowingBeanOnThread((${glFetchNarrowingBeanInterfaceName})args[0]);\r
- }\r
- return;\r
- }\r
-\r
- // Specified OutsideSql\r
- if (isSpecifiedOutsideSql(invocation)) {\r
- if (isOutsideSqlDaoMethodSelect(invocation)) {\r
- setupOutsideSqlContextSelect(invocation);\r
- } else {\r
- setupOutsideSqlContextExecute(invocation);\r
- }\r
- return;\r
- }\r
- }\r
- \r
- protected boolean isSpecifiedOutsideSql(MethodInvocation invocation) {\r
- return ${glOutsideSqlDaoName}.class.isAssignableFrom(getTargetClass(invocation));\r
- }\r
-\r
- // - - - - - - - - - - - -\r
- // Select\r
- // - - -\r
- protected boolean isOutsideSqlDaoMethodSelect(MethodInvocation invocation) {\r
- return invocation.getMethod().getName().startsWith("select");\r
- }\r
-\r
- protected void setupOutsideSqlContextSelect(MethodInvocation invocation) {\r
- final Object[] args = invocation.getArguments();\r
- if (args.length != 4) {\r
- String msg = "Internal Error! OutsideSqlDao.selectXxx() should have 4 arguements: args.length=" + args.length;\r
- throw new IllegalStateException(msg);\r
- }\r
- final String path = getOutsideSqlPath(args);\r
- final Object pmb = getOutsideSqlParameterBean(args);\r
- final ${glOutsideSqlOptionName} option = getOutsideSqlOption(args);\r
- final Object resultTypeSpecification = args[3];\r
- final ${glOutsideSqlContextName} outsideSqlContext = new ${glOutsideSqlContextName}();\r
- outsideSqlContext.setDynamicBinding(option.isDynamicBinding());\r
- outsideSqlContext.setOffsetByCursorForcedly(option.isAutoPaging());\r
- outsideSqlContext.setLimitByCursorForcedly(option.isAutoPaging());\r
- outsideSqlContext.setOutsideSqlPath(path);\r
- outsideSqlContext.setParameterBean(pmb);\r
- outsideSqlContext.setResultTypeSpecification(resultTypeSpecification);\r
- outsideSqlContext.setMethodName(invocation.getMethod().getName());\r
- outsideSqlContext.setStatementConfig(option.getStatementConfig());\r
- outsideSqlContext.setTableDbName(option.getTableDbName());\r
- outsideSqlContext.setupBehaviorQueryPathIfNeeds();\r
- ${glOutsideSqlContextName}.setOutsideSqlContextOnThread(outsideSqlContext);\r
-\r
- // Set up fetchNarrowingBean.\r
- setupOutsideSqlFetchNarrowingBean(pmb, option);\r
- }\r
-\r
- // - - - - - - - - - - - -\r
- // Execute\r
- // - - - -\r
- protected void setupOutsideSqlContextExecute(MethodInvocation invocation) {\r
- final Object[] args = invocation.getArguments();\r
- if (args.length != 3) {\r
- String msg = "Internal Error! OutsideSqlDao.execute() should have 3 arguements: args.length=" + args.length;\r
- throw new IllegalStateException(msg);\r
- }\r
- final String path = getOutsideSqlPath(args);\r
- final Object pmb = getOutsideSqlParameterBean(args);\r
- final ${glOutsideSqlOptionName} option = getOutsideSqlOption(args);\r
- final ${glOutsideSqlContextName} outsideSqlContext = new ${glOutsideSqlContextName}();\r
- outsideSqlContext.setDynamicBinding(option.isDynamicBinding());\r
- outsideSqlContext.setOffsetByCursorForcedly(option.isAutoPaging());\r
- outsideSqlContext.setLimitByCursorForcedly(option.isAutoPaging());\r
- outsideSqlContext.setOutsideSqlPath(path);\r
- outsideSqlContext.setParameterBean(pmb);\r
- outsideSqlContext.setMethodName(invocation.getMethod().getName());\r
- outsideSqlContext.setStatementConfig(option.getStatementConfig());\r
- outsideSqlContext.setTableDbName(option.getTableDbName());\r
- outsideSqlContext.setupBehaviorQueryPathIfNeeds();\r
- ${glOutsideSqlContextName}.setOutsideSqlContextOnThread(outsideSqlContext);\r
-\r
- // Set up fetchNarrowingBean.\r
- setupOutsideSqlFetchNarrowingBean(pmb, option);\r
- }\r
-\r
- // - - - - - - - - - - - -\r
- // Common\r
- // - - -\r
- protected String getOutsideSqlPath(Object[] args) {\r
- return (String)args[0];\r
- }\r
- protected Object getOutsideSqlParameterBean(Object[] args) {\r
- return args[1];\r
- }\r
- protected ${glOutsideSqlOptionName} getOutsideSqlOption(Object[] args) {\r
- return (${glOutsideSqlOptionName})args[2];\r
- }\r
-\r
- protected void setupOutsideSqlFetchNarrowingBean(Object pmb, ${glOutsideSqlOptionName} option) {\r
- if (pmb == null || !${glFetchNarrowingBeanContextName}.isTheTypeFetchNarrowingBean(pmb.getClass())) {\r
- return;\r
- }\r
- final ${glFetchNarrowingBeanInterfaceName} fetchNarrowingBean = (${glFetchNarrowingBeanInterfaceName})pmb;\r
- if (option.isManualPaging()) {\r
- fetchNarrowingBean.ignoreFetchNarrowing();\r
- }\r
- ${glFetchNarrowingBeanContextName}.setFetchNarrowingBeanOnThread(fetchNarrowingBean);\r
- }\r
-\r
- // -----------------------------------------------------\r
- // ConditionBean\r
- // -------------\r
- /**\r
- * Pre-process conditionBean.\r
- * <p>\r
- * If this method is condition bean select target, make dynamic SQL.\r
- * Else nothing.\r
- * @param invocation Method invocation. (NotNull)\r
- * @return ConditionBean. (Nullable)\r
- */\r
- protected ${glConditionBeanInterfaceName} preprocessConditionBean(MethodInvocation invocation) {\r
- final ${glOutsideSqlContextName} outsideSqlContext = getOutsideSqlContext();\r
- if (outsideSqlContext != null) {\r
- return null; // Because it has already finished setting up fetchNarrowingBean for outsideSql here.\r
- }\r
- \r
- final ${glConditionBeanInterfaceName} cb;\r
- {\r
- final Object[] args = invocation.getArguments();\r
- if (args == null || args.length == 0) {\r
- return null;\r
- }\r
- final Object arg0 = args[0];\r
- if (arg0 == null) {\r
- return null;\r
- }\r
- if (!${glConditionBeanContextName}.isTheTypeConditionBean(arg0.getClass())) {// The argument is not condition-bean...\r
- if (${glFetchNarrowingBeanContextName}.isTheTypeFetchNarrowingBean(arg0.getClass()) && !isSelectCountIgnoreFetchScopeMethod(invocation)) {\r
- // Fetch-narrowing-bean and Not select count!\r
- ${glFetchNarrowingBeanContextName}.setFetchNarrowingBeanOnThread((${glFetchNarrowingBeanInterfaceName})arg0);\r
- }\r
- return null;\r
- }\r
- cb = (${glConditionBeanInterfaceName})arg0;\r
- }\r
-\r
- if (isSelectCountIgnoreFetchScopeMethod(invocation)) {\r
- cb.xsetupSelectCountIgnoreFetchScope();\r
- } else {\r
- ${glFetchNarrowingBeanContextName}.setFetchNarrowingBeanOnThread(cb);\r
- }\r
-\r
- ${glConditionBeanContextName}.setConditionBeanOnThread(cb);\r
- return cb;\r
- }\r
-\r
- /**\r
- * Post-process condition-bean.\r
- * @param invocation Method invocation. (NotNull)\r
- * @param cb Condition-bean. (Nullable)\r
- */\r
- protected void postprocessConditionBean(MethodInvocation invocation, ${glConditionBeanInterfaceName} cb) {\r
- if (cb == null) {\r
- return;\r
- }\r
- if (isSelectCountIgnoreFetchScopeMethod(invocation)) {\r
- cb.xafterCareSelectCountIgnoreFetchScope();\r
- }\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Clear Thread Local\r
- // ------------------\r
- protected void clearThreadLocal() {\r
- if (${glOutsideSqlContextName}.isExistOutsideSqlContextOnThread()) {\r
- ${glOutsideSqlContextName}.clearOutsideSqlContextOnThread();\r
- }\r
- if (${glFetchNarrowingBeanContextName}.isExistFetchNarrowingBeanOnThread()) {\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- // Because there is possible that fetch narrowing has been ignored for manualPaging of outsideSql.\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- ${glFetchNarrowingBeanContextName}.getFetchNarrowingBeanOnThread().restoreIgnoredFetchNarrowing();\r
-\r
- ${glFetchNarrowingBeanContextName}.clearFetchNarrowingBeanOnThread();\r
- }\r
- if (${glConditionBeanContextName}.isExistConditionBeanOnThread()) {\r
- ${glConditionBeanContextName}.clearConditionBeanOnThread();\r
- }\r
- if (${glInternalMapContextName}.isExistInternalMapContextOnThread()) {\r
- ${glInternalMapContextName}.clearInternalMapContextOnThread();\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Context Helper\r
- // ==============\r
- protected ${glOutsideSqlContextName} getOutsideSqlContext() {\r
- if (!${glOutsideSqlContextName}.isExistOutsideSqlContextOnThread()) {\r
- return null;\r
- }\r
- return ${glOutsideSqlContextName}.getOutsideSqlContextOnThread();\r
- }\r
- \r
- protected boolean isSpecifiedOutsideSql() {\r
- final ${glOutsideSqlContextName} outsideSqlContext = getOutsideSqlContext();\r
- return outsideSqlContext != null && outsideSqlContext.isSpecifiedOutsideSql();\r
- }\r
-\r
- protected void putObjectToMapContext(String key, Object value) {\r
- ${glInternalMapContextName}.setObject(key, value);\r
- }\r
-\r
- // ===================================================================================\r
- // Determination\r
- // =============\r
- /**\r
- * Is select count ignore-fetch-scope method?\r
- * @param invocation Method invocation. (NotNull)\r
- * @return Determination.\r
- */\r
- protected boolean isSelectCountIgnoreFetchScopeMethod(MethodInvocation invocation) {\r
- final String name = invocation.getMethod().getName();\r
- return name.startsWith("readCount") || name.startsWith("selectCount");\r
- }\r
-\r
- // ===================================================================================\r
- // General Helper\r
- // ==============\r
- /**\r
- * Is the method abstract?\r
- * @param method Method. (NotNull)\r
- * @return Determination. (NotNull)\r
- */\r
- public boolean isAbstract(Method method) {\r
- final int mod = method.getModifiers();\r
- return Modifier.isAbstract(mod);\r
- }\r
-\r
- /**\r
- * Get the value of line separator.\r
- * @return The value of line separator. (NotNull)\r
- */\r
- protected String getLineSeparator() {\r
- return System.getProperty("line.separator");\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2Dao};\r
-\r
-import ${glPackageBaseCommonJdbc}.${glLatestSqlProviderName};\r
-import ${glPackageBaseCommonS2DaoInternalSqlLog}.${glInternalSqlLogRegistry};\r
-\r
-/**\r
- * The provider of latest SQL as S2Dao. <br />\r
- * This instance should be singleton. <br />\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glDaoLatestSqlProvider} implements ${glLatestSqlProviderName} {\r
-\r
- /**\r
- * The implementation.\r
- * \r
- * @return Display SQL. (Nullable: If it was not found, returns null.)\r
- */\r
- public String getDisplaySql() {\r
- return getLastCompleteSql();\r
- }\r
-\r
- protected String getLastCompleteSql() {\r
- try {\r
- return ${glInternalSqlLogRegistry}.peekCompleteSql();\r
- } catch (RuntimeException ignored) {\r
- return null;\r
- }\r
- }\r
- \r
- public void clearSqlCache() {\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2Dao};\r
-\r
-#if ($database.isAvailableGenerics())\r
-\r
-import java.lang.reflect.ParameterizedType;\r
-import java.lang.reflect.Type;\r
-#end\r
-\r
-import java.lang.reflect.Method;\r
-import java.sql.DatabaseMetaData;\r
-import java.sql.ResultSet;\r
-import java.sql.PreparedStatement;\r
-import java.sql.SQLException;\r
-import java.util.List;\r
-import java.util.ArrayList;\r
-import java.util.Map;\r
-import java.util.HashMap;\r
-import java.util.Set;\r
-import java.util.Stack;\r
-import java.util.Iterator;\r
-\r
-import org.seasar.dao.BeanEnhancer;\r
-import org.seasar.dao.BeanMetaData;\r
-import org.seasar.dao.BeanMetaDataFactory;\r
-\r
-import org.seasar.dao.Dbms;\r
-#if ($database.isVersionAfter1045())\r
-import org.seasar.dao.InjectDaoClassSupport;\r
-#end\r
-import org.seasar.dao.RelationPropertyType;\r
-import org.seasar.dao.RelationRowCreator;\r
-import org.seasar.dao.SqlCommand;\r
-import org.seasar.dao.impl.BeanMetaDataImpl;\r
-import org.seasar.dao.impl.DaoMetaDataImpl;\r
-import org.seasar.dao.impl.SelectDynamicCommand;\r
-import org.seasar.dao.impl.UpdateAutoStaticCommand;\r
-import org.seasar.dao.impl.UpdateDynamicCommand;\r
-\r
-import org.seasar.framework.beans.MethodNotFoundRuntimeException;\r
-import org.seasar.extension.jdbc.PropertyType;\r
-import org.seasar.extension.jdbc.ResultSetFactory;\r
-import org.seasar.extension.jdbc.ResultSetHandler;\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-import org.seasar.extension.jdbc.impl.ConfigurableStatementFactory;\r
-import org.seasar.extension.jdbc.types.ValueTypes;\r
-import org.seasar.extension.jdbc.ValueType;\r
-import org.seasar.framework.beans.BeanDesc;\r
-\r
-\r
-import ${glPackageBaseCommon}.${glEntityInterfaceName};\r
-import ${glPackageBaseCommon}.${glInternalMapContextName};\r
-import ${glPackageBaseCommonAnnotation}.${glOutsideSqlAnnotation};\r
-import ${glPackageBaseCommonCBean}.${glConditionBeanInterfaceName};\r
-import ${glPackageBaseCommonCBean}.${glConditionBeanContextName};\r
-import ${glPackageBaseCommonCBeanOutsidesql}.${glOutsideSqlContextName};\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInterfaceName};\r
-import ${glPackageBaseCommonJdbc}.${glCursorHandlerName};\r
-import ${glPackageBaseCommonJdbc}.${glStatementConfig};\r
-import ${glPackageBaseCommonS2DaoInternalSqlCommand}.${glInternalDeleteAutoStaticCommand};\r
-import ${glPackageBaseCommonS2DaoInternalSqlCommand}.${glInternalDeleteBatchAutoStaticCommand};\r
-import ${glPackageBaseCommonS2DaoInternalSqlCommand}.${glInternalDeleteQueryAutoDynamicCommand};\r
-import ${glPackageBaseCommonS2DaoInternalSqlCommand}.${glInternalInsertAutoDynamicCommand};\r
-import ${glPackageBaseCommonS2DaoInternalSqlCommand}.${glInternalInsertBatchAutoStaticCommand};\r
-import ${glPackageBaseCommonS2DaoInternalSqlCommand}.${glInternalUpdateAutoDynamicCommand};\r
-import ${glPackageBaseCommonS2DaoInternalSqlCommand}.${glInternalUpdateBatchAutoStaticCommand};\r
-import ${glPackageBaseCommonS2DaoInternalSqlCommand}.${glInternalUpdateModifiedOnlyCommand};\r
-\r
-/**\r
- * DaoMetaDataImpl for DBFlute.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public class ${glDaoMetaDataExtension} extends DaoMetaDataImpl {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- /** Log instance. */\r
- private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory.getLog(${glDaoMetaDataExtension}.class);\r
- \r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- /** Bean enhancer. */\r
- protected BeanEnhancer beanEnhancer;\r
-\r
-#if ($database.isVersionAfter1046())\r
- /** The factory of annotation reader. */\r
- protected org.seasar.dao.AnnotationReaderFactory annotationReaderFactory;\r
-#end\r
-\r
- /** The config of dbflute. {Since DBFlute-0.6.2} */\r
- protected ${glStatementConfig} _defaultStatementConfig;\r
- \r
- /** The lock monitor of method initialization. */\r
- protected Object _methodInitializationLockMonitor = new Object();\r
- \r
- /** The determination of internal debug. {Since DBFlute-0.6.2} */\r
- protected boolean _internalDebug;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glDaoMetaDataExtension}() {\r
- }\r
-\r
- // ===================================================================================\r
- // OutsideSql Check Override\r
- // =========================\r
- protected void setupMethodByAuto(Method method) {\r
- final ${glOutsideSqlAnnotation} outsideSql = method.getAnnotation(${glOutsideSqlAnnotation}.class);\r
- if (outsideSql != null) {\r
- String msg = "This method '" + method.getName() + "()' should use Outside Sql but the file was not found!";\r
- msg = msg + " Expected sql file name is '" + method.getDeclaringClass().getSimpleName() + "_" + method.getName() + ".sql'";\r
- throw new IllegalStateException(msg);\r
- }\r
- super.setupMethodByAuto(method);\r
- }\r
-\r
-#if ($database.isVersionAfter1046())\r
- // ===================================================================================\r
- // ResultSetHandler Override\r
- // =========================\r
- @Override\r
- protected ResultSetHandler createResultSetHandler(Method method) {\r
- return this.resultSetHandlerFactory.getResultSetHandler(daoAnnotationReader, beanMetaData, method);\r
- }\r
-\r
- protected ResultSetHandler createResultSetHandler(BeanMetaData specifiedBeanMetaData, Method method) {\r
- return this.resultSetHandlerFactory.getResultSetHandler(daoAnnotationReader, specifiedBeanMetaData, method);\r
- }\r
-#else\r
-#if ($database.isVersionAfter1043())\r
- // ===================================================================================\r
- // ResultSetHandlerFactory Override\r
- // ================================\r
- @Override\r
- protected org.seasar.dao.ResultSetHandlerFactory createResultSetHandlerFactory() {\r
- return new ResultSetHandlerFactoryExtension(beanMetaData, annotationReader, dtoMetaDataFactory);\r
- }\r
-#else\r
-\r
- // ===================================================================================\r
- // ResultSetHandlerFactory Override\r
- // ================================\r
- @Override\r
- protected org.seasar.dao.ResultSetHandlerFactory createResultSetHandlerFactory(final BeanMetaData beanMetaData) {\r
- return new ResultSetHandlerFactoryExtension(beanMetaData);\r
- }\r
-#end\r
-#end\r
-\r
- // ===================================================================================\r
- // SqlCommand Setup Override\r
- // =========================\r
- @Override\r
- protected void setupSqlCommand() {\r
- // Do nothing for lazy initializing!\r
- }\r
-\r
- @Override\r
- public SqlCommand getSqlCommand(String methodName) throws MethodNotFoundRuntimeException {\r
- SqlCommand cmd = (SqlCommand) sqlCommands.get(methodName);\r
- if (cmd != null) {\r
- return cmd;\r
- }\r
- synchronized (_methodInitializationLockMonitor) {\r
- cmd = (SqlCommand) sqlCommands.get(methodName);\r
- if (cmd != null) {\r
- if (_log.isDebugEnabled()) {\r
- _log.debug("...Getting sqlCommand as cache because the previous thread have already initilized.");\r
- }\r
- return cmd;\r
- }\r
- if (_log.isDebugEnabled()) {\r
- _log.debug("...Initializing sqlCommand.");\r
- }\r
- cmd = initializeSqlCommand(methodName);\r
- }\r
- return cmd;\r
- }\r
-\r
- protected SqlCommand initializeSqlCommand(String methodName) throws MethodNotFoundRuntimeException {\r
- if (${glOutsideSqlContextName}.isExistOutsideSqlContextOnThread()) {\r
- final ${glOutsideSqlContextName} outsideSqlContext = ${glOutsideSqlContextName}.getOutsideSqlContextOnThread();\r
- if (outsideSqlContext != null && outsideSqlContext.isSpecifiedOutsideSql()) {\r
- return initializeSpecifiedOutsideSqlCommand(methodName, outsideSqlContext);\r
- }\r
- }\r
- final Method[] methods = daoBeanDesc.getMethods(methodName);\r
- if (methods.length == 1 && org.seasar.framework.util.MethodUtil.isAbstract(methods[0])) {\r
- setupMethod(methods[0]);\r
- }\r
- final SqlCommand cmd = (SqlCommand) sqlCommands.get(methodName);\r
- if (cmd != null) {\r
- return cmd;\r
- }\r
- throw new MethodNotFoundRuntimeException(daoClass, methodName, null);\r
- }\r
-\r
- protected SqlCommand initializeSpecifiedOutsideSqlCommand(String sqlCommandKey, ${glOutsideSqlContextName} outsideSqlContext) throws MethodNotFoundRuntimeException {\r
- final Method[] methods = daoBeanDesc.getMethods(outsideSqlContext.getMethodName());// By real method name.\r
- if (methods.length == 1 && org.seasar.framework.util.MethodUtil.isAbstract(methods[0])) {\r
- final Method method = methods[0];\r
- if (isOutsideSqlDaoMethodSelect(method)) {\r
- setupSpecifiedOutsideSqlSelectCommand(sqlCommandKey, method, outsideSqlContext);\r
- } else {\r
- setupSpecifiedOutsideSqlExecuteCommand(sqlCommandKey, method, outsideSqlContext);\r
- }\r
- }\r
- final SqlCommand cmd = (SqlCommand) sqlCommands.get(sqlCommandKey);\r
- if (cmd != null) {\r
- return cmd;\r
- }\r
- String msg = "Internal Error! The methodName is not found:";\r
- msg = msg + " sqlCommandKey=" + sqlCommandKey;\r
- msg = msg + " sqlCommands=" + sqlCommands;\r
- throw new IllegalStateException(msg);\r
- }\r
-\r
- protected boolean isOutsideSqlDaoMethodSelect(Method method) {\r
- return method.getName().startsWith("select");\r
- }\r
-\r
- // ===================================================================================\r
- // Customize SelectDynamicCommand Creation\r
- // =======================================\r
- /**\r
- * Create customize select dynamic command.\r
- * \r
- * @param handler The handler of result set. (NotNull)\r
- * @return Customize select dynamic command. (NotNull)\r
- */\r
- protected ${glSelectDynamicCommand} createCustomizeSelectDynamicCommand(org.seasar.extension.jdbc.ResultSetHandler handler) {\r
- final ResultSetFactory customizeResultSetFactory = createCustomizeResultSetFactory();\r
- final StatementFactory customizeStatementFactory = createCustomizeStatememtFactory();\r
- return new ${glSelectDynamicCommand}(dataSource, customizeStatementFactory, handler, customizeResultSetFactory);\r
- }\r
- \r
- protected ResultSetFactory createCustomizeResultSetFactory() {\r
- return new ${glPackageBaseCommonS2Dao}.${glFetchNarrowingResultSetFactory}();\r
- }\r
- \r
- protected StatementFactory createCustomizeStatememtFactory() {\r
- return new StatementFactory() {\r
- public PreparedStatement createPreparedStatement(java.sql.Connection con, String sql) {\r
- try {\r
- final ${glStatementConfig} config = findStatementConfigOnThread();;\r
- final int resultSetType;\r
- if (config != null && config.hasResultSetType()) {\r
- resultSetType = config.getResultSetType();\r
- } else if (_defaultStatementConfig != null && _defaultStatementConfig.hasResultSetType()) {\r
- resultSetType = _defaultStatementConfig.getResultSetType();\r
- } else {\r
- resultSetType = ${database.statementResultSetType};\r
- }\r
- final int resultSetConcurrency = ${database.statementResultSetConcurrency};\r
- if (_internalDebug) {\r
- _log.debug("...Creating prepareStatement(sql, " + resultSetType + ", " + resultSetConcurrency + ")");\r
- }\r
- final PreparedStatement ps = con.prepareStatement(sql, resultSetType, resultSetConcurrency);\r
- if (config != null && config.hasStatementOptions()) {\r
- if (_internalDebug) {\r
- _log.debug("...Setting statement config as request:" + config);\r
- }\r
- reflectStatementOptions(config, ps);\r
- } else {\r
- reflectDefaultOptionsToStatementIfNeeds(ps);\r
- }\r
- return ps;\r
- } catch (java.sql.SQLException e) {\r
- throw new org.seasar.framework.exception.SQLRuntimeException(e);\r
- }\r
- }\r
- public java.sql.CallableStatement createCallableStatement(java.sql.Connection con, String sql) {\r
- return org.seasar.extension.jdbc.util.ConnectionUtil.prepareCall(con, sql);\r
- }\r
- protected ${glStatementConfig} findStatementConfigOnThread() {\r
- final ${glStatementConfig} config;\r
- if (${glConditionBeanContextName}.isExistConditionBeanOnThread()) {\r
- final ${glConditionBeanInterfaceName} cb = ${glConditionBeanContextName}.getConditionBeanOnThread();\r
- config = cb.getStatementConfig();\r
- } else if (${glOutsideSqlContextName}.isExistOutsideSqlContextOnThread()) {\r
- final ${glOutsideSqlContextName} context = ${glOutsideSqlContextName}.getOutsideSqlContextOnThread();\r
- config = context.getStatementConfig();\r
- } else {\r
- config = null;\r
- }\r
- return config;\r
- }\r
- protected void reflectDefaultOptionsToStatementIfNeeds(PreparedStatement ps) {\r
- if (_defaultStatementConfig != null && _defaultStatementConfig.hasStatementOptions()) {\r
- if (_internalDebug) {\r
- _log.debug("...Setting statement config as default:" + _defaultStatementConfig);\r
- }\r
- reflectStatementOptions(_defaultStatementConfig, ps);\r
- return;\r
- }\r
- if (!(statementFactory instanceof ConfigurableStatementFactory)) {\r
- return;\r
- }\r
- final ConfigurableStatementFactory confSf = (ConfigurableStatementFactory)statementFactory;\r
- final Class confSfType = ConfigurableStatementFactory.class;\r
- final String confMethodName = "configurePreparedStatement";\r
- final Class[] confMethodParameterType = new Class[]{PreparedStatement.class};\r
- try {\r
- final Method confMethod = confSfType.getDeclaredMethod(confMethodName, confMethodParameterType);\r
- confMethod.setAccessible(true);// Because the method is protected!\r
- if (_internalDebug) {\r
- _log.debug("...Invoking configurableStatementFactory." + confMethodName + "(ps)");\r
- }\r
- confMethod.invoke(confSf, new Object[]{ps});\r
- return;\r
- } catch (Exception e) {\r
- String msg = "The configuration of statement factory threw exception:";\r
- msg = msg + " class=" + confSfType + " method=" + confMethodName + " parameter=java.sql.PreparedStatement";\r
- throw new RuntimeException(msg, e);\r
- }\r
- }\r
- protected void reflectStatementOptions(${glStatementConfig} config, PreparedStatement ps) {\r
- try {\r
- if (config.hasQueryTimeout()) {\r
- ps.setQueryTimeout(config.getQueryTimeout());\r
- }\r
- if (config.hasFetchSize()) {\r
- ps.setFetchSize(config.getFetchSize());\r
- }\r
- if (config.hasMaxRows()) {\r
- ps.setMaxRows(config.getMaxRows());\r
- }\r
- } catch (SQLException e) {\r
- throw new org.seasar.framework.exception.SQLRuntimeException(e);\r
- }\r
- }\r
- };\r
- }\r
- \r
-\r
- // ===================================================================================\r
- // ConditionBean Override\r
- // ======================\r
- @Override\r
- protected void setupSelectMethodByAuto(final Method method) {\r
- final ResultSetHandler handler = createResultSetHandler(method);\r
-#if ($database.isVersionAfter1046())\r
- final String[] argNames = daoAnnotationReader.getArgNames(method);\r
- final String query = daoAnnotationReader.getQuery(method);\r
-#else\r
- final org.seasar.dao.DaoAnnotationReader daoAnnotationReader = annotationReaderFactory.createDaoAnnotationReader(daoBeanDesc);\r
- final String[] argNames = daoAnnotationReader.getArgNames(method);\r
- final String query = daoAnnotationReader.getQuery(method);\r
-#end\r
- final SqlCommand cmd;\r
- if (query != null && !startsWithOrderBy(query)) {\r
- cmd = setupInternalQuerySelectMethodByAuto(method, handler, argNames, query);\r
- } else {\r
- cmd = setupInternalNonQuerySelectMethodByAuto(method, handler, argNames, query);\r
- }\r
- putSqlCommand(method.getName(), cmd);\r
- }\r
-\r
- protected SelectDynamicCommand setupInternalQuerySelectMethodByAuto(final Method method\r
- , final ResultSetHandler handler\r
- , final String[] argNames\r
- , final String query) {\r
- final Class[] types = method.getParameterTypes();\r
- final SelectDynamicCommand cmd = createSelectDynamicCommand(handler, query);\r
- cmd.setArgNames(argNames);\r
- cmd.setArgTypes(types);\r
- return cmd;\r
- }\r
-\r
- protected SqlCommand setupInternalNonQuerySelectMethodByAuto(final Method method\r
- , final ResultSetHandler handler\r
- , final String[] argNames\r
- , final String query) {\r
- if (isAutoSelectSqlByDto(method, argNames)) {\r
- return setupInternalNonQuerySelectMethodByDto(method, handler, argNames, query);\r
- } else {\r
- return setupNonQuerySelectMethodByArgs(method, handler, argNames, query);\r
- }\r
- }\r
- \r
- protected SqlCommand setupInternalNonQuerySelectMethodByDto(Method method\r
- , ResultSetHandler handler\r
- , String[] argNames\r
- , String query) {\r
- Class[] types = method.getParameterTypes();\r
- Class clazz = types[0];\r
- // /----------------------------------------------------- [MyExtension]\r
- if (!${glConditionBeanContextName}.isTheTypeConditionBean(clazz)) {\r
- return super.setupNonQuerySelectMethodByDto(method, handler, argNames, query);\r
- }\r
- argNames = new String[] { "dto" };\r
- final ${glSelectDynamicCommand} cmd = createCustomizeSelectDynamicCommand(handler);\r
- cmd.setArgNames(argNames);\r
- cmd.setArgTypes(types);\r
- // -----------/\r
- return cmd;\r
- }\r
-\r
- // ===================================================================================\r
- // Insert and Update and Delete By Auto Override\r
- // =============================================\r
- // -----------------------------------------------------\r
- // Insert\r
- // ------\r
- @Override\r
- protected void setupInsertMethodByAuto(final Method method) {\r
- checkAutoUpdateMethod(method);\r
- final String[] propertyNames = getPersistentPropertyNames(method);\r
- final SqlCommand command;\r
- if (isUpdateSignatureForBean(method)) {\r
- final ${glInternalInsertAutoDynamicCommand} cmd = new ${glInternalInsertAutoDynamicCommand}();\r
- cmd.setBeanMetaData(getBeanMetaData());\r
- cmd.setDataSource(dataSource);\r
- \r
- // It is unnecessary for DBFlute!\r
- // cmd.setNotSingleRowUpdatedExceptionClass(getNotSingleRowUpdatedExceptionClass(method));\r
- \r
- cmd.setPropertyNames(propertyNames);\r
- cmd.setStatementFactory(statementFactory);\r
- cmd.setCheckSingleRowUpdate(isCheckSingleRowUpdate(method));\r
- command = cmd;\r
- } else {\r
- boolean returningRows = false;\r
- if (int[].class.isAssignableFrom(method.getReturnType())) {\r
- returningRows = true;\r
- }\r
- final ${glInternalInsertBatchAutoStaticCommand} cmd = new ${glInternalInsertBatchAutoStaticCommand}(\r
- dataSource, statementFactory, getBeanMetaData(),\r
- propertyNames, returningRows);\r
- command = cmd;\r
- }\r
- putSqlCommand(method.getName(), command);\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Update\r
- // ------\r
- @Override\r
- protected void setupUpdateMethodByAuto(final Method method) {\r
- checkAutoUpdateMethod(method);\r
- final String[] propertyNames = getPersistentPropertyNames(method);\r
- SqlCommand cmd;\r
- if (isUpdateSignatureForBean(method)) {\r
- if (isUnlessNull(method.getName())) {\r
- cmd = createInternalUpdateAutoDynamicCommand(method, propertyNames);\r
- } else if (isModifiedOnly(method.getName())) {\r
- cmd = createInternalUpdateModifiedOnlyCommand(method, propertyNames);\r
- } else {\r
- cmd = createInternalUpdateAutoStaticCommand(method, propertyNames);\r
- }\r
- } else {\r
- boolean returningRows = false;\r
- if (int[].class.isAssignableFrom(method.getReturnType())) {\r
- returningRows = true;\r
- }\r
- cmd = createInternalUpdateBatchAutoStaticCommand(method, propertyNames, returningRows);\r
- }\r
- putSqlCommand(method.getName(), cmd);\r
- }\r
-\r
- protected UpdateAutoStaticCommand createInternalUpdateAutoStaticCommand(final Method method, final String[] propertyNames) {\r
- UpdateAutoStaticCommand cmd = new UpdateAutoStaticCommand(dataSource, statementFactory, beanMetaData, propertyNames);\r
- return cmd;\r
- }\r
- \r
- protected ${glInternalUpdateAutoDynamicCommand} createInternalUpdateAutoDynamicCommand(Method method, String[] propertyNames) {\r
- final ${glInternalUpdateAutoDynamicCommand} cmd = newUpdateAutoDynamicCommand(dataSource, statementFactory);\r
- cmd.setBeanMetaData(createBeanMetaData4UpdateDeleteByAuto(method));// Extension Point!\r
- cmd.setPropertyNames(propertyNames);\r
- \r
- // It is unnecessary for DBFlute!\r
- // cmd.setNotSingleRowUpdatedExceptionClass(getNotSingleRowUpdatedExceptionClass(method));\r
- \r
- return cmd;\r
- }\r
-\r
- protected ${glInternalUpdateAutoDynamicCommand} newUpdateAutoDynamicCommand(javax.sql.DataSource ds, org.seasar.extension.jdbc.StatementFactory sf) {\r
- return new ${glInternalUpdateAutoDynamicCommand}(ds, sf);\r
- }\r
-\r
- protected ${glInternalUpdateModifiedOnlyCommand} createInternalUpdateModifiedOnlyCommand(final Method method, final String[] propertyNames) {\r
- final ${glInternalUpdateModifiedOnlyCommand} uac = newInternalUpdateModifiedOnlyCommand(dataSource, statementFactory);\r
- uac.setBeanMetaData(createBeanMetaData4UpdateDeleteByAuto(method));// Extension Point!\r
- uac.setPropertyNames(propertyNames);\r
- \r
- // It is unnecessary for DBFlute!\r
- // uac.setNotSingleRowUpdatedExceptionClass(getNotSingleRowUpdatedExceptionClass(method));\r
- \r
- return uac;\r
- }\r
-\r
- protected ${glInternalUpdateModifiedOnlyCommand} newInternalUpdateModifiedOnlyCommand(javax.sql.DataSource ds, org.seasar.extension.jdbc.StatementFactory sf) {\r
- return new ${glInternalUpdateModifiedOnlyCommand}(ds, sf);\r
- }\r
-\r
- protected ${glInternalUpdateBatchAutoStaticCommand} createInternalUpdateBatchAutoStaticCommand(final Method method, final String[] propertyNames, boolean returningRows) {\r
- return new ${glInternalUpdateBatchAutoStaticCommand}(dataSource, statementFactory, createBeanMetaData4UpdateDeleteByAuto(method), propertyNames, returningRows) {\r
- @Override\r
- public Object execute(Object[] args) {\r
- final Object result = super.execute(args);\r
- handleBatchUpdateResultWithOptimisticLock(args, result);\r
- return result;\r
- }\r
- };\r
- }\r
-\r
- protected void handleBatchUpdateResultWithOptimisticLock(Object[] args, Object result) {\r
- if (args.length == 0) {\r
- return;// for Safety!\r
- }\r
- if (result instanceof int[]) {\r
- final int[] updatedCountArray = (int[])result;\r
- int index = 0;\r
- for (int updatedCount : updatedCountArray) {\r
- if (updatedCount == 0) {\r
- if (args.length <= index) {\r
- return;// for Safety!\r
- }\r
- throw new ${glPackageBaseCommonException}.${glEntityAlreadyUpdatedException}(args[index], updatedCount);\r
- }\r
- }\r
- }\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Delete\r
- // ------\r
- @Override\r
- protected void setupDeleteMethodByAuto(final Method method) {\r
- if (isFirstArgumentConditionBean(method)) {\r
- final SqlCommand cmd = new ${glInternalDeleteQueryAutoDynamicCommand}(dataSource, statementFactory);\r
- putSqlCommand(method.getName(), cmd);\r
- return;\r
- }\r
- checkAutoUpdateMethod(method);\r
- final String[] propertyNames = getPersistentPropertyNames(method);\r
- final SqlCommand cmd;\r
- if (isUpdateSignatureForBean(method)) {\r
- cmd = createInternalDeleteAutoStaticCommand(method, propertyNames);\r
- } else {\r
- boolean returningRows = false;\r
- if (int[].class.isAssignableFrom(method.getReturnType())) {\r
- returningRows = true;\r
- }\r
- cmd = createInternalDeleteBatchAutoStaticCommand(method, propertyNames, returningRows);\r
- }\r
- putSqlCommand(method.getName(), cmd);\r
- }\r
-\r
- protected ${glInternalDeleteAutoStaticCommand} createInternalDeleteAutoStaticCommand(final Method method, final String[] propertyNames) {\r
- return new ${glInternalDeleteAutoStaticCommand}(dataSource, statementFactory, createBeanMetaData4UpdateDeleteByAuto(method), propertyNames);\r
- }\r
-\r
- protected ${glInternalDeleteBatchAutoStaticCommand} createInternalDeleteBatchAutoStaticCommand(final Method method, final String[] propertyNames, boolean returningRows) {\r
- return new ${glInternalDeleteBatchAutoStaticCommand}(dataSource, statementFactory, createBeanMetaData4UpdateDeleteByAuto(method), propertyNames, returningRows) {\r
- @Override\r
- public Object execute(Object[] args) {\r
- final Object result = super.execute(args);\r
- handleBatchUpdateResultWithOptimisticLock(args, result);\r
- return result;\r
- }\r
- };\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Common Helper\r
- // -------------\r
- protected BeanMetaData createBeanMetaData4UpdateDeleteByAuto(Method method) {\r
- if (method.getName().contains("Nonstrict")) {\r
- return createNonConcurrencyBmdFactory().createBeanMetaData(getBeanClass());\r
- } else {\r
- return getBeanMetaData();\r
- }\r
- }\r
-\r
- protected BeanMetaDataFactory createNonConcurrencyBmdFactory() {\r
- final ${glBeanMetaDataFactoryImpl} nonConcurrencyBmdFactory = new ${glBeanMetaDataFactoryImpl}() {\r
- protected BeanMetaDataImpl createBeanMetaDataImpl() {\r
- return new BeanMetaDataImpl() {\r
- public boolean hasVersionNoPropertyType() {\r
- return false;\r
- }\r
-\r
- public boolean hasTimestampPropertyType() {\r
- return false;\r
- }\r
- };\r
- }\r
- };\r
- nonConcurrencyBmdFactory.setAnnotationReaderFactory(this.annotationReaderFactory);\r
- nonConcurrencyBmdFactory.setValueTypeFactory(this.valueTypeFactory);\r
- nonConcurrencyBmdFactory.setDataSource(this.dataSource);\r
- nonConcurrencyBmdFactory.setDaoNamingConvention(this.daoNamingConvention);\r
- nonConcurrencyBmdFactory.setBeanEnhancer(this.beanEnhancer);\r
- return nonConcurrencyBmdFactory;\r
- }\r
-\r
- protected boolean isFirstArgumentConditionBean(final Method method) {\r
- final Class<?>[] parameterTypes = method.getParameterTypes();\r
- return parameterTypes.length > 0 && ${glConditionBeanInterfaceName}.class.isAssignableFrom(parameterTypes[0]);\r
- }\r
- \r
- // ===================================================================================\r
- // OutsideSql Override\r
- // ===================\r
- // -----------------------------------------------------\r
- // Normal OutsideSql\r
- // -----------------\r
- @Override\r
- protected void setupSelectMethodByManual(Method method, String sql) {\r
- final Class<?>[] parameterTypes = method.getParameterTypes();\r
-#if ($database.isVersionAfter1046())\r
- final String[] argNames = this.daoAnnotationReader.getArgNames(method);\r
-#else\r
- final String[] argNames = this.annotationReader.getArgNames(method);\r
-#end\r
- final Class<?>[] argTypes;\r
- if (parameterTypes != null && parameterTypes.length > 0\r
- && ${glCursorHandlerName}.class.isAssignableFrom(parameterTypes[parameterTypes.length-1])) {\r
- argTypes = new Class<?>[parameterTypes.length - 1];\r
- for (int i=0; i < parameterTypes.length - 1; i++) {\r
- argTypes[i] = parameterTypes[i];\r
- }\r
- } else {\r
- argTypes = parameterTypes;\r
- }\r
- final BeanMetaData myBeanMetaData = getOutsideSqlBeanMetaData(method);\r
- registerSqlCommand(method.getName(), method, sql, argNames, argTypes, myBeanMetaData);\r
- }\r
-\r
- protected BeanMetaData getOutsideSqlBeanMetaData(Method method) {\r
- final Class beanClass4SelectMethodByManual = getOutsideSqlDefaultBeanClass(method);\r
- if (beanClass4SelectMethodByManual.equals(getBeanClass())) {\r
- return getBeanMetaData();\r
- }\r
- return createOutsideSqlCustomizeBeanMetaDataFactory().createBeanMetaData(getOutsideSqlDefaultBeanClass(method));\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Specified OutsideSql\r
- // --------------------\r
- // - - - - - - - - - - - -\r
- // Select\r
- // - - -\r
- protected void setupSpecifiedOutsideSqlSelectCommand(String sqlCommandKey, Method method, ${glOutsideSqlContextName} outsideSqlContext) {\r
- // - - - - - - - - - - - - - - - - - - - - - - -\r
- // The attribute of Specified-OutsideSqlContext.\r
- // - - - - - - - - - - - - - - - - - - - - - - -\r
- final String sql = outsideSqlContext.readFilteredOutsideSql(getSqlFileEncoding(), dbms.getSuffix());\r
- final Object pmb = outsideSqlContext.getParameterBean();\r
- final Object resultTypeSpecification = outsideSqlContext.getResultTypeSpecification();\r
-\r
- // - - - - - - - - - - - - - - -\r
- // The attribute of SqlCommand.\r
- // - - - - - - - - - - - - - - -\r
- final String[] argNames = (pmb != null ? new String[] {"pmb"} : new String[]{});\r
- final Class<?>[] argTypes = (pmb != null ? new Class<?>[] {pmb.getClass()} : new Class<?>[]{});\r
-\r
- // - - - - - - - - - - - - - - - -\r
- // Create customized BeanMetaData.\r
- // - - - - - - - - - - - - - - - -\r
- final Class<?> lastestArguementType = method.getParameterTypes()[method.getParameterTypes().length-1];\r
- final ResultSetHandler myResultSetHandler;\r
- if (Class.class.isAssignableFrom(lastestArguementType)) {\r
- // - - - - - - - -\r
- // EntityHandling\r
- // - - - - - - - -\r
- final Class<?> customizeEntityType = (Class<?>)resultTypeSpecification;\r
- final BeanMetaData myBeanMetaData = createSpecifiedOutsideSqlCustomizeBeanMetaData(customizeEntityType);\r
- if (List.class.isAssignableFrom(method.getReturnType())) {\r
- myResultSetHandler = createSpecifiedOutsideSqlCustomizeBeanListResultSetHandler(myBeanMetaData, customizeEntityType);\r
- } else {\r
- throw new UnsupportedOperationException("The return type of method is unsupported: method.getReturnType()=" + method.getReturnType());\r
- // myResultSetHandler = createSpecifiedOutsideSqlCustomizeBeanResultSetHandler(myBeanMetaData, customizeEntityType);\r
- }\r
- } else if (${glCursorHandlerName}.class.isAssignableFrom(lastestArguementType)) {\r
- // - - - - - - - -\r
- // CursorHandling\r
- // - - - - - - - -\r
- final BeanMetaData myBeanMetaData = createSpecifiedOutsideSqlCursorBeanMetaData(method);\r
- myResultSetHandler = createSpecifiedOutsideSqlCursorResultSetHandler(myBeanMetaData);\r
- } else {\r
- String msg = "The lastestArguementType is unsupported:";\r
- msg = msg + " lastestArguementType=" + lastestArguementType;\r
- msg = msg + " method=" + method;\r
- throw new IllegalStateException(msg);\r
- }\r
-\r
- // - - - - - - - - - - -\r
- // Register Sql-Command.\r
- // - - - - - - - - - - -\r
- registerSqlCommand(sqlCommandKey, method, sql, argNames, argTypes, myResultSetHandler);\r
- }\r
-\r
- protected BeanMetaData createSpecifiedOutsideSqlCustomizeBeanMetaData(Class clazz) {\r
- return createOutsideSqlCustomizeBeanMetaDataFactory().createBeanMetaData(clazz);\r
- }\r
-\r
-// [Unsupported]\r
-// The return type of method is unsupported!\r
-// Because the method of outside-sql that selects one entity is unnecessary!\r
-//\r
-// /**\r
-// * Create the handler of result set of specified outside-sql for customize bean.\r
-// * \r
-// * @param specifiedBeanMetaData Specified bean meta data. (NotNull)\r
-// * @param customizeEntityType The type of customize entity. (NotNull)\r
-// * @return The handler of result set. (NotNull)\r
-// */\r
-// protected ResultSetHandler createSpecifiedOutsideSqlCustomizeBeanResultSetHandler(BeanMetaData specifiedBeanMetaData, Class<?> customizeEntityType) {\r
-// final ValueType valueType = ValueTypes.getValueType(customizeEntityType);\r
-// if (valueType == null || !valueType.equals(ValueTypes.OBJECT)) {\r
-// return new org.seasar.extension.jdbc.impl.ObjectResultSetHandler();\r
-// }\r
-// return new org.seasar.dao.impl.BeanMetaDataResultSetHandler(specifiedBeanMetaData, new RelationRowCreatorExtension());\r
-// }\r
-\r
- /**\r
- * Create the handler of result set of specified outside-sql for the list of customize bean.\r
- * \r
- * @param specifiedBeanMetaData Specified bean meta data. (NotNull)\r
- * @param customizeEntityType The type of customize entity. (NotNull)\r
- * @return The handler of result set. (NotNull)\r
- */\r
- protected ResultSetHandler createSpecifiedOutsideSqlCustomizeBeanListResultSetHandler(BeanMetaData specifiedBeanMetaData, Class<?> customizeEntityType) {\r
- final ValueType valueType = ValueTypes.getValueType(customizeEntityType);\r
- if (valueType == null || !valueType.equals(ValueTypes.OBJECT)) {\r
- return new InternalObjectListResultSetHandler(valueType);\r
- }\r
- return new org.seasar.dao.impl.BeanListMetaDataResultSetHandler(specifiedBeanMetaData, new RelationRowCreatorExtension());\r
- }\r
-\r
- protected class InternalObjectListResultSetHandler implements ResultSetHandler {\r
- private ValueType valueType;\r
- public InternalObjectListResultSetHandler(ValueType valueType) {\r
- this.valueType = valueType;\r
- }\r
- public Object handle(ResultSet rs) throws SQLException {\r
- final List<Object> ret = new ArrayList<Object>();\r
- while (rs.next()) {\r
- ret.add(valueType.getValue(rs, 1));\r
- }\r
- return ret;\r
- }\r
- }\r
-\r
- protected BeanMetaData createSpecifiedOutsideSqlCursorBeanMetaData(Method method) {\r
- return createOutsideSqlCustomizeBeanMetaDataFactory().createBeanMetaData(getOutsideSqlDefaultBeanClass(method));\r
- }\r
-\r
- /**\r
- * Create the handler of result set of specified outside-sql for cursor.\r
- * \r
- * @param specifiedBeanMetaData Specified bean meta data. (NotNull)\r
- * @return The handler of result set. (NotNull)\r
- */\r
- protected ResultSetHandler createSpecifiedOutsideSqlCursorResultSetHandler(BeanMetaData specifiedBeanMetaData) {\r
- return new org.seasar.extension.jdbc.impl.ObjectResultSetHandler();// This is dummy for cursor handling!\r
- }\r
-\r
- // - - - - - - - - - - - -\r
- // Execute\r
- // - - - -\r
- protected void setupSpecifiedOutsideSqlExecuteCommand(String sqlCommandKey, Method method, ${glOutsideSqlContextName} outsideSqlContext) {\r
- // - - - - - - - - - - - - - - - - - - - - - - -\r
- // The attribute of Specified-OutsideSqlContext.\r
- // - - - - - - - - - - - - - - - - - - - - - - -\r
- final String sql = outsideSqlContext.readFilteredOutsideSql(getSqlFileEncoding(), dbms.getSuffix());\r
- final Object pmb = outsideSqlContext.getParameterBean();\r
-\r
- // - - - - - - - - - - - - - - -\r
- // The attribute of SqlCommand.\r
- // - - - - - - - - - - - - - - -\r
- final String[] argNames = (pmb != null ? new String[] {"pmb"} : new String[]{});\r
- final Class<?>[] argTypes = (pmb != null ? new Class<?>[] {pmb.getClass()} : new Class<?>[]{});\r
-\r
- final UpdateDynamicCommand cmd = new UpdateDynamicCommand(dataSource, statementFactory) {\r
- @Override\r
- public Object execute(Object[] args) {\r
- if (args.length != 3) {\r
- String msg = "Internal Error! OutsideSqlDao.execute() should have 3 arguements: args.length=" + args.length;\r
- throw new IllegalStateException(msg);\r
- }\r
- Object arg = args[1];\r
- return super.execute(new Object[] {arg});\r
- }\r
- };\r
- \r
- // It is unnecessary for DBFlute!\r
- // cmd.setNotSingleRowUpdatedExceptionClass(getNotSingleRowUpdatedExceptionClass(method));\r
- \r
- registerSqlCommand(sqlCommandKey, method, sql, argNames, argTypes, cmd);\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Common of OutsideSql\r
- // --------------------\r
- protected BeanMetaDataFactory createOutsideSqlCustomizeBeanMetaDataFactory() {\r
- final ${glBeanMetaDataFactoryImpl} originalBmdFactory = new ${glBeanMetaDataFactoryImpl}() {\r
- protected BeanMetaDataImpl createBeanMetaDataImpl() {\r
- return newOutsideSqlCustomizeBeanMetaDataImpl();\r
- }\r
- };\r
- originalBmdFactory.setAnnotationReaderFactory(this.annotationReaderFactory);\r
- originalBmdFactory.setValueTypeFactory(this.valueTypeFactory);\r
- originalBmdFactory.setDataSource(this.dataSource);\r
- originalBmdFactory.setDaoNamingConvention(this.daoNamingConvention);\r
- originalBmdFactory.setBeanEnhancer(this.beanEnhancer);\r
- return originalBmdFactory;\r
- }\r
-\r
- protected BeanMetaDataImpl newOutsideSqlCustomizeBeanMetaDataImpl() {\r
- return new OutsideSqlCustomizeBeanMetaDataImpl();\r
- }\r
-\r
- protected static class OutsideSqlCustomizeBeanMetaDataImpl extends BeanMetaDataImpl {\r
- @Override\r
- protected void setupDatabaseMetaData(BeanDesc beanDesc, DatabaseMetaData dbMetaData, Dbms dbms) {\r
- // Nothing.\r
- }\r
- }\r
-\r
- protected Class getOutsideSqlDefaultBeanClass(Method method) {\r
- final Class retType = method.getReturnType();\r
- if (java.util.List.class.isAssignableFrom(retType)) {\r
- final Class elementType = InternalMethodUtil.getElementTypeOfListFromReturnMethod(method);\r
- if (elementType != null) {\r
- return elementType;\r
- } else {\r
- return getBeanClass();\r
- }\r
- } else if (retType.isArray()) {\r
- return retType.getComponentType();\r
- } else if (retType.isPrimitive() || !ValueTypes.getValueType(retType).equals(ValueTypes.OBJECT)) {\r
- return getBeanClass();\r
- } else {\r
- return retType;\r
- }\r
- }\r
- \r
- protected void registerSqlCommand(String sqlCommandKey, Method method, String sql, String[] argNames, Class[] argTypes, BeanMetaData myBeanMetaData) {\r
-#if ($database.isVersionAfter1046())\r
- registerSqlCommand(sqlCommandKey, method, sql, argNames, argTypes, createResultSetHandler(myBeanMetaData, method));\r
-#else\r
-#if ($database.isVersionAfter1043())\r
- final org.seasar.dao.ResultSetHandlerFactory factory = new ResultSetHandlerFactoryExtension(myBeanMetaData, annotationReader, dtoMetaDataFactory);\r
-#else\r
- final org.seasar.dao.ResultSetHandlerFactory factory = new ResultSetHandlerFactoryExtension(myBeanMetaData);\r
-#end\r
- registerSqlCommand(sqlCommandKey, method, sql, argNames, argTypes, factory.createResultSetHandler(method));\r
-#end\r
- }\r
-\r
- protected void registerSqlCommand(String sqlCommandKey, Method method, String sql, String[] argNames, Class[] argTypes, ResultSetHandler myResultSetHandler) {\r
- final ${glSelectDynamicCommand} cmd = createCustomizeSelectDynamicCommand(myResultSetHandler);\r
- registerSqlCommand(sqlCommandKey, method, sql, argNames, argTypes, cmd);\r
- }\r
-\r
- protected void registerSqlCommand(String sqlCommandKey, Method method, String sql, String[] argNames, Class[] argTypes, ${glSelectDynamicCommand} cmd) {\r
- cmd.setSql(sql);\r
- cmd.setArgNames(argNames);\r
- cmd.setArgTypes(argTypes);\r
- this.sqlCommands.put(sqlCommandKey, cmd);\r
- }\r
-\r
- protected void registerSqlCommand(String sqlCommandKey, Method method, String sql, String[] argNames, Class[] argTypes, UpdateDynamicCommand cmd) {\r
- cmd.setSql(sql);\r
- cmd.setArgNames(argNames);\r
- cmd.setArgTypes(argTypes);\r
- this.sqlCommands.put(sqlCommandKey, cmd);\r
- }\r
-\r
- // ===================================================================================\r
- // Common Handlnig\r
- // ===============\r
- protected void putSqlCommand(String methodName, SqlCommand cmd) {\r
- sqlCommands.put(methodName, cmd);\r
- }\r
- \r
- protected boolean isCheckSingleRowUpdate(Method method) {\r
- return false;\r
- }\r
- \r
- // ===================================================================================\r
- // Vert Internal\r
- // =============\r
- protected static class InternalMethodUtil {\r
- public static Class getElementTypeOfListFromReturnMethod(Method method) {\r
- return InternalReflectionUtil.getElementTypeOfListFromReturnType(method);\r
- }\r
- }\r
-\r
- protected static class InternalReflectionUtil {\r
- public static Class<?> getElementTypeOfList(final Type parameterizedList) {\r
- if (!(parameterizedList instanceof ParameterizedType)) {\r
- return null;\r
- }\r
-\r
- final ParameterizedType parameterizedType = ParameterizedType.class.cast(parameterizedList);\r
- final Type rawType = parameterizedType.getRawType();\r
- if (!(rawType instanceof Class)) {\r
- return null;\r
- }\r
-\r
- final Class<?> rawClass = Class.class.cast(rawType);\r
- if (!rawClass.isAssignableFrom(List.class)) {\r
- return null;\r
- }\r
-\r
- final Type[] actualTypeArgument = parameterizedType.getActualTypeArguments();\r
- if (actualTypeArgument == null || actualTypeArgument.length != 1) {\r
- return null;\r
- }\r
- if (!(actualTypeArgument[0] instanceof Class)) {\r
- return null;\r
- }\r
-\r
- return Class.class.cast(actualTypeArgument[0]);\r
- }\r
-\r
- public static Class<?> getElementTypeOfListFromParameterType(final Method method, final int parameterPosition) {\r
- final Type[] parameterTypes = method.getGenericParameterTypes();\r
- return getElementTypeOfList(parameterTypes[parameterPosition]);\r
- }\r
-\r
- public static Class<?> getElementTypeOfListFromReturnType(final Method method) {\r
- return getElementTypeOfList(method.getGenericReturnType());\r
- }\r
- }\r
-\r
-#if ($database.isVersionAfter1046())\r
- // ===================================================================================\r
- // ResultSetHandlerFactoryImpl Extension\r
- // =====================================\r
- public static class ResultSetHandlerFactoryExtension extends org.seasar.dao.impl.ResultSetHandlerFactoryImpl {\r
- public ResultSetHandlerFactoryExtension() {\r
- super();\r
- }\r
-\r
- @Override\r
- protected RelationRowCreator createRelationRowCreator() {\r
- return new RelationRowCreatorExtension();\r
- }\r
- }\r
-#else\r
- // ===================================================================================\r
- // ResultSetHandlerFactoryImpl Extension\r
- // =====================================\r
- public static class ResultSetHandlerFactoryExtension extends ResultSetHandlerFactoryImpl {\r
-#if ($database.isVersionAfter1043())\r
- public ResultSetHandlerFactoryExtension(BeanMetaData beanMetaData, org.seasar.dao.DaoAnnotationReader annotationReader, org.seasar.dao.DtoMetaDataFactory dtoMetaDataFactory) {\r
- super(beanMetaData, annotationReader, dtoMetaDataFactory);\r
- }\r
-#else\r
- public ResultSetHandlerFactoryExtension(BeanMetaData beanMetaData) {\r
- super(beanMetaData);\r
- }\r
-#end\r
- @Override\r
- protected RelationRowCreator createRelationRowCreator() {\r
- return new RelationRowCreatorExtension();\r
- }\r
- }\r
-#end\r
-\r
- // ===================================================================================\r
- // RelationRowCreatorImpl Extension\r
- // ================================\r
- public static class RelationRowCreatorExtension extends org.seasar.dao.impl.RelationRowCreatorImpl {\r
-\r
- public Object createRelationRow(java.sql.ResultSet rs, RelationPropertyType rpt, java.util.Set columnNames, java.util.Map relKeyValues)\r
- throws java.sql.SQLException {\r
- return createRelationRow(rs, rpt, columnNames, relKeyValues, "");\r
- }\r
-\r
- public Object createRelationRow(java.sql.ResultSet rs, RelationPropertyType rpt, java.util.Set columnNames, java.util.Map relKeyValues,\r
- String preRelationNoSuffix) throws java.sql.SQLException {\r
- // It must doesn't need to invoke this!\r
- // final Object row = setupRelationKeyValue(rpt, columnNames, relKeyValues);\r
-\r
- return setupRelationAllValue(rs, rpt, columnNames, relKeyValues, preRelationNoSuffix);\r
- }\r
-\r
- protected Object setupRelationAllValue(java.sql.ResultSet rs, RelationPropertyType rpt, java.util.Set columnNames,\r
- java.util.Map relKeyValues, String preRelationNoSuffix) throws java.sql.SQLException {\r
- Object row = null;\r
- final String relationNoSuffix = preRelationNoSuffix + "_" + rpt.getRelationNo();\r
- final BeanMetaData bmd = rpt.getBeanMetaData();\r
- int existColumn = 0;\r
- for (int i = 0; i < bmd.getPropertyTypeSize(); ++i) {\r
- final PropertyType pt = bmd.getPropertyType(i);\r
-\r
- // Excludes non writable property for performance tuning!\r
- if (!pt.getPropertyDesc().hasWriteMethod()) {\r
- continue;\r
- }\r
-\r
- // Excludes java.util.List property for pinpont performance tuning!\r
- if (java.util.List.class.isAssignableFrom(pt.getPropertyDesc().getPropertyType())) {\r
- continue;\r
- }\r
-\r
- final String columnName = pt.getColumnName() + relationNoSuffix;\r
- if (!columnNames.contains(columnName)) {\r
- continue;\r
- }\r
-\r
- // Return null if the primary key of foreign table is invalid(The foreign key is deadlink).\r
- if (pt.isPrimaryKey()) {\r
- if (!isValidValue(rs, pt, columnName, relKeyValues)) {\r
- return null;\r
- }\r
- }\r
-\r
- existColumn++;\r
- if (row == null) {\r
- row = createRelationRow(rpt);\r
- }\r
- registerRelationValue(row, rs, rpt, pt, columnName, relKeyValues);\r
- }\r
-\r
- // Return null if setupSelect_Xxx() or withXxx() has not been invoked.\r
- if (existColumn == 0) {\r
- return null;\r
- }\r
-\r
- if (rpt.getBeanMetaData().getRelationPropertyTypeSize() != 0) {\r
- createParentRelationRow(rs, rpt.getBeanMetaData(), columnNames, relationNoSuffix, row);\r
- }\r
- return row;\r
- }\r
-\r
- protected boolean isValidValue(java.sql.ResultSet rs, PropertyType pt, String columnName, java.util.Map relKeyValues) throws java.sql.SQLException {\r
- Object value = null;\r
- if (relKeyValues != null && relKeyValues.containsKey(columnName)) {\r
- value = relKeyValues.get(columnName);\r
- } else {\r
- final org.seasar.extension.jdbc.ValueType valueType = pt.getValueType();\r
- value = valueType.getValue(rs, columnName);\r
- }\r
- return value != null;\r
- }\r
-\r
- protected void createParentRelationRow(java.sql.ResultSet rs, BeanMetaData parentBmd, java.util.Set columnNames,\r
- String relationNoSuffix, Object row) throws java.sql.SQLException {\r
- for (int i = 0; i < parentBmd.getRelationPropertyTypeSize(); ++i) {\r
- RelationPropertyType parentParentRpt = parentBmd.getRelationPropertyType(i);\r
- if (parentParentRpt == null) {\r
- continue;\r
- }\r
- Object relationRow = createRelationRow(rs, parentParentRpt, columnNames, null, relationNoSuffix);\r
- if (relationRow != null) {\r
- org.seasar.framework.beans.PropertyDesc pd = parentParentRpt.getPropertyDesc();\r
- pd.setValue(row, relationRow);\r
- }\r
- }\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Sql File Encoding\r
- // =================\r
- public String getSqlFileEncoding() {\r
- return sqlFileEncoding;\r
- }\r
-\r
- // ===================================================================================\r
- // Bean Enhancer\r
- // =============\r
- public BeanEnhancer getBeanEnhancer() {\r
- return beanEnhancer;\r
- }\r
-\r
- public void setBeanEnhancer(final BeanEnhancer beanEnhancer) {\r
- this.beanEnhancer = beanEnhancer;\r
- }\r
-\r
-#if ($database.isVersionAfter1046())\r
- // ===================================================================================\r
- // Annotation Reader Factory\r
- // =========================\r
- public void setAnnotationReaderFactory(org.seasar.dao.AnnotationReaderFactory annotationReaderFactory) {\r
- this.annotationReaderFactory = annotationReaderFactory;\r
- }\r
-#end\r
-\r
- public ${glStatementConfig} getDefaultStatementConfig() {\r
- return _defaultStatementConfig;\r
- }\r
-\r
- public void setDefaultStatementConfig(final ${glStatementConfig} defaultStatementConfig) {\r
- this._defaultStatementConfig = defaultStatementConfig;\r
- }\r
- \r
- public boolean isInternalDebug() {\r
- return _internalDebug;\r
- }\r
-\r
- public void setInternalDebug(final boolean internalDebug) {\r
- this._internalDebug = internalDebug;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2Dao};\r
-\r
-import java.lang.reflect.Method;\r
-import java.lang.reflect.ParameterizedType;\r
-import java.lang.reflect.Type;\r
-import java.sql.Connection;\r
-import java.sql.DatabaseMetaData;\r
-import java.sql.PreparedStatement;\r
-import java.sql.ResultSet;\r
-import java.sql.SQLException;\r
-import java.sql.Statement;\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-\r
-import javax.sql.DataSource;\r
-\r
-import org.seasar.dao.BeanEnhancer;\r
-import org.seasar.dao.BeanMetaData;\r
-import org.seasar.dao.BeanMetaDataFactory;\r
-import org.seasar.dao.ColumnNaming;\r
-import org.seasar.dao.PropertyTypeFactoryBuilder;\r
-import org.seasar.dao.RelationPropertyTypeFactoryBuilder;\r
-import org.seasar.dao.RelationRowCreator;\r
-import org.seasar.dao.RowCreator;\r
-import org.seasar.dao.SqlCommand;\r
-import org.seasar.dao.TableNaming;\r
-import org.seasar.dao.dbms.DbmsManager;\r
-import org.seasar.dao.impl.BeanMetaDataImpl;\r
-import org.seasar.dao.impl.DaoMetaDataImpl;\r
-import org.seasar.dao.impl.ResultSetHandlerFactoryImpl;\r
-import org.seasar.dao.impl.SelectDynamicCommand;\r
-import org.seasar.dao.impl.UpdateAutoStaticCommand;\r
-import org.seasar.extension.jdbc.ResultSetHandler;\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-import org.seasar.extension.jdbc.ValueType;\r
-import org.seasar.extension.jdbc.types.ValueTypes;\r
-import org.seasar.framework.beans.MethodNotFoundRuntimeException;\r
-import org.seasar.framework.beans.factory.BeanDescFactory;\r
-import org.seasar.framework.util.MethodUtil;\r
-\r
-import ${glPackageBaseCommon}.${glBehaviorSelectorInterfaceName};\r
-import ${glPackageBaseCommon}.${glEntityInterfaceName};\r
-import ${glPackageBaseCommonAnnotation}.${glOutsideSqlAnnotation};\r
-import ${glPackageBaseCommonCBean}.${glConditionBeanInterfaceName};\r
-import ${glPackageBaseCommonCBean}.${glConditionBeanContextName};\r
-import ${glPackageBaseCommonCBeanOutsidesql}.${glOutsideSqlContextName};\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInterfaceName};\r
-import ${glPackageBaseCommonException}.${glEntityAlreadyDeletedException};\r
-import ${glPackageBaseCommonException}.${glBatchEntityAlreadyUpdatedException};\r
-import ${glPackageBaseCommonException}.${glEntityDuplicatedException};\r
-import ${glPackageBaseCommonJdbc}.${glCursorHandlerName};\r
-import ${glPackageBaseCommonS2DaoInternalRsHandler}.${glInternalBeanListMetaDataResultSetHandler};\r
-import ${glPackageBaseCommonS2DaoInternalRsHandler}.${glInternalBeanArrayMetaDataResultSetHandler};\r
-import ${glPackageBaseCommonS2DaoInternalSqlCommand}.${glInternalDeleteAutoStaticCommand};\r
-import ${glPackageBaseCommonS2DaoInternalSqlCommand}.${glInternalDeleteBatchAutoStaticCommand};\r
-import ${glPackageBaseCommonS2DaoInternalSqlCommand}.${glInternalDeleteQueryAutoDynamicCommand};\r
-import ${glPackageBaseCommonS2DaoInternalSqlCommand}.${glInternalInsertAutoDynamicCommand};\r
-import ${glPackageBaseCommonS2DaoInternalSqlCommand}.${glInternalInsertBatchAutoStaticCommand};\r
-import ${glPackageBaseCommonS2DaoInternalSqlCommand}.${glInternalProcedureCommand};\r
-import ${glPackageBaseCommonS2DaoInternalSqlCommand}.${glInternalUpdateAutoDynamicCommand};\r
-import ${glPackageBaseCommonS2DaoInternalSqlCommand}.${glInternalUpdateBatchAutoStaticCommand};\r
-import ${glPackageBaseCommonS2DaoInternalSqlCommand}.${glInternalUpdateDynamicCommand};\r
-import ${glPackageBaseCommonS2DaoInternalSqlCommand}.${glInternalUpdateModifiedOnlyCommand};\r
-import ${glPackageBaseCommonS2DaoInternalSqlCommand}.${glInternalUpdateQueryAutoDynamicCommand};\r
-import ${glPackageBaseCommonS2DaoInternalSqlHandler}.${glInternalBasicHandler}.SQLExceptionHandler;\r
-import ${glPackageBaseCommonS2DaoInternalSqlHandler}.${glInternalUpdateBatchAutoHandler};\r
-import ${glPackageBaseCommonS2DaoInternalSqlHandler}.${glInternalDeleteBatchAutoHandler};\r
-import ${glPackageBaseCommonS2DaoInternalVarious}.${glInternalProcedureMetaData};\r
-import ${glPackageBaseCommonS2DaoInternalVarious}.${glInternalProcedureMetaDataFactory};\r
-import ${glPackageBaseCommonS2DaoInternalVarious}.${glInternalRowCreator};\r
-import ${glPackageBaseCommonS2DaoInternalVarious}.${glInternalRelationRowCreator};\r
-import ${glPackageBaseCommonUtil}.${glSimpleSystemUtil};\r
-\r
-/**\r
- * The extension of DaoMetaDataImpl for DBFlute.\r
- * @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public class ${glDaoMetaDataExtension} extends DaoMetaDataImpl {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- /** Log instance. */\r
- private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory.getLog(${glDaoMetaDataExtension}.class);\r
- \r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- /** Bean enhancer. */\r
- protected BeanEnhancer beanEnhancer;\r
-\r
- /** The factory of annotation reader. */\r
- protected org.seasar.dao.AnnotationReaderFactory annotationReaderFactory;\r
-\r
- /** The naming of column. {After S2Dao-1.0.47} */\r
- protected ColumnNaming columnNaming;\r
-\r
- /** The builder of property type factory. {After S2Dao-1.0.47} */\r
- protected PropertyTypeFactoryBuilder propertyTypeFactoryBuilder;\r
-\r
- /** The builder of relation property type factory. {After S2Dao-1.0.47} */\r
- protected RelationPropertyTypeFactoryBuilder relationPropertyTypeFactoryBuilder;\r
-\r
- /** The builder of table naming. {After S2Dao-1.0.47} */\r
- protected TableNaming tableNaming;\r
-\r
- // -----------------------------------------------------\r
- // DBFlute Extension\r
- // -----------------\r
- /** The selector of behavior. {Since DBFlute-0.7.1} */\r
- protected ${glBehaviorSelectorInterfaceName} _behaviorSelector;\r
- \r
- /** The lock monitor of method initialization. */\r
- protected Object _methodInitializationLockMonitor = new Object();\r
- \r
- /** The determination of internal debug. {Since DBFlute-0.6.2} */\r
- protected boolean _internalDebug;\r
- \r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glDaoMetaDataExtension}() {\r
- }\r
-\r
- // ===================================================================================\r
- // Initialize Override\r
- // ===================\r
- @Override\r
- public void initialize() {\r
- beanClass = daoAnnotationReader.getBeanClass();\r
- daoInterface = getDaoInterface(daoClass);\r
- daoBeanDesc = BeanDescFactory.getBeanDesc(daoClass);\r
- final Connection conn = getConnection();// It is first impact to Database!\r
- try {\r
- final DatabaseMetaData dbMetaData = getMetaData(conn);\r
- dbms = DbmsManager.getDbms(getDatabaseProductName(dbMetaData));\r
- } finally {\r
- close(conn);\r
- }\r
- this.beanMetaData = beanMetaDataFactory.createBeanMetaData(daoInterface, beanClass);\r
- checkSingleRowUpdateForAll = daoAnnotationReader.isCheckSingleRowUpdate();\r
-\r
- // Comment out for lazy-load!\r
- // setupSqlCommand();\r
- }\r
-\r
- // ===================================================================================\r
- // SqlCommand Setup Override\r
- // =========================\r
- @Override\r
- public SqlCommand getSqlCommand(String methodName) throws MethodNotFoundRuntimeException {\r
- SqlCommand cmd = (SqlCommand) sqlCommands.get(methodName);\r
- if (cmd != null) {\r
- return cmd;\r
- }\r
- synchronized (_methodInitializationLockMonitor) {\r
- cmd = (SqlCommand) sqlCommands.get(methodName);\r
- if (cmd != null) {\r
- if (_log.isDebugEnabled()) {\r
- _log.debug("...Getting sqlCommand as cache because the previous thread have already initilized.");\r
- }\r
- return cmd;\r
- }\r
- if (_log.isDebugEnabled()) {\r
- _log.debug("...Initializing sqlCommand for " + methodName + "().");\r
- }\r
- cmd = initializeSqlCommand(methodName);\r
- }\r
- return cmd;\r
- }\r
-\r
- protected SqlCommand initializeSqlCommand(String methodName) throws MethodNotFoundRuntimeException {\r
- if (${glOutsideSqlContextName}.isExistOutsideSqlContextOnThread()) {\r
- final ${glOutsideSqlContextName} outsideSqlContext = ${glOutsideSqlContextName}.getOutsideSqlContextOnThread();\r
- if (outsideSqlContext != null && outsideSqlContext.isSpecifiedOutsideSql()) {\r
- return initializeSpecifiedOutsideSqlCommand(methodName, outsideSqlContext);\r
- }\r
- }\r
- final Method[] methods = daoBeanDesc.getMethods(methodName);\r
- if (methods.length == 1 && MethodUtil.isAbstract(methods[0])) {\r
- setupMethod(methods[0]);\r
- }\r
- final SqlCommand cmd = (SqlCommand) sqlCommands.get(methodName);\r
- if (cmd != null) {\r
- return cmd;\r
- }\r
- throw new MethodNotFoundRuntimeException(daoClass, methodName, null);\r
- }\r
-\r
- protected SqlCommand initializeSpecifiedOutsideSqlCommand(String sqlCommandKey, ${glOutsideSqlContextName} outsideSqlContext) throws MethodNotFoundRuntimeException {\r
- final Method[] methods = daoBeanDesc.getMethods(outsideSqlContext.getMethodName());// By real method name.\r
- if (methods.length == 1 && org.seasar.framework.util.MethodUtil.isAbstract(methods[0])) {\r
- final Method method = methods[0];\r
- if (isOutsideSqlDaoMethodSelect(method)) {\r
- setupSpecifiedOutsideSqlSelectCommand(sqlCommandKey, method, outsideSqlContext);\r
- } else if (isOutsideSqlDaoMethodCall(method)) {\r
- setupSpecifiedOutsideSqlCallCommand(sqlCommandKey, method, outsideSqlContext);\r
- } else {\r
- setupSpecifiedOutsideSqlExecuteCommand(sqlCommandKey, method, outsideSqlContext);\r
- }\r
- }\r
- final SqlCommand cmd = (SqlCommand) sqlCommands.get(sqlCommandKey);\r
- if (cmd != null) {\r
- return cmd;\r
- }\r
- String msg = "Internal Error! The sql-command is not found:";\r
- msg = msg + " sqlCommandKey=" + sqlCommandKey;\r
- msg = msg + " sqlCommands=" + sqlCommands;\r
- throw new IllegalStateException(msg);\r
- }\r
-\r
- protected boolean isOutsideSqlDaoMethodSelect(Method method) {\r
- return method.getName().startsWith("select");\r
- }\r
-\r
- protected boolean isOutsideSqlDaoMethodCall(Method method) {\r
- return method.getName().startsWith("call");\r
- }\r
-\r
- // ===================================================================================\r
- // Assert Override\r
- // ===============\r
- @Override\r
- protected void setupMethodByAnnotation(Class daoInterface, Method method) {\r
- final String sql = daoAnnotationReader.getSQL(method, dbms.getSuffix());\r
- assertSQLAnnotationUnsupported(method, sql);\r
- super.setupMethodByAnnotation(daoInterface, method);\r
- }\r
-\r
- protected void assertSQLAnnotationUnsupported(final Method method, String sql) {\r
- if (sql != null) {\r
- throwS2DaoSQLAnnotationUnsupportedException(method, sql);\r
- }\r
- }\r
-\r
- protected void throwS2DaoSQLAnnotationUnsupportedException(final Method method, String sql) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "Sorry, the SQL annotation of S2Dao is unsupported on DBFlute!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "Please use outside-sql of behavior." + getLineSeparator();\r
- msg = msg + " For example:" + getLineSeparator();\r
- msg = msg + " memberBhv.outsideSql().selectList(...)" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "If you've got to use it, you can set the property:" + getLineSeparator();\r
- msg = msg + "{torque.isCompatibleS2DaoSQLAnnotationValid = true}" + getLineSeparator();\r
- msg = msg + "But pay attention to version up of DBFlute" + getLineSeparator();\r
- msg = msg + " because the property will not always supported at the future." + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Method]" + getLineSeparator() + method + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[SQL]" + getLineSeparator() + sql + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
-#if ($database.isCompatibleS2DaoSQLAnnotationValid())\r
- _log.debug(msg);\r
-#else\r
- throw new UnsupportedOperationException(msg);\r
-#end\r
- }\r
-\r
- @Override\r
- protected void setupMethodByAuto(Method method) {\r
- final ${glOutsideSqlAnnotation} outsideSql = method.getAnnotation(${glOutsideSqlAnnotation}.class);\r
- if (outsideSql != null) {\r
- String msg = "This method '" + method.getName() + "()' should use Outside Sql but the file was not found!";\r
- msg = msg + " Expected sql file name is '" + method.getDeclaringClass().getSimpleName() + "_" + method.getName() + ".sql'";\r
- throw new IllegalStateException(msg);\r
- }\r
- super.setupMethodByAuto(method);\r
- }\r
-\r
- // ===================================================================================\r
- // ConditionBean Override\r
- // ======================\r
- @Override\r
- protected void setupSelectMethodByAuto(final Method method) {\r
- if (setupInternalSelectMethodSequenceNextVal(method)) { // For sequence\r
- return;\r
- }\r
- if (setupInternalSelectMethodEntityByIdsForBuri(method)) { // For Buri\r
- return;\r
- }\r
-\r
- // Assert unsupported\r
- final String query = daoAnnotationReader.getQuery(method);\r
- assertQueryAnnotationUnsupported(method, query);\r
- final String[] argNames = daoAnnotationReader.getArgNames(method);\r
- assertAutoQueryByArgsAnnotationUnsupported(method, argNames);\r
-\r
- // Here it is the only method that the argument is DTO.\r
- final ResultSetHandler handler = createResultSetHandler(method);\r
- final SqlCommand cmd = setupInternalNonQuerySelectMethodByDto(method, handler);\r
-\r
- putSqlCommand(method.getName(), cmd);\r
- }\r
-\r
- protected boolean setupInternalSelectMethodSequenceNextVal(final Method method) { // For sequence\r
- if (!"selectNextVal".equals(method.getName())) {\r
- return false;\r
- }\r
- final ${glDBMetaInterfaceName} dbmeta = findDBMeta();\r
- if (!dbmeta.hasSequence()) {\r
- String msg = "If the method 'selectNextVal()' exists, DBMeta.hasSequence() should return true:";\r
- msg = msg + " dbmeta.hasSequence()=" + dbmeta.hasSequence() + " method=" + method;\r
- throw new IllegalStateException(msg);\r
- }\r
- final String nextValSql = dbmeta.getSequenceNextValSql();\r
- if (nextValSql == null) {\r
- String msg = "If the method 'selectNextVal()' exists, DBMeta.getSequenceNextValSql() should not return null:";\r
- msg = msg + " dbmeta.getSequenceNextValSql()=" + dbmeta.getSequenceNextValSql() + " method=" + method;\r
- throw new IllegalStateException(msg);\r
- }\r
- setupSelectMethodByManual(method, nextValSql);\r
- return true;\r
- }\r
-\r
- protected boolean setupInternalSelectMethodEntityByIdsForBuri(final Method method) { // For Buri\r
- if (!"getEntityByIds".equals(method.getName())) {\r
- return false;\r
- }\r
- final ResultSetHandler handler = createResultSetHandler(method);\r
- final String[] argNames = daoAnnotationReader.getArgNames(method);\r
- final String query = daoAnnotationReader.getQuery(method);\r
- if (query == null) {\r
- String msg = "The method 'getEntityByIds()' should have QUERY annotation:";\r
- msg = msg + " method=" + method;\r
- throw new IllegalStateException(msg);\r
- }\r
- final Class[] types = method.getParameterTypes();\r
- final SelectDynamicCommand cmd = createSelectDynamicCommand(handler, query);\r
- cmd.setArgNames(argNames);\r
- cmd.setArgTypes(types);\r
- putSqlCommand(method.getName(), cmd);\r
- return true;\r
- }\r
-\r
- protected void assertQueryAnnotationUnsupported(final Method method, String query) {\r
- if (query != null) {\r
- String msg = "Sorry! The QUERY annotation of S2Dao is unsupported on DBFlute:";\r
- msg = msg + " query=" + query + " method=" + method;\r
- throw new UnsupportedOperationException(msg);\r
- }\r
- }\r
-\r
- protected void assertAutoQueryByArgsAnnotationUnsupported(final Method method, String[] argNames) {\r
- if (!isAutoSelectSqlByDto(method, argNames)) {\r
- String msg = "Sorry! The auto query by ARGS annotation of S2Dao is unsupported on DBFlute:";\r
- msg = msg + " argNames=" + argNames + " method=" + method;\r
- throw new UnsupportedOperationException(msg);\r
- }\r
- }\r
-\r
- // For condition-bean!\r
- protected SqlCommand setupInternalNonQuerySelectMethodByDto(Method method, ResultSetHandler handler) {\r
- final Class[] argTypes = method.getParameterTypes();\r
- assertAutoQueryByDtoUnsupported(method, argTypes);\r
- final ${glSelectDynamicCommand} cmd = createCustomizeSelectDynamicCommand(handler);\r
- cmd.setArgNames(new String[] { "dto" });\r
- cmd.setArgTypes(argTypes);\r
- return cmd;\r
- }\r
-\r
- protected void assertAutoQueryByDtoUnsupported(final Method method, Class[] argTypes) {\r
- final Class firstArgType = argTypes[0];\r
- if (!${glConditionBeanContextName}.isTheTypeConditionBean(firstArgType)) {\r
- String msg = "Sorry! The auto query by DTO of S2Dao is unsupported on DBFlute:";\r
- msg = msg + " dto=" + firstArgType + " method=" + method;\r
- throw new UnsupportedOperationException(msg);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Insert and Update and Delete By Auto Override\r
- // =============================================\r
- // -----------------------------------------------------\r
- // Insert\r
- // ------\r
- @Override\r
- protected void setupInsertMethodByAuto(final Method method) {\r
- checkAutoUpdateMethod(method);\r
-#if ($database.isAvailableNonPrimaryKeyWritable())\r
- if (setupInternalNonPrimaryInsertMethodByAuto(method)) {\r
- return;\r
- }\r
-#end\r
- final String[] propertyNames = getPersistentPropertyNames(method);\r
- final SqlCommand command;\r
- if (isUpdateSignatureForBean(method)) {\r
- final ${glInternalInsertAutoDynamicCommand} cmd = new ${glInternalInsertAutoDynamicCommand}();\r
- cmd.setBeanMetaData(getBeanMetaData());\r
- cmd.setDataSource(dataSource);\r
- \r
- // It is unnecessary for DBFlute!\r
- // cmd.setNotSingleRowUpdatedExceptionClass(getNotSingleRowUpdatedExceptionClass(method));\r
- \r
- cmd.setPropertyNames(propertyNames);\r
- cmd.setStatementFactory(statementFactory);\r
- cmd.setCheckSingleRowUpdate(isCheckSingleRowUpdate(method));\r
- command = cmd;\r
- } else {\r
- boolean returningRows = false;\r
- if (int[].class.isAssignableFrom(method.getReturnType())) {\r
- returningRows = true;\r
- }\r
- final ${glInternalInsertBatchAutoStaticCommand} cmd = new ${glInternalInsertBatchAutoStaticCommand}(\r
- dataSource, statementFactory, getBeanMetaData(),\r
- propertyNames, returningRows);\r
- command = cmd;\r
- }\r
- putSqlCommand(method.getName(), command);\r
- }\r
-#if ($database.isAvailableNonPrimaryKeyWritable())\r
-\r
- /**\r
- * @param method The target method. (NotNull)\r
- * @return Whether the method is target. (For example if it has primary key, returns false.)\r
- */\r
- protected boolean setupInternalNonPrimaryInsertMethodByAuto(final Method method) {\r
- checkAutoUpdateMethod(method);\r
- final ${glDBMetaInterfaceName} dbmeta = findDBMeta();\r
- if (dbmeta.hasPrimaryKey()) {\r
- return false;\r
- }\r
- final List<${glPackageBaseCommonDBMetaInfo}.${glColumnInfoName}> columnInfoList = dbmeta.getColumnInfoList();\r
- final StringBuilder columnDefSb = new StringBuilder();\r
- for (${glPackageBaseCommonDBMetaInfo}.${glColumnInfoName} columnInfo : columnInfoList) {\r
- columnDefSb.append(", ").append(columnInfo.getColumnDbName());\r
- }\r
- columnDefSb.delete(0, ", ".length()).insert(0, "(").append(")");\r
- final StringBuilder columnValuesSb = new StringBuilder();\r
- for (${glPackageBaseCommonDBMetaInfo}.${glColumnInfoName} columnInfo : columnInfoList) {\r
- columnValuesSb.append(", /*dto.").append(columnInfo.getPropertyName()).append("*/null");\r
- }\r
- columnValuesSb.delete(0, ", ".length()).insert(0, "(").append(")");\r
- final String sql = "insert into " + dbmeta.getTableSqlName() + columnDefSb + " values" + columnValuesSb;\r
- final ${glInternalUpdateDynamicCommand} cmd = new ${glInternalUpdateDynamicCommand}(dataSource, statementFactory);\r
- registerSqlCommand(method.getName(), method, sql, new String[]{"dto"}, method.getParameterTypes(), cmd);\r
- setupUpdateMethodByManual(method, sql); // It's S2Dao plain method.\r
- return true;\r
- }\r
-#end\r
-\r
- // -----------------------------------------------------\r
- // Update\r
- // ------\r
- @Override\r
- protected void setupUpdateMethodByAuto(final Method method) {\r
- if (isFirstArgumentConditionBean(method)) {\r
- final SqlCommand cmd = new ${glInternalUpdateQueryAutoDynamicCommand}(dataSource, statementFactory);\r
- putSqlCommand(method.getName(), cmd);\r
- return;\r
- }\r
- checkAutoUpdateMethod(method);\r
- final String[] propertyNames = getPersistentPropertyNames(method);\r
- SqlCommand cmd;\r
- if (isUpdateSignatureForBean(method)) {\r
- if (isUnlessNull(method.getName())) {\r
- cmd = createInternalUpdateAutoDynamicCommand(method, propertyNames);\r
- } else if (isModifiedOnly(method.getName())) {\r
- cmd = createInternalUpdateModifiedOnlyCommand(method, propertyNames);\r
- } else {\r
- cmd = createInternalUpdateAutoStaticCommand(method, propertyNames);\r
- }\r
- } else {\r
- boolean returningRows = false;\r
- if (int[].class.isAssignableFrom(method.getReturnType())) {\r
- returningRows = true;\r
- }\r
- cmd = createInternalUpdateBatchAutoStaticCommand(method, propertyNames, returningRows);\r
- }\r
- putSqlCommand(method.getName(), cmd);\r
- }\r
-\r
- protected UpdateAutoStaticCommand createInternalUpdateAutoStaticCommand(final Method method, final String[] propertyNames) {\r
- final UpdateAutoStaticCommand cmd = new UpdateAutoStaticCommand(dataSource, statementFactory, beanMetaData, propertyNames);\r
- cmd.setCheckSingleRowUpdate(isCheckSingleRowUpdate(method));\r
- return cmd;\r
- }\r
- \r
- protected ${glInternalUpdateAutoDynamicCommand} createInternalUpdateAutoDynamicCommand(Method method, String[] propertyNames) {\r
- final ${glInternalUpdateAutoDynamicCommand} cmd = newUpdateAutoDynamicCommand(method, dataSource, statementFactory);\r
- cmd.setBeanMetaData(createBeanMetaData4UpdateDeleteByAuto(method));// Extension Point!\r
- cmd.setPropertyNames(propertyNames);\r
- cmd.setCheckSingleRowUpdate(!isNonstrictMethod(method));\r
- \r
- // It is unnecessary for DBFlute!\r
- // cmd.setNotSingleRowUpdatedExceptionClass(getNotSingleRowUpdatedExceptionClass(method));\r
- \r
- cmd.setVersionNoAutoIncrementOnMemory(isUpdateVersionNoAutoIncrementOnMemory(method));\r
- return cmd;\r
- }\r
-\r
- protected ${glInternalUpdateAutoDynamicCommand} newUpdateAutoDynamicCommand(Method method, DataSource ds, StatementFactory sf) {\r
- return new ${glInternalUpdateAutoDynamicCommand}(ds, sf);\r
- }\r
-\r
- protected ${glInternalUpdateModifiedOnlyCommand} createInternalUpdateModifiedOnlyCommand(final Method method, final String[] propertyNames) {\r
- final ${glInternalUpdateModifiedOnlyCommand} cmd = newInternalUpdateModifiedOnlyCommand(method, dataSource, statementFactory);\r
- cmd.setBeanMetaData(createBeanMetaData4UpdateDeleteByAuto(method));// Extension Point!\r
- cmd.setPropertyNames(propertyNames);\r
- cmd.setCheckSingleRowUpdate(!isNonstrictMethod(method));\r
- \r
- // It is unnecessary for DBFlute!\r
- // cmd.setNotSingleRowUpdatedExceptionClass(getNotSingleRowUpdatedExceptionClass(method));\r
- \r
- cmd.setVersionNoAutoIncrementOnMemory(isUpdateVersionNoAutoIncrementOnMemory(method));\r
- return cmd;\r
- }\r
-\r
- protected ${glInternalUpdateModifiedOnlyCommand} newInternalUpdateModifiedOnlyCommand(Method method, DataSource ds, StatementFactory sf) {\r
- return new ${glInternalUpdateModifiedOnlyCommand}(ds, sf);\r
- }\r
-\r
- protected ${glInternalUpdateBatchAutoStaticCommand} createInternalUpdateBatchAutoStaticCommand(final Method method, final String[] propertyNames, boolean returningRows) {\r
- return new ${glInternalUpdateBatchAutoStaticCommand}(dataSource, statementFactory\r
- , createBeanMetaData4UpdateDeleteByAuto(method), propertyNames, returningRows\r
- , isUpdateVersionNoAutoIncrementOnMemory(method)) {\r
- @Override\r
- protected ${glInternalUpdateBatchAutoHandler} newInternalBatchAutoHandler() {\r
- return new ${glInternalUpdateBatchAutoHandler}(getDataSource(), getStatementFactory(), getBeanMetaData(), getPropertyTypes()) {\r
- @Override\r
- protected int[] executeBatch(PreparedStatement ps, List<?> list) {\r
- final int[] result = super.executeBatch(ps, list);\r
- try {\r
- handleBatchUpdateResultWithOptimisticLock(ps, list, result, method);\r
- } catch (SQLException e) {\r
- handleSQLException(e, ps, false);\r
- return null;// Unreachable!\r
- }\r
- return result;\r
- }\r
- };\r
- }\r
- };\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Delete\r
- // ------\r
- @Override\r
- protected void setupDeleteMethodByAuto(final Method method) {\r
- if (isFirstArgumentConditionBean(method)) {\r
- final SqlCommand cmd = new ${glInternalDeleteQueryAutoDynamicCommand}(dataSource, statementFactory);\r
- putSqlCommand(method.getName(), cmd);\r
- return;\r
- }\r
- checkAutoUpdateMethod(method);\r
- final String[] propertyNames = getPersistentPropertyNames(method);\r
- final SqlCommand cmd;\r
- if (isUpdateSignatureForBean(method)) {\r
- cmd = createInternalDeleteAutoStaticCommand(method, propertyNames);\r
- } else {\r
- boolean returningRows = false;\r
- if (int[].class.isAssignableFrom(method.getReturnType())) {\r
- returningRows = true;\r
- }\r
- cmd = createInternalDeleteBatchAutoStaticCommand(method, propertyNames, returningRows);\r
- }\r
- putSqlCommand(method.getName(), cmd);\r
- }\r
-\r
- protected ${glInternalDeleteAutoStaticCommand} createInternalDeleteAutoStaticCommand(final Method method, final String[] propertyNames) {\r
- final ${glInternalDeleteAutoStaticCommand} cmd = new ${glInternalDeleteAutoStaticCommand}(dataSource, statementFactory, createBeanMetaData4UpdateDeleteByAuto(method), propertyNames);\r
- cmd.setCheckSingleRowUpdate(!isNonstrictMethod(method));\r
- return cmd;\r
- }\r
-\r
- protected ${glInternalDeleteBatchAutoStaticCommand} createInternalDeleteBatchAutoStaticCommand(final Method method, final String[] propertyNames, boolean returningRows) {\r
- return new ${glInternalDeleteBatchAutoStaticCommand}(dataSource, statementFactory, createBeanMetaData4UpdateDeleteByAuto(method), propertyNames, returningRows) {\r
- @Override\r
- protected ${glInternalDeleteBatchAutoHandler} newInternalBatchAutoHandler() {\r
- return new ${glInternalDeleteBatchAutoHandler}(getDataSource(), getStatementFactory(), getBeanMetaData(), getPropertyTypes()) {\r
- @Override\r
- protected int[] executeBatch(PreparedStatement ps, List<?> list) {\r
- final int[] result = super.executeBatch(ps, list);\r
- try {\r
- handleBatchUpdateResultWithOptimisticLock(ps, list, result, method);\r
- } catch (SQLException e) {\r
- handleSQLException(e, ps, false);\r
- return null;// Unreachable!\r
- }\r
- return result;\r
- }\r
- };\r
- }\r
- };\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Common Helper\r
- // -------------\r
- protected BeanMetaData createBeanMetaData4UpdateDeleteByAuto(Method method) {\r
- if (isNonstrictMethod(method)) {\r
- return createNonConcurrencyBmdFactory().createBeanMetaData(getBeanClass());\r
- } else {\r
- return getBeanMetaData();\r
- }\r
- }\r
- \r
- protected boolean isUpdateVersionNoAutoIncrementOnMemory(Method method) {\r
- return !isNonstrictMethod(method);\r
- }\r
-\r
- protected boolean isNonstrictMethod(Method method) {\r
- return method.getName().contains("Nonstrict");\r
- }\r
-\r
- protected BeanMetaDataFactory createNonConcurrencyBmdFactory() {\r
- final ${glS2BeanMetaDataFactoryImpl} nonConcurrencyBmdFactory = new ${glS2BeanMetaDataFactoryImpl}() {\r
- protected BeanMetaDataImpl createBeanMetaDataImpl() {\r
- return new BeanMetaDataImpl() {\r
- public boolean hasVersionNoPropertyType() {\r
- return false;\r
- }\r
-\r
- public boolean hasTimestampPropertyType() {\r
- return false;\r
- }\r
- };\r
- }\r
- };\r
- nonConcurrencyBmdFactory.setAnnotationReaderFactory(this.annotationReaderFactory);\r
- nonConcurrencyBmdFactory.setPropertyTypeFactoryBuilder(this.propertyTypeFactoryBuilder);\r
- nonConcurrencyBmdFactory.setRelationPropertyTypeFactoryBuilder(this.relationPropertyTypeFactoryBuilder);\r
- nonConcurrencyBmdFactory.setTableNaming(this.tableNaming);\r
- nonConcurrencyBmdFactory.setDataSource(this.dataSource);\r
- nonConcurrencyBmdFactory.setDaoNamingConvention(this.daoNamingConvention);\r
- nonConcurrencyBmdFactory.setBeanEnhancer(this.beanEnhancer);\r
- return nonConcurrencyBmdFactory;\r
- }\r
-\r
- protected boolean isFirstArgumentConditionBean(final Method method) {\r
- final Class<?>[] pmbTypes = method.getParameterTypes();\r
- return pmbTypes.length > 0 && ${glConditionBeanInterfaceName}.class.isAssignableFrom(pmbTypes[0]);\r
- }\r
-\r
- protected void handleBatchUpdateResultWithOptimisticLock(PreparedStatement ps, List<?> list, int[] result, Method method) throws SQLException {\r
- if (${glConditionBeanContextName}.isOracle()) {\r
- final int updateCount = ps.getUpdateCount();\r
- handleBatchUpdateResultWithOptimisticLockByUpdateCount(list, updateCount, method);\r
- } else {\r
- handleBatchUpdateResultWithOptimisticLockByResult(list, result, method);\r
- }\r
- }\r
-\r
- protected void handleBatchUpdateResultWithOptimisticLockByUpdateCount(List<?> list, int updateCount, Method method) {\r
- if (list.isEmpty()) {\r
- return;// for Safety!\r
- }\r
- if (updateCount < 0) {\r
- return;// for Safety!\r
- }\r
- final int entityCount = list.size();\r
- if (updateCount < entityCount) {\r
- if (isNonstrictMethod(method)) {\r
- String msg = "The entity have already deleted:";\r
- msg = msg + " updateCount=" + updateCount;\r
- msg = msg + " entityCount=" + entityCount;\r
- msg = msg + " allEntities=" + list;\r
- throw new ${glEntityAlreadyDeletedException}(msg);\r
- } else {\r
- throw new ${glBatchEntityAlreadyUpdatedException}(list.get(0), 0, updateCount);\r
- }\r
- }\r
- }\r
-\r
- protected void handleBatchUpdateResultWithOptimisticLockByResult(List<?> list, Object result, Method method) {\r
- if (list.isEmpty()) {\r
- return;// for Safety!\r
- }\r
- if (!(result instanceof int[])) {\r
- return;// for Safety!\r
- }\r
- final int[] updatedCountArray = (int[])result;\r
- final int entityCount = list.size();\r
- int index = 0;\r
- boolean alreadyUpdated = false;\r
- for (int oneUpdateCount : updatedCountArray) {\r
- if (entityCount <= index) {\r
- break;// for Safety!\r
- }\r
- if (oneUpdateCount == 0) {\r
- alreadyUpdated = true;\r
- break;\r
- } else if (oneUpdateCount > 1) {\r
- String msg = "The entity updated two or more records in batch update:";\r
- msg = msg + " entity=" + list.get(index);\r
- msg = msg + " updatedCount=" + oneUpdateCount;\r
- msg = msg + " allEntities=" + list;\r
- throw new ${glEntityDuplicatedException}(msg);\r
- }\r
- ++index;\r
- }\r
- if (alreadyUpdated) {\r
- int updateCount = 0;\r
- for (int oneUpdateCount : updatedCountArray) {\r
- updateCount = updateCount + oneUpdateCount;\r
- }\r
- if (isNonstrictMethod(method)) {\r
- String msg = "The entity have already deleted:";\r
- msg = msg + " entity=" + list.get(index);\r
- msg = msg + " updateCount=" + updateCount;\r
- msg = msg + " allEntities=" + list;\r
- throw new ${glEntityAlreadyDeletedException}(msg);\r
- } else {\r
- throw new ${glBatchEntityAlreadyUpdatedException}(list.get(index), 0, updateCount);\r
- }\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // OutsideSql Override\r
- // ===================\r
- // -----------------------------------------------------\r
- // Normal OutsideSql\r
- // -----------------\r
- @Override\r
- protected void setupSelectMethodByManual(Method method, String sql) {\r
- final Class<?>[] pmbTypes = method.getParameterTypes();\r
- final String[] argNames = this.daoAnnotationReader.getArgNames(method);\r
- final Class<?>[] argTypes;\r
- if (pmbTypes != null && pmbTypes.length > 0\r
- && ${glCursorHandlerName}.class.isAssignableFrom(pmbTypes[pmbTypes.length-1])) {\r
- argTypes = new Class<?>[pmbTypes.length - 1];\r
- for (int i=0; i < pmbTypes.length - 1; i++) {\r
- argTypes[i] = pmbTypes[i];\r
- }\r
- } else {\r
- argTypes = pmbTypes;\r
- }\r
- final BeanMetaData myBeanMetaData = getOutsideSqlBeanMetaData(method);\r
- registerSqlCommand(method.getName(), method, sql, argNames, argTypes, myBeanMetaData);\r
- }\r
-\r
- protected BeanMetaData getOutsideSqlBeanMetaData(Method method) {\r
- final Class beanClass4SelectMethodByManual = getOutsideSqlDefaultBeanClass(method);\r
- if (beanClass4SelectMethodByManual.equals(getBeanClass())) {\r
- return getBeanMetaData();\r
- }\r
- return createOutsideSqlCustomizeBeanMetaDataFactory().createBeanMetaData(getOutsideSqlDefaultBeanClass(method));\r
- }\r
-\r
- @Override\r
- protected void setupUpdateMethodByManual(Method method, final String sql) {\r
- // DBFlute Extesion does not exist. Because DBFlute methods don't use this!\r
- // The insert/update/delete methods on DAO interface as outside SQL are target.\r
- // And especially NonPrimaryInsertMethod uses this for using S2Dao's BindVariableNode.\r
- super.setupUpdateMethodByManual(method, sql);\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Specified OutsideSql\r
- // --------------------\r
- // - - - - - - - - - - - -\r
- // Select\r
- // - - -\r
- protected void setupSpecifiedOutsideSqlSelectCommand(String sqlCommandKey, Method method, ${glOutsideSqlContextName} outsideSqlContext) {\r
- // - - - - - - - - - - - - - - - - - - - - - - -\r
- // The attribute of Specified-OutsideSqlContext.\r
- // - - - - - - - - - - - - - - - - - - - - - - -\r
- final String sql = outsideSqlContext.readFilteredOutsideSql(getSqlFileEncoding(), dbms.getSuffix());\r
- final Object pmb = outsideSqlContext.getParameterBean();\r
- final Object resultTypeSpecification = outsideSqlContext.getResultTypeSpecification();\r
-\r
- // - - - - - - - - - - - - - - -\r
- // The attribute of SqlCommand.\r
- // - - - - - - - - - - - - - - -\r
- final String[] argNames = (pmb != null ? new String[] {"pmb"} : new String[]{});\r
- final Class<?>[] argTypes = (pmb != null ? new Class<?>[] {pmb.getClass()} : new Class<?>[]{});\r
-\r
- // - - - - - - - - - - - - - - - -\r
- // Create customized BeanMetaData.\r
- // - - - - - - - - - - - - - - - -\r
- final Class<?> lastestArguementType = method.getParameterTypes()[method.getParameterTypes().length-1];\r
- final ResultSetHandler myResultSetHandler;\r
- if (Class.class.isAssignableFrom(lastestArguementType)) {\r
- // - - - - - - - -\r
- // EntityHandling\r
- // - - - - - - - -\r
- final Class<?> customizeEntityType = (Class<?>)resultTypeSpecification;\r
- final BeanMetaData myBeanMetaData = createSpecifiedOutsideSqlCustomizeBeanMetaData(customizeEntityType);\r
- if (List.class.isAssignableFrom(method.getReturnType())) {\r
- myResultSetHandler = createSpecifiedOutsideSqlCustomizeBeanListResultSetHandler(myBeanMetaData, customizeEntityType);\r
- } else {\r
- throw new UnsupportedOperationException("The return type of method is unsupported: method.getReturnType()=" + method.getReturnType());\r
- // myResultSetHandler = createSpecifiedOutsideSqlCustomizeBeanResultSetHandler(myBeanMetaData, customizeEntityType);\r
- }\r
- } else if (${glCursorHandlerName}.class.isAssignableFrom(lastestArguementType)) {\r
- // - - - - - - - -\r
- // CursorHandling\r
- // - - - - - - - -\r
- final BeanMetaData myBeanMetaData = createSpecifiedOutsideSqlCursorBeanMetaData(method);\r
- myResultSetHandler = createSpecifiedOutsideSqlCursorResultSetHandler(myBeanMetaData);\r
- } else {\r
- String msg = "The lastestArguementType is unsupported:";\r
- msg = msg + " lastestArguementType=" + lastestArguementType;\r
- msg = msg + " method=" + method;\r
- throw new IllegalStateException(msg);\r
- }\r
-\r
- // - - - - - - - - - - -\r
- // Register Sql-Command.\r
- // - - - - - - - - - - -\r
- registerSqlCommand(sqlCommandKey, method, sql, argNames, argTypes, myResultSetHandler);\r
- }\r
-\r
- protected BeanMetaData createSpecifiedOutsideSqlCustomizeBeanMetaData(Class clazz) {\r
- return createOutsideSqlCustomizeBeanMetaDataFactory().createBeanMetaData(clazz);\r
- }\r
-\r
- /**\r
- * Create the handler of result set of specified outside-sql for the list of customize bean.\r
- * @param specifiedBeanMetaData Specified bean meta data. (NotNull)\r
- * @param customizeEntityType The type of customize entity. (NotNull)\r
- * @return The handler of result set. (NotNull)\r
- */\r
- protected ResultSetHandler createSpecifiedOutsideSqlCustomizeBeanListResultSetHandler(BeanMetaData specifiedBeanMetaData, Class<?> customizeEntityType) {\r
- final ValueType valueType = ValueTypes.getValueType(customizeEntityType);\r
- if (valueType == null || !valueType.equals(ValueTypes.OBJECT)) {\r
- return new InternalObjectListResultSetHandler(valueType);\r
- }\r
- final ${glInternalRowCreator} rowCreator = createSpecifiedOutsideSqlInternalRowCreator(specifiedBeanMetaData);\r
- final ${glInternalRelationRowCreator} relationRowCreator = createSpecifiedOutsideSqlInternalRelationRowCreator(specifiedBeanMetaData);\r
- return new ${glInternalBeanListMetaDataResultSetHandler}(specifiedBeanMetaData, rowCreator, relationRowCreator);\r
- }\r
-\r
- protected ${glInternalRowCreator} createSpecifiedOutsideSqlInternalRowCreator(BeanMetaData bmd) {\r
- final Class clazz = bmd.getBeanClass();\r
- return ${glInternalRowCreator}.createInternalRowCreator(clazz);\r
- }\r
-\r
- protected ${glInternalRelationRowCreator} createSpecifiedOutsideSqlInternalRelationRowCreator(BeanMetaData bmd) {\r
- return new ${glInternalRelationRowCreator}();\r
- }\r
-\r
- protected class InternalObjectListResultSetHandler implements ResultSetHandler {\r
- private ValueType valueType;\r
- public InternalObjectListResultSetHandler(ValueType valueType) {\r
- this.valueType = valueType;\r
- }\r
- public Object handle(ResultSet rs) throws SQLException {\r
- final List<Object> ret = new ArrayList<Object>();\r
- while (rs.next()) {\r
- ret.add(valueType.getValue(rs, 1));\r
- }\r
- return ret;\r
- }\r
- }\r
-\r
- protected BeanMetaData createSpecifiedOutsideSqlCursorBeanMetaData(Method method) {\r
- return createOutsideSqlCustomizeBeanMetaDataFactory().createBeanMetaData(getOutsideSqlDefaultBeanClass(method));\r
- }\r
-\r
- protected ResultSetHandler createSpecifiedOutsideSqlCursorResultSetHandler(BeanMetaData specifiedBeanMetaData) {\r
- return new org.seasar.extension.jdbc.impl.ObjectResultSetHandler();// This is dummy for cursor handling!\r
- }\r
-\r
- // - - - - - - - - - - - -\r
- // Execute\r
- // - - - -\r
- protected void setupSpecifiedOutsideSqlExecuteCommand(String sqlCommandKey, Method method, ${glOutsideSqlContextName} outsideSqlContext) {\r
- // - - - - - - - - - - - - - - - - - - - - - - -\r
- // The attribute of Specified-OutsideSqlContext.\r
- // - - - - - - - - - - - - - - - - - - - - - - -\r
- final String sql = outsideSqlContext.readFilteredOutsideSql(getSqlFileEncoding(), dbms.getSuffix());\r
- final Object pmb = outsideSqlContext.getParameterBean();\r
-\r
- // - - - - - - - - - - - - - - -\r
- // The attribute of SqlCommand.\r
- // - - - - - - - - - - - - - - -\r
- final String[] argNames = (pmb != null ? new String[] {"pmb"} : new String[]{});\r
- final Class<?>[] argTypes = (pmb != null ? new Class<?>[] {pmb.getClass()} : new Class<?>[]{});\r
-\r
- final ${glInternalUpdateDynamicCommand} cmd = new ${glInternalUpdateDynamicCommand}(dataSource, statementFactory) {\r
- @Override\r
- public Object execute(Object[] args) {\r
- if (args.length != 3) {\r
- String msg = "Internal Error! OutsideSqlDao.execute() should have 3 arguements: args.length=" + args.length;\r
- throw new IllegalStateException(msg);\r
- }\r
- Object arg = args[1];\r
- return super.execute(new Object[] {arg});\r
- }\r
- };\r
- \r
- // It is unnecessary for DBFlute!\r
- // cmd.setNotSingleRowUpdatedExceptionClass(getNotSingleRowUpdatedExceptionClass(method));\r
- \r
- registerSqlCommand(sqlCommandKey, method, sql, argNames, argTypes, cmd);\r
- }\r
-\r
- // - - - - - - - - - - - -\r
- // Call Procedure\r
- // - - - - - - -\r
- protected void setupSpecifiedOutsideSqlCallCommand(String sqlCommandKey, Method method, ${glOutsideSqlContextName} outsideSqlContext) {\r
- // - - - - - - - - - - - - - - - - - - - - - - -\r
- // The attribute of Specified-OutsideSqlContext.\r
- // - - - - - - - - - - - - - - - - - - - - - - -\r
- final Object pmb = outsideSqlContext.getParameterBean();\r
- final String procedureName = outsideSqlContext.getOutsideSqlPath();\r
-\r
- // - - - - - - - - - - - - - - -\r
- // The attribute of SqlCommand.\r
- // - - - - - - - - - - - - - - -\r
- final ${glInternalProcedureMetaDataFactory} factory = createInternalProcedureMetaDataFactory();\r
- factory.setValueTypeFactory(valueTypeFactory);\r
- final Class<?> pmbType = pmb != null ? pmb.getClass() : null;\r
- final ${glInternalProcedureMetaData} metaData = factory.createProcedureMetaData(procedureName, pmbType);\r
- final ${glInternalProcedureCommand} cmd = createInternalProcedureCommand(method, metaData);\r
- putSqlCommand(sqlCommandKey, cmd);\r
- }\r
-\r
- protected ${glInternalProcedureMetaDataFactory} createInternalProcedureMetaDataFactory() {\r
- return new ${glInternalProcedureMetaDataFactory}();\r
- }\r
-\r
- protected ${glInternalProcedureCommand} createInternalProcedureCommand(Method method, ${glInternalProcedureMetaData} metaData) {\r
- final ResultSetHandler resultSetHandler = createResultSetHandler(method);\r
- return new ${glInternalProcedureCommand}(dataSource, resultSetHandler, statementFactory, metaData);\r
- }\r
- \r
- // -----------------------------------------------------\r
- // Common of OutsideSql\r
- // --------------------\r
- protected BeanMetaDataFactory createOutsideSqlCustomizeBeanMetaDataFactory() {\r
- final ${glBeanMetaDataFactoryImpl} originalBmdFactory = new ${glBeanMetaDataFactoryImpl}() {\r
- protected BeanMetaDataImpl createBeanMetaDataImpl() {\r
- return newOutsideSqlCustomizeBeanMetaDataImpl();\r
- }\r
- };\r
- originalBmdFactory.setAnnotationReaderFactory(this.annotationReaderFactory);\r
- originalBmdFactory.setPropertyTypeFactoryBuilder(createOutsideSqlPropertyTypeFactoryBuilder());\r
- originalBmdFactory.setRelationPropertyTypeFactoryBuilder(this.relationPropertyTypeFactoryBuilder);\r
- originalBmdFactory.setTableNaming(this.tableNaming);\r
- originalBmdFactory.setDataSource(this.dataSource);\r
- originalBmdFactory.setDaoNamingConvention(this.daoNamingConvention);\r
- originalBmdFactory.setBeanEnhancer(this.beanEnhancer);\r
- return originalBmdFactory;\r
- }\r
-\r
- protected BeanMetaDataImpl newOutsideSqlCustomizeBeanMetaDataImpl() {\r
- return new OutsideSqlCustomizeBeanMetaDataImpl();\r
- }\r
-\r
- protected static class OutsideSqlCustomizeBeanMetaDataImpl extends BeanMetaDataImpl {\r
- // Though nothing to override, it uses original class just in case.\r
- }\r
-\r
- protected ${glDaoPropertyTypeFactoryBuilderExtension} createOutsideSqlPropertyTypeFactoryBuilder() {\r
- final ${glDaoPropertyTypeFactoryBuilderExtension} impl = new ${glDaoPropertyTypeFactoryBuilderExtension}();\r
- if (columnNaming == null) {\r
- String msg = "Internal Error! The columnNaming should not be null! {Failed to Injection!}";\r
- throw new IllegalStateException(msg);\r
- }\r
- impl.setColumnNaming(columnNaming);\r
- impl.setValueTypeFactory(valueTypeFactory);\r
- return impl;\r
- }\r
-\r
- protected Class getOutsideSqlDefaultBeanClass(Method method) {\r
- final Class retType = method.getReturnType();\r
- if (java.util.List.class.isAssignableFrom(retType)) {\r
- final Class elementType = InternalMethodUtil.getElementTypeOfListFromReturnMethod(method);\r
- if (elementType != null) {\r
- return elementType;\r
- } else {\r
- return getBeanClass();\r
- }\r
- } else if (retType.isArray()) {\r
- return retType.getComponentType();\r
- } else if (retType.isPrimitive() || !ValueTypes.getValueType(retType).equals(ValueTypes.OBJECT)) {\r
- return getBeanClass();\r
- } else {\r
- return retType;\r
- }\r
- }\r
- \r
- protected void registerSqlCommand(String sqlCommandKey, Method method, String sql, String[] argNames, Class[] argTypes, BeanMetaData myBeanMetaData) {\r
- registerSqlCommand(sqlCommandKey, method, sql, argNames, argTypes, createResultSetHandler(myBeanMetaData, method));\r
- }\r
-\r
- protected void registerSqlCommand(String sqlCommandKey, Method method, String sql, String[] argNames, Class[] argTypes, ResultSetHandler myResultSetHandler) {\r
- final ${glSelectDynamicCommand} cmd = createCustomizeSelectDynamicCommand(myResultSetHandler);\r
- registerSqlCommand(sqlCommandKey, method, sql, argNames, argTypes, cmd);\r
- }\r
-\r
- protected void registerSqlCommand(String sqlCommandKey, Method method, String sql, String[] argNames, Class[] argTypes, ${glSelectDynamicCommand} cmd) {\r
- cmd.setSql(sql);\r
- cmd.setArgNames(argNames);\r
- cmd.setArgTypes(argTypes);\r
- this.sqlCommands.put(sqlCommandKey, cmd);\r
- }\r
-\r
- protected void registerSqlCommand(String sqlCommandKey, Method method, String sql, String[] argNames, Class[] argTypes, ${glInternalUpdateDynamicCommand} cmd) {\r
- cmd.setSql(sql);\r
- cmd.setArgNames(argNames);\r
- cmd.setArgTypes(argTypes);\r
- this.sqlCommands.put(sqlCommandKey, cmd);\r
- }\r
-\r
- // ===================================================================================\r
- // Common Handlnig\r
- // ===============\r
- @Override\r
- protected void putSqlCommand(String methodName, SqlCommand cmd) {\r
- sqlCommands.put(methodName, cmd);\r
- }\r
- \r
- protected boolean isCheckSingleRowUpdate(Method method) {\r
- return checkSingleRowUpdateForAll & daoAnnotationReader.isCheckSingleRowUpdate(method);\r
- }\r
-\r
- // ===================================================================================\r
- // Customize SelectDynamicCommand Creation\r
- // =======================================\r
- /**\r
- * Create the customize select dynamic command that is for all select SQL on DBFlute.\r
- * @param handler The handler of result set. (NotNull)\r
- * @return The customize select dynamic command. (NotNull)\r
- */\r
- protected ${glSelectDynamicCommand} createCustomizeSelectDynamicCommand(ResultSetHandler handler) {\r
- return new ${glSelectDynamicCommand}(dataSource, statementFactory, handler);\r
- }\r
-\r
- // ===================================================================================\r
- // ResultSetHandler Override\r
- // =========================\r
- @Override\r
- protected ResultSetHandler createResultSetHandler(Method method) {\r
- return this.resultSetHandlerFactory.getResultSetHandler(daoAnnotationReader, beanMetaData, method);\r
- }\r
-\r
- protected ResultSetHandler createResultSetHandler(BeanMetaData specifiedBeanMetaData, Method method) {// For specified BeanMetaData\r
- return this.resultSetHandlerFactory.getResultSetHandler(daoAnnotationReader, specifiedBeanMetaData, method);\r
- }\r
-\r
- // ===================================================================================\r
- // JDBC Delegator\r
- // ==============\r
- protected Connection getConnection() {\r
- if (dataSource == null) {\r
- throw new IllegalStateException("The dataSource should not be null!");\r
- }\r
- try {\r
- return dataSource.getConnection();\r
- } catch (SQLException e) {\r
- handleSQLException(e, null);\r
- return null;// Unreachable!\r
- }\r
- }\r
-\r
- protected DatabaseMetaData getMetaData(Connection conn) {\r
- try {\r
- return conn.getMetaData();\r
- } catch (SQLException e) {\r
- handleSQLException(e, null);\r
- return null;// Unreachable!\r
- }\r
- }\r
-\r
- protected String getDatabaseProductName(DatabaseMetaData dbMetaData) {\r
- try {\r
- return dbMetaData.getDatabaseProductName();\r
- } catch (SQLException e) {\r
- handleSQLException(e, null);\r
- return null;// Unreachable!\r
- }\r
- }\r
-\r
- protected void close(Connection conn) {\r
- if (conn == null) {\r
- return;\r
- }\r
- try {\r
- conn.close();\r
- } catch (SQLException e) {\r
- handleSQLException(e, null);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Exception Handlnig\r
- // ==================\r
- protected void handleSQLException(SQLException e, Statement statement) {\r
- new SQLExceptionHandler().handleSQLException(e, statement);\r
- }\r
-\r
- // ===================================================================================\r
- // ResultSetHandlerFactoryImpl Extension\r
- // =====================================\r
- public static class ResultSetHandlerFactoryExtension extends ResultSetHandlerFactoryImpl {\r
- public ResultSetHandlerFactoryExtension() {\r
- super();\r
- }\r
-\r
- @Override\r
- protected RowCreator createRowCreator() { // [DAO-118] (2007/08/25)\r
- return createInternalRowCreator(null);\r
- }\r
-\r
- @Override\r
- protected RelationRowCreator createRelationRowCreator() {\r
- return createInternalRelationRowCreator(null);\r
- }\r
- \r
- @Override\r
- protected ResultSetHandler createBeanListMetaDataResultSetHandler(BeanMetaData bmd) { // DBFlute Target\r
- final ${glInternalRowCreator} rowCreator = createInternalRowCreator(bmd);\r
- final ${glInternalRelationRowCreator} relationRowCreator = createInternalRelationRowCreator(bmd);\r
- return new ${glInternalBeanListMetaDataResultSetHandler}(bmd, rowCreator, relationRowCreator);\r
- }\r
- \r
- @Override\r
- protected ResultSetHandler createBeanArrayMetaDataResultSetHandler(BeanMetaData bmd) { // DBFlute Target\r
- final ${glInternalRowCreator} rowCreator = createInternalRowCreator(bmd);\r
- final ${glInternalRelationRowCreator} relationRowCreator = createInternalRelationRowCreator(bmd);\r
- return new ${glInternalBeanArrayMetaDataResultSetHandler}(bmd, rowCreator, relationRowCreator);\r
- }\r
-\r
- protected ${glInternalRowCreator} createInternalRowCreator(BeanMetaData bmd) {\r
- final Class<?> clazz = bmd != null ? bmd.getBeanClass() : null;\r
- return ${glInternalRowCreator}.createInternalRowCreator(clazz);\r
- }\r
-\r
- protected ${glInternalRelationRowCreator} createInternalRelationRowCreator(BeanMetaData bmd) {\r
- return new ${glInternalRelationRowCreator}(); // Not yet implemented about performance tuning!\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Vert Internal\r
- // =============\r
- protected static class InternalMethodUtil {\r
- public static Class getElementTypeOfListFromReturnMethod(Method method) {\r
- return InternalReflectionUtil.getElementTypeOfListFromReturnType(method);\r
- }\r
- }\r
- protected static class InternalReflectionUtil {\r
- public static Class<?> getElementTypeOfList(final Type parameterizedList) {\r
- if (!(parameterizedList instanceof ParameterizedType)) {\r
- return null;\r
- }\r
- final ParameterizedType parameterizedType = ParameterizedType.class.cast(parameterizedList);\r
- final Type rawType = parameterizedType.getRawType();\r
- if (!(rawType instanceof Class)) {\r
- return null;\r
- }\r
- final Class<?> rawClass = Class.class.cast(rawType);\r
- if (!rawClass.isAssignableFrom(List.class)) {\r
- return null;\r
- }\r
- final Type[] actualTypeArgument = parameterizedType.getActualTypeArguments();\r
- if (actualTypeArgument == null || actualTypeArgument.length != 1) {\r
- return null;\r
- }\r
- if (!(actualTypeArgument[0] instanceof Class)) {\r
- return null;\r
- }\r
- return Class.class.cast(actualTypeArgument[0]);\r
- }\r
- public static Class<?> getElementTypeOfListFromParameterType(final Method method, final int parameterPosition) {\r
- final Type[] pmbTypes = method.getGenericParameterTypes();\r
- return getElementTypeOfList(pmbTypes[parameterPosition]);\r
- }\r
- public static Class<?> getElementTypeOfListFromReturnType(final Method method) {\r
- return getElementTypeOfList(method.getGenericReturnType());\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Assist Helper\r
- // =============\r
- protected ${glDBMetaInterfaceName} findDBMeta() {\r
- final Class<?> beanType = getBeanClass();\r
- if (beanType == null) {\r
- return null;\r
- }\r
- if (!${glEntityInterfaceName}.class.isAssignableFrom(beanType)) {\r
- return null;\r
- }\r
- final ${glEntityInterfaceName} entity;\r
- try {\r
- entity = (${glEntityInterfaceName})beanType.newInstance();\r
- } catch (InstantiationException e) {\r
- throw new IllegalStateException(e);\r
- } catch (IllegalAccessException e) {\r
- throw new IllegalStateException(e);\r
- }\r
- return entity.getDBMeta();\r
- }\r
-\r
- // ===================================================================================\r
- // General Helper\r
- // ==============\r
- protected String getLineSeparator() {\r
- return ${glSimpleSystemUtil}.getLineSeparator();\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- // -----------------------------------------------------\r
- // Sql File Encoding\r
- // -----------------\r
- public String getSqlFileEncoding() {\r
- return sqlFileEncoding;\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Bean Enhancer\r
- // -------------\r
- public BeanEnhancer getBeanEnhancer() {\r
- return beanEnhancer;\r
- }\r
-\r
- public void setBeanEnhancer(final BeanEnhancer beanEnhancer) {\r
- this.beanEnhancer = beanEnhancer;\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Annotation Reader Factory\r
- // -------------------------\r
- public void setAnnotationReaderFactory(org.seasar.dao.AnnotationReaderFactory annotationReaderFactory) {\r
- this.annotationReaderFactory = annotationReaderFactory;\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Version After 1.0.47\r
- // --------------------\r
- public ColumnNaming getColumnNaming() {\r
- return columnNaming;\r
- }\r
-\r
- public void setColumnNaming(final ColumnNaming columnNaming) {\r
- this.columnNaming = columnNaming;\r
- }\r
-\r
- public PropertyTypeFactoryBuilder getPropertyTypeFactoryBuilder() {\r
- return propertyTypeFactoryBuilder;\r
- }\r
-\r
- public void setPropertyTypeFactoryBuilder(final PropertyTypeFactoryBuilder propertyTypeFactoryBuilder) {\r
- this.propertyTypeFactoryBuilder = propertyTypeFactoryBuilder;\r
- }\r
-\r
- public RelationPropertyTypeFactoryBuilder getRelationPropertyTypeFactoryBuilder() {\r
- return relationPropertyTypeFactoryBuilder;\r
- }\r
-\r
- public void setRelationPropertyTypeFactoryBuilder(final RelationPropertyTypeFactoryBuilder relationPropertyTypeFactoryBuilder) {\r
- this.relationPropertyTypeFactoryBuilder = relationPropertyTypeFactoryBuilder;\r
- }\r
-\r
- public TableNaming getTableNaming() {\r
- return tableNaming;\r
- }\r
-\r
- public void setTableNaming(final TableNaming tableNaming) {\r
- this.tableNaming = tableNaming;\r
- }\r
-\r
- // -----------------------------------------------------\r
- // DBFlute Extension\r
- // -----------------\r
- public ${glBehaviorSelectorInterfaceName} getBehaviorSelector() {\r
- return _behaviorSelector;\r
- }\r
-\r
- public void setBehaviorSelector(final ${glBehaviorSelectorInterfaceName} behaviorSelector) {\r
- this._behaviorSelector = behaviorSelector;\r
- }\r
- \r
- public boolean isInternalDebug() {\r
- return _internalDebug;\r
- }\r
-\r
- public void setInternalDebug(final boolean internalDebug) {\r
- this._internalDebug = internalDebug;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2Dao};\r
-\r
-import org.seasar.dao.AnnotationReaderFactory;\r
-import org.seasar.dao.BeanEnhancer;\r
-import org.seasar.dao.impl.DaoMetaDataFactoryImpl;\r
-import org.seasar.dao.impl.DaoMetaDataImpl;\r
-import org.seasar.extension.jdbc.ResultSetFactory;\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-\r
-import ${glPackageBaseCommon}.${glDBFluteConfig};\r
-import ${glPackageBaseCommonCBean}.${glConditionBeanContextName};\r
-import ${glPackageBaseCommonS2DaoInternalSqlLog}.${glInternalSqlLogRegistry};\r
-\r
-/**\r
- * DaoMetaDataFactoryImpl for DBFlute.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glDaoMetaDataFactoryImpl} extends DaoMetaDataFactoryImpl {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- /** Log-instance. */\r
- private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory.getLog(${glDaoInterceptor}.class);\r
-\r
- /** The binding annotation for xaDataSource. {bindingType=may} */\r
- public static final String xaDataSource_BINDING = "bindingType=may";\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- /** Bean enhancer. */\r
- protected BeanEnhancer beanEnhancer;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- /**\r
- * Constructor.\r
- * @param dataSource Data source.\r
- * @param statementFactory Statement factory.\r
- * @param resultSetFactory Result set factory.\r
- * @param readerFactory Annotation reader factory.\r
- * @param xaDataSource XA data source.\r
- */\r
- public ${glDaoMetaDataFactoryImpl}(javax.sql.DataSource dataSource,\r
- StatementFactory statementFactory,\r
- ResultSetFactory resultSetFactory,\r
- AnnotationReaderFactory readerFactory,\r
- javax.sql.XADataSource xaDataSource) {\r
- super(dataSource, statementFactory, resultSetFactory, readerFactory);\r
-\r
- _log.info("/* * * * * * * * * * * * * * * * * * * * * * * * * * * * {DBFlute}");\r
- showInformation(dataSource, xaDataSource);\r
-\r
- // Stop the LinkageError!\r
- ${glConditionBeanContextName}.initialize();\r
-\r
- initializeDatabaseProductNameOfContext(xaDataSource);\r
-\r
- final StringBuilder sb = new StringBuilder();\r
- sb.append("{SqlLog Information}").append(getLineSeparator());\r
- sb.append(" [SqlLogRegistry]").append(getLineSeparator());\r
- final Object sqlLogRegistry = ${glInternalSqlLogRegistry}.findContainerSqlLogRegistry();\r
- if (sqlLogRegistry != null) {\r
- ${glInternalSqlLogRegistry}.closeRegistration();\r
- sb.append(" SqlLogRegistry(org.seasar.extension.jdbc) is close! It's default for DBFlute.").append(getLineSeparator());\r
- sb.append(" If you want to use this, set SqlLogRegistry to SqlLogRegistryLocator at yourself.");\r
- } else {\r
- sb.append(" SqlLogRegistry(org.seasar.extension.jdbc) was not found!");\r
- }\r
- _log.info(sb);\r
- ${glDBFluteConfig}.getInstance().lock();\r
- _log.info("* * * * */");\r
- }\r
-\r
- protected void showInformation(javax.sql.DataSource dataSource, javax.sql.XADataSource xaDataSource) {\r
- final StringBuilder sb = new StringBuilder();\r
- if (xaDataSource != null && xaDataSource instanceof org.seasar.extension.dbcp.impl.XADataSourceImpl) {\r
- final org.seasar.extension.dbcp.impl.XADataSourceImpl xaDataSourceImpl = (org.seasar.extension.dbcp.impl.XADataSourceImpl)xaDataSource;\r
- final String driverClassName = xaDataSourceImpl.getDriverClassName();\r
- final String url = xaDataSourceImpl.getURL();\r
- final String user = xaDataSourceImpl.getUser();\r
- sb.append(" [XADataSource]:").append(getLineSeparator());\r
- sb.append(" driver = " + driverClassName).append(getLineSeparator());\r
- sb.append(" url = " + url).append(getLineSeparator());\r
- sb.append(" user = " + user).append(getLineSeparator());\r
- }\r
- final String statementFactoryExpression = statementFactory != null ? statementFactory.getClass().getSimpleName(): "null";\r
- final String resultSetFactoryExpression = resultSetFactory != null ? resultSetFactory.getClass().getSimpleName(): "null";\r
- sb.append(" [StatementFactory]:").append(getLineSeparator());\r
- sb.append(" Injected statementFactory is " + statementFactoryExpression + ". But DBFlute uses original statementFactory.").append(getLineSeparator());\r
- sb.append(" If the injected statementFactory is ConfigurableStatementFactory, the config is inherited to the original statementFactory.").append(getLineSeparator());\r
- sb.append(" [ResultSetFactory]:").append(getLineSeparator());\r
- sb.append(" Injected resultSetFactory is " + resultSetFactoryExpression + ". But DBFlute uses original resultSetFactory.");\r
- _log.info("{Injection Information}" + getLineSeparator() + sb);\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Database Product Name\r
- // ---------------------\r
- protected void initializeDatabaseProductNameOfContext(javax.sql.XADataSource xaDataSource) {\r
- if (getDatabaseProductNameFromContext() != null) {\r
- return;\r
- }\r
-\r
- // From JDBC Driver!\r
- if (xaDataSource != null && xaDataSource instanceof org.seasar.extension.dbcp.impl.XADataSourceImpl) {\r
- final org.seasar.extension.dbcp.impl.XADataSourceImpl xaDataSourceImpl = (org.seasar.extension.dbcp.impl.XADataSourceImpl)xaDataSource;\r
- final String driverClassName = xaDataSourceImpl.getDriverClassName();\r
- if (driverClassName != null) {\r
- if (setupDatabaseProductNameByDriverClassName(driverClassName)) {\r
- _log.info("...Initializing database product name from driverClassName: " + getDatabaseProductNameFromContext());\r
- return;\r
- }\r
- }\r
- }\r
-\r
- _log.info("...Initializing database product name as default: ${database.daoGenDbName}");\r
- setDatabaseProductNameToContext("${database.daoGenDbName}");\r
- }\r
-\r
- protected String getDatabaseProductNameFromContext() {\r
- return ${glConditionBeanContextName}.getDatabaseProductName();\r
- }\r
-\r
- protected void setDatabaseProductNameToContext(String name) {\r
- ${glConditionBeanContextName}.setDatabaseProductName(name);\r
- }\r
-\r
- protected boolean setupDatabaseProductNameByDriverClassName(String driverClassName) {\r
- return ${glConditionBeanContextName}.setupDatabaseProductNameByDriverClassName(driverClassName);\r
- }\r
-\r
-#if ($database.isVersionAfter1046() && !$database.isVersionAfter1047())\r
- // ===================================================================================\r
- // Initialize\r
- // ==========\r
- public void initialize() {\r
- if (dtoMetaDataFactory == null) {\r
- final org.seasar.dao.impl.DtoMetaDataFactoryImpl factory = new org.seasar.dao.impl.DtoMetaDataFactoryImpl();\r
- factory.setAnnotationReaderFactory(this.annotationReaderFactory);\r
- factory.setValueTypeFactory(valueTypeFactory);\r
- dtoMetaDataFactory = factory;\r
- }\r
- if (resultSetHandlerFactory == null) {\r
- final org.seasar.dao.impl.ResultSetHandlerFactoryImpl factory = new ${glDaoMetaDataExtension}.ResultSetHandlerFactoryExtension();\r
- factory.setDtoMetaDataFactory(dtoMetaDataFactory);\r
- resultSetHandlerFactory = factory;\r
- }\r
- }\r
-#end\r
-\r
- // ===================================================================================\r
- // DataMetaData Creation Override\r
- // ==============================\r
- protected DaoMetaDataImpl createDaoMetaDataImpl() {// Override!\r
- final ${glDaoMetaDataExtension} dmdExtension = newDaoMetaDataExtension();\r
- dmdExtension.setBeanEnhancer(beanEnhancer);\r
-#if ($database.isVersionAfter1046())\r
- dmdExtension.setAnnotationReaderFactory(this.annotationReaderFactory);\r
-#end\r
- dmdExtension.setDefaultStatementConfig(${glDBFluteConfig}.getInstance().getDefaultStatementConfig());\r
- dmdExtension.setInternalDebug(${glDBFluteConfig}.getInstance().isInternalDebug());\r
- return dmdExtension;\r
- }\r
-\r
- protected ${glDaoMetaDataExtension} newDaoMetaDataExtension() {\r
- return new ${glDaoMetaDataExtension}();\r
- }\r
-\r
- // ===================================================================================\r
- // Sql File Encoding\r
- // =================\r
- public String getSqlFileEncoding() {\r
- return sqlFileEncoding;\r
- }\r
-\r
- // ===================================================================================\r
- // Bean Enhancer\r
- // =============\r
- public BeanEnhancer getBeanEnhancer() {\r
- return beanEnhancer;\r
- }\r
-\r
- public void setBeanEnhancer(final BeanEnhancer beanEnhancer) {\r
- this.beanEnhancer = beanEnhancer;\r
- }\r
-\r
- // ===================================================================================\r
- // Helper\r
- // ======\r
- /**\r
- * Get the value of line separator.\r
- * \r
- * @return The value of line separator. (NotNull)\r
- */\r
- protected static String getLineSeparator() {\r
- return System.getProperty("line.separator");\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2Dao};\r
-\r
-import java.util.HashMap;\r
-import java.util.Map;\r
-import java.sql.CallableStatement;\r
-import java.sql.Connection;\r
-import java.sql.PreparedStatement;\r
-import java.sql.SQLException;\r
-import java.sql.Statement;\r
-\r
-import javax.sql.DataSource;\r
-import javax.sql.XADataSource;\r
-\r
-import org.seasar.framework.beans.BeanDesc;\r
-import org.seasar.framework.beans.factory.BeanDescFactory;\r
-import org.seasar.framework.util.Disposable;\r
-import org.seasar.framework.util.DisposableUtil;\r
-import org.seasar.extension.jdbc.ResultSetFactory;\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-import org.seasar.dao.AnnotationReaderFactory;\r
-import org.seasar.dao.BeanEnhancer;\r
-import org.seasar.dao.BeanMetaDataFactory;\r
-import org.seasar.dao.ColumnNaming;\r
-import org.seasar.dao.DaoAnnotationReader;\r
-import org.seasar.dao.DaoMetaData;\r
-import org.seasar.dao.DaoMetaDataFactory;\r
-import org.seasar.dao.DaoNamingConvention;\r
-import org.seasar.dao.DtoMetaDataFactory;\r
-import org.seasar.dao.ProcedureMetaDataFactory;\r
-import org.seasar.dao.PropertyTypeFactoryBuilder;\r
-import org.seasar.dao.RelationPropertyTypeFactoryBuilder;\r
-import org.seasar.dao.ResultSetHandlerFactory;\r
-import org.seasar.dao.TableNaming;\r
-import org.seasar.dao.ValueTypeFactory;\r
-import org.seasar.dao.impl.DaoMetaDataImpl;\r
-import org.seasar.dao.pager.PagingSqlRewriter;\r
-\r
-import ${glPackageBaseCommon}.${glDBFluteConfig};\r
-import ${glPackageBaseCommonCBean}.${glConditionBeanInterfaceName};\r
-import ${glPackageBaseCommonCBean}.${glConditionBeanContextName};\r
-import ${glPackageBaseCommonCBeanOutsidesql}.${glOutsideSqlContextName};\r
-import ${glPackageBaseCommonJdbc}.${glStatementConfig};\r
-import ${glPackageBaseCommonS2DaoInternalSqlLog}.${glInternalSqlLogRegistry};\r
-import ${glPackageBaseCommonS2DaoInternalSqlHandler}.${glInternalBasicHandler}.SQLExceptionHandler;\r
-\r
-/**\r
- * The implementation of DaoMetaDataFactory for DBFlute.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glDaoMetaDataFactoryImpl} implements DaoMetaDataFactory, Disposable {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- /** Log-instance. */\r
- private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory.getLog(${glDaoMetaDataFactoryImpl}.class);\r
-\r
- // -----------------------------------------------------\r
- // For Logging\r
- // -----------\r
- /** The binding annotation for xaDataSource. {bindingType=may} */\r
- public static final String xaDataSource_BINDING = "bindingType=may";\r
-\r
- // -----------------------------------------------------\r
- // Factory Basic\r
- // -------------\r
- public static final String dataSource_BINDING = "bindingType=must";\r
-\r
- public static final String annotationReaderFactory_BINDING = "bindingType=must";\r
-\r
- public static final String valueTypeFactory_BINDING = "bindingType=must";\r
-\r
- public static final String beanMetaDataFactory_BINDING = "bindingType=must";\r
-\r
- public static final String daoNamingConvention_BINDING = "bindingType=must";\r
-\r
- public static final String resultSetHandlerFactory_BINDING = "bindingType=must";\r
-\r
- public static final String dtoMetaDataFactory_BINDING = "bindingType=must";\r
-\r
- public static final String procedureMetaDataFactory_BINDING = "bindingType=must";\r
-\r
- public static final String pagingSQLRewriter_BINDING = "bindingType=may";\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- // -----------------------------------------------------\r
- // Factory Basic\r
- // -------------\r
- protected DataSource dataSource;\r
-\r
- protected AnnotationReaderFactory annotationReaderFactory;\r
-\r
- protected ValueTypeFactory valueTypeFactory;\r
-\r
- protected BeanMetaDataFactory beanMetaDataFactory;\r
-\r
- protected DaoNamingConvention daoNamingConvention;\r
-\r
- protected ResultSetHandlerFactory resultSetHandlerFactory;\r
-\r
- protected DtoMetaDataFactory dtoMetaDataFactory;\r
-\r
- protected ProcedureMetaDataFactory procedureMetaDataFactory;\r
-\r
- protected PagingSqlRewriter pagingSqlRewriter;\r
-\r
- protected Map<String, DaoMetaData> daoMetaDataCache = new HashMap<String, DaoMetaData>();\r
-\r
- protected boolean initialized;\r
-\r
- protected boolean useDaoClassForLog;\r
-\r
- protected String sqlFileEncoding;\r
- \r
- protected BeanEnhancer beanEnhancer;\r
-\r
- // -----------------------------------------------------\r
- // Version After 1.0.47\r
- // --------------------\r
- /** The naming of column. {After S2Dao-1.0.47} */\r
- protected ColumnNaming columnNaming;\r
-\r
- /** The builder of property type factory. {After S2Dao-1.0.47} */\r
- protected PropertyTypeFactoryBuilder propertyTypeFactoryBuilder;\r
-\r
- /** The builder of relation property type factory. {After S2Dao-1.0.47} */\r
- protected RelationPropertyTypeFactoryBuilder relationPropertyTypeFactoryBuilder;\r
-\r
- /** The builder of table naming. {After S2Dao-1.0.47} */\r
- protected TableNaming tableNaming;\r
-\r
- // -----------------------------------------------------\r
- // DBFlute Extension\r
- // -----------------\r
- /** The lock monitor of DAO meta data initialization. */\r
- protected Object _daoMetaDataInitializationLockMonitor = new Object();\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glDaoMetaDataFactoryImpl}(DataSource dataSource\r
- , AnnotationReaderFactory annotationReaderFactory\r
- , XADataSource xaDataSource) {\r
- this.dataSource = dataSource;\r
- this.annotationReaderFactory = annotationReaderFactory;\r
-\r
- _log.info("/* * * * * * * * * * * * * * * * * * * * * * * * * * * * {DBFlute}");\r
- showInformation(dataSource, xaDataSource);\r
-\r
- // Stop the LinkageError!\r
- ${glConditionBeanContextName}.initialize();\r
-\r
- initializeDatabaseProductNameOfContext(xaDataSource);\r
-\r
- final StringBuilder sb = new StringBuilder();\r
- sb.append("{SqlLog Information}").append(getLineSeparator());\r
- sb.append(" [SqlLogRegistry]").append(getLineSeparator());\r
- final Object sqlLogRegistry = ${glInternalSqlLogRegistry}.findContainerSqlLogRegistry();\r
- if (sqlLogRegistry != null) {\r
- ${glInternalSqlLogRegistry}.closeRegistration();\r
- sb.append(" SqlLogRegistry(org.seasar.extension.jdbc) is close! It's default for DBFlute.").append(getLineSeparator());\r
- sb.append(" If you want to use this, set SqlLogRegistry to SqlLogRegistryLocator at yourself.");\r
- } else {\r
- sb.append(" SqlLogRegistry(org.seasar.extension.jdbc) was not found!");\r
- }\r
- _log.info(sb);\r
- \r
- ${glDBFluteConfig}.getInstance().lock();\r
- _log.info("* * * * */");\r
- }\r
-\r
- protected void showInformation(javax.sql.DataSource dataSource, javax.sql.XADataSource xaDataSource) {\r
- final StringBuilder sb = new StringBuilder();\r
- if (xaDataSource != null && xaDataSource instanceof org.seasar.extension.dbcp.impl.XADataSourceImpl) {\r
- final org.seasar.extension.dbcp.impl.XADataSourceImpl xaDataSourceImpl = (org.seasar.extension.dbcp.impl.XADataSourceImpl)xaDataSource;\r
- final String driverClassName = xaDataSourceImpl.getDriverClassName();\r
- final String url = xaDataSourceImpl.getURL();\r
- final String user = xaDataSourceImpl.getUser();\r
- sb.append(" [XADataSource]:").append(getLineSeparator());\r
- sb.append(" driver = " + driverClassName).append(getLineSeparator());\r
- sb.append(" url = " + url).append(getLineSeparator());\r
- sb.append(" user = " + user);\r
- }\r
- _log.info("{Injection Information}" + getLineSeparator() + sb);\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Database Product Name\r
- // ---------------------\r
- protected void initializeDatabaseProductNameOfContext(javax.sql.XADataSource xaDataSource) {\r
- if (getDatabaseProductNameFromContext() != null) {\r
- return;\r
- }\r
-\r
- // From JDBC Driver!\r
- if (xaDataSource != null && xaDataSource instanceof org.seasar.extension.dbcp.impl.XADataSourceImpl) {\r
- final org.seasar.extension.dbcp.impl.XADataSourceImpl xaDataSourceImpl = (org.seasar.extension.dbcp.impl.XADataSourceImpl)xaDataSource;\r
- final String driverClassName = xaDataSourceImpl.getDriverClassName();\r
- if (driverClassName != null) {\r
- if (setupDatabaseProductNameByDriverClassName(driverClassName)) {\r
- _log.info("...Initializing database product name from driverClassName: " + getDatabaseProductNameFromContext());\r
- return;\r
- }\r
- }\r
- }\r
-\r
- _log.info("...Initializing database product name as default: ${database.daoGenDbName}");\r
- setDatabaseProductNameToContext("${database.daoGenDbName}");\r
- }\r
-\r
- protected String getDatabaseProductNameFromContext() {\r
- return ${glConditionBeanContextName}.getDatabaseProductName();\r
- }\r
-\r
- protected void setDatabaseProductNameToContext(String name) {\r
- ${glConditionBeanContextName}.setDatabaseProductName(name);\r
- }\r
-\r
- protected boolean setupDatabaseProductNameByDriverClassName(String driverClassName) {\r
- return ${glConditionBeanContextName}.setupDatabaseProductNameByDriverClassName(driverClassName);\r
- }\r
-\r
- // ===================================================================================\r
- // Implementation\r
- // ==============\r
- @SuppressWarnings("unchecked")\r
- public DaoMetaData getDaoMetaData(final Class daoClass) {\r
- if (!initialized) {\r
- DisposableUtil.add(this);\r
- initialized = true;\r
- }\r
- final String key = daoClass.getName();\r
- \r
- // [A]\r
- DaoMetaData dmd = getSynchronizedDaoMetaDataCache(key);\r
- \r
- // [B]\r
- if (dmd != null) {\r
- return dmd;\r
- }\r
- \r
- // [C]\r
- synchronized (_daoMetaDataInitializationLockMonitor) {// One Thread Only Entered\r
- // [D]\r
- dmd = getSynchronizedDaoMetaDataCache(key);\r
- // [E]\r
- if (dmd != null) {\r
- // The second thread that stops at [C] can find\r
- // because the first thread have already initialized.\r
- if (_log.isDebugEnabled()) {\r
- _log.debug("...Getting daoMetaData as cache because the previous thread have already initilized.");\r
- }\r
- return dmd;\r
- }\r
- // [F]\r
- if (_log.isDebugEnabled()) {\r
- _log.debug("...Creating daoMetaData for " + daoClass.getSimpleName() + ".");\r
- }\r
- final DaoMetaData dmdi = createDaoMetaData(daoClass);\r
- putSynchronizedDaoMetaDataCache(key, dmdi);\r
- }\r
- // [G]\r
- dmd = getSynchronizedDaoMetaDataCache(key);\r
- if (dmd != null) {\r
- return dmd;\r
- }\r
- String msg = "The cache should have data meta data here: key=" + key + " cache=" + daoMetaDataCache;\r
- throw new IllegalStateException(msg);\r
- }\r
- \r
- @SuppressWarnings("unchecked")\r
- protected void putSynchronizedDaoMetaDataCache(String key, DaoMetaData dmd) {\r
- synchronized (daoMetaDataCache) {\r
- daoMetaDataCache.put(key, dmd);\r
- }\r
- }\r
- \r
- protected DaoMetaData getSynchronizedDaoMetaDataCache(String key) {\r
- DaoMetaData dmd = null;\r
- synchronized (daoMetaDataCache) {\r
- dmd = (DaoMetaData) daoMetaDataCache.get(key);\r
- }\r
- return dmd;\r
- }\r
-\r
- // ===================================================================================\r
- // DataMetaData Creation\r
- // =====================\r
- protected DaoMetaData createDaoMetaData(final Class<?> daoClass) {\r
- final BeanDesc daoBeanDesc = BeanDescFactory.getBeanDesc(daoClass);\r
- final DaoAnnotationReader daoAnnotationReader = annotationReaderFactory.createDaoAnnotationReader(daoBeanDesc);\r
-\r
- final DaoMetaDataImpl daoMetaData = createDaoMetaDataExtension();\r
- daoMetaData.setDaoClass(daoClass);\r
- daoMetaData.setDataSource(dataSource);\r
- daoMetaData.setStatementFactory(createCustomizeStatememtFactory());\r
- daoMetaData.setResultSetFactory(createCustomizeResultSetFactory());\r
- daoMetaData.setValueTypeFactory(valueTypeFactory);\r
- daoMetaData.setBeanMetaDataFactory(getBeanMetaDataFactory());\r
- daoMetaData.setDaoNamingConvention(getDaoNamingConvention());\r
- daoMetaData.setUseDaoClassForLog(useDaoClassForLog);\r
- daoMetaData.setDaoAnnotationReader(daoAnnotationReader);\r
- daoMetaData.setProcedureMetaDataFactory(procedureMetaDataFactory);\r
- daoMetaData.setDtoMetaDataFactory(dtoMetaDataFactory);\r
- daoMetaData.setResultSetHandlerFactory(resultSetHandlerFactory);\r
- if (sqlFileEncoding != null) {\r
- daoMetaData.setSqlFileEncoding(sqlFileEncoding);\r
- }\r
- if (pagingSqlRewriter != null) {\r
- daoMetaData.setPagingSQLRewriter(pagingSqlRewriter);\r
- }\r
- daoMetaData.initialize();\r
- return daoMetaData;\r
- }\r
- \r
- protected ${glDaoMetaDataExtension} createDaoMetaDataExtension() {\r
- final ${glDaoMetaDataExtension} dmdExtension = newDaoMetaDataExtension();\r
- dmdExtension.setBeanEnhancer(beanEnhancer);\r
- dmdExtension.setAnnotationReaderFactory(this.annotationReaderFactory);\r
- dmdExtension.setColumnNaming(this.columnNaming);\r
- dmdExtension.setPropertyTypeFactoryBuilder(this.propertyTypeFactoryBuilder);\r
- dmdExtension.setRelationPropertyTypeFactoryBuilder(this.relationPropertyTypeFactoryBuilder);\r
- dmdExtension.setTableNaming(tableNaming);\r
- dmdExtension.setInternalDebug(${glDBFluteConfig}.getInstance().isInternalDebug());\r
- return dmdExtension;\r
- }\r
-\r
- protected ${glDaoMetaDataExtension} newDaoMetaDataExtension() {\r
- return new ${glDaoMetaDataExtension}();\r
- }\r
-\r
- // ===================================================================================\r
- // Result Set Factory\r
- // ==================\r
- /**\r
- * Create the customize result set factory that is for all SQL on DBFlute.\r
- * @return The customize statement factory. (NotNull)\r
- */\r
- protected ResultSetFactory createCustomizeResultSetFactory() {\r
- return new ${glFetchNarrowingResultSetFactory}();\r
- }\r
-\r
- // ===================================================================================\r
- // Statement Factory\r
- // =================\r
- /**\r
- * Create the customize statement factory that is for all SQL on DBFlute.\r
- * @return The customize statement factory. (NotNull)\r
- */\r
- protected StatementFactory createCustomizeStatememtFactory() {\r
- final ${glStatementConfig} defaultStatementConfig = ${glDBFluteConfig}.getInstance().getDefaultStatementConfig();\r
- final boolean internalDebug = ${glDBFluteConfig}.getInstance().isInternalDebug();\r
- return new StatementFactory() {\r
- public PreparedStatement createPreparedStatement(Connection con, String sql) {\r
- try {\r
- final ${glStatementConfig} config = findStatementConfigOnThread();;\r
- final int resultSetType;\r
- if (config != null && config.hasResultSetType()) {\r
- resultSetType = config.getResultSetType();\r
- } else if (defaultStatementConfig != null && defaultStatementConfig.hasResultSetType()) {\r
- resultSetType = defaultStatementConfig.getResultSetType();\r
- } else {\r
- resultSetType = ${database.statementResultSetType};\r
- }\r
- final int resultSetConcurrency = ${database.statementResultSetConcurrency};\r
- if (internalDebug) {\r
- _log.debug("...Creating prepareStatement(sql, " + resultSetType + ", " + resultSetConcurrency + ")");\r
- }\r
- final PreparedStatement ps = con.prepareStatement(sql, resultSetType, resultSetConcurrency);\r
- if (config != null && config.hasStatementOptions()) {\r
- if (internalDebug) {\r
- _log.debug("...Setting statement config as request: " + config);\r
- }\r
- reflectStatementOptions(config, ps);\r
- } else {\r
- reflectDefaultOptionsToStatementIfNeeds(ps);\r
- }\r
- return ps;\r
- } catch (SQLException e) {\r
- handleSQLException(e, null);\r
- return null;// Unreachable!\r
- }\r
- }\r
- public CallableStatement createCallableStatement(Connection conn, String sql) {\r
- return prepareCall(conn, sql);\r
- }\r
- protected ${glStatementConfig} findStatementConfigOnThread() {\r
- final ${glStatementConfig} config;\r
- if (${glConditionBeanContextName}.isExistConditionBeanOnThread()) {\r
- final ${glConditionBeanInterfaceName} cb = ${glConditionBeanContextName}.getConditionBeanOnThread();\r
- config = cb.getStatementConfig();\r
- } else if (${glOutsideSqlContextName}.isExistOutsideSqlContextOnThread()) {\r
- final ${glOutsideSqlContextName} context = ${glOutsideSqlContextName}.getOutsideSqlContextOnThread();\r
- config = context.getStatementConfig();\r
- } else {\r
- config = null;\r
- }\r
- return config;\r
- }\r
- protected void reflectDefaultOptionsToStatementIfNeeds(PreparedStatement ps) {\r
- if (defaultStatementConfig != null && defaultStatementConfig.hasStatementOptions()) {\r
- if (internalDebug) {\r
- _log.debug("...Setting statement config as default: " + defaultStatementConfig);\r
- }\r
- reflectStatementOptions(defaultStatementConfig, ps);\r
- return;\r
- }\r
- }\r
- protected void reflectStatementOptions(${glStatementConfig} config, PreparedStatement ps) {\r
- try {\r
- if (config.hasQueryTimeout()) {\r
- ps.setQueryTimeout(config.getQueryTimeout());\r
- }\r
- if (config.hasFetchSize()) {\r
- ps.setFetchSize(config.getFetchSize());\r
- }\r
- if (config.hasMaxRows()) {\r
- ps.setMaxRows(config.getMaxRows());\r
- }\r
- } catch (SQLException e) {\r
- handleSQLException(e, ps);\r
- }\r
- }\r
- protected CallableStatement prepareCall(Connection conn, String sql) {\r
- try {\r
- return conn.prepareCall(sql);\r
- } catch (SQLException e) {\r
- handleSQLException(e, null);\r
- return null;// Unreachable!\r
- }\r
- }\r
- protected void handleSQLException(SQLException e, Statement statement) {\r
- new SQLExceptionHandler().handleSQLException(e, statement);\r
- }\r
- };\r
- }\r
-\r
- // ===================================================================================\r
- // Dispose\r
- // =======\r
- public synchronized void dispose() {\r
- daoMetaDataCache.clear();\r
- initialized = false;\r
- }\r
-\r
- // ===================================================================================\r
- // Helper\r
- // ======\r
- /**\r
- * Get the value of line separator.\r
- * @return The value of line separator. (NotNull)\r
- */\r
- protected static String getLineSeparator() {\r
- return System.getProperty("line.separator");\r
- }\r
- \r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- // -----------------------------------------------------\r
- // Factory Basic\r
- // -------------\r
- public void setValueTypeFactory(final ValueTypeFactory valueTypeFactory) {\r
- this.valueTypeFactory = valueTypeFactory;\r
- }\r
-\r
- protected BeanMetaDataFactory getBeanMetaDataFactory() {\r
- return beanMetaDataFactory;\r
- }\r
-\r
- public void setBeanMetaDataFactory(final BeanMetaDataFactory beanMetaDataFactory) {\r
- this.beanMetaDataFactory = beanMetaDataFactory;\r
- }\r
-\r
- public DaoNamingConvention getDaoNamingConvention() {\r
- return daoNamingConvention;\r
- }\r
-\r
- public void setDaoNamingConvention(final DaoNamingConvention daoNamingConvention) {\r
- this.daoNamingConvention = daoNamingConvention;\r
- }\r
-\r
- public void setAnnotationReaderFactory(final AnnotationReaderFactory annotationReaderFactory) {\r
- this.annotationReaderFactory = annotationReaderFactory;\r
- }\r
-\r
- public void setDataSource(final DataSource dataSource) {\r
- this.dataSource = dataSource;\r
- }\r
-\r
- public void setUseDaoClassForLog(final boolean userDaoClassForLog) {\r
- useDaoClassForLog = userDaoClassForLog;\r
- }\r
-\r
- public void setResultSetHandlerFactory(final ResultSetHandlerFactory resultSetHandlerFactory) {\r
- this.resultSetHandlerFactory = resultSetHandlerFactory;\r
- }\r
-\r
- public void setDtoMetaDataFactory(final DtoMetaDataFactory dtoMetaDataFactory) {\r
- this.dtoMetaDataFactory = dtoMetaDataFactory;\r
- }\r
-\r
- public void setProcedureMetaDataFactory(ProcedureMetaDataFactory procedureMetaDataFactory) {\r
- this.procedureMetaDataFactory = procedureMetaDataFactory;\r
- }\r
-\r
- public void setPagingSQLRewriter(final PagingSqlRewriter pagingSqlRewriter) {\r
- this.pagingSqlRewriter = pagingSqlRewriter;\r
- }\r
- \r
- public String getSqlFileEncoding() {\r
- return sqlFileEncoding;\r
- }\r
-\r
- public void setSqlFileEncoding(final String encoding) {\r
- sqlFileEncoding = encoding;\r
- }\r
- \r
- public BeanEnhancer getBeanEnhancer() {\r
- return beanEnhancer;\r
- }\r
-\r
- public void setBeanEnhancer(final BeanEnhancer beanEnhancer) {\r
- this.beanEnhancer = beanEnhancer;\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Version After 1.0.47\r
- // --------------------\r
- public ColumnNaming getColumnNaming() {\r
- return columnNaming;\r
- }\r
-\r
- public void setColumnNaming(final ColumnNaming columnNaming) {\r
- this.columnNaming = columnNaming;\r
- }\r
-\r
- public PropertyTypeFactoryBuilder getPropertyTypeFactoryBuilder() {\r
- return propertyTypeFactoryBuilder;\r
- }\r
-\r
- public void setPropertyTypeFactoryBuilder(final PropertyTypeFactoryBuilder propertyTypeFactoryBuilder) {\r
- this.propertyTypeFactoryBuilder = propertyTypeFactoryBuilder;\r
- }\r
-\r
- public RelationPropertyTypeFactoryBuilder getRelationPropertyTypeFactoryBuilder() {\r
- return relationPropertyTypeFactoryBuilder;\r
- }\r
-\r
- public void setRelationPropertyTypeFactoryBuilder(final RelationPropertyTypeFactoryBuilder relationPropertyTypeFactoryBuilder) {\r
- this.relationPropertyTypeFactoryBuilder = relationPropertyTypeFactoryBuilder;\r
- }\r
-\r
- public TableNaming getTableNaming() {\r
- return tableNaming;\r
- }\r
-\r
- public void setTableNaming(final TableNaming tableNaming) {\r
- this.tableNaming = tableNaming;\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2Dao};\r
-\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-import java.sql.DatabaseMetaData;\r
-\r
-import org.seasar.extension.jdbc.PropertyType;\r
-import org.seasar.framework.beans.BeanDesc;\r
-import org.seasar.framework.beans.PropertyDesc;\r
-import org.seasar.dao.BeanAnnotationReader;\r
-import org.seasar.dao.ColumnNaming;\r
-import org.seasar.dao.Dbms;\r
-import org.seasar.dao.PropertyTypeFactory;\r
-import org.seasar.dao.PropertyTypeFactoryBuilder;\r
-import org.seasar.dao.ValueTypeFactory;\r
-import org.seasar.dao.impl.AbstractPropertyTypeFactory;\r
-\r
-import ${glPackageBaseCommon}.${glEntityInterfaceName};\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInterfaceName};\r
-\r
-/**\r
- * The factory builder of property type for S2Dao. {Since S2Dao-1.0.47}\r
- * @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public class ${glDaoPropertyTypeFactoryBuilderExtension} implements PropertyTypeFactoryBuilder {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected ValueTypeFactory valueTypeFactory;\r
-\r
- protected ColumnNaming columnNaming;\r
-\r
- // ===================================================================================\r
- // Build\r
- // =====\r
- public PropertyTypeFactory build(Class beanClass, BeanAnnotationReader beanAnnotationReader) {\r
- return new FastPropertyTypeFactoryExtension(beanClass, beanAnnotationReader, valueTypeFactory, columnNaming);\r
- }\r
-\r
- public PropertyTypeFactory build(Class beanClass, BeanAnnotationReader beanAnnotationReader, Dbms dbms, DatabaseMetaData databaseMetaData) {\r
- return new FastPropertyTypeFactoryExtension(beanClass, beanAnnotationReader, valueTypeFactory, columnNaming, dbms);\r
- }\r
-\r
- // ===================================================================================\r
- // Extension Class\r
- // ===============\r
- protected static class FastPropertyTypeFactoryExtension extends AbstractPropertyTypeFactory {\r
-\r
- protected ${glDBMetaInterfaceName} _dbmeta;\r
- protected String[] _noPersisteneProps;\r
-\r
- public FastPropertyTypeFactoryExtension(Class beanClass, BeanAnnotationReader beanAnnotationReader,\r
- ValueTypeFactory valueTypeFactory, ColumnNaming columnNaming) {\r
- super(beanClass, beanAnnotationReader, valueTypeFactory, columnNaming);\r
- initializeResources();\r
- }\r
-\r
- public FastPropertyTypeFactoryExtension(Class beanClass, BeanAnnotationReader beanAnnotationReader,\r
- ValueTypeFactory valueTypeFactory, ColumnNaming columnNaming, Dbms dbms) {\r
- super(beanClass, beanAnnotationReader, valueTypeFactory, columnNaming, dbms);\r
- initializeResources();\r
- }\r
-\r
- protected void initializeResources() {\r
- if (isEntity()) {\r
- _dbmeta = findDBMeta();\r
- }\r
- _noPersisteneProps = beanAnnotationReader.getNoPersisteneProps();\r
- }\r
-\r
- protected boolean isEntity() {\r
- return ${glEntityInterfaceName}.class.isAssignableFrom(beanClass);\r
- }\r
-\r
- protected boolean hasDBMeta() {\r
- return _dbmeta != null;\r
- }\r
-\r
- protected ${glDBMetaInterfaceName} findDBMeta() {\r
- try {\r
- final ${glEntityInterfaceName} entity = (${glEntityInterfaceName}) beanClass.newInstance();\r
- return entity.getDBMeta();\r
- } catch (Exception e) {\r
- String msg = "beanClass.newInstance() threw the exception: beanClass=" + beanClass;\r
- throw new RuntimeException(msg, e);\r
- }\r
- }\r
-\r
- public PropertyType[] createBeanPropertyTypes(String tableName) {\r
- final List<PropertyType> list = new ArrayList<PropertyType>();\r
- final BeanDesc beanDesc = getBeanDesc();\r
- for (int i = 0; i < beanDesc.getPropertyDescSize(); ++i) {\r
- final PropertyDesc pd = beanDesc.getPropertyDesc(i);\r
-\r
- // Read-only property is unnecessary!\r
- if (!pd.hasWriteMethod()) {\r
- continue;\r
- }\r
-\r
- // Relation property is unnecessary!\r
- if (isRelation(pd)) {\r
- continue;\r
- }\r
-\r
- final PropertyType pt = createPropertyType(pd);\r
- pt.setPrimaryKey(isPrimaryKey(pd));\r
- pt.setPersistent(isPersistent(pt));\r
- list.add(pt);\r
- }\r
- return list.toArray(new PropertyType[list.size()]);\r
- }\r
-\r
- @Override\r
- protected boolean isRelation(PropertyDesc propertyDesc) {\r
- final String propertyName = propertyDesc.getPropertyName();\r
- if (hasDBMeta() && (_dbmeta.hasForeign(propertyName) || _dbmeta.hasReferrer(propertyName))) {\r
- return true;\r
- }\r
- return hasRelationNoAnnotation(propertyDesc);\r
- }\r
-\r
- protected boolean hasRelationNoAnnotation(PropertyDesc propertyDesc) {\r
- return beanAnnotationReader.hasRelationNo(propertyDesc);\r
- }\r
-\r
- @Override\r
- protected boolean isPrimaryKey(PropertyDesc propertyDesc) {\r
- final String propertyName = propertyDesc.getPropertyName();\r
- if (hasDBMeta() && _dbmeta.hasPrimaryKey() && _dbmeta.hasColumn(propertyName)) {\r
- if (_dbmeta.findColumnInfo(propertyName).isPrimary()) {\r
- return true;\r
- }\r
- }\r
- return hasIdAnnotation(propertyDesc);\r
- }\r
-\r
- protected boolean hasIdAnnotation(PropertyDesc propertyDesc) {\r
- final Dbms dbms = getDbms();\r
- return beanAnnotationReader.getId(propertyDesc, dbms) != null;\r
- }\r
-\r
- @Override\r
- protected boolean isPersistent(PropertyType propertyType) {\r
- final String propertyName = propertyType.getPropertyName();\r
- final PropertyDesc propertyDesc = propertyType.getPropertyDesc();\r
- if ((hasDBMeta() && _dbmeta.hasColumn(propertyName)) || hasColumnAnnotation(propertyDesc)) {\r
- if (!isElementOfNoPersistentProps(propertyDesc)) {\r
- return true;\r
- }\r
- }\r
- return false;\r
- }\r
-\r
- protected boolean hasColumnAnnotation(PropertyDesc propertyDesc) {\r
- return beanAnnotationReader.getColumnAnnotation(propertyDesc) != null;\r
- }\r
-\r
- protected boolean isElementOfNoPersistentProps(PropertyDesc propertyDesc) {\r
- final String propertyName = propertyDesc.getPropertyName();\r
- final String[] props = _noPersisteneProps;\r
- if (props != null && props.length >= 0) {\r
- for (int i = 0; i < props.length; ++i) {\r
- if (props[i].equals(propertyName)) {\r
- return true;\r
- }\r
- }\r
- }\r
- return false;\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public ValueTypeFactory getValueTypeFactory() {\r
- return valueTypeFactory;\r
- }\r
-\r
- public void setValueTypeFactory(ValueTypeFactory valueTypeFactory) {\r
- this.valueTypeFactory = valueTypeFactory;\r
- }\r
-\r
- public ColumnNaming getColumnNaming() {\r
- return columnNaming;\r
- }\r
-\r
- public void setColumnNaming(ColumnNaming columnNaming) {\r
- this.columnNaming = columnNaming;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2Dao};\r
-\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-import javax.sql.DataSource;\r
-\r
-import org.seasar.dao.CommandContext;\r
-import org.seasar.extension.jdbc.ResultSetHandler;\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-import org.seasar.extension.jdbc.ValueType;\r
-import org.seasar.extension.jdbc.types.ValueTypes;\r
-import org.seasar.framework.beans.BeanDesc;\r
-import org.seasar.framework.beans.PropertyDesc;\r
-import org.seasar.framework.beans.factory.BeanDescFactory;\r
-\r
-import ${glPackageBaseCommonCBean}.${glConditionBeanInterfaceName};\r
-import ${glPackageBaseCommonCBean}.${glConditionBeanContextName};\r
-import ${glPackageBaseCommonCBeanOutsidesql}.${glOutsideSqlContextName};\r
-import ${glPackageBaseCommonS2DaoInternalSqlCommand}.${glInternalAbstractDynamicCommand};\r
-import ${glPackageBaseCommonS2DaoInternalSqlHandler}.${glInternalBasicSelectHandler};\r
-import ${glPackageBaseCommonUtil}.${glSimpleStringUtil};\r
-import ${glPackageBaseCommonUtil}.${glSimpleSystemUtil};\r
-\r
-/**\r
- * SelectDynamicCommand for DBFlute.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public class ${glSelectDynamicCommand} extends ${glInternalAbstractDynamicCommand} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- /** The handler of resultSet. */\r
- protected ResultSetHandler resultSetHandler;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- /**\r
- * Constructor.\r
- * @param dataSource Data source.\r
- * @param statementFactory The factory of statement.\r
- * @param resultSetHandler The handler of resultSet.\r
- */\r
- public ${glSelectDynamicCommand}(DataSource dataSource,\r
- StatementFactory statementFactory,\r
- ResultSetHandler resultSetHandler) {\r
- super(dataSource, statementFactory);\r
- this.resultSetHandler = resultSetHandler;\r
- }\r
-\r
- // ===================================================================================\r
- // Very Important Extension\r
- // ========================\r
- // -----------------------------------------------------\r
- // SelectDynamicCommand Creation\r
- // -----------------------------\r
- protected ${glSelectDynamicCommand} createMySelectDynamicCommand() {\r
- return new ${glSelectDynamicCommand}(getDataSource(), getStatementFactory(), resultSetHandler);\r
- }\r
-\r
- // ===================================================================================\r
- // Execute\r
- // =======\r
- // -----------------------------------------------------\r
- // Top Execute\r
- // -----------\r
- /**\r
- * @param args The array of argument. (Nullable)\r
- * @return The object of execution result. (Nullable)\r
- */\r
- public Object execute(Object[] args) {\r
- // - - - - - - - - - - - -\r
- // This is top execution.\r
- // - - - - - - - - - - - -\r
-\r
- if (!${glConditionBeanContextName}.isExistConditionBeanOnThread()) {\r
- // - - - - - - - - - -\r
- // Execute outsideSql.\r
- // - - - - - - - - - -\r
- if (${glOutsideSqlContextName}.isExistOutsideSqlContextOnThread()) {\r
- final ${glOutsideSqlContextName} outsideSqlContext = ${glOutsideSqlContextName}.getOutsideSqlContextOnThread();\r
- if (outsideSqlContext.isDynamicBinding()) {\r
- return executeOutsideSqlAsDynamic(args, outsideSqlContext);\r
- } else {\r
- return executeOutsideSqlAsStatic(args, outsideSqlContext);\r
- }\r
- }\r
-\r
- // - - - - - - - - -\r
- // Execute default.\r
- // - - - - - - - - -\r
- return executeDefault(args);\r
- }\r
-\r
- // - - - - - - - - - - - -\r
- // Execute conditionBean.\r
- // - - - - - - - - - - - -\r
- final List<Object> bindVariableList = new ArrayList<Object>(4);\r
- final List<Class> bindVariableTypeList = new ArrayList<Class>(4);\r
-\r
- final ${glConditionBeanInterfaceName} cb = ${glConditionBeanContextName}.getConditionBeanOnThread();\r
- final String finalClause;\r
- if (cb.hasUnionQueryOrUnionAllQuery()) {\r
- final String realClause = setupRealClause(args, bindVariableList, bindVariableTypeList);\r
- if (cb.isSelectCountIgnoreFetchScope()) {\r
- // If the query uses union and it selects count, the way of select-count is as follows.\r
- finalClause = "select count(*) from (" + realClause + ") dfmain";\r
- } else {\r
- finalClause = realClause;\r
- }\r
- } else {\r
- if (cb.isSelectCountIgnoreFetchScope()) {\r
- finalClause = setupRealSelectCountClause(args, bindVariableList, bindVariableTypeList);\r
- } else {\r
- finalClause = setupRealClause(args, bindVariableList, bindVariableTypeList);\r
- }\r
- }\r
-\r
- final ${glInternalBasicSelectHandler} selectHandler = createBasicSelectHandler(finalClause, this.resultSetHandler);\r
- final Object[] bindVariableArray = bindVariableList.toArray();\r
- selectHandler.setLoggingMessageSqlArgs(bindVariableArray);\r
- return selectHandler.execute(bindVariableArray, toClassArray(bindVariableTypeList));\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Default Execute\r
- // ---------------\r
- /**\r
- * Execute default.\r
- * @param args The array of argument. (Nullable)\r
- * @return Result. (Nullable)\r
- */\r
- protected Object executeDefault(Object args[]) {\r
- // - - - - - - - - - - - - - - - - -\r
- // Find specified resultSetHandler.\r
- // - - - - - - - - - - - - - - - - -\r
- final ResultSetHandler specifiedResultSetHandler = findSpecifiedResultSetHandler(args);\r
-\r
- // - - - - - - - - -\r
- // Filter arguments.\r
- // - - - - - - - - -\r
- final Object[] filteredArgs = filterArgumentsForResultSetHandler(args);\r
-\r
- final org.seasar.dao.CommandContext ctx = apply(filteredArgs);\r
- final ${glInternalBasicSelectHandler} selectHandler = createBasicSelectHandler(ctx.getSql(), specifiedResultSetHandler);\r
- final Object[] bindVariableArray = ctx.getBindVariables();\r
- selectHandler.setLoggingMessageSqlArgs(bindVariableArray);\r
- return selectHandler.execute(bindVariableArray, ctx.getBindVariableTypes());\r
- }\r
-\r
- // -----------------------------------------------------\r
- // OutsideSql Execute\r
- // ------------------\r
- /**\r
- * Execute outsideSql as static.\r
- * \r
- * @param args The array of argument. (Nullable)\r
- * @param outsideSqlContext The context of outsideSql. (NotNull)\r
- * @return Result. (Nullable)\r
- */\r
- protected Object executeOutsideSqlAsStatic(Object[] args, ${glOutsideSqlContextName} outsideSqlContext) {\r
- // - - - - - - - - - - - - - - - - -\r
- // Find specified resultSetHandler.\r
- // - - - - - - - - - - - - - - - - -\r
- final ResultSetHandler specifiedResultSetHandler = findSpecifiedResultSetHandler(args);\r
-\r
- // - - - - - - - - -\r
- // Filter arguments.\r
- // - - - - - - - - -\r
- final Object[] filteredArgs;\r
- if (outsideSqlContext.isSpecifiedOutsideSql()) {\r
- final Object parameterBean = outsideSqlContext.getParameterBean();\r
- filteredArgs = new Object[] {parameterBean};\r
- } else {\r
- filteredArgs = filterArgumentsForResultSetHandler(args);\r
- }\r
-\r
- final org.seasar.dao.CommandContext ctx = apply(filteredArgs);\r
- final ${glInternalBasicSelectHandler} selectHandler = createBasicSelectHandler(ctx.getSql(), specifiedResultSetHandler);\r
- final Object[] bindVariableArray = ctx.getBindVariables();\r
- selectHandler.setLoggingMessageSqlArgs(bindVariableArray);\r
- return selectHandler.execute(bindVariableArray, ctx.getBindVariableTypes());\r
- }\r
-\r
- /**\r
- * Execute outsideSql as Dynamic.\r
- * \r
- * @param args The array of argument. (Nullable)\r
- * @param outsideSqlContext The context of outsideSql. (NotNull)\r
- * @return Result. (Nullable)\r
- */\r
- protected Object executeOutsideSqlAsDynamic(Object[] args, ${glOutsideSqlContextName} outsideSqlContext) {\r
- final Object firstArg;\r
- if (outsideSqlContext.isSpecifiedOutsideSql()) {\r
- final Object parameterBean = outsideSqlContext.getParameterBean();\r
- firstArg = parameterBean;\r
- } else {\r
- firstArg = args[0];\r
- }\r
- String filteredSql = getSql();\r
- if (firstArg != null) {\r
- final BeanDesc beanDesc = BeanDescFactory.getBeanDesc(firstArg.getClass());\r
-\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- // Resolve embedded comment for parsing bind variable comment in embedded comment.\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- for (int i = 0; i < beanDesc.getPropertyDescSize(); i++) {\r
- final PropertyDesc propertyDesc = beanDesc.getPropertyDesc(i);\r
- final Class propertyType = propertyDesc.getPropertyType();\r
- if (!propertyType.equals(String.class)) {\r
- continue;\r
- }\r
- final String outsideSqlPiece = (String) propertyDesc.getValue(firstArg);\r
- if (outsideSqlPiece == null) {\r
- continue;\r
- }\r
- final String embeddedComment = "/*$pmb." + propertyDesc.getPropertyName() + "*/";\r
- filteredSql = replaceString(filteredSql, embeddedComment, outsideSqlPiece);\r
- }\r
- }\r
- final ${glSelectDynamicCommand} outsideSqlCommand = createMySelectDynamicCommand();\r
- if (outsideSqlContext.isSpecifiedOutsideSql()) {\r
- outsideSqlCommand.setArgNames(new String[]{"pmb"});\r
- outsideSqlCommand.setArgTypes(new Class<?>[]{firstArg != null ? firstArg.getClass() : Object.class});\r
- } else {\r
- outsideSqlCommand.setArgNames(getArgNames());\r
- outsideSqlCommand.setArgTypes(getArgTypes());\r
- }\r
- outsideSqlCommand.setSql(filteredSql);\r
-\r
- // - - - - - - - - - - - - - - - - -\r
- // Find specified resultSetHandler.\r
- // - - - - - - - - - - - - - - - - -\r
- final ResultSetHandler specifiedResultSetHandler = findSpecifiedResultSetHandler(args);\r
-\r
- // - - - - - - - - -\r
- // Filter arguments.\r
- // - - - - - - - - -\r
- final Object[] filteredArgs;\r
- if (outsideSqlContext.isSpecifiedOutsideSql()) {\r
- final Object parameterBean = outsideSqlContext.getParameterBean();\r
- filteredArgs = new Object[] {parameterBean};\r
- } else {\r
- filteredArgs = filterArgumentsForResultSetHandler(args);\r
- }\r
-\r
- final org.seasar.dao.CommandContext ctx = outsideSqlCommand.apply(filteredArgs);\r
- final java.util.List<Object> bindVariableList = new java.util.ArrayList<Object>();\r
- final java.util.List<Class> bindVariableTypeList = new java.util.ArrayList<Class>();\r
- addBindVariableInfo(ctx, bindVariableList, bindVariableTypeList);\r
- final ${glInternalBasicSelectHandler} selectHandler = createBasicSelectHandler(ctx.getSql(), specifiedResultSetHandler);\r
- final Object[] bindVariableArray = bindVariableList.toArray();\r
- selectHandler.setLoggingMessageSqlArgs(bindVariableArray);\r
- return selectHandler.execute(bindVariableArray, toClassArray(bindVariableTypeList));\r
- }\r
-\r
- protected Object[] filterArgumentsForResultSetHandler(Object[] args) {\r
- if (args == null || args.length == 0) {\r
- return args;\r
- }\r
- final Object[] filteredArgs;\r
- if (args[args.length - 1] instanceof ${glPackageBaseCommonJdbc}.${glCursorHandlerName}) {\r
- filteredArgs = new Object[args.length - 1];\r
- for (int i=0; i < args.length - 1; i++) {\r
- filteredArgs[i] = args[i];\r
- }\r
- } else {\r
- filteredArgs = args;\r
- }\r
- return filteredArgs;\r
- }\r
-\r
- protected ResultSetHandler findSpecifiedResultSetHandler(Object[] args) {\r
- if (args == null || args.length == 0) {\r
- return this.resultSetHandler;\r
- }\r
- if (args[args.length-1] instanceof ${glPackageBaseCommonJdbc}.${glCursorHandlerName}) {\r
- final ${glPackageBaseCommonJdbc}.${glCursorHandlerName} cursorHandler = (${glPackageBaseCommonJdbc}.${glCursorHandlerName})args[args.length-1];\r
- return new ResultSetHandler() { public Object handle(java.sql.ResultSet rs) throws java.sql.SQLException { return cursorHandler.handle(rs); } };\r
- }\r
- if (getArgTypes().length+1 == args.length && args[args.length-1] == null) {\r
- String msg = "System Level Exception!" + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The size of arg types have not been same as the size of arg objects:";\r
- msg = msg + " argTypes=" + getArgTypes().length + " args=" + args.length + getLineSeparator();\r
- msg = msg + "If the arguments contain ResultSetHandler, the argument value should not be null!" + getLineSeparator();\r
- for (int i=0; i < args.length - 1; i++) {\r
- msg = msg + " args[" + i + "] -- " + args[i] + getLineSeparator();\r
- }\r
- msg = msg + "* * * * * * * * * */" + getLineSeparator();\r
- throw new IllegalStateException(msg);\r
- }\r
- return this.resultSetHandler;\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Setup Clause\r
- // ------------\r
- protected String setupRealClause(Object[] args, List<Object> bindVariableList, List<Class> bindVariableTypeList) {\r
- final ${glConditionBeanInterfaceName} cb = ${glConditionBeanContextName}.getConditionBeanOnThread();\r
- final String realClause;\r
- {\r
- final ${glSelectDynamicCommand} dynamicCommand = createMySelectDynamicCommand();\r
- dynamicCommand.setArgNames(getArgNames());\r
- dynamicCommand.setArgTypes(getArgTypes());\r
- if (cb.isLimitSelect_PKOnly()) {\r
- dynamicCommand.setSql(cb.getSqlClause().getClausePKOnly());\r
- } else {\r
- dynamicCommand.setSql(cb.getSqlClause().getClause());\r
- }\r
- final CommandContext ctx = dynamicCommand.apply(args);\r
- realClause = ctx.getSql();\r
- addBindVariableInfo(ctx, bindVariableList, bindVariableTypeList);\r
- }\r
- return realClause;\r
- }\r
- \r
- protected String setupRealSelectCountClause(Object[] args, List<Object> bindVariableList, List<Class> bindVariableTypeList) {\r
- final ${glConditionBeanInterfaceName} cb = ${glConditionBeanContextName}.getConditionBeanOnThread();\r
- final String realSelectCountClause;\r
- {\r
- final ${glSelectDynamicCommand} selectCountCommand = createMySelectDynamicCommand();\r
- selectCountCommand.setArgNames(getArgNames());\r
- selectCountCommand.setArgTypes(getArgTypes());\r
- final String selectClause = "select count(*)";\r
- String fromWhereClause = cb.getSqlClause().getClauseFromWhereWithUnionTemplate();\r
- \r
- // Replace template marks. These are very important!\r
- fromWhereClause = replaceString(fromWhereClause, cb.getSqlClause().getUnionSelectClauseMark(), selectClause);\r
- fromWhereClause = replaceString(fromWhereClause, cb.getSqlClause().getUnionWhereClauseMark(), "");\r
- fromWhereClause = replaceString(fromWhereClause, cb.getSqlClause().getUnionWhereFirstConditionMark(), "");\r
-\r
- final String sql = cb.getSqlClause().filterSubQueryIndent(selectClause + " " + fromWhereClause);\r
- selectCountCommand.setSql(sql);\r
-\r
- final CommandContext ctx = selectCountCommand.apply(args);\r
- realSelectCountClause = ctx.getSql();\r
- addBindVariableInfo(ctx, bindVariableList, bindVariableTypeList);\r
- }\r
- return realSelectCountClause;\r
- }\r
-\r
- protected ${glInternalBasicSelectHandler} createBasicSelectHandler(String realSql, ResultSetHandler specifiedResultSetHandler) {\r
- return newBasicSelectHandler(realSql, specifiedResultSetHandler, getStatementFactory());\r
- }\r
-\r
- protected ${glInternalBasicSelectHandler} newBasicSelectHandler(String sql, ResultSetHandler resultSetHandler, StatementFactory statementFactory) {\r
- return new ${glInternalBasicSelectHandler}(getDataSource(), sql, resultSetHandler, statementFactory) {\r
- @Override\r
- protected void bindArgs(java.sql.PreparedStatement ps, Object[] args, Class[] argTypes) {\r
- if (args == null) {\r
- return;\r
- }\r
- for (int i = 0; i < args.length; ++i) {\r
- final ValueType valueType = findValueType(argTypes[i], args[i]);\r
- try {\r
- valueType.bindValue(ps, i + 1, args[i]);\r
- } catch (java.sql.SQLException e) {\r
- handleSQLException(e, ps);\r
- }\r
- }\r
- }\r
- protected ValueType findValueType(Class argType, Object arg) {\r
- ValueType valueType = ValueTypes.getValueType(arg);\r
- if (valueType != null) {\r
- return valueType;\r
- }\r
- valueType = ValueTypes.getValueType(argType);\r
- if (valueType != null) {\r
- return valueType;\r
- }\r
- String msg = "Unknown type:argType=" + argType + " args=" + arg;\r
- throw new IllegalStateException(msg);\r
- }\r
- };\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Setup Helper\r
- // ------------\r
- protected Class[] toClassArray(List<Class> bindVariableTypeList) {\r
- final Class[] bindVariableTypesArray = new Class[bindVariableTypeList.size()];\r
- for (int i = 0; i < bindVariableTypeList.size(); i++) {\r
- final Class bindVariableType = (Class) bindVariableTypeList.get(i);\r
- bindVariableTypesArray[i] = bindVariableType;\r
- }\r
- return bindVariableTypesArray;\r
- }\r
-\r
- protected void addBindVariableInfo(CommandContext ctx, List<Object> bindVariableList, List<Class> bindVariableTypeList) {\r
- final Object[] bindVariables = ctx.getBindVariables();\r
- addBindVariableList(bindVariableList, bindVariables);\r
- final Class[] bindVariableTypes = ctx.getBindVariableTypes();\r
- addBindVariableTypeList(bindVariableTypeList, bindVariableTypes);\r
- }\r
-\r
- protected void addBindVariableList(List<Object> bindVariableList, Object[] bindVariables) {\r
- for (int i=0; i < bindVariables.length; i++) {\r
- bindVariableList.add(bindVariables[i]);\r
- }\r
- }\r
-\r
- protected void addBindVariableTypeList(List<Class> bindVariableTypeList, Class[] bindVariableTypes) {\r
- for (int i=0; i < bindVariableTypes.length; i++) {\r
- bindVariableTypeList.add(bindVariableTypes[i]);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // General Helper\r
- // ==============\r
- protected final String replaceString(String text, String fromText, String toText) {\r
- return ${glSimpleStringUtil}.replace(text, fromText, toText);\r
- }\r
-\r
- protected String getLineSeparator() {\r
- return ${glSimpleSystemUtil}.getLineSeparator();\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalRsHandler};\r
-\r
-import java.sql.ResultSet;\r
-import java.sql.SQLException;\r
-import java.util.Map;\r
-import java.util.Set;\r
-\r
-import org.seasar.dao.BeanMetaData;\r
-import org.seasar.dao.RelationPropertyType;\r
-import org.seasar.dao.RelationRowCreator;\r
-import org.seasar.dao.RowCreator;\r
-\r
-import ${glPackageBaseCommon}.${glEntityInterfaceName};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-@SuppressWarnings("unchecked")\r
-public abstract class ${glInternalAbstractBeanMetaDataResultSetHandler} extends ${glInternalAbstractDtoMetaDataResultSetHandler} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- private BeanMetaData beanMetaData;\r
- protected RelationRowCreator relationRowCreator;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- /**\r
- * @param beanMetaData Bean meta data. (NotNull)\r
- * @param rowCreator Row creator. (NotNull)\r
- * @param relationRowCreator Relation row creator. (NotNul)\r
- */\r
- public ${glInternalAbstractBeanMetaDataResultSetHandler}(BeanMetaData beanMetaData, RowCreator rowCreator, RelationRowCreator relationRowCreator) {\r
- super(beanMetaData, rowCreator);\r
- this.beanMetaData = beanMetaData;\r
- this.relationRowCreator = relationRowCreator;\r
- }\r
-\r
- // ===================================================================================\r
- // Assist Helper\r
- // =============\r
- /**\r
- * @param columnNames The set of column name. (NotNull)\r
- * @return The map of row property cache. Map{String(columnName), PropertyType} (NotNull)\r
- * @throws SQLException\r
- */\r
- protected Map createPropertyCache(Set columnNames) throws SQLException {\r
- // - - - - - - - - -\r
- // Override for Bean\r
- // - - - - - - - - -\r
- return rowCreator.createPropertyCache(columnNames, beanMetaData);\r
- }\r
-\r
- /**\r
- * @param rs Result set. (NotNull)\r
- * @param propertyCache The map of property cache. Map{String(columnName), PropertyType} (NotNull)\r
- * @return Created row. (NotNull)\r
- * @throws SQLException\r
- */\r
- protected Object createRow(ResultSet rs, Map propertyCache) throws SQLException {\r
- // - - - - - - - - -\r
- // Override for Bean\r
- // - - - - - - - - -\r
- final Class beanClass = beanMetaData.getBeanClass();\r
- return rowCreator.createRow(rs, propertyCache, beanClass);\r
- }\r
-\r
- /**\r
- * @param columnNames The set of column name. (NotNull)\r
- * @return The map of relation property cache. Map{String(relationNoSuffix), Map{String(columnName), PropertyType}} (NotNull)\r
- * @throws SQLException\r
- */\r
- protected Map createRelationPropertyCache(Set columnNames) throws SQLException {\r
- return relationRowCreator.createPropertyCache(columnNames, beanMetaData);\r
- }\r
-\r
- /**\r
- * @param rs Result set. (NotNull)\r
- * @param rpt The type of relation property. (NotNull)\r
- * @param columnNames The set of column name. (NotNull)\r
- * @param relKeyValues The map of rel key values. (Nullable)\r
- * @param relationPropertyCache The map of relation property cache. Map{String(relationNoSuffix), Map{String(columnName), PropertyType}} (NotNull)\r
- * @return Created relation row. (Nullable)\r
- * @throws SQLException\r
- */\r
- protected Object createRelationRow(ResultSet rs, RelationPropertyType rpt,\r
- Set columnNames, Map relKeyValues, Map relationPropertyCache) throws SQLException {\r
- return relationRowCreator.createRelationRow(rs, rpt, columnNames, relKeyValues, relationPropertyCache);\r
- }\r
-\r
- /**\r
- * @param row The row of result list. (NotNull)\r
- */\r
- protected void postCreateRow(final Object row) {\r
- if (row instanceof ${glEntityInterfaceName}) { // DBFlute Target\r
- ((${glEntityInterfaceName})row).clearModifiedPropertyNames();\r
- } else { // Basically Unreachable\r
- final BeanMetaData bmd = getBeanMetaData();\r
- final Set names = bmd.getModifiedPropertyNames(row);\r
- names.clear();\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public BeanMetaData getBeanMetaData() {\r
- return beanMetaData;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalRsHandler};\r
-\r
-import java.util.Map;\r
-import java.util.Set;\r
-import java.sql.ResultSet;\r
-import java.sql.ResultSetMetaData;\r
-import java.sql.SQLException;\r
-\r
-import org.seasar.framework.util.CaseInsensitiveSet;\r
-import org.seasar.extension.jdbc.ResultSetHandler;\r
-import org.seasar.dao.DtoMetaData;\r
-import org.seasar.dao.RowCreator;\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-@SuppressWarnings("unchecked")\r
-public abstract class ${glInternalAbstractDtoMetaDataResultSetHandler} implements ResultSetHandler {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- private DtoMetaData dtoMetaData;\r
- protected RowCreator rowCreator; // [DAO-118] (2007/08/25)\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- /**\r
- * @param dtoMetaData Dto meta data. (NotNull)\r
- * @param rowCreator Row creator. (NotNull)\r
- */\r
- public ${glInternalAbstractDtoMetaDataResultSetHandler}(DtoMetaData dtoMetaData, RowCreator rowCreator) {\r
- this.dtoMetaData = dtoMetaData;\r
- this.rowCreator = rowCreator;\r
- }\r
-\r
- // ===================================================================================\r
- // Assist Helper\r
- // =============\r
- /**\r
- * @param columnNames The set of column name. (NotNull)\r
- * @return The map of row property cache. Map{String(columnName), PropertyType} (NotNull)\r
- * @throws SQLException\r
- */\r
- protected Map createPropertyCache(Set columnNames) throws SQLException {\r
- return rowCreator.createPropertyCache(columnNames, dtoMetaData);\r
- }\r
-\r
- /**\r
- * @param rs Result set. (NotNull)\r
- * @param propertyCache The map of property cache. Map{String(columnName), PropertyType} (NotNull)\r
- * @return Created row. (NotNull)\r
- * @throws SQLException\r
- */\r
- protected Object createRow(ResultSet rs, Map propertyCache) throws SQLException {\r
- final Class beanClass = dtoMetaData.getBeanClass();\r
- return rowCreator.createRow(rs, propertyCache, beanClass);\r
- }\r
-\r
- protected Set createColumnNames(final ResultSetMetaData rsmd) throws SQLException {\r
- final int count = rsmd.getColumnCount();\r
- final Set columnNames = new CaseInsensitiveSet();\r
- for (int i = 0; i < count; ++i) {\r
- final String columnName = rsmd.getColumnLabel(i + 1);\r
- final int pos = columnName.lastIndexOf('.'); // [DAO-41]\r
- if (-1 < pos) {\r
- columnNames.add(columnName.substring(pos + 1));\r
- } else {\r
- columnNames.add(columnName);\r
- }\r
- }\r
- return columnNames;\r
- }\r
-\r
- public DtoMetaData getDtoMetaData() {\r
- return dtoMetaData;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalRsHandler};\r
-\r
-import java.lang.reflect.Array;\r
-import java.sql.ResultSet;\r
-import java.sql.SQLException;\r
-import java.util.List;\r
-\r
-import org.seasar.dao.BeanMetaData;\r
-import org.seasar.dao.RelationRowCreator;\r
-import org.seasar.dao.RowCreator;\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-@SuppressWarnings("unchecked")\r
-public class ${glInternalBeanArrayMetaDataResultSetHandler} extends ${glInternalBeanListMetaDataResultSetHandler} {\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- /**\r
- * @param beanMetaData Bean meta data. (NotNull)\r
- * @param rowCreator Row creator. (NotNull)\r
- * @param relationRowCreator Relation row creator. (NotNul)\r
- */\r
- public ${glInternalBeanArrayMetaDataResultSetHandler}(BeanMetaData beanMetaData, RowCreator rowCreator, RelationRowCreator relationRowCreator) {\r
- super(beanMetaData, rowCreator, relationRowCreator);\r
- }\r
- \r
- // ===================================================================================\r
- // Handle\r
- // ======\r
- public Object handle(ResultSet rs) throws SQLException {\r
- List list = (List) super.handle(rs);\r
- return list.toArray((Object[]) Array.newInstance(getBeanMetaData().getBeanClass(), list.size()));\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalRsHandler};\r
-\r
-import java.util.ArrayList;\r
-import java.util.HashMap;\r
-import java.util.List;\r
-import java.util.Map;\r
-import java.util.Set;\r
-import java.sql.ResultSet;\r
-import java.sql.SQLException;\r
-\r
-import org.seasar.framework.beans.PropertyDesc;\r
-import org.seasar.extension.jdbc.PropertyType;\r
-import org.seasar.extension.jdbc.ValueType;\r
-import org.seasar.dao.BeanMetaData;\r
-import org.seasar.dao.RelationPropertyType;\r
-import org.seasar.dao.RelationRowCreator;\r
-import org.seasar.dao.RowCreator;\r
-import org.seasar.dao.impl.RelationKey;\r
-import org.seasar.dao.impl.RelationRowCache;\r
-\r
-import ${glPackageBaseCommonCBean}.${glConditionBeanInterfaceName};\r
-import ${glPackageBaseCommonCBean}.${glConditionBeanContextName};\r
-import ${glPackageBaseCommonCBeanOutsidesql}.${glOutsideSqlContextName};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-@SuppressWarnings("unchecked")\r
-public class ${glInternalBeanListMetaDataResultSetHandler} extends ${glInternalAbstractBeanMetaDataResultSetHandler} {\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- /**\r
- * @param beanMetaData Bean meta data. (NotNull)\r
- * @param rowCreator Row creator. (NotNull)\r
- * @param relationRowCreator Relation row creator. (NotNul)\r
- */\r
- public ${glInternalBeanListMetaDataResultSetHandler}(BeanMetaData beanMetaData, RowCreator rowCreator, RelationRowCreator relationRowCreator) {\r
- super(beanMetaData, rowCreator, relationRowCreator);\r
- }\r
- \r
- // ===================================================================================\r
- // Handle\r
- // ======\r
- public Object handle(ResultSet rs) throws SQLException {\r
- // Lazy initialization because if the result is zero, the resources are unused.\r
- Set columnNames = null; // Set<String(columnName)>\r
- Map propertyCache = null; // Map<String(columnName), PropertyType>\r
- Map relationPropertyCache = null; // Map<String(relationNoSuffix), Map<String(columnName), PropertyType>>\r
- RelationRowCache relRowCache = null;\r
-\r
- final List list = new ArrayList();\r
- final int relSize = getBeanMetaData().getRelationPropertyTypeSize();\r
- final boolean hasCB = hasConditionBean();\r
- final boolean skipRelationLoop;\r
- {\r
- final boolean emptyRelation = isSelectedForeignInfoEmpty();\r
- final boolean hasOSC = hasOutsideSqlContext();\r
- final boolean specifiedOutsideSql = isSpecifiedOutsideSql();\r
-\r
- // If it has condition-bean that has no relation to get\r
- // or it has outside-sql context that is specified-outside-sql,\r
- // they are unnecessary to do relation loop!\r
- skipRelationLoop = (hasCB && emptyRelation) || (hasOSC && specifiedOutsideSql);\r
- }\r
-\r
- while (rs.next()) {\r
- if (columnNames == null) {\r
- columnNames = createColumnNames(rs.getMetaData());\r
- }\r
- if (propertyCache == null) {\r
- propertyCache = createPropertyCache(columnNames);\r
- }\r
-\r
- // Create row instance of base table by row property cache.\r
- final Object row = createRow(rs, propertyCache);\r
-\r
- // If it has condition-bean that has no relation to get\r
- // or it has outside-sql context that is specified-outside-sql,\r
- // they are unnecessary to do relation loop!\r
- if (skipRelationLoop) {\r
- postCreateRow(row);\r
- list.add(row);\r
- continue;\r
- }\r
-\r
- if (relationPropertyCache == null) {\r
- relationPropertyCache = createRelationPropertyCache(columnNames);\r
- }\r
- if (relRowCache == null) {\r
- relRowCache = new RelationRowCache(relSize);\r
- }\r
- for (int i = 0; i < relSize; ++i) {\r
- final RelationPropertyType rpt = getBeanMetaData().getRelationPropertyType(i);\r
- if (rpt == null) {\r
- continue;\r
- }\r
-\r
- // Do only selected foreign property for performance if condition-bean exists.\r
- if (hasCB && !hasSelectedForeignInfo(buildRelationNoSuffix(rpt))) {\r
- continue;\r
- }\r
-\r
- final Map relKeyValues = new HashMap();\r
- final RelationKey relKey = createRelationKey(rs, rpt, columnNames, relKeyValues);\r
- Object relationRow = null;\r
- if (relKey != null) {\r
- relationRow = relRowCache.getRelationRow(i, relKey);\r
- if (relationRow == null) { // when no cache\r
- relationRow = createRelationRow(rs, rpt, columnNames, relKeyValues, relationPropertyCache);\r
- if (relationRow != null) {\r
- relRowCache.addRelationRow(i, relKey, relationRow);\r
- postCreateRow(relationRow);\r
- }\r
- }\r
- }\r
- if (relationRow != null) {\r
- final PropertyDesc pd = rpt.getPropertyDesc();\r
- pd.setValue(row, relationRow);\r
- }\r
- }\r
- postCreateRow(row);\r
- list.add(row);\r
- }\r
- return list;\r
- }\r
-\r
- protected RelationKey createRelationKey(ResultSet rs, RelationPropertyType rpt, Set columnNames, Map relKeyValues) throws SQLException {\r
- final List keyList = new ArrayList();\r
- final BeanMetaData bmd = rpt.getBeanMetaData();\r
- for (int i = 0; i < rpt.getKeySize(); ++i) {\r
- final ValueType valueType;\r
- String columnName = rpt.getMyKey(i);\r
- if (columnNames.contains(columnName)) {\r
- final PropertyType pt = getBeanMetaData().getPropertyTypeByColumnName(columnName);\r
- valueType = pt.getValueType();\r
- } else {\r
- final PropertyType pt = bmd.getPropertyTypeByColumnName(rpt.getYourKey(i));\r
- columnName = pt.getColumnName() + buildRelationNoSuffix(rpt);\r
- if (columnNames.contains(columnName)) {\r
- valueType = pt.getValueType();\r
- } else {\r
- return null;\r
- }\r
- }\r
- final Object value = valueType.getValue(rs, columnName);\r
- if (value == null) {\r
- return null;\r
- }\r
- relKeyValues.put(columnName, value);\r
- keyList.add(value);\r
- }\r
- if (keyList.size() > 0) {\r
- Object[] keys = keyList.toArray();\r
- return new RelationKey(keys);\r
- } else {\r
- return null;\r
- }\r
- }\r
- \r
- // ===================================================================================\r
- // Assist Helper\r
- // =============\r
- protected boolean hasConditionBean() {\r
- return ${glConditionBeanContextName}.isExistConditionBeanOnThread();\r
- }\r
-\r
- protected boolean isSelectedForeignInfoEmpty() {\r
- if (!hasConditionBean()) {\r
- return true;\r
- }\r
- ${glConditionBeanInterfaceName} cb = ${glConditionBeanContextName}.getConditionBeanOnThread();\r
- if (cb.getSqlClause().isSelectedForeignInfoEmpty()) {\r
- return true;\r
- }\r
- return false;\r
- }\r
-\r
- /**\r
- * Has it selected foreign information?\r
- * You should call hasConditionBean() before calling this!\r
- * @param relationNoSuffix The suffix of relation NO. (NotNull)\r
- * @return Determination.\r
- */\r
- protected boolean hasSelectedForeignInfo(String relationNoSuffix) {\r
- final ${glConditionBeanInterfaceName} cb = ${glConditionBeanContextName}.getConditionBeanOnThread();\r
- if (cb.getSqlClause().hasSelectedForeignInfo(relationNoSuffix)) {\r
- return true;\r
- }\r
- return false;\r
- }\r
-\r
- /**\r
- * Build the string of relation No suffix.\r
- * @param rpt The property type of relation. (NotNull)\r
- * @return The string of relation No suffix. (NotNull)\r
- */\r
- protected String buildRelationNoSuffix(RelationPropertyType rpt) {\r
- return "_" + rpt.getRelationNo();\r
- }\r
-\r
- protected boolean hasOutsideSqlContext() {\r
- return ${glOutsideSqlContextName}.isExistOutsideSqlContextOnThread();\r
- }\r
-\r
- protected boolean isSpecifiedOutsideSql() {\r
- if (!hasOutsideSqlContext()) {\r
- return false;\r
- }\r
- final ${glOutsideSqlContextName} context = ${glOutsideSqlContextName}.getOutsideSqlContextOnThread();\r
- return context.isSpecifiedOutsideSql();\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlCommand};\r
-\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-\r
-import javax.sql.DataSource;\r
-\r
-import org.seasar.dao.BeanMetaData;\r
-import org.seasar.dao.IdentifierGenerator;\r
-import org.seasar.dao.NotSingleRowUpdatedRuntimeException;\r
-import org.seasar.dao.PrimaryKeyNotFoundRuntimeException;\r
-import org.seasar.extension.jdbc.PropertyType;\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-import org.seasar.framework.exception.SRuntimeException;\r
-\r
-import ${glPackageBaseCommonException}.${glEntityAlreadyUpdatedException};\r
-import ${glPackageBaseCommonS2DaoInternalSqlHandler}.${glInternalAbstractAutoHandler};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public abstract class ${glInternalAbstractAutoStaticCommand} extends ${glInternalAbstractStaticCommand} {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- protected static final boolean DEFAULT_VERSION_NO_AUTO_INCREMENT_ON_MEMORY = true;\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- private PropertyType[] propertyTypes;\r
- private boolean checkSingleRowUpdate = true;\r
- protected boolean versionNoAutoIncrementOnMemory = DEFAULT_VERSION_NO_AUTO_INCREMENT_ON_MEMORY;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalAbstractAutoStaticCommand}(DataSource dataSource,\r
- StatementFactory statementFactory, BeanMetaData beanMetaData,\r
- String[] propertyNames) {\r
- this(dataSource, statementFactory, beanMetaData, propertyNames, DEFAULT_VERSION_NO_AUTO_INCREMENT_ON_MEMORY);\r
- }\r
-\r
- public ${glInternalAbstractAutoStaticCommand}(DataSource dataSource,\r
- StatementFactory statementFactory, BeanMetaData beanMetaData,\r
- String[] propertyNames, boolean versionNoAutoIncrementOnMemory) {\r
- super(dataSource, statementFactory, beanMetaData);\r
- this.versionNoAutoIncrementOnMemory = versionNoAutoIncrementOnMemory;\r
- setupPropertyTypes(propertyNames);\r
- setupSql();\r
- }\r
-\r
- // ===================================================================================\r
- // Execute\r
- // =======\r
- public Object execute(Object[] args) {\r
- ${glInternalAbstractAutoHandler} handler = createAutoHandler();\r
- handler.setSql(getSql());\r
- handler.setLoggingMessageSqlArgs(args);\r
- int rows = handler.execute(args);\r
- if (isCheckSingleRowUpdate() && rows != 1) {\r
- throw createNotSingleRowUpdatedRuntimeException(args[0], rows);\r
- }\r
- return new Integer(rows);\r
- }\r
-\r
- public boolean isCheckSingleRowUpdate() {\r
- return checkSingleRowUpdate;\r
- }\r
-\r
- public void setCheckSingleRowUpdate(boolean checkSingleRowUpdate) {\r
- this.checkSingleRowUpdate = checkSingleRowUpdate;\r
- }\r
-\r
- protected NotSingleRowUpdatedRuntimeException createNotSingleRowUpdatedRuntimeException(Object bean, int rows) {\r
- return new ${glEntityAlreadyUpdatedException}(bean, rows);\r
- }\r
-\r
- protected PropertyType[] getPropertyTypes() {\r
- return propertyTypes;\r
- }\r
-\r
- protected void setPropertyTypes(PropertyType[] propertyTypes) {\r
- this.propertyTypes = propertyTypes;\r
- }\r
-\r
- protected abstract ${glInternalAbstractAutoHandler} createAutoHandler();\r
-\r
- protected abstract void setupPropertyTypes(String[] propertyNames);\r
-\r
- protected void setupInsertPropertyTypes(String[] propertyNames) {\r
- List<PropertyType> types = new ArrayList<PropertyType>();\r
- for (int i = 0; i < propertyNames.length; ++i) {\r
- PropertyType pt = getBeanMetaData().getPropertyType(propertyNames[i]);\r
- if (isInsertTarget(pt)) {\r
- types.add(pt);\r
- }\r
- }\r
- propertyTypes = (PropertyType[]) types.toArray(new PropertyType[types.size()]);\r
- }\r
-\r
- protected boolean isInsertTarget(PropertyType propertyType) {\r
- if (propertyType.isPrimaryKey()) {\r
- String name = propertyType.getPropertyName();\r
- final IdentifierGenerator generator = getBeanMetaData().getIdentifierGenerator(name);\r
- return generator.isSelfGenerate();\r
- }\r
- return true;\r
- }\r
-\r
- protected void setupUpdatePropertyTypes(String[] propertyNames) {\r
- List<PropertyType> types = new ArrayList<PropertyType>();\r
- for (int i = 0; i < propertyNames.length; ++i) {\r
- PropertyType pt = getBeanMetaData().getPropertyType(propertyNames[i]);\r
- if (pt.isPrimaryKey()) {\r
- continue;\r
- }\r
- types.add(pt);\r
- }\r
- if (types.size() == 0) {\r
- throw new SRuntimeException("EDAO0020");\r
- }\r
- propertyTypes = (PropertyType[]) types.toArray(new PropertyType[types.size()]);\r
- }\r
-\r
- protected void setupDeletePropertyTypes(String[] propertyNames) {\r
- }\r
-\r
- protected abstract void setupSql();\r
-\r
- protected void setupInsertSql() {\r
- BeanMetaData bmd = getBeanMetaData();\r
- StringBuilder sb = new StringBuilder(100);\r
- sb.append("insert into ");\r
- sb.append(bmd.getTableName());\r
- sb.append(" (");\r
- for (int i = 0; i < propertyTypes.length; ++i) {\r
- PropertyType pt = propertyTypes[i];\r
- if (isInsertTarget(pt)) {\r
- sb.append(pt.getColumnName());\r
- sb.append(", ");\r
- }\r
- }\r
- sb.setLength(sb.length() - 2);\r
- sb.append(") values (");\r
- for (int i = 0; i < propertyTypes.length; ++i) {\r
- PropertyType pt = propertyTypes[i];\r
- if (isInsertTarget(pt)) {\r
- sb.append("?, ");\r
- }\r
- }\r
- sb.setLength(sb.length() - 2);\r
- sb.append(")");\r
- setSql(sb.toString());\r
- }\r
-\r
- protected void setupUpdateSql() {\r
- checkPrimaryKey();\r
- StringBuilder sb = new StringBuilder(100);\r
- sb.append("update ");\r
- sb.append(getBeanMetaData().getTableName());\r
- sb.append(" set ");\r
- String versionNoPropertyName = getBeanMetaData().getVersionNoPropertyName();\r
- for (int i = 0; i < propertyTypes.length; ++i) {\r
- PropertyType pt = propertyTypes[i];\r
- if (pt.getPropertyName().equalsIgnoreCase(versionNoPropertyName) && !versionNoAutoIncrementOnMemory) {\r
- sb.append(pt.getColumnName()).append(" = ").append(pt.getColumnName()).append(" + 1, ");\r
- continue;\r
- }\r
- sb.append(pt.getColumnName()).append(" = ?, ");\r
- }\r
- sb.setLength(sb.length() - 2);\r
- setupUpdateWhere(sb);\r
- setSql(sb.toString());\r
- }\r
-\r
- protected void setupDeleteSql() {\r
- checkPrimaryKey();\r
- StringBuilder sb = new StringBuilder(100);\r
- sb.append("delete from ");\r
- sb.append(getBeanMetaData().getTableName());\r
- setupUpdateWhere(sb);\r
- setSql(sb.toString());\r
- }\r
-\r
- protected void checkPrimaryKey() {\r
- BeanMetaData bmd = getBeanMetaData();\r
- if (bmd.getPrimaryKeySize() == 0) {\r
- throw new PrimaryKeyNotFoundRuntimeException(bmd.getBeanClass());\r
- }\r
- }\r
-\r
- protected void setupUpdateWhere(StringBuilder sb) {\r
- BeanMetaData bmd = getBeanMetaData();\r
- sb.append(" where ");\r
- for (int i = 0; i < bmd.getPrimaryKeySize(); ++i) {\r
- sb.append(bmd.getPrimaryKey(i)).append(" = ? and ");\r
- }\r
- sb.setLength(sb.length() - 5);\r
- if (bmd.hasVersionNoPropertyType()) {\r
- PropertyType pt = bmd.getVersionNoPropertyType();\r
- sb.append(" and ").append(pt.getColumnName()).append(" = ?");\r
- }\r
- if (bmd.hasTimestampPropertyType()) {\r
- PropertyType pt = bmd.getTimestampPropertyType();\r
- sb.append(" and ").append(pt.getColumnName()).append(" = ?");\r
- }\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlCommand};\r
-\r
-import javax.sql.DataSource;\r
-\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-import org.seasar.dao.BeanMetaData;\r
-\r
-import ${glPackageBaseCommonS2DaoInternalSqlHandler}.${glInternalAbstractBatchAutoHandler};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public abstract class ${glInternalAbstractBatchAutoStaticCommand} extends ${glInternalAbstractAutoStaticCommand} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected final boolean returningRows;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalAbstractBatchAutoStaticCommand}(DataSource dataSource,\r
- StatementFactory statementFactory, BeanMetaData beanMetaData,\r
- String[] propertyNames, boolean returningRows) {\r
- this(dataSource, statementFactory, beanMetaData, propertyNames, returningRows, DEFAULT_VERSION_NO_AUTO_INCREMENT_ON_MEMORY);\r
- }\r
-\r
- public ${glInternalAbstractBatchAutoStaticCommand}(DataSource dataSource,\r
- StatementFactory statementFactory, BeanMetaData beanMetaData,\r
- String[] propertyNames, boolean returningRows, boolean versionNoAutoIncrementOnMemory) {\r
- super(dataSource, statementFactory, beanMetaData, propertyNames, versionNoAutoIncrementOnMemory);\r
- this.returningRows = returningRows;\r
- }\r
-\r
- // ===================================================================================\r
- // Execute\r
- // =======\r
- public Object execute(Object[] args) {\r
- final ${glInternalAbstractBatchAutoHandler} handler = createBatchAutoHandler();\r
- \r
- // It is unnecessary!\r
- // injectDaoClass(handler);\r
- \r
- handler.setSql(getSql());\r
- // The logging message SQL of procedure is unnecessary.\r
- // handler.setLoggingMessageSqlArgs(args);\r
- if (this.returningRows) {\r
- return handler.executeBatch(args);\r
- } else {\r
- final int updatedRows = handler.execute(args);\r
- return new Integer(updatedRows);\r
- }\r
- }\r
- \r
- protected abstract ${glInternalAbstractBatchAutoHandler} createBatchAutoHandler();\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlCommand};\r
-\r
-import javax.sql.DataSource;\r
-\r
-import org.seasar.dao.CommandContext;\r
-import org.seasar.dao.Node;\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-\r
-import ${glPackageBaseCommonS2DaoInternalSqlParser}.${glInternalCommandContextCreator};\r
-import ${glPackageBaseCommonS2DaoInternalSqlParser}.${glInternalSqlParser};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public abstract class ${glInternalAbstractDynamicCommand} extends ${glInternalAbstractSqlCommand} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected Node rootNode;\r
- protected String[] argNames = new String[0];\r
- protected Class<?>[] argTypes = new Class[0];\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalAbstractDynamicCommand}(DataSource dataSource, StatementFactory statementFactory) {\r
- super(dataSource, statementFactory);\r
- }\r
-\r
- // ===================================================================================\r
- // Sql Handling\r
- // ============\r
- public void setSql(String sql) {\r
- super.setSql(sql);\r
- this.rootNode = createInternalSqlParser(sql).parse();\r
- }\r
- \r
- protected ${glInternalSqlParser} createInternalSqlParser(String sql) {\r
- return new ${glInternalSqlParser}(sql);\r
- }\r
-\r
- public CommandContext apply(Object[] args) {// It is necessary to be public!\r
- final CommandContext ctx = createCommandContext(args);\r
- rootNode.accept(ctx);\r
- return ctx;\r
- }\r
-\r
- protected CommandContext createCommandContext(Object[] args) {\r
- return createCommandContextCreator().createCommandContext(args);\r
- }\r
-\r
- protected ${glInternalCommandContextCreator} createCommandContextCreator() {\r
- return new ${glInternalCommandContextCreator}(argNames, argTypes);\r
- }\r
- \r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public String[] getArgNames() {\r
- return argNames;\r
- }\r
-\r
- public void setArgNames(String[] argNames) {\r
- this.argNames = argNames;\r
- }\r
-\r
- public Class<?>[] getArgTypes() {\r
- return argTypes;\r
- }\r
-\r
- public void setArgTypes(Class<?>[] argTypes) {\r
- this.argTypes = argTypes;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlCommand};\r
-\r
-import javax.sql.DataSource;\r
-\r
-import org.seasar.dao.SqlCommand;\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public abstract class ${glInternalAbstractSqlCommand} implements SqlCommand {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- private DataSource dataSource;\r
- private StatementFactory statementFactory;\r
- private String sql;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalAbstractSqlCommand}(DataSource dataSource, StatementFactory statementFactory) {\r
- this.dataSource = dataSource;\r
- this.statementFactory = statementFactory;\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public DataSource getDataSource() {\r
- return dataSource;\r
- }\r
-\r
- public StatementFactory getStatementFactory() {\r
- return statementFactory;\r
- }\r
-\r
- public String getSql() {\r
- return sql;\r
- }\r
-\r
- public void setSql(String sql) {\r
- this.sql = sql;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlCommand};\r
-\r
-import javax.sql.DataSource;\r
-\r
-import org.seasar.dao.BeanMetaData;\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public abstract class ${glInternalAbstractStaticCommand} extends ${glInternalAbstractSqlCommand} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- private BeanMetaData beanMetaData;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalAbstractStaticCommand}(DataSource dataSource, StatementFactory statementFactory, BeanMetaData beanMetaData) {\r
- super(dataSource, statementFactory);\r
- this.beanMetaData = beanMetaData;\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public BeanMetaData getBeanMetaData() {\r
- return beanMetaData;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlCommand};\r
-\r
-import javax.sql.DataSource;\r
-\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-import org.seasar.dao.BeanMetaData;\r
-\r
-import ${glPackageBaseCommonS2DaoInternalSqlHandler}.${glInternalAbstractAutoHandler};\r
-import ${glPackageBaseCommonS2DaoInternalSqlHandler}.${glInternalDeleteAutoHandler};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInternalDeleteAutoStaticCommand} extends ${glInternalAbstractAutoStaticCommand} {\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalDeleteAutoStaticCommand}(DataSource dataSource,\r
- StatementFactory statementFactory, BeanMetaData beanMetaData,\r
- String[] propertyNames) {\r
- super(dataSource, statementFactory, beanMetaData, propertyNames);\r
- }\r
-\r
- // ===================================================================================\r
- // Override\r
- // ========\r
- @Override\r
- protected ${glInternalAbstractAutoHandler} createAutoHandler() {\r
- return new ${glInternalDeleteAutoHandler}(getDataSource(), getStatementFactory(), getBeanMetaData(), getPropertyTypes());\r
- }\r
- \r
- @Override\r
- protected void setupSql() {\r
- setupDeleteSql();\r
- }\r
-\r
- @Override\r
- protected void setupPropertyTypes(String[] propertyNames) {\r
- setupDeletePropertyTypes(propertyNames);\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlCommand};\r
-\r
-import javax.sql.DataSource;\r
-\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-import org.seasar.dao.BeanMetaData;\r
-\r
-import ${glPackageBaseCommonS2DaoInternalSqlHandler}.${glInternalAbstractAutoHandler};\r
-import ${glPackageBaseCommonS2DaoInternalSqlHandler}.${glInternalAbstractBatchAutoHandler};\r
-import ${glPackageBaseCommonS2DaoInternalSqlHandler}.${glInternalDeleteBatchAutoHandler};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInternalDeleteBatchAutoStaticCommand} extends ${glInternalAbstractBatchAutoStaticCommand} {\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalDeleteBatchAutoStaticCommand}(DataSource dataSource,\r
- StatementFactory statementFactory, BeanMetaData beanMetaData,\r
- String[] propertyNames, boolean returningRows) {\r
- super(dataSource, statementFactory, beanMetaData, propertyNames, returningRows);\r
- }\r
-\r
- // ===================================================================================\r
- // Override\r
- // ========\r
- @Override\r
- protected ${glInternalAbstractAutoHandler} createAutoHandler() {\r
- return createBatchAutoHandler();\r
- }\r
-\r
- @Override\r
- protected ${glInternalAbstractBatchAutoHandler} createBatchAutoHandler() {\r
- return newInternalBatchAutoHandler();\r
- }\r
-\r
- protected ${glInternalDeleteBatchAutoHandler} newInternalBatchAutoHandler() {\r
- return new ${glInternalDeleteBatchAutoHandler}(getDataSource(), getStatementFactory(), getBeanMetaData(), getPropertyTypes());\r
- }\r
-\r
- @Override\r
- protected void setupSql() {\r
- setupDeleteSql();\r
- }\r
-\r
- @Override\r
- protected void setupPropertyTypes(String[] propertyNames) {\r
- setupDeletePropertyTypes(propertyNames);\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlCommand};\r
-\r
-import javax.sql.DataSource;\r
-\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-import org.seasar.dao.CommandContext;\r
-import org.seasar.dao.Node;\r
-import org.seasar.dao.SqlCommand;\r
-import ${glPackageBaseCommonCBean}.${glConditionBeanInterfaceName};\r
-import ${glPackageBaseCommonS2DaoInternalSqlHandler}.${glInternalCommandContextHandler};\r
-import ${glPackageBaseCommonS2DaoInternalSqlParser}.${glInternalCommandContextCreator};\r
-import ${glPackageBaseCommonS2DaoInternalSqlParser}.${glInternalSqlParser};\r
-import ${glPackageBaseCommonUtil}.${glSimpleSystemUtil};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInternalDeleteQueryAutoDynamicCommand} implements SqlCommand {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected DataSource dataSource;\r
- protected StatementFactory statementFactory;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalDeleteQueryAutoDynamicCommand}(DataSource dataSource, StatementFactory statementFactory) {\r
- this.dataSource = dataSource;\r
- this.statementFactory = statementFactory;\r
- }\r
-\r
- // ===================================================================================\r
- // Execute\r
- // =======\r
- public Object execute(Object[] args) {\r
- ${glConditionBeanInterfaceName} cb = extractConditionBeanWithCheck(args);\r
- String[] argNames = new String[]{"dto"};\r
- Class<?>[] argTypes = new Class<?>[]{cb.getClass()};\r
- String twoWaySql = buildQueryDeleteTwoWaySql(cb);\r
- CommandContext context = createCommandContext(twoWaySql, argNames, argTypes, args);\r
- ${glInternalCommandContextHandler} handler = createCommandContextHandler(context);\r
- handler.setLoggingMessageSqlArgs(context.getBindVariables());\r
- int rows = handler.execute(args);\r
- return new Integer(rows);\r
- }\r
- \r
- protected ${glConditionBeanInterfaceName} extractConditionBeanWithCheck(Object[] args) {\r
- if (args == null || args.length == 0) {\r
- String msg = "The arguments should have one argument! But:";\r
- msg = msg + " args=" + (args != null ? args.length : null);\r
- throw new IllegalArgumentException(msg);\r
- }\r
- Object fisrtArg = args[0];\r
- if (!(fisrtArg instanceof ${glConditionBeanInterfaceName})) {\r
- String msg = "The type of argument should be " + ${glConditionBeanInterfaceName}.class + "! But:";\r
- msg = msg + " type=" + fisrtArg.getClass();\r
- throw new IllegalArgumentException(msg);\r
- }\r
- return (${glConditionBeanInterfaceName}) fisrtArg;\r
- }\r
- \r
- protected ${glInternalCommandContextHandler} createCommandContextHandler(CommandContext context) {\r
- return new ${glInternalCommandContextHandler}(dataSource, statementFactory, context);\r
- }\r
-\r
- protected String buildQueryDeleteTwoWaySql(${glConditionBeanInterfaceName} cb) {\r
- return cb.getSqlClause().getClauseQueryDelete();\r
- }\r
- \r
- protected CommandContext createCommandContext(String twoWaySql, String[] argNames, Class<?>[] argTypes, Object[] args) {\r
- CommandContext context;\r
- {\r
- ${glInternalSqlParser} parser = new ${glInternalSqlParser}(twoWaySql);\r
- Node node = parser.parse();\r
- ${glInternalCommandContextCreator} creator = new ${glInternalCommandContextCreator}(argNames, argTypes);\r
- context = creator.createCommandContext(args);\r
- node.accept(context);\r
- }\r
- return context;\r
- }\r
- \r
- // ===================================================================================\r
- // General Helper\r
- // ==============\r
- protected String getLineSeparator() {\r
- return ${glSimpleSystemUtil}.getLineSeparator();\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlCommand};\r
-\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-\r
-import javax.sql.DataSource;\r
-\r
-import org.seasar.dao.BeanMetaData;\r
-import org.seasar.dao.IdentifierGenerator;\r
-#if ($database.isVersionAfter1045())\r
-import org.seasar.dao.InjectDaoClassSupport;\r
-#end\r
-import org.seasar.dao.NotSingleRowUpdatedRuntimeException;\r
-import org.seasar.dao.SqlCommand;\r
-import org.seasar.extension.jdbc.PropertyType;\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-import org.seasar.framework.exception.SRuntimeException;\r
-\r
-import ${glPackageBaseCommonS2DaoInternalSqlHandler}.${glInternalInsertAutoHandler};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-#if ($database.isVersionAfter1045())\r
-public class ${glInternalInsertAutoDynamicCommand} implements SqlCommand, InjectDaoClassSupport {\r
-#else\r
-public class ${glInternalInsertAutoDynamicCommand} implements SqlCommand {\r
-#end\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- protected DataSource dataSource;\r
- protected StatementFactory statementFactory;\r
- protected BeanMetaData beanMetaData;\r
- protected String[] propertyNames;\r
- protected boolean checkSingleRowUpdate = true;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalInsertAutoDynamicCommand}() {\r
- }\r
-\r
- // ===================================================================================\r
- // Execute\r
- // =======\r
- public Object execute(Object[] args) {\r
- final Object bean = args[0];\r
- final BeanMetaData bmd = getBeanMetaData();\r
- final PropertyType[] propertyTypes = createInsertPropertyTypes(bmd, bean, getPropertyNames());\r
- final String sql = createInsertSql(bmd, propertyTypes);\r
- final ${glInternalInsertAutoHandler} handler = new ${glInternalInsertAutoHandler}(getDataSource(), getStatementFactory(), bmd, propertyTypes);\r
- handler.setSql(sql);\r
- handler.setLoggingMessageSqlArgs(args);\r
- final int rows = handler.execute(args);\r
- if (isCheckSingleRowUpdate() && rows != 1) {\r
- throw new NotSingleRowUpdatedRuntimeException(args[0], rows);\r
- }\r
- return new Integer(rows);\r
- }\r
-\r
- protected String createInsertSql(BeanMetaData bmd,\r
- PropertyType[] propertyTypes) {\r
- StringBuffer buf = new StringBuffer(100);\r
- buf.append("insert into ");\r
- buf.append(bmd.getTableName());\r
- buf.append(" (");\r
- for (int i = 0; i < propertyTypes.length; ++i) {\r
- PropertyType pt = propertyTypes[i];\r
- final String columnName = pt.getColumnName();\r
- if (i > 0) {\r
- buf.append(", ");\r
- }\r
- buf.append(columnName);\r
- }\r
- buf.append(") values (");\r
- for (int i = 0; i < propertyTypes.length; ++i) {\r
- if (i > 0) {\r
- buf.append(", ");\r
- }\r
- buf.append("?");\r
- }\r
- buf.append(")");\r
- return buf.toString();\r
- }\r
-\r
- protected PropertyType[] createInsertPropertyTypes(BeanMetaData bmd, Object bean, String[] propertyNames) {\r
-\r
- if (0 == propertyNames.length) {\r
- throw new SRuntimeException("EDAO0024", new Object[] { bean.getClass().getName() });\r
- }\r
- List<PropertyType> types = new ArrayList<PropertyType>();\r
- final String timestampPropertyName = bmd.getTimestampPropertyName();\r
- final String versionNoPropertyName = bmd.getVersionNoPropertyName();\r
-\r
- for (int i = 0; i < propertyNames.length; ++i) {\r
- PropertyType pt = bmd.getPropertyType(propertyNames[i]);\r
- if (pt.isPrimaryKey()) {\r
- final IdentifierGenerator generator = bmd.getIdentifierGenerator(pt.getPropertyName());\r
- if (!generator.isSelfGenerate()) {\r
- continue;\r
- }\r
- } else {\r
- if (pt.getPropertyDesc().getValue(bean) == null) {\r
- final String propertyName = pt.getPropertyName();\r
- if (!propertyName.equalsIgnoreCase(timestampPropertyName)\r
- && !propertyName.equalsIgnoreCase(versionNoPropertyName)) {\r
- continue;\r
- }\r
- }\r
- }\r
- types.add(pt);\r
- }\r
- if (types.isEmpty()) {\r
- throw new SRuntimeException("EDAO0014");\r
- }\r
- PropertyType[] propertyTypes = (PropertyType[]) types.toArray(new PropertyType[types.size()]);\r
- return propertyTypes;\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- protected DataSource getDataSource() {\r
- return dataSource;\r
- }\r
-\r
- public void setDataSource(DataSource dataSource) {\r
- this.dataSource = dataSource;\r
- }\r
-\r
- protected StatementFactory getStatementFactory() {\r
- return statementFactory;\r
- }\r
-\r
- public void setStatementFactory(StatementFactory statementFactory) {\r
- this.statementFactory = statementFactory;\r
- }\r
-\r
- protected BeanMetaData getBeanMetaData() {\r
- return beanMetaData;\r
- }\r
-\r
- public void setBeanMetaData(BeanMetaData beanMetaData) {\r
- this.beanMetaData = beanMetaData;\r
- }\r
-\r
- protected String[] getPropertyNames() {\r
- return propertyNames;\r
- }\r
-\r
- public void setPropertyNames(String[] propertyNames) {\r
- this.propertyNames = propertyNames;\r
- }\r
-\r
- public boolean isCheckSingleRowUpdate() {\r
- return checkSingleRowUpdate;\r
- }\r
-\r
- public void setCheckSingleRowUpdate(boolean checkSingleRowUpdate) {\r
- this.checkSingleRowUpdate = checkSingleRowUpdate;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlCommand};\r
-\r
-import javax.sql.DataSource;\r
-\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-import org.seasar.dao.BeanMetaData;\r
-\r
-import ${glPackageBaseCommonS2DaoInternalSqlHandler}.${glInternalAbstractAutoHandler};\r
-import ${glPackageBaseCommonS2DaoInternalSqlHandler}.${glInternalAbstractBatchAutoHandler};\r
-import ${glPackageBaseCommonS2DaoInternalSqlHandler}.${glInternalInsertBatchAutoHandler};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInternalInsertBatchAutoStaticCommand} extends ${glInternalAbstractBatchAutoStaticCommand} {\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalInsertBatchAutoStaticCommand}(DataSource dataSource,\r
- StatementFactory statementFactory, BeanMetaData beanMetaData,\r
- String[] propertyNames, boolean returningRows) {\r
- super(dataSource, statementFactory, beanMetaData, propertyNames, returningRows);\r
- }\r
-\r
- // ===================================================================================\r
- // Override\r
- // ========\r
- @Override\r
- protected ${glInternalAbstractAutoHandler} createAutoHandler() {\r
- return createBatchAutoHandler();\r
- }\r
-\r
- @Override\r
- protected ${glInternalAbstractBatchAutoHandler} createBatchAutoHandler() {\r
- return new ${glInternalInsertBatchAutoHandler}(getDataSource(), getStatementFactory(), getBeanMetaData(), getPropertyTypes());\r
- }\r
-\r
- @Override\r
- protected void setupSql() {\r
- setupInsertSql();\r
- }\r
-\r
- @Override\r
- protected void setupPropertyTypes(String[] propertyNames) {\r
- setupInsertPropertyTypes(propertyNames);\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlCommand};\r
-\r
-import javax.sql.DataSource;\r
-\r
-import org.seasar.dao.SqlCommand;\r
-import org.seasar.extension.jdbc.ResultSetHandler;\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-\r
-import ${glPackageBaseCommonCBeanOutsidesql}.${glOutsideSqlContextName};\r
-import ${glPackageBaseCommonS2DaoInternalSqlHandler}.${glInternalProcedureHandler};\r
-import ${glPackageBaseCommonS2DaoInternalVarious}.${glInternalProcedureMetaData};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInternalProcedureCommand} implements SqlCommand {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected DataSource dataSource;\r
- protected ResultSetHandler resultSetHandler;\r
- protected StatementFactory statementFactory;\r
- protected ${glInternalProcedureMetaData} procedureMetaData;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalProcedureCommand}(DataSource dataSource, ResultSetHandler resultSetHandler,\r
- StatementFactory statementFactory, ${glInternalProcedureMetaData} procedureMetaData) {\r
- this.dataSource = dataSource;\r
- this.resultSetHandler = resultSetHandler;\r
- this.statementFactory = statementFactory;\r
- this.procedureMetaData = procedureMetaData;\r
- }\r
-\r
- // ===================================================================================\r
- // Execute\r
- // =======\r
- public Object execute(final Object[] args) {\r
- final ${glInternalProcedureHandler} handler = newArgumentDtoProcedureHandler();\r
- final ${glOutsideSqlContextName} outsideSqlContext = ${glOutsideSqlContextName}.getOutsideSqlContextOnThread();\r
- final Object pmb = outsideSqlContext.getParameterBean();\r
- // The logging message SQL of procedure is unnecessary.\r
- // handler.setLoggingMessageSqlArgs(...);\r
- return handler.execute(new Object[]{pmb});\r
- }\r
- protected ${glInternalProcedureHandler} newArgumentDtoProcedureHandler() {\r
- return new ${glInternalProcedureHandler}(dataSource, createSql(procedureMetaData), resultSetHandler,\r
- statementFactory, procedureMetaData);\r
- }\r
- protected String createSql(final ${glInternalProcedureMetaData} procedureMetaData) {\r
- final StringBuilder sb = new StringBuilder();\r
- sb.append("{");\r
- int size = procedureMetaData.parameterTypes().size();\r
- if (procedureMetaData.hasReturnParameterType()) {\r
- sb.append("? = ");\r
- size--;\r
- }\r
- sb.append("call ").append(procedureMetaData.getProcedureName()).append("(");\r
- for (int i = 0; i < size; i++) {\r
- sb.append("?, ");\r
- }\r
- if (size > 0) {\r
- sb.setLength(sb.length() - 2);\r
- }\r
- sb.append(")}");\r
- return sb.toString();\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlCommand};\r
-\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-\r
-import javax.sql.DataSource;\r
-\r
-import org.seasar.extension.jdbc.PropertyType;\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-import org.seasar.dao.impl.AbstractSqlCommand;\r
-import org.seasar.dao.BeanMetaData;\r
-import org.seasar.dao.NoUpdatePropertyTypeRuntimeException;\r
-\r
-import ${glPackageBaseCommonS2DaoInternalSqlHandler}.${glInternalUpdateAutoHandler};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInternalUpdateAutoDynamicCommand} extends AbstractSqlCommand {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- /** Log instance. */\r
- private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory.getLog(${glInternalUpdateAutoDynamicCommand}.class);\r
-\r
- private static final Integer NO_UPDATE = new Integer(0);\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- private BeanMetaData beanMetaData;\r
- private String[] propertyNames;\r
- private boolean checkSingleRowUpdate = true;\r
- private boolean versionNoAutoIncrementOnMemory = true;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalUpdateAutoDynamicCommand}(DataSource dataSource, StatementFactory statementFactory) {\r
- super(dataSource, statementFactory);\r
- }\r
-\r
- // ===================================================================================\r
- // Execute\r
- // =======\r
- public Object execute(Object[] args) {\r
- final Object bean = args[0];\r
- final BeanMetaData bmd = getBeanMetaData();\r
- final PropertyType[] propertyTypes = createUpdatePropertyTypes(bmd, bean, getPropertyNames());\r
- if (propertyTypes.length == 0) {\r
- if (_log.isDebugEnabled()) {\r
- _log.debug(createNoUpdateLogMessage(bean, bmd));\r
- }\r
- return NO_UPDATE;\r
- }\r
- ${glInternalUpdateAutoHandler} handler = createInternalUpdateAutoHandler(bmd, propertyTypes);\r
- handler.setSql(createUpdateSql(bmd, propertyTypes, bean));\r
- handler.setLoggingMessageSqlArgs(args);\r
- int i = handler.execute(args);\r
-\r
- // [Comment Out]: This statement moved to the handler at [DBFlute-0.8.0].\r
- // if (isCheckSingleRowUpdate() && i < 1) {\r
- // throw createNotSingleRowUpdatedRuntimeException(args[0], i);\r
- // }\r
-\r
- return new Integer(i);\r
- }\r
-\r
- protected ${glInternalUpdateAutoHandler} createInternalUpdateAutoHandler(BeanMetaData bmd, PropertyType[] propertyTypes) {\r
- ${glInternalUpdateAutoHandler} handler = new ${glInternalUpdateAutoHandler}(getDataSource(), getStatementFactory(), bmd, propertyTypes);\r
- handler.setVersionNoAutoIncrementOnMemory(versionNoAutoIncrementOnMemory);\r
- handler.setCheckSingleRowUpdate(isCheckSingleRowUpdate()); // [DBFlute-0.8.0]\r
- return handler;\r
- }\r
-\r
- protected PropertyType[] createUpdatePropertyTypes(BeanMetaData bmd, Object bean, String[] propertyNames) {\r
- final List<PropertyType> types = new ArrayList<PropertyType>();\r
- final String timestampPropertyName = bmd.getTimestampPropertyName();\r
- final String versionNoPropertyName = bmd.getVersionNoPropertyName();\r
- for (int i = 0; i < propertyNames.length; ++i) {\r
- PropertyType pt = bmd.getPropertyType(propertyNames[i]);\r
- if (pt.isPrimaryKey() == false) {\r
- String propertyName = pt.getPropertyName();\r
- if (propertyName.equalsIgnoreCase(timestampPropertyName)\r
- || propertyName.equalsIgnoreCase(versionNoPropertyName)\r
- || pt.getPropertyDesc().getValue(bean) != null) {\r
- types.add(pt);\r
- }\r
- }\r
- }\r
- if (types.isEmpty()) {\r
- throw new NoUpdatePropertyTypeRuntimeException();\r
- }\r
- PropertyType[] propertyTypes = (PropertyType[]) types.toArray(new PropertyType[types.size()]);\r
- return propertyTypes;\r
- }\r
-\r
- protected String createNoUpdateLogMessage(final Object bean, final BeanMetaData bmd) {\r
- final StringBuffer sb = new StringBuffer();\r
- sb.append("skip UPDATE: table=").append(bmd.getTableName());\r
- final int size = bmd.getPrimaryKeySize();\r
- for (int i = 0; i < size; i++) {\r
- if (i == 0) {\r
- sb.append(", key{");\r
- } else {\r
- sb.append(", ");\r
- }\r
- final String keyName = bmd.getPrimaryKey(i);\r
- sb.append(keyName).append("=");\r
- sb.append(bmd.getPropertyTypeByColumnName(keyName).getPropertyDesc().getValue(bean));\r
- if (i == size - 1) {\r
- sb.append("}");\r
- }\r
- }\r
- final String s = new String(sb);\r
- return s;\r
- }\r
-\r
- /**\r
- * Create update SQL. The update is by the primary keys.\r
- * @param bmd The meta data of bean. (NotNull & RequiredPrimaryKeys)\r
- * @param propertyTypes The types of property for update. (NotNull)\r
- * @param bean A bean for update for handling version no and so on. (NotNull)\r
- * @return The update SQL. (NotNull)\r
- */\r
- protected String createUpdateSql(BeanMetaData bmd, PropertyType[] propertyTypes, Object bean) {\r
- if (bmd.getPrimaryKeySize() == 0) {\r
- String msg = "The table '" + bmd.getTableName() + "' does not have primary keys!";\r
- throw new IllegalStateException(msg);\r
- }\r
- final StringBuilder sb = new StringBuilder(100);\r
- sb.append("update ");\r
- sb.append(bmd.getTableName());\r
- sb.append(" set ");\r
- final String versionNoPropertyName = bmd.getVersionNoPropertyName();\r
- for (int i = 0; i < propertyTypes.length; ++i) {\r
- PropertyType pt = propertyTypes[i];\r
- final String columnName = pt.getColumnName();\r
- if (i > 0) {\r
- sb.append(", ");\r
- }\r
- if (pt.getPropertyName().equalsIgnoreCase(versionNoPropertyName)) {\r
- if (!isVersionNoAutoIncrementOnMemory()) {\r
- setupVersionNoAutoIncrementOnQuery(sb, columnName);\r
- continue;\r
- }\r
- final Object versionNo = pt.getPropertyDesc().getValue(bean);\r
- if (versionNo == null) {\r
- setupVersionNoAutoIncrementOnQuery(sb, columnName);\r
- continue;\r
- }\r
- }\r
- sb.append(columnName).append(" = ?");\r
- }\r
- sb.append(" where ");\r
- for (int i = 0; i < bmd.getPrimaryKeySize(); ++i) {\r
- sb.append(bmd.getPrimaryKey(i)).append(" = ? and ");\r
- }\r
- sb.setLength(sb.length() - 5);\r
- if (bmd.hasVersionNoPropertyType()) {\r
- PropertyType pt = bmd.getVersionNoPropertyType();\r
- sb.append(" and ").append(pt.getColumnName()).append(" = ?");\r
- }\r
- if (bmd.hasTimestampPropertyType()) {\r
- PropertyType pt = bmd.getTimestampPropertyType();\r
- sb.append(" and ").append(pt.getColumnName()).append(" = ?");\r
- }\r
- return sb.toString();\r
- }\r
-\r
- protected boolean isVersionNoAutoIncrementOnMemory() {\r
- return versionNoAutoIncrementOnMemory;\r
- }\r
-\r
- public void setVersionNoAutoIncrementOnMemory(boolean versionNoAutoIncrementOnMemory) {\r
- this.versionNoAutoIncrementOnMemory = versionNoAutoIncrementOnMemory;\r
- }\r
- \r
- protected void setupVersionNoAutoIncrementOnQuery(StringBuilder sb, String columnName) {\r
- sb.append(columnName).append(" = ").append(columnName).append(" + 1");\r
- }\r
-\r
- public BeanMetaData getBeanMetaData() {\r
- return beanMetaData;\r
- }\r
-\r
- public void setBeanMetaData(BeanMetaData beanMetaData) {\r
- this.beanMetaData = beanMetaData;\r
- }\r
-\r
- public String[] getPropertyNames() {\r
- return propertyNames;\r
- }\r
-\r
- public void setPropertyNames(String[] propertyNames) {\r
- this.propertyNames = propertyNames;\r
- }\r
-\r
- public boolean isCheckSingleRowUpdate() {\r
- return checkSingleRowUpdate;\r
- }\r
-\r
- public void setCheckSingleRowUpdate(boolean resultCheck) {\r
- this.checkSingleRowUpdate = resultCheck;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlCommand};\r
-\r
-import javax.sql.DataSource;\r
-\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-import org.seasar.dao.BeanMetaData;\r
-\r
-import ${glPackageBaseCommonS2DaoInternalSqlHandler}.${glInternalAbstractAutoHandler};\r
-import ${glPackageBaseCommonS2DaoInternalSqlHandler}.${glInternalAbstractBatchAutoHandler};\r
-import ${glPackageBaseCommonS2DaoInternalSqlHandler}.${glInternalUpdateBatchAutoHandler};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInternalUpdateBatchAutoStaticCommand} extends ${glInternalAbstractBatchAutoStaticCommand} {\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalUpdateBatchAutoStaticCommand}(DataSource dataSource,\r
- StatementFactory statementFactory, BeanMetaData beanMetaData,\r
- String[] propertyNames, boolean returningRows, boolean versionNoAutoIncrementOnMemory) {\r
- super(dataSource, statementFactory, beanMetaData, propertyNames, returningRows, versionNoAutoIncrementOnMemory);\r
- }\r
-\r
- // ===================================================================================\r
- // Override\r
- // ========\r
- @Override\r
- protected ${glInternalAbstractAutoHandler} createAutoHandler() {\r
- return createBatchAutoHandler();\r
- }\r
-\r
- @Override\r
- protected ${glInternalAbstractBatchAutoHandler} createBatchAutoHandler() {\r
- ${glInternalUpdateBatchAutoHandler} handler = newInternalBatchAutoHandler();\r
- handler.setVersionNoAutoIncrementOnMemory(versionNoAutoIncrementOnMemory);\r
- return handler;\r
- }\r
-\r
- protected ${glInternalUpdateBatchAutoHandler} newInternalBatchAutoHandler() {\r
- return new ${glInternalUpdateBatchAutoHandler}(getDataSource(), getStatementFactory(), getBeanMetaData(), getPropertyTypes());\r
- }\r
-\r
- @Override\r
- protected void setupSql() {\r
- setupUpdateSql();\r
- }\r
-\r
- @Override\r
- protected void setupPropertyTypes(String[] propertyNames) {\r
- setupUpdatePropertyTypes(propertyNames);\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlCommand};\r
-\r
-import javax.sql.DataSource;\r
-import org.seasar.dao.CommandContext;\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-\r
-import ${glPackageBaseCommonS2DaoInternalSqlHandler}.${glInternalBasicUpdateHandler};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInternalUpdateDynamicCommand} extends ${glInternalAbstractDynamicCommand} {\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalUpdateDynamicCommand}(DataSource dataSource, StatementFactory statementFactory) {\r
- super(dataSource, statementFactory);\r
- }\r
-\r
- // ===================================================================================\r
- // Execute\r
- // =======\r
- public Object execute(Object args[]) {\r
- final CommandContext ctx = apply(args);\r
- final ${glInternalBasicUpdateHandler} updateHandler = new ${glInternalBasicUpdateHandler}(getDataSource(), ctx.getSql(), getStatementFactory());\r
- Object[] bindVariables = ctx.getBindVariables();\r
- updateHandler.setLoggingMessageSqlArgs(bindVariables);\r
- return new Integer(updateHandler.execute(bindVariables, ctx.getBindVariableTypes()));\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlCommand};\r
-\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-import java.util.Set;\r
-\r
-import javax.sql.DataSource;\r
-\r
-import org.seasar.dao.BeanMetaData;\r
-import org.seasar.extension.jdbc.PropertyType;\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInternalUpdateModifiedOnlyCommand} extends ${glInternalUpdateAutoDynamicCommand} {\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalUpdateModifiedOnlyCommand}(DataSource dataSource, StatementFactory statementFactory) {\r
- super(dataSource, statementFactory);\r
- }\r
-\r
- // ===================================================================================\r
- // No.1 Point Override\r
- // ===================\r
- @Override\r
- protected PropertyType[] createUpdatePropertyTypes(final BeanMetaData bmd, final Object bean, final String[] propertyNames) {\r
- final Set<?> modifiedPropertyNames = getBeanMetaData().getModifiedPropertyNames(bean);\r
- final List<PropertyType> types = new ArrayList<PropertyType>();\r
- final String timestampPropertyName = bmd.getTimestampPropertyName();\r
- final String versionNoPropertyName = bmd.getVersionNoPropertyName();\r
- for (int i = 0; i < propertyNames.length; ++i) {\r
- final PropertyType pt = bmd.getPropertyType(propertyNames[i]);\r
- if (pt.isPrimaryKey() == false) {\r
- final String propertyName = pt.getPropertyName();\r
- if (propertyName.equalsIgnoreCase(timestampPropertyName)\r
- || propertyName.equalsIgnoreCase(versionNoPropertyName)\r
- || modifiedPropertyNames.contains(propertyName)) {\r
- types.add(pt);\r
- }\r
- }\r
- }\r
- final PropertyType[] propertyTypes = (PropertyType[]) types.toArray(new PropertyType[types.size()]);\r
- return propertyTypes;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlCommand};\r
-\r
-import java.util.Map;\r
-import java.util.LinkedHashMap;\r
-import java.util.Set;\r
-import java.util.Date;\r
-import java.sql.Timestamp;\r
-import java.lang.reflect.Method;\r
-import javax.sql.DataSource;\r
-\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-import org.seasar.dao.CommandContext;\r
-import org.seasar.dao.Node;\r
-import org.seasar.dao.SqlCommand;\r
-import ${glPackageBaseCommon}.${glEntityInterfaceName};\r
-import ${glPackageBaseCommonCBean}.${glConditionBeanInterfaceName};\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInterfaceName};\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInstanceHandlerName};\r
-import ${glPackageBaseCommonDBMetaInfo}.${glColumnInfoName};\r
-import ${glPackageBaseCommonS2DaoInternalSqlHandler}.${glInternalCommandContextHandler};\r
-import ${glPackageBaseCommonS2DaoInternalSqlParser}.${glInternalCommandContextCreator};\r
-import ${glPackageBaseCommonS2DaoInternalSqlParser}.${glInternalSqlParser};\r
-import ${glPackageBaseCommonUtil}.${glSimpleSystemUtil};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInternalUpdateQueryAutoDynamicCommand} implements SqlCommand {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected DataSource dataSource;\r
- protected StatementFactory statementFactory;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalUpdateQueryAutoDynamicCommand}(DataSource dataSource, StatementFactory statementFactory) {\r
- this.dataSource = dataSource;\r
- this.statementFactory = statementFactory;\r
- }\r
-\r
- // ===================================================================================\r
- // Execute\r
- // =======\r
- public Object execute(Object[] args) {\r
- ${glConditionBeanInterfaceName} cb = extractConditionBeanWithCheck(args);\r
- ${glEntityInterfaceName} entity = extractEntityWithCheck(args);\r
- String[] argNames = new String[]{"dto", "entity"};\r
- Class<?>[] argTypes = new Class<?>[]{cb.getClass(), entity.getClass()};\r
- String twoWaySql = buildQueryUpdateTwoWaySql(cb, entity);\r
- if (twoWaySql == null) {\r
- return 0;// No execute!\r
- }\r
- CommandContext context = createCommandContext(twoWaySql, argNames, argTypes, args);\r
- ${glInternalCommandContextHandler} handler = createCommandContextHandler(context);\r
- handler.setLoggingMessageSqlArgs(context.getBindVariables());\r
- int rows = handler.execute(args);\r
- return new Integer(rows);\r
- }\r
- \r
- protected ${glConditionBeanInterfaceName} extractConditionBeanWithCheck(Object[] args) {\r
- assertArgument(args);\r
- Object fisrtArg = args[0];\r
- if (!(fisrtArg instanceof ${glConditionBeanInterfaceName})) {\r
- String msg = "The type of first argument should be " + ${glConditionBeanInterfaceName}.class + "! But:";\r
- msg = msg + " type=" + fisrtArg.getClass();\r
- throw new IllegalArgumentException(msg);\r
- }\r
- return (${glConditionBeanInterfaceName}) fisrtArg;\r
- }\r
- \r
- protected ${glEntityInterfaceName} extractEntityWithCheck(Object[] args) {\r
- assertArgument(args);\r
- Object secondArg = args[1];\r
- if (!(secondArg instanceof ${glEntityInterfaceName})) {\r
- String msg = "The type of second argument should be " + ${glEntityInterfaceName}.class + "! But:";\r
- msg = msg + " type=" + secondArg.getClass();\r
- throw new IllegalArgumentException(msg);\r
- }\r
- return (${glEntityInterfaceName}) secondArg;\r
- }\r
- \r
- protected void assertArgument(Object[] args) {\r
- if (args == null || args.length <= 1) {\r
- String msg = "The arguments should have two argument! But:";\r
- msg = msg + " args=" + (args != null ? args.length : null);\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
- \r
- protected ${glInternalCommandContextHandler} createCommandContextHandler(CommandContext context) {\r
- return new ${glInternalCommandContextHandler}(dataSource, statementFactory, context);\r
- }\r
-\r
- /**\r
- * @param cb Condition-bean. (NotNull)\r
- * @param entity Entity. (NotNull)\r
- * @return The two-way SQL of query update. (Nullable: If the set of modified properties is empty, return null.)\r
- */\r
- protected String buildQueryUpdateTwoWaySql(${glConditionBeanInterfaceName} cb, ${glEntityInterfaceName} entity) {\r
- Map<String, String> columnParameterMap = new LinkedHashMap<String, String>();\r
- ${glDBMetaInterfaceName} dbmeta = ${glDBMetaInstanceHandlerName}.findDBMeta(entity.getTableDbName());\r
- Set<String> modifiedPropertyNames = entity.getModifiedPropertyNames();\r
- if (modifiedPropertyNames.isEmpty()) {\r
- return null;\r
- }\r
- String currentPropertyName = null;\r
- try {\r
- for (String propertyName : modifiedPropertyNames) {\r
- currentPropertyName = propertyName;\r
- ${glColumnInfoName} columnInfo = dbmeta.findColumnInfo(propertyName);\r
- String columnName = columnInfo.getColumnDbName();\r
- Method getter = columnInfo.findGetter();\r
- Object value = getter.invoke(entity, (Object[])null);\r
- if (value != null) {\r
- columnParameterMap.put(columnName, "/*entity." + propertyName + "*/null");\r
- } else {\r
- columnParameterMap.put(columnName, "null");\r
- }\r
- }\r
- if (dbmeta.hasVersionNo()) {\r
- ${glColumnInfoName} columnInfo = dbmeta.getVersionNoColumnInfo();\r
- String columnName = columnInfo.getColumnDbName();\r
- columnParameterMap.put(columnName, columnName + " + 1");\r
- }\r
- if (dbmeta.hasUpdateDate()) {\r
- ${glColumnInfoName} columnInfo = dbmeta.getUpdateDateColumnInfo();\r
- Method setter = columnInfo.findSetter();\r
- if (Timestamp.class.isAssignableFrom(columnInfo.getPropertyType())) {\r
- setter.invoke(entity, new Timestamp(System.currentTimeMillis()));\r
- } else {\r
- setter.invoke(entity, new Date());\r
- }\r
- String columnName = columnInfo.getColumnDbName();\r
- columnParameterMap.put(columnName, "/*entity." + columnInfo.getPropertyName() + "*/null");\r
- }\r
- } catch (Exception e) {\r
- throwQueryUpdateFailureException(cb, entity, currentPropertyName, e);\r
- }\r
- return cb.getSqlClause().getClauseQueryUpdate(columnParameterMap);\r
- }\r
- \r
- protected void throwQueryUpdateFailureException(${glConditionBeanInterfaceName} cb, ${glEntityInterfaceName} entity, String propertyName, Exception e) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "queryUpdate() failed to execute!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "Please confirm the parameter comment logic." + getLineSeparator();\r
- msg = msg + "It may exist the parameter comment that DOESN'T have an end comment." + getLineSeparator();\r
- msg = msg + " For example:" + getLineSeparator();\r
- msg = msg + " before (x) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3" + getLineSeparator();\r
- msg = msg + " after (o) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3/*END*/" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Doubtful Property Name]" + getLineSeparator() + propertyName + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[ConditionBean]" + getLineSeparator() + cb + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Entity]" + getLineSeparator() + entity + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Exception Message]" + getLineSeparator() + e.getMessage() + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new QueryUpdateFailureException(msg, e);\r
- }\r
- \r
- public static class QueryUpdateFailureException extends RuntimeException {\r
- private static final long serialVersionUID = 1L;\r
- public QueryUpdateFailureException(String msg, Exception e) {\r
- super(msg, e);\r
- }\r
- }\r
-\r
- protected CommandContext createCommandContext(String twoWaySql, String[] argNames, Class<?>[] argTypes, Object[] args) {\r
- CommandContext context;\r
- {\r
- ${glInternalSqlParser} parser = new ${glInternalSqlParser}(twoWaySql);\r
- Node node = parser.parse();\r
- ${glInternalCommandContextCreator} creator = new ${glInternalCommandContextCreator}(argNames, argTypes);\r
- context = creator.createCommandContext(args);\r
- node.accept(context);\r
- }\r
- return context;\r
- }\r
- \r
- // ===================================================================================\r
- // General Helper\r
- // ==============\r
- protected String getLineSeparator() {\r
- return ${glSimpleSystemUtil}.getLineSeparator();\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlHandler};\r
-\r
-import java.sql.Connection;\r
-import java.sql.PreparedStatement;\r
-import java.sql.SQLException;\r
-import java.sql.Timestamp;\r
-import java.util.ArrayList;\r
-import java.util.Date;\r
-import java.util.List;\r
-\r
-import javax.sql.DataSource;\r
-\r
-import org.seasar.dao.BeanMetaData;\r
-import org.seasar.extension.jdbc.PropertyType;\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-import org.seasar.extension.jdbc.ValueType;\r
-import org.seasar.framework.beans.PropertyDesc;\r
-import org.seasar.framework.util.IntegerConversionUtil;\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public abstract class ${glInternalAbstractAutoHandler} extends ${glInternalBasicHandler} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected BeanMetaData beanMetaData;\r
- protected Object[] bindVariables;\r
- protected ValueType[] bindVariableValueTypes;\r
- protected Timestamp timestamp;\r
- protected Integer versionNo;\r
- protected PropertyType[] propertyTypes;\r
- protected boolean versionNoAutoIncrementOnMemory = true;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalAbstractAutoHandler}(DataSource dataSource,\r
- StatementFactory statementFactory, BeanMetaData beanMetaData,\r
- PropertyType[] propertyTypes) {\r
- super(dataSource, statementFactory);\r
- this.beanMetaData = beanMetaData;\r
- this.propertyTypes = propertyTypes;\r
- }\r
-\r
- public int execute(Object[] args) {\r
- Connection connection = getConnection();\r
- try {\r
- return execute(connection, args[0]);\r
- } finally {\r
- close(connection);\r
- }\r
- }\r
-\r
- public int execute(Object[] args, Class<?>[] argTypes) {\r
- return execute(args);\r
- }\r
-\r
- protected int execute(Connection connection, Object bean) {\r
- preUpdateBean(bean);\r
- setupBindVariables(bean);\r
- logSql(bindVariables, getArgTypes(bindVariables));\r
- PreparedStatement ps = prepareStatement(connection);\r
- int ret = -1;\r
- try {\r
- bindArgs(ps, bindVariables, bindVariableValueTypes);\r
- ret = executeUpdate(ps);\r
- } finally {\r
- close(ps);\r
- }\r
- postUpdateBean(bean, ret);\r
- return ret;\r
- }\r
-\r
- protected void bindArgs(PreparedStatement ps, Object[] args, ValueType[] valueTypes) {\r
- if (args == null) {\r
- return;\r
- }\r
- for (int i = 0; i < args.length; ++i) {\r
- ValueType valueType = valueTypes[i];\r
- try {\r
- valueType.bindValue(ps, i + 1, args[i]);\r
- } catch (SQLException e) {\r
- handleSQLException(e, ps);\r
- }\r
- }\r
- }\r
-\r
- protected void preUpdateBean(Object bean) {\r
- }\r
-\r
- protected void postUpdateBean(Object bean, int ret) {\r
- }\r
-\r
- protected abstract void setupBindVariables(Object bean);\r
-\r
- protected void setupInsertBindVariables(Object bean) {\r
- final List<Object> varList = new ArrayList<Object>();\r
- final List<ValueType> varValueTypeList = new ArrayList<ValueType>();\r
- final BeanMetaData bmd = getBeanMetaData();\r
- final String timestampPropertyName = bmd.getTimestampPropertyName();\r
- final String versionNoPropertyName = bmd.getVersionNoPropertyName();\r
- for (int i = 0; i < propertyTypes.length; ++i) {\r
- PropertyType pt = propertyTypes[i];\r
- if (pt.getPropertyName().equalsIgnoreCase(timestampPropertyName)) {\r
- setTimestamp(new Timestamp(new Date().getTime()));\r
- varList.add(getTimestamp());\r
- } else if (pt.getPropertyName().equalsIgnoreCase(versionNoPropertyName)) {\r
- setVersionNo(new Integer(0));\r
- varList.add(getVersionNo());\r
- } else {\r
- varList.add(pt.getPropertyDesc().getValue(bean));\r
- }\r
- varValueTypeList.add(pt.getValueType());\r
- }\r
- setBindVariables(varList.toArray());\r
- setBindVariableValueTypes((ValueType[])varValueTypeList.toArray(new ValueType[varValueTypeList.size()]));\r
- }\r
-\r
- protected void setupUpdateBindVariables(Object bean) {\r
- final List<Object> varList = new ArrayList<Object>();\r
- final List<ValueType> varValueTypeList = new ArrayList<ValueType>();\r
- final BeanMetaData bmd = getBeanMetaData();\r
- final String timestampPropertyName = bmd.getTimestampPropertyName();\r
- final String versionNoPropertyName = bmd.getVersionNoPropertyName();\r
- for (int i = 0; i < propertyTypes.length; ++i) {\r
- PropertyType pt = propertyTypes[i];\r
- if (pt.getPropertyName().equalsIgnoreCase(timestampPropertyName)) {\r
- setTimestamp(new Timestamp(new Date().getTime()));\r
- varList.add(getTimestamp());\r
- } else if (pt.getPropertyName().equalsIgnoreCase(versionNoPropertyName)) {\r
- if (!isVersionNoAutoIncrementOnMemory()) {\r
- continue;// because of always 'VERSION_NO = VERSION_NO + 1'\r
- }\r
- Object value = pt.getPropertyDesc().getValue(bean);\r
- if (value == null) {\r
- continue;// because of 'VERSION_NO = VERSION_NO + 1'\r
- }\r
- int intValue = IntegerConversionUtil.toPrimitiveInt(value) + 1;\r
- setVersionNo(new Integer(intValue));\r
- varList.add(getVersionNo());\r
- } else {\r
- varList.add(pt.getPropertyDesc().getValue(bean));\r
- }\r
- varValueTypeList.add(pt.getValueType());\r
- }\r
- addAutoUpdateWhereBindVariables(varList, varValueTypeList, bean);\r
- setBindVariables(varList.toArray());\r
- setBindVariableValueTypes((ValueType[]) varValueTypeList.toArray(new ValueType[varValueTypeList.size()]));\r
- }\r
-\r
- protected void setupDeleteBindVariables(Object bean) {\r
- final List<Object> varList = new ArrayList<Object>();\r
- final List<ValueType> varValueTypeList = new ArrayList<ValueType>();\r
- addAutoUpdateWhereBindVariables(varList, varValueTypeList, bean);\r
- setBindVariables(varList.toArray());\r
- setBindVariableValueTypes((ValueType[])varValueTypeList.toArray(new ValueType[varValueTypeList.size()]));\r
- }\r
-\r
- protected void addAutoUpdateWhereBindVariables(List<Object> varList, List<ValueType> varValueTypeList, Object bean) {\r
- BeanMetaData bmd = getBeanMetaData();\r
- for (int i = 0; i < bmd.getPrimaryKeySize(); ++i) {\r
- PropertyType pt = bmd.getPropertyTypeByColumnName(bmd.getPrimaryKey(i));\r
- PropertyDesc pd = pt.getPropertyDesc();\r
- varList.add(pd.getValue(bean));\r
- varValueTypeList.add(pt.getValueType());\r
- }\r
- if (bmd.hasVersionNoPropertyType()) {\r
- PropertyType pt = bmd.getVersionNoPropertyType();\r
- PropertyDesc pd = pt.getPropertyDesc();\r
- varList.add(pd.getValue(bean));\r
- varValueTypeList.add(pt.getValueType());\r
- }\r
- if (bmd.hasTimestampPropertyType()) {\r
- PropertyType pt = bmd.getTimestampPropertyType();\r
- PropertyDesc pd = pt.getPropertyDesc();\r
- varList.add(pd.getValue(bean));\r
- varValueTypeList.add(pt.getValueType());\r
- }\r
- }\r
-\r
- protected void updateTimestampIfNeed(Object bean) {\r
- if (getTimestamp() != null) {\r
- PropertyDesc pd = getBeanMetaData().getTimestampPropertyType().getPropertyDesc();\r
- pd.setValue(bean, getTimestamp());\r
- }\r
- }\r
-\r
- protected void updateVersionNoIfNeed(Object bean) {\r
- if (getVersionNo() != null) {\r
- PropertyDesc pd = getBeanMetaData().getVersionNoPropertyType().getPropertyDesc();\r
- pd.setValue(bean, getVersionNo());\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public BeanMetaData getBeanMetaData() {\r
- return beanMetaData;\r
- }\r
-\r
- protected Object[] getBindVariables() {\r
- return bindVariables;\r
- }\r
-\r
- protected void setBindVariables(Object[] bindVariables) {\r
- this.bindVariables = bindVariables;\r
- }\r
-\r
- protected ValueType[] getBindVariableValueTypes() {\r
- return bindVariableValueTypes;\r
- }\r
-\r
- protected void setBindVariableValueTypes(ValueType[] bindVariableValueTypes) {\r
- this.bindVariableValueTypes = bindVariableValueTypes;\r
- }\r
-\r
- protected Timestamp getTimestamp() {\r
- return timestamp;\r
- }\r
-\r
- protected void setTimestamp(Timestamp timestamp) {\r
- this.timestamp = timestamp;\r
- }\r
-\r
- protected Integer getVersionNo() {\r
- return versionNo;\r
- }\r
-\r
- protected void setVersionNo(Integer versionNo) {\r
- this.versionNo = versionNo;\r
- }\r
-\r
- protected PropertyType[] getPropertyTypes() {\r
- return propertyTypes;\r
- }\r
-\r
- protected void setPropertyTypes(PropertyType[] propertyTypes) {\r
- this.propertyTypes = propertyTypes;\r
- }\r
-\r
- protected boolean isVersionNoAutoIncrementOnMemory() {\r
- return versionNoAutoIncrementOnMemory;\r
- }\r
-\r
- public void setVersionNoAutoIncrementOnMemory(boolean versionNoAutoIncrementOnMemory) {\r
- this.versionNoAutoIncrementOnMemory = versionNoAutoIncrementOnMemory;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlHandler};\r
-\r
-import java.sql.Connection;\r
-import java.sql.PreparedStatement;\r
-import java.sql.SQLException;\r
-import java.util.Arrays;\r
-import java.util.Iterator;\r
-import java.util.List;\r
-\r
-import javax.sql.DataSource;\r
-\r
-import org.seasar.dao.BeanMetaData;\r
-import org.seasar.extension.jdbc.PropertyType;\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public abstract class ${glInternalAbstractBatchAutoHandler} extends ${glInternalAbstractAutoHandler} {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- /** Log instance. */\r
- private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory.getLog(${glInternalAbstractBatchAutoHandler}.class);\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalAbstractBatchAutoHandler}(DataSource dataSource,\r
- StatementFactory statementFactory, BeanMetaData beanMetaData,\r
- PropertyType[] propertyTypes) {\r
- super(dataSource, statementFactory, beanMetaData, propertyTypes);\r
- }\r
-\r
- // ===================================================================================\r
- // Execute\r
- // =======\r
- public int[] execute(List<?> list, Class<?>[] argTypes) {\r
- return execute(list);\r
- }\r
-\r
- public int[] execute(List<?> list) {\r
- if (list == null) {\r
- throw new IllegalArgumentException("list");\r
- }\r
- if (list.isEmpty()) {\r
- if (_log.isDebugEnabled()) {\r
- _log.debug("Skip executeBatch() bacause of the empty list.");\r
- }\r
- return new int[0];\r
- }\r
- final Connection connection = getConnection();\r
- try {\r
- final PreparedStatement ps = prepareStatement(connection);\r
- try {\r
- for (Iterator<?> iter = list.iterator(); iter.hasNext();) {\r
- final Object bean = (Object) iter.next();\r
- prepareBatchElement(ps, bean);\r
- }\r
- return executeBatch(ps, list);\r
- } finally {\r
- close(ps);\r
- }\r
- } finally {\r
- close(connection);\r
- }\r
- // Reflection to bean is unsupported at batch update.\r
- // postBatchUpdateBean(...);\r
- }\r
- \r
- public int execute(Object[] args) {\r
- List<?> list = null;\r
- if (args[0] instanceof Object[]) {\r
- list = Arrays.asList((Object[]) args[0]);\r
- } else if (args[0] instanceof List) {\r
- list = (List<?>) args[0];\r
- }\r
- if (list == null) {\r
- throw new IllegalArgumentException("args[0]");\r
- }\r
- int[] ret = execute(list);\r
- int updatedRow = 0;\r
- for (int i = 0; i < ret.length; i++) {\r
- if (ret[i] > 0) {\r
- updatedRow += ret[i];\r
- }\r
- }\r
- return updatedRow;\r
- }\r
-\r
- public int[] executeBatch(Object[] args) {\r
- List<?> list = null;\r
- if (args[0] instanceof Object[]) {\r
- list = Arrays.asList((Object[]) args[0]);\r
- } else if (args[0] instanceof List) {\r
- list = (List<?>) args[0];\r
- }\r
- if (list == null) {\r
- throw new IllegalArgumentException("args[0]");\r
- }\r
- return execute(list);\r
- }\r
-\r
- protected void prepareBatchElement(PreparedStatement ps, Object bean) {\r
- setupBindVariables(bean);\r
- logSql(getBindVariables(), getArgTypes(getBindVariables()));\r
- bindArgs(ps, getBindVariables(), getBindVariableValueTypes());\r
- addBatch(ps);\r
- }\r
-\r
- // ===================================================================================\r
- // JDBC Delegator\r
- // ==============\r
- protected int[] executeBatch(PreparedStatement ps, List<?> list) {\r
- try {\r
- return ps.executeBatch();\r
- } catch (SQLException e) {\r
- handleSQLException(e, ps, true);\r
- return null; // Unreachable!\r
- }\r
- }\r
- \r
- protected void addBatch(PreparedStatement ps) {\r
- try {\r
- ps.addBatch();\r
- } catch (SQLException e) {\r
- handleSQLException(e, ps);\r
- }\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlHandler};\r
-\r
-import java.sql.Connection;\r
-import java.sql.Statement;\r
-import java.sql.PreparedStatement;\r
-import java.sql.ResultSet;\r
-import java.sql.SQLException;\r
-\r
-import javax.sql.DataSource;\r
-\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-import org.seasar.extension.jdbc.ValueType;\r
-import org.seasar.extension.jdbc.types.ValueTypes;\r
-import org.seasar.framework.exception.SQLRuntimeException;\r
-\r
-import ${glPackageBaseCommon}.${glQLog};\r
-import ${glPackageBaseCommon}.${glDBFluteConfig};\r
-import ${glPackageBaseCommon}.${glInternalMapContextName};\r
-import ${glPackageBaseCommonCBean}.${glConditionBeanContextName};\r
-import ${glPackageBaseCommonCBean}.${glConditionBeanInterfaceName};\r
-import ${glPackageBaseCommonCBeanOutsidesql}.${glOutsideSqlContextName};\r
-import ${glPackageBaseCommonException}.${glEntityAlreadyExistsException};\r
-import ${glPackageBaseCommonException}.${glSQLFailureException};\r
-import ${glPackageBaseCommonS2DaoInternalSqlLog}.${glInternalSqlLogRegistry};\r
-import ${glPackageBaseCommonS2DaoInternalUtil}.${glInternalBindVariableUtil};\r
-import ${glPackageBaseCommonUtil}.${glSimpleSystemUtil};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInternalBasicHandler} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- private DataSource dataSource;\r
- private String sql;\r
- private StatementFactory statementFactory;\r
- private Object[] loggingMessageSqlArgs;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalBasicHandler}(DataSource ds, StatementFactory statementFactory) {\r
- setDataSource(ds);\r
- setStatementFactory(statementFactory);\r
- }\r
-\r
- public ${glInternalBasicHandler}(DataSource ds, String sql, StatementFactory statementFactory) {\r
- setDataSource(ds);\r
- setSql(sql);\r
- setStatementFactory(statementFactory);\r
- }\r
-\r
- // ===================================================================================\r
- // Basic Method for SubClass\r
- // =========================\r
- protected void bindArgs(PreparedStatement ps, Object[] args, Class<?>[] argTypes) {\r
- if (args == null) {\r
- return;\r
- }\r
- for (int i = 0; i < args.length; ++i) {\r
- ValueType valueType = getValueType(argTypes[i]);\r
- try {\r
- valueType.bindValue(ps, i + 1, args[i]);\r
- } catch (SQLException e) {\r
- handleSQLException(e, ps);\r
- }\r
- }\r
- }\r
-\r
- protected Class<?>[] getArgTypes(Object[] args) {\r
- if (args == null) {\r
- return null;\r
- }\r
- Class<?>[] argTypes = new Class[args.length];\r
- for (int i = 0; i < args.length; ++i) {\r
- Object arg = args[i];\r
- if (arg != null) {\r
- argTypes[i] = arg.getClass();\r
- }\r
- }\r
- return argTypes;\r
- }\r
-\r
- protected String getCompleteSql(Object[] args) {\r
- return ${glInternalBindVariableUtil}.getCompleteSql(sql, args);\r
- }\r
-\r
- protected String getBindVariableText(Object bindVariable) {\r
- return ${glInternalBindVariableUtil}.getBindVariableText(bindVariable);\r
- }\r
-\r
- protected ValueType getValueType(Class<?> clazz) {\r
- return ValueTypes.getValueType(clazz);\r
- }\r
-\r
- protected void logSql(Object[] args, Class<?>[] argTypes) {\r
- if (${glQLog}.isLogEnabled() || ${glInternalSqlLogRegistry}.existsSqlLogRegistry()) {\r
- final String completeSql = getCompleteSql(args);\r
- if (isContainsLineSeparatorInSql()) {\r
- ${glQLog}.log(getLineSeparator() + completeSql);\r
- } else {\r
- ${glQLog}.log(completeSql);\r
- }\r
- if (${glInternalSqlLogRegistry}.existsSqlLogRegistry()) {\r
- final Object sqlLogRegistry = ${glInternalSqlLogRegistry}.findContainerSqlLogRegistry();\r
- if (sqlLogRegistry != null) {\r
- ${glInternalSqlLogRegistry}.push(getSql(), completeSql, args, argTypes, sqlLogRegistry);\r
- }\r
- }\r
- }\r
- }\r
- \r
- protected boolean isContainsLineSeparatorInSql() {\r
- return sql != null ? sql.contains(getLineSeparator()) : false;\r
- }\r
-\r
- // ===================================================================================\r
- // Exception Handler\r
- // =================\r
- protected void handleSQLException(SQLException e, Statement statement) {\r
- handleSQLException(e, statement, false);\r
- }\r
-\r
- protected void handleSQLException(SQLException e, Statement statement, boolean uniqueConstraintValid) {\r
- String completeSql = buildLoggingMessageSql();\r
- new SQLExceptionHandler().handleSQLException(e, statement, uniqueConstraintValid, completeSql);\r
- }\r
-\r
- protected String buildLoggingMessageSql() {\r
- String completeSql = null;\r
- if (sql != null && loggingMessageSqlArgs != null) {\r
- try {\r
- completeSql = getCompleteSql(loggingMessageSqlArgs);\r
- } catch (RuntimeException ignored) {\r
- }\r
- }\r
- return completeSql;\r
- }\r
-\r
- public static class SQLExceptionHandler {\r
-\r
- public void handleSQLException(SQLException e, Statement statement) {\r
- handleSQLException(e, statement, false);\r
- }\r
- \r
- public void handleSQLException(SQLException e, Statement statement, boolean uniqueConstraintValid) {\r
- handleSQLException(e, statement, uniqueConstraintValid, null);\r
- }\r
- \r
- public void handleSQLException(SQLException e, Statement statement, boolean uniqueConstraintValid, String completeSql) {\r
- if (isSqlExceptionOldStyleHandling()) {\r
- throw new SQLRuntimeException(e);\r
- }\r
- if (uniqueConstraintValid && isUniqueConstraintException(e)) {\r
- throwEntityAlreadyExistsException(e, statement, completeSql);\r
- }\r
- throwSQLFailureException(e, statement, completeSql);\r
- }\r
- \r
- protected boolean isUniqueConstraintException(SQLException e) {\r
- ${glDBFluteConfig}.UniqueConstraintDeterminator determinator = getUniqueConstraintDeterminator();\r
- if (determinator != null) {\r
- return determinator.isUniqueConstraintException(e);\r
- }\r
- return ${glConditionBeanContextName}.isUniqueConstraintException(extractSQLState(e), e.getErrorCode());\r
- }\r
- \r
- protected ${glDBFluteConfig}.UniqueConstraintDeterminator getUniqueConstraintDeterminator() {\r
- return ${glDBFluteConfig}.getInstance().getUniqueConstraintDeterminator();\r
- }\r
- \r
- protected boolean isSqlExceptionOldStyleHandling() {\r
- return ${glDBFluteConfig}.getInstance().isSqlExceptionOldStyleHandling();\r
- }\r
- \r
- protected void throwEntityAlreadyExistsException(SQLException e, Statement statement, String completeSql) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The entity already exists on the database!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "Please confirm the primary key whether it already exists on the database." + getLineSeparator();\r
- msg = msg + "And confirm the unique constraint for other columns." + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[SQLState]" + getLineSeparator() + extractSQLState(e) + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[ErrorCode]" + getLineSeparator() + e.getErrorCode() + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[SQLException]" + getLineSeparator() + e.getClass().getName() + getLineSeparator();\r
- msg = msg + e.getMessage() + getLineSeparator();\r
- SQLException nextEx = e.getNextException();\r
- if (nextEx != null) {\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[NextException]" + getLineSeparator();\r
- msg = msg + nextEx.getClass().getName() + getLineSeparator();\r
- msg = msg + nextEx.getMessage() + getLineSeparator();\r
- SQLException nextNextEx = nextEx.getNextException();\r
- if (nextNextEx != null) {\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[NextNextException]" + getLineSeparator();\r
- msg = msg + nextNextEx.getClass().getName() + getLineSeparator();\r
- msg = msg + nextNextEx.getMessage() + getLineSeparator();\r
- }\r
- }\r
- Object invokeName = extractBehaviorInvokeName();\r
- if (invokeName != null) {\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Behavior]" + getLineSeparator();\r
- msg = msg + invokeName + getLineSeparator();\r
- }\r
- if (hasConditionBean()) {\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[ConditionBean]" + getLineSeparator();\r
- msg = msg + getConditionBean().getClass().getName() + getLineSeparator();\r
- }\r
- if (hasOutsideSqlContext()) {\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[OutsideSql]" + getLineSeparator();\r
- msg = msg + getOutsideSqlContext().getOutsideSqlPath() + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[ParameterBean]" + getLineSeparator();\r
- Object pmb = getOutsideSqlContext().getParameterBean();\r
- if (pmb != null) {\r
- msg = msg + pmb.getClass().getName() + getLineSeparator();\r
- msg = msg + pmb + getLineSeparator();\r
- } else {\r
- msg = msg + pmb + getLineSeparator();\r
- }\r
- }\r
- if (statement != null) {\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Statement]" + getLineSeparator();\r
- msg = msg + statement.getClass().getName() + getLineSeparator();\r
- }\r
- if (completeSql != null) {\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Display SQL]" + getLineSeparator();\r
- msg = msg + completeSql + getLineSeparator();\r
- }\r
- msg = msg + "* * * * * * * * * */";\r
- throw new ${glEntityAlreadyExistsException}(msg, e);\r
- }\r
- \r
- protected void throwSQLFailureException(SQLException e, Statement statement, String completeSql) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The SQL failed to execute!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "Please confirm the SQLException message." + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[SQLState]" + getLineSeparator() + extractSQLState(e) + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[ErrorCode]" + getLineSeparator() + e.getErrorCode() + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[SQLException]" + getLineSeparator() + e.getClass().getName() + getLineSeparator();\r
- msg = msg + e.getMessage() + getLineSeparator();\r
- SQLException nextEx = e.getNextException();\r
- if (nextEx != null) {\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[NextException]" + getLineSeparator();\r
- msg = msg + nextEx.getClass().getName() + getLineSeparator();\r
- msg = msg + nextEx.getMessage() + getLineSeparator();\r
- SQLException nextNextEx = nextEx.getNextException();\r
- if (nextNextEx != null) {\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[NextNextException]" + getLineSeparator();\r
- msg = msg + nextNextEx.getClass().getName() + getLineSeparator();\r
- msg = msg + nextNextEx.getMessage() + getLineSeparator();\r
- }\r
- }\r
- Object invokeName = extractBehaviorInvokeName();\r
- if (invokeName != null) {\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Behavior]" + getLineSeparator();\r
- msg = msg + invokeName + getLineSeparator();\r
- }\r
- if (hasConditionBean()) {\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[ConditionBean]" + getLineSeparator();\r
- msg = msg + getConditionBean().getClass().getName() + getLineSeparator();\r
- }\r
- if (hasOutsideSqlContext()) {\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[OutsideSql]" + getLineSeparator();\r
- msg = msg + getOutsideSqlContext().getOutsideSqlPath() + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[ParameterBean]" + getLineSeparator();\r
- Object pmb = getOutsideSqlContext().getParameterBean();\r
- if (pmb != null) {\r
- msg = msg + pmb.getClass().getName() + getLineSeparator();\r
- msg = msg + pmb + getLineSeparator();\r
- } else {\r
- msg = msg + pmb + getLineSeparator();\r
- }\r
- }\r
- if (statement != null) {\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Statement]" + getLineSeparator();\r
- msg = msg + statement.getClass().getName() + getLineSeparator();\r
- }\r
- if (completeSql != null) {\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Display SQL]" + getLineSeparator();\r
- msg = msg + completeSql + getLineSeparator();\r
- }\r
- msg = msg + "* * * * * * * * * */";\r
- throw new ${glSQLFailureException}(msg, e);\r
- }\r
-\r
- protected String extractSQLState(SQLException e) {\r
- String sqlState = e.getSQLState();\r
- if (sqlState != null) {\r
- return sqlState;\r
- }\r
-\r
- // Next\r
- SQLException nextEx = e.getNextException();\r
- if (nextEx == null) {\r
- return null;\r
- }\r
- sqlState = nextEx.getSQLState();\r
- if (sqlState != null) {\r
- return sqlState;\r
- }\r
-\r
- // Next Next\r
- SQLException nextNextEx = nextEx.getNextException();\r
- if (nextNextEx == null) {\r
- return null;\r
- }\r
- sqlState = nextNextEx.getSQLState();\r
- if (sqlState != null) {\r
- return sqlState;\r
- }\r
-\r
- // Next Next Next\r
- SQLException nextNextNextEx = nextNextEx.getNextException();\r
- if (nextNextNextEx == null) {\r
- return null;\r
- }\r
- sqlState = nextNextNextEx.getSQLState();\r
- if (sqlState != null) {\r
- return sqlState;\r
- }\r
-\r
- // It doesn't use recursive call by design because JDBC is unpredictable fellow.\r
- return null;\r
- }\r
-\r
- protected String extractBehaviorInvokeName() {\r
- final Object behaviorInvokeName = ${glInternalMapContextName}.getObject("df:BehaviorInvokeName");\r
- if (behaviorInvokeName == null) {\r
- return null;\r
- }\r
- final Object clientInvokeName = ${glInternalMapContextName}.getObject("df:ClientInvokeName");\r
- final Object byPassInvokeName = ${glInternalMapContextName}.getObject("df:ByPassInvokeName");\r
- final StringBuilder sb = new StringBuilder();\r
- boolean existsPath = false;\r
- if (clientInvokeName != null) {\r
- existsPath = true;\r
- sb.append(clientInvokeName);\r
- }\r
- if (byPassInvokeName != null) {\r
- existsPath = true;\r
- sb.append(byPassInvokeName);\r
- }\r
- sb.append(behaviorInvokeName);\r
- if (existsPath) {\r
- sb.append("...");\r
- }\r
- return sb.toString();\r
- }\r
-\r
- protected boolean hasConditionBean() {\r
- return ${glConditionBeanContextName}.isExistConditionBeanOnThread();\r
- }\r
-\r
- protected ${glConditionBeanInterfaceName} getConditionBean() {\r
- return ${glConditionBeanContextName}.getConditionBeanOnThread();\r
- }\r
-\r
- protected boolean hasOutsideSqlContext() {\r
- return ${glOutsideSqlContextName}.isExistOutsideSqlContextOnThread();\r
- }\r
-\r
- protected ${glOutsideSqlContextName} getOutsideSqlContext() {\r
- return ${glOutsideSqlContextName}.getOutsideSqlContextOnThread();\r
- }\r
-\r
- protected String getLineSeparator() {\r
- return ${glSimpleSystemUtil}.getLineSeparator();\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // JDBC Delegator\r
- // ==============\r
- protected Connection getConnection() {\r
- if (dataSource == null) {\r
- throw new IllegalStateException("The dataSource should not be null!");\r
- }\r
- try {\r
- return dataSource.getConnection();\r
- } catch (SQLException e) {\r
- handleSQLException(e, null);\r
- return null;// Unreachable!\r
- }\r
- }\r
-\r
- protected PreparedStatement prepareStatement(Connection conn) {\r
- if (sql == null) {\r
- throw new IllegalStateException("The sql should not be null!");\r
- }\r
- return statementFactory.createPreparedStatement(conn, sql);\r
- }\r
-\r
- protected int executeUpdate(PreparedStatement ps) {\r
- try {\r
- return ps.executeUpdate();\r
- } catch (SQLException e) {\r
- handleSQLException(e, ps, true);\r
- return 0;// Unreachable!\r
- }\r
- }\r
-\r
- protected void setFetchSize(Statement statement, int fetchSize) {\r
- if (statement == null) {\r
- return;\r
- }\r
- try {\r
- statement.setFetchSize(fetchSize);\r
- } catch (SQLException e) {\r
- handleSQLException(e, statement);\r
- }\r
- }\r
-\r
- protected void setMaxRows(Statement statement, int maxRows) {\r
- if (statement == null) {\r
- return;\r
- }\r
- try {\r
- statement.setMaxRows(maxRows);\r
- } catch (SQLException e) {\r
- handleSQLException(e, statement);\r
- }\r
- }\r
-\r
- protected void close(Statement statement) {\r
- if (statement == null) {\r
- return;\r
- }\r
- try {\r
- statement.close();\r
- } catch (SQLException e) {\r
- handleSQLException(e, statement);\r
- }\r
- }\r
-\r
- protected void close(ResultSet resultSet) {\r
- if (resultSet == null) {\r
- return;\r
- }\r
- try {\r
- resultSet.close();\r
- } catch (SQLException e) {\r
- handleSQLException(e, null);\r
- }\r
- }\r
-\r
- protected void close(Connection conn) {\r
- if (conn == null) {\r
- return;\r
- }\r
- try {\r
- conn.close();\r
- } catch (SQLException e) {\r
- handleSQLException(e, null);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Assist Helper\r
- // =============\r
- // It needs this method if the target database doest not support line comment.\r
- protected String removeLineComment(final String sql) { // With removing CR!\r
- if (sql == null || sql.trim().length() == 0) {\r
- return sql;\r
- }\r
- final StringBuilder sb = new StringBuilder();\r
- final String[] lines = sql.split("\n");\r
- for (String line : lines) {\r
- if (line == null) {\r
- continue;\r
- }\r
- line = line.replaceAll("\r", ""); // Remove CR!\r
- if (line.startsWith("--")) {\r
- continue;\r
- }\r
- sb.append(line).append("\n");\r
- }\r
- return sb.toString();\r
- }\r
-\r
- // ===================================================================================\r
- // General Helper\r
- // ==============\r
- protected String getLineSeparator() {\r
- return ${glSimpleSystemUtil}.getLineSeparator();\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public DataSource getDataSource() {\r
- return dataSource;\r
- }\r
-\r
- public void setDataSource(DataSource dataSource) {\r
- this.dataSource = dataSource;\r
- }\r
-\r
- public String getSql() {\r
- return sql;\r
- }\r
-\r
- public void setSql(String sql) {\r
-#if ($database.isRemoveLineCommentFromExecutedSql())\r
- sql = removeLineComment(sql);\r
-#end\r
- this.sql = sql;\r
- }\r
-\r
- public StatementFactory getStatementFactory() {\r
- return statementFactory;\r
- }\r
-\r
- public void setStatementFactory(StatementFactory statementFactory) {\r
- this.statementFactory = statementFactory;\r
- }\r
-\r
- public void setLoggingMessageSqlArgs(Object[] loggingMessageSqlArgs) {\r
- this.loggingMessageSqlArgs = loggingMessageSqlArgs;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlHandler};\r
-\r
-import java.sql.Connection;\r
-import java.sql.PreparedStatement;\r
-import java.sql.ResultSet;\r
-import java.sql.SQLException;\r
-\r
-import javax.sql.DataSource;\r
-\r
-import org.seasar.extension.jdbc.ResultSetHandler;\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-\r
-import ${glPackageBaseCommonCBean}.${glFetchNarrowingBeanInterfaceName};\r
-import ${glPackageBaseCommonCBean}.${glFetchNarrowingBeanContextName};\r
-import ${glPackageBaseCommonCBeanOutsidesql}.${glOutsideSqlContextName};\r
-import ${glPackageBaseCommonS2Dao}.${glFetchNarrowingResultSetWrapper};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInternalBasicSelectHandler} extends ${glInternalBasicHandler} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- private ResultSetHandler resultSetHandler;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalBasicSelectHandler}(DataSource dataSource, String sql,\r
- ResultSetHandler resultSetHandler, StatementFactory statementFactory) {\r
- super(dataSource, statementFactory);\r
- setSql(sql);\r
- setResultSetHandler(resultSetHandler);\r
- }\r
-\r
- // ===================================================================================\r
- // Execute\r
- // =======\r
- public Object execute(Object[] args) {\r
- return execute(args, getArgTypes(args));\r
- }\r
-\r
- @SuppressWarnings("unchecked")\r
- public Object execute(Object[] args, Class[] argTypes) {\r
- Connection conn = getConnection();\r
- try {\r
- return execute(conn, args, argTypes);\r
- } finally {\r
- close(conn);\r
- }\r
- }\r
-\r
- @SuppressWarnings("unchecked")\r
- public Object execute(Connection conn, Object[] args, Class[] argTypes) {\r
- logSql(args, argTypes);\r
- PreparedStatement ps = null;\r
- try {\r
- ps = prepareStatement(conn);\r
- bindArgs(ps, args, argTypes);\r
- return execute(ps);\r
- } catch (SQLException e) {\r
- handleSQLException(e, ps);\r
- return null; // Unreachable!\r
- } finally {\r
- close(ps);\r
- }\r
- }\r
-\r
- protected Object execute(PreparedStatement ps) throws SQLException {\r
- if (resultSetHandler == null) {\r
- throw new IllegalStateException("The resultSetHandler should not be null!");\r
- }\r
- ResultSet resultSet = null;\r
- try {\r
- resultSet = createResultSet(ps);\r
- return resultSetHandler.handle(resultSet);\r
- } finally {\r
- close(resultSet);\r
- }\r
- }\r
-\r
- protected ResultSet createResultSet(PreparedStatement ps) throws SQLException {\r
- final ResultSet resultSet = ps.executeQuery();\r
- if (!${glFetchNarrowingBeanContextName}.isExistFetchNarrowingBeanOnThread()) {\r
- return resultSet;\r
- }\r
- final ${glFetchNarrowingBeanInterfaceName} cb = ${glFetchNarrowingBeanContextName}.getFetchNarrowingBeanOnThread();\r
- if (!isUseFetchNarrowingResultSetWrapper(cb)) {\r
- return resultSet;\r
- }\r
- final ${glFetchNarrowingResultSetWrapper} wrapper;\r
- if (${glOutsideSqlContextName}.isExistOutsideSqlContextOnThread()) {\r
- final ${glOutsideSqlContextName} outsideSqlContext = ${glOutsideSqlContextName}.getOutsideSqlContextOnThread();\r
- wrapper = new ${glFetchNarrowingResultSetWrapper}(resultSet, ${glAttachedCBArgsVariableName}, outsideSqlContext.isOffsetByCursorForcedly(), outsideSqlContext.isLimitByCursorForcedly());\r
- } else {\r
- wrapper = new ${glFetchNarrowingResultSetWrapper}(resultSet, ${glAttachedCBArgsVariableName}, false, false);\r
- }\r
- return wrapper;\r
- }\r
-\r
- protected boolean isUseFetchNarrowingResultSetWrapper(${glFetchNarrowingBeanInterfaceName} cb) {\r
- if (cb.getSafetyMaxResultSize() > 0) {\r
- return true;\r
- }\r
- if (!cb.isFetchNarrowingEffective()) {\r
- return false; // It is not necessary to control.\r
- }\r
- if (${glOutsideSqlContextName}.isExistOutsideSqlContextOnThread()) {\r
- final ${glOutsideSqlContextName} outsideSqlContext = ${glOutsideSqlContextName}.getOutsideSqlContextOnThread();\r
- if (outsideSqlContext.isOffsetByCursorForcedly() || outsideSqlContext.isLimitByCursorForcedly()) {\r
- return true;\r
- }\r
- }\r
- if (cb.isFetchNarrowingSkipStartIndexEffective() || cb.isFetchNarrowingLoopCountEffective()) {\r
- return true;\r
- }\r
- return false;\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public ResultSetHandler getResultSetHandler() {\r
- return resultSetHandler;\r
- }\r
-\r
- public void setResultSetHandler(ResultSetHandler resultSetHandler) {\r
- this.resultSetHandler = resultSetHandler;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlHandler};\r
-\r
-import java.sql.Connection;\r
-import java.sql.PreparedStatement;\r
-\r
-import javax.sql.DataSource;\r
-\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInternalBasicUpdateHandler} extends ${glInternalBasicHandler} {\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalBasicUpdateHandler}(DataSource dataSource, String sql, StatementFactory statementFactory) {\r
- super(dataSource, sql, statementFactory);\r
- }\r
-\r
- // ===================================================================================\r
- // Execute\r
- // =======\r
- public int execute(Object[] args) {\r
- return execute(args, getArgTypes(args));\r
- }\r
-\r
- @SuppressWarnings("unchecked")\r
- public int execute(Object[] args, Class[] argTypes) {\r
- Connection connection = getConnection();\r
- try {\r
- return execute(connection, args, argTypes);\r
- } finally {\r
- close(connection);\r
- }\r
- }\r
-\r
- @SuppressWarnings("unchecked")\r
- public int execute(Connection connection, Object[] args, Class[] argTypes) {\r
- logSql(args, argTypes);\r
- PreparedStatement ps = prepareStatement(connection);\r
- try {\r
- bindArgs(ps, args, argTypes);\r
- return executeUpdate(ps);\r
- } finally {\r
- close(ps);\r
- }\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlHandler};\r
-\r
-import java.sql.Connection;\r
-import java.sql.PreparedStatement;\r
-\r
-import javax.sql.DataSource;\r
-\r
-import org.seasar.dao.CommandContext;\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInternalCommandContextHandler} extends ${glInternalBasicHandler} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected CommandContext commandContext;\r
- \r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalCommandContextHandler}(DataSource dataSource, StatementFactory statementFactory, CommandContext commandContext) {\r
- super(dataSource, statementFactory);\r
- this.commandContext = commandContext;\r
- setSql(commandContext.getSql());\r
- }\r
-\r
- // ===================================================================================\r
- // Execute\r
- // =======\r
- public int execute(Object[] args) {\r
- final Connection connection = getConnection();\r
- try {\r
- return execute(connection, commandContext);\r
- } finally {\r
- close(connection);\r
- }\r
- }\r
-\r
- protected int execute(Connection connection, CommandContext context) {\r
- logSql(context.getBindVariables(), getArgTypes(context.getBindVariables()));\r
- PreparedStatement ps = prepareStatement(connection);\r
- int ret = -1;\r
- try {\r
- bindArgs(ps, context.getBindVariables(), context.getBindVariableTypes());\r
- ret = executeUpdate(ps);\r
- } finally {\r
- close(ps);\r
- }\r
- return ret;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlHandler};\r
-\r
-import javax.sql.DataSource;\r
-\r
-import org.seasar.dao.BeanMetaData;\r
-import org.seasar.extension.jdbc.PropertyType;\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInternalDeleteAutoHandler} extends ${glInternalAbstractAutoHandler} {\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalDeleteAutoHandler}(DataSource dataSource,\r
- StatementFactory statementFactory, BeanMetaData beanMetaData,\r
- PropertyType[] propertyTypes) {\r
- super(dataSource, statementFactory, beanMetaData, propertyTypes);\r
- }\r
-\r
- // ===================================================================================\r
- // Override\r
- // ========\r
- @Override\r
- protected void setupBindVariables(Object bean) {\r
- setupDeleteBindVariables(bean);\r
- setLoggingMessageSqlArgs(bindVariables);\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlHandler};\r
-\r
-import javax.sql.DataSource;\r
-\r
-import org.seasar.extension.jdbc.PropertyType;\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-import org.seasar.dao.BeanMetaData;\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInternalDeleteBatchAutoHandler} extends ${glInternalAbstractBatchAutoHandler} {\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalDeleteBatchAutoHandler}(DataSource dataSource,\r
- StatementFactory statementFactory, BeanMetaData beanMetaData,\r
- PropertyType[] propertyTypes) {\r
-\r
- super(dataSource, statementFactory, beanMetaData, propertyTypes);\r
- }\r
-\r
- // ===================================================================================\r
- // Override\r
- // ========\r
- @Override\r
- protected void setupBindVariables(Object bean) {\r
- setupDeleteBindVariables(bean);\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlHandler};\r
-\r
-import javax.sql.DataSource;\r
-\r
-import org.seasar.dao.BeanMetaData;\r
-import org.seasar.dao.IdentifierGenerator;\r
-import org.seasar.extension.jdbc.PropertyType;\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInternalInsertAutoHandler} extends ${glInternalAbstractAutoHandler} {\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalInsertAutoHandler}(DataSource dataSource,\r
- StatementFactory statementFactory, BeanMetaData beanMetaData,\r
- PropertyType[] propertyTypes) {\r
- super(dataSource, statementFactory, beanMetaData, propertyTypes);\r
- }\r
-\r
- // ===================================================================================\r
- // Override\r
- // ========\r
- @Override\r
- protected void setupBindVariables(Object bean) {\r
- setupInsertBindVariables(bean);\r
- setLoggingMessageSqlArgs(bindVariables);\r
- }\r
-\r
- @Override\r
- protected void preUpdateBean(Object bean) {\r
- BeanMetaData bmd = getBeanMetaData();\r
-#if ($database.isVersionAfter1047())\r
- for (int i = 0; i < bmd.getIdentifierGeneratorSize(); i++) {\r
- IdentifierGenerator generator = bmd.getIdentifierGenerator(i);\r
- if (generator.isSelfGenerate()) {\r
- generator.setIdentifier(bean, getDataSource());\r
- }\r
- }\r
-#else\r
- final IdentifierGenerator generator = bmd.getIdentifierGenerator();\r
- if (generator.isSelfGenerate()) {\r
- generator.setIdentifier(bean, getDataSource());\r
- }\r
-#end\r
- }\r
- \r
- @Override\r
- protected void postUpdateBean(Object bean, int ret) {\r
- BeanMetaData bmd = getBeanMetaData();\r
-#if ($database.isVersionAfter1047())\r
- for (int i = 0; i < bmd.getIdentifierGeneratorSize(); i++) {\r
- IdentifierGenerator generator = bmd.getIdentifierGenerator(i);\r
- if (!generator.isSelfGenerate()) {\r
- generator.setIdentifier(bean, getDataSource());\r
- }\r
- }\r
-#else\r
- final IdentifierGenerator generator = bmd.getIdentifierGenerator();\r
- if (!generator.isSelfGenerate()) {\r
- generator.setIdentifier(bean, getDataSource());\r
- }\r
-#end\r
- updateVersionNoIfNeed(bean);\r
- updateTimestampIfNeed(bean);\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlHandler};\r
-\r
-import javax.sql.DataSource;\r
-\r
-import org.seasar.extension.jdbc.PropertyType;\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-import org.seasar.dao.BeanMetaData;\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInternalInsertBatchAutoHandler} extends ${glInternalAbstractBatchAutoHandler} {\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalInsertBatchAutoHandler}(DataSource dataSource,\r
- StatementFactory statementFactory, BeanMetaData beanMetaData,\r
- PropertyType[] propertyTypes) {\r
-\r
- super(dataSource, statementFactory, beanMetaData, propertyTypes);\r
- }\r
-\r
- // ===================================================================================\r
- // Override\r
- // ========\r
- @Override\r
- protected void setupBindVariables(Object bean) {\r
- setupInsertBindVariables(bean);\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlHandler};\r
-\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-import java.util.Map;\r
-import java.sql.CallableStatement;\r
-import java.sql.Connection;\r
-import java.sql.ResultSet;\r
-import java.sql.ResultSetMetaData;\r
-import java.sql.Statement;\r
-import java.sql.SQLException;\r
-import javax.sql.DataSource;\r
-\r
-import org.seasar.framework.util.CaseInsensitiveMap;\r
-import org.seasar.extension.jdbc.PropertyType;\r
-import org.seasar.extension.jdbc.ResultSetHandler;\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-import org.seasar.extension.jdbc.ValueType;\r
-import org.seasar.extension.jdbc.impl.PropertyTypeImpl;\r
-import org.seasar.extension.jdbc.types.ValueTypes;\r
-\r
-import ${glPackageBaseCommonS2DaoInternalVarious}.${glInternalProcedureMetaData};\r
-import ${glPackageBaseCommonS2DaoInternalVarious}.${glInternalProcedureParameterType};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInternalProcedureHandler} extends ${glInternalBasicSelectHandler} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- private ${glInternalProcedureMetaData} procedureMetaData;\r
- \r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalProcedureHandler}(final DataSource dataSource, final String sql,\r
- final ResultSetHandler resultSetHandler, final StatementFactory statementFactory,\r
- final ${glInternalProcedureMetaData} procedureMetaData) {\r
- super(dataSource, sql, resultSetHandler, statementFactory);\r
- this.procedureMetaData = procedureMetaData;\r
- }\r
- \r
- // ===================================================================================\r
- // Execute\r
- // =======\r
- @SuppressWarnings("unchecked")\r
- public Object execute(final Connection connection, final Object[] args, final Class[] argTypes) {\r
- final Object dto = getArgumentDto(args);\r
- logSql(args, argTypes);\r
- CallableStatement cs = null;\r
- try {\r
- cs = prepareCallableStatement(connection);\r
- bindArgs(cs, dto);\r
- Object returnValue = null; \r
- if (cs.execute()) {\r
- final ResultSet resultSet = cs.getResultSet();\r
- if (resultSet != null) {\r
- final ResultSetHandler handler = createReturnResultSetHandler(resultSet);\r
- try {\r
- returnValue = handler.handle(resultSet);\r
- } finally {\r
- if (resultSet != null) {\r
- resultSet.close();\r
- }\r
- }\r
- }\r
- }\r
- return handleOutParameters(cs, dto, returnValue);\r
- } catch (SQLException e) {\r
- handleSQLException(e, cs);\r
- return null;// Unreachable!\r
- } finally {\r
- close(cs);\r
- }\r
- }\r
-\r
- protected ResultSetHandler createReturnResultSetHandler(ResultSet resultSet) {\r
- return new InternalMapListResultSetHandler();\r
- }\r
-\r
- @Override\r
- protected String getCompleteSql(final Object[] args) {// for Procedure Call\r
- String sql = getSql();\r
- Object dto = getArgumentDto(args);\r
- if (args == null || dto == null) {\r
- return sql;\r
- }\r
- StringBuilder sb = new StringBuilder(100);\r
- int pos = 0;\r
- int pos2 = 0;\r
- for (${glInternalProcedureParameterType} ppt : procedureMetaData.parameterTypes()) {\r
- if ((pos2 = sql.indexOf('?', pos)) < 0) {\r
- break;\r
- }\r
- sb.append(sql.substring(pos, pos2));\r
- pos = pos2 + 1;\r
- if (ppt.isInType()) {\r
- sb.append(getBindVariableText(ppt.getValue(dto)));\r
- } else {\r
- sb.append(sql.substring(pos2, pos));\r
- }\r
- }\r
- sb.append(sql.substring(pos));\r
- return sb.toString();\r
- }\r
-\r
- protected CallableStatement prepareCallableStatement(final Connection connection) {\r
- if (getSql() == null) { throw new IllegalStateException("The SQL should not be null!"); }\r
- return getStatementFactory().createCallableStatement(connection, getSql());\r
- }\r
-\r
- protected void bindArgs(final CallableStatement cs, final Object dto) throws SQLException {\r
- if (dto == null) { return; }\r
- int i = 0;\r
- for (${glInternalProcedureParameterType} ppt : procedureMetaData.parameterTypes()) {\r
- final ValueType valueType = ppt.getValueType();\r
- if (ppt.isOutType()) {\r
- valueType.registerOutParameter(cs, i + 1);\r
- }\r
- if (ppt.isInType()) {\r
- final Object value = ppt.getValue(dto);\r
- valueType.bindValue(cs, i + 1, value);\r
- }\r
- ++i;\r
- }\r
- }\r
-\r
- protected Object handleResultSet(final CallableStatement cs) throws SQLException {\r
- ResultSet rs = null;\r
- try {\r
- rs = getResultSet(cs);\r
- return getResultSetHandler().handle(rs);\r
- } finally {\r
- close(rs);\r
- }\r
- }\r
-\r
- protected ResultSet getResultSet(Statement statement) {\r
- try {\r
- return statement.getResultSet();\r
- } catch (SQLException e) {\r
- handleSQLException(e, statement);\r
- return null;// Unreachable!\r
- }\r
- }\r
-\r
- protected Object handleOutParameters(final CallableStatement cs, final Object dto, Object returnValue) throws SQLException {\r
- if (dto == null) {\r
- return null;\r
- }\r
- int i = 0;\r
- for (${glInternalProcedureParameterType} ppt : procedureMetaData.parameterTypes()) {\r
- final ValueType valueType = ppt.getValueType();\r
- if (ppt.isOutType()) {\r
- Object value = valueType.getValue(cs, i + 1);\r
- if (value instanceof ResultSet) {\r
- final ResultSet resultSet = (ResultSet) value;\r
- final ResultSetHandler handler = createOutParameterResultSetHandler(ppt, resultSet);\r
- try {\r
- value = handler.handle(resultSet);\r
- } finally {\r
- if (resultSet != null) {\r
- resultSet.close();\r
- }\r
- }\r
- }\r
- ppt.setValue(dto, value);\r
- } else if (ppt.isReturnType()) {\r
- ppt.setValue(dto, returnValue);\r
- }\r
- ++i;\r
- }\r
- return dto;\r
- }\r
-\r
- protected Object getArgumentDto(Object[] args) {\r
- if (args.length == 0) {\r
- return null;\r
- }\r
- if (args.length == 1) {\r
- if (args[0] == null) {\r
- throw new IllegalArgumentException("args[0] should not be null!");\r
- }\r
- return args[0];\r
- }\r
- throw new IllegalArgumentException("args");\r
- }\r
-\r
- protected ResultSetHandler createOutParameterResultSetHandler(${glInternalProcedureParameterType} ppt, ResultSet resultSet) {\r
- return new InternalMapListResultSetHandler();\r
- }\r
-\r
- // ===================================================================================\r
- // Map Result Set Handler\r
- // ======================\r
- protected static abstract class InternalAbstractMapResultSetHandler implements ResultSetHandler {\r
-\r
- @SuppressWarnings("unchecked")\r
- protected Map<String, Object> createRow(ResultSet rs, PropertyType[] propertyTypes) throws SQLException {\r
- Map<String, Object> row = new CaseInsensitiveMap();\r
- for (int i = 0; i < propertyTypes.length; ++i) {\r
- Object value = propertyTypes[i].getValueType().getValue(rs, i + 1);\r
- row.put(propertyTypes[i].getPropertyName(), value);\r
- }\r
- return row;\r
- }\r
-\r
- protected PropertyType[] createPropertyTypes(ResultSetMetaData rsmd) throws SQLException {\r
- int count = rsmd.getColumnCount();\r
- PropertyType[] propertyTypes = new PropertyType[count];\r
- for (int i = 0; i < count; ++i) {\r
- String propertyName = rsmd.getColumnLabel(i + 1);\r
- ValueType valueType = ValueTypes.getValueType(rsmd.getColumnType(i + 1));\r
- propertyTypes[i] = new PropertyTypeImpl(propertyName, valueType);\r
- }\r
- return propertyTypes;\r
- }\r
- }\r
-\r
- protected static class InternalMapListResultSetHandler extends InternalAbstractMapResultSetHandler {\r
-\r
- public Object handle(ResultSet resultSet) throws SQLException {\r
- PropertyType[] propertyTypes = createPropertyTypes(resultSet.getMetaData());\r
- List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();\r
- while (resultSet.next()) {\r
- list.add(createRow(resultSet, propertyTypes));\r
- }\r
- return list;\r
- }\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlHandler};\r
-\r
-import javax.sql.DataSource;\r
-\r
-import org.seasar.dao.BeanMetaData;\r
-import org.seasar.extension.jdbc.PropertyType;\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-\r
-import ${glPackageBaseCommonException}.${glEntityAlreadyUpdatedException};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInternalUpdateAutoHandler} extends ${glInternalAbstractAutoHandler} {\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- private boolean checkSingleRowUpdate = true;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalUpdateAutoHandler}(DataSource dataSource,\r
- StatementFactory statementFactory, BeanMetaData beanMetaData,\r
- PropertyType[] propertyTypes) {\r
- super(dataSource, statementFactory, beanMetaData, propertyTypes);\r
- }\r
-\r
- // ===================================================================================\r
- // Override\r
- // ========\r
- @Override\r
- protected void setupBindVariables(Object bean) {\r
- setupUpdateBindVariables(bean);\r
- setLoggingMessageSqlArgs(bindVariables);\r
- }\r
-\r
- @Override\r
- protected void postUpdateBean(Object bean, int ret) {\r
- if (isCheckSingleRowUpdate() && ret < 1) {\r
- throw createEntityAlreadyUpdatedException(bean, ret);\r
- }\r
- updateVersionNoIfNeed(bean);\r
- updateTimestampIfNeed(bean);\r
- }\r
-\r
- protected ${glEntityAlreadyUpdatedException} createEntityAlreadyUpdatedException(Object bean, int rows) {\r
- return new ${glEntityAlreadyUpdatedException}(bean, rows);\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public boolean isCheckSingleRowUpdate() {\r
- return checkSingleRowUpdate;\r
- }\r
-\r
- public void setCheckSingleRowUpdate(boolean resultCheck) {\r
- this.checkSingleRowUpdate = resultCheck;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlHandler};\r
-\r
-import javax.sql.DataSource;\r
-\r
-import org.seasar.extension.jdbc.PropertyType;\r
-import org.seasar.extension.jdbc.StatementFactory;\r
-import org.seasar.dao.BeanMetaData;\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInternalUpdateBatchAutoHandler} extends ${glInternalAbstractBatchAutoHandler} {\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalUpdateBatchAutoHandler}(DataSource dataSource,\r
- StatementFactory statementFactory, BeanMetaData beanMetaData,\r
- PropertyType[] propertyTypes) {\r
-\r
- super(dataSource, statementFactory, beanMetaData, propertyTypes);\r
- }\r
-\r
- // ===================================================================================\r
- // Override\r
- // ========\r
- @Override\r
- protected void setupBindVariables(Object bean) {\r
- setupUpdateBindVariables(bean);\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlLog};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInternalSqlLog} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- private String rawSql;\r
- private String completeSql;\r
- private Object[] bindArgs;\r
- private Class<?>[] bindArgTypes;\r
- \r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalSqlLog}(String rawSql, String completeSql, Object[] bindArgs, Class<?>[] bindArgTypes) {\r
- this.rawSql = rawSql;\r
- this.completeSql = completeSql;\r
- this.bindArgs = bindArgs;\r
- this.bindArgTypes = bindArgTypes;\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public Object[] getBindArgs() {\r
- return bindArgs;\r
- }\r
-\r
- public Class<?>[] getBindArgTypes() {\r
- return bindArgTypes;\r
- }\r
-\r
- public String getCompleteSql() {\r
- return completeSql;\r
- }\r
-\r
- public String getRawSql() {\r
- return rawSql;\r
- }\r
-\r
- public String toString() {\r
- return rawSql;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlLog};\r
-\r
-import java.lang.reflect.Method;\r
-import java.lang.reflect.Constructor;\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInternalSqlLogRegistry} {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- /** Log instance. */\r
- private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory.getLog(${glInternalSqlLogRegistry}.class);\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- protected static final String NAME_SqlLogRegistryLocator = "org.seasar.extension.jdbc.SqlLogRegistryLocator";\r
- protected static final String NAME_getInstance = "getInstance";\r
- protected static final String NAME_setInstance = "setInstance";\r
- protected static final String NAME_SqlLogRegistry = "org.seasar.extension.jdbc.SqlLogRegistry";\r
- protected static final String NAME_SqlLog = "org.seasar.extension.jdbc.SqlLog";\r
- protected static final String NAME_SqlLogImpl = "org.seasar.extension.jdbc.impl.SqlLogImpl";\r
- protected static boolean STATUS_SqlLogExists = false;\r
- static {\r
- forNameContainerSqlLogRegistryLocator();\r
- }\r
- \r
- // ===================================================================================\r
- // Public Entry\r
- // ============\r
- public static boolean existsSqlLogRegistry() {\r
- return STATUS_SqlLogExists;\r
- }\r
- \r
- public static Object findContainerSqlLogRegistry() {\r
- final Class<?> sqlLogRegistryLocatorType = forNameContainerSqlLogRegistryLocator();\r
- if (sqlLogRegistryLocatorType == null) {\r
- return null;\r
- }\r
- try {\r
- final Method method = sqlLogRegistryLocatorType.getMethod(NAME_getInstance, (Class[])null);\r
- return method.invoke(null, (Object[])null);\r
- } catch (Exception e) {\r
- String msg = "${glInternalSqlLogRegistry}.findContainerSqlLogRegistry() threw the exception:";\r
- msg = msg + " sqlLogRegistryLocatorType=" + sqlLogRegistryLocatorType;\r
- msg = msg + " NAME_getInstance=" + NAME_getInstance;\r
- throw new IllegalStateException(msg, e);\r
- }\r
- }\r
- \r
- public static void closeRegistration() {\r
- final Class<?> sqlLogRegistryLocatorType = forNameContainerSqlLogRegistryLocator();\r
- if (sqlLogRegistryLocatorType == null) {\r
- return;\r
- }\r
- final Class<?> sqlLogRegistryType = forNameContainerSqlLogRegistry();\r
- if (sqlLogRegistryType == null) {\r
- return;\r
- }\r
- try {\r
- final Method method = sqlLogRegistryLocatorType.getMethod(NAME_setInstance, new Class[]{sqlLogRegistryType});\r
- _log.info("...Closing the registration of sqlLog.");\r
- method.invoke(null, new Object[]{null});\r
- } catch (Exception e) {\r
- String msg = "${glInternalSqlLogRegistry}.closeRegistration() threw the exception:";\r
- msg = msg + " sqlLogRegistryLocatorType=" + sqlLogRegistryLocatorType;\r
- msg = msg + " NAME_setInstance=" + NAME_setInstance;\r
- throw new IllegalStateException(msg, e);\r
- }\r
- }\r
- \r
- public static void push(String rawSql, String completeSql, Object[] bindArgs, Class<?>[] bindArgTypes, Object sqlLogRegistry) {\r
- if (sqlLogRegistry == null) {\r
- throw new IllegalArgumentException("sqlLogRegistry should not be null!");\r
- }\r
- final Object sqlLogImpl = createContainerSqlLogImpl(rawSql, completeSql, bindArgs, bindArgTypes);\r
- reflectSqlLogToContainerSqlLogRegistry(sqlLogImpl, sqlLogRegistry);\r
- }\r
- \r
- public static String peekCompleteSql() {\r
- final Object sqlLogRegistry = findContainerSqlLogRegistry();\r
- if (sqlLogRegistry == null) {\r
- return null;\r
- }\r
- final Object sqlLog = findLastContainerSqlLog(sqlLogRegistry);\r
- if (sqlLog == null) {\r
- return null;\r
- }\r
- return extractCompleteSqlFromContainerSqlLog(sqlLog);\r
- }\r
-\r
- // ===================================================================================\r
- // Container Reflection\r
- // ====================\r
- protected static Object createContainerSqlLogImpl(String rawSql, String completeSql, Object[] bindArgs, Class<?>[] bindArgTypes) {\r
- try {\r
- final Class<?> sqlLogImplType = Class.forName(NAME_SqlLogImpl);\r
- final Class<?>[] argTypes = new Class[]{String.class, String.class, Object[].class, Class[].class};\r
- final Constructor<?> constructor = sqlLogImplType.getConstructor(argTypes);\r
- return constructor.newInstance(new Object[]{rawSql, completeSql, bindArgs, bindArgTypes});\r
- } catch (Exception e) {\r
- String msg = "${glInternalSqlLogRegistry}.createContainerSqlLogImpl() threw the exception:";\r
- msg = msg + " completeSql=" + completeSql;\r
- msg = msg + " NAME_SqlLogImpl=" + NAME_SqlLogImpl;\r
- throw new IllegalStateException(msg, e);\r
- }\r
- }\r
- \r
- protected static void reflectSqlLogToContainerSqlLogRegistry(Object sqlLog, Object sqlLogRegistry) {\r
- if (sqlLog == null || sqlLogRegistry == null) {\r
- return;\r
- }\r
- try {\r
- final Class<?> sqlLogRegistryType = sqlLogRegistry.getClass();\r
- final Class<?> sqlLogType = Class.forName(NAME_SqlLog);\r
- final Method method = sqlLogRegistryType.getMethod("add", new Class[]{sqlLogType});\r
- method.invoke(sqlLogRegistry, new Object[]{sqlLog});\r
- } catch (Exception e) {\r
- String msg = "${glInternalSqlLogRegistry}.reflectToContainerSqlLogRegistry() threw the exception:";\r
- msg = msg + " sqlLog=" + sqlLog + " sqlLogRegistry=" + sqlLogRegistry;\r
- msg = msg + " NAME_SqlLog=" + NAME_SqlLog;\r
- throw new IllegalStateException(msg, e);\r
- }\r
- }\r
-\r
- protected static Object findLastContainerSqlLog(Object sqlLogRegistry) {\r
- if (sqlLogRegistry == null) {\r
- return null;\r
- }\r
- try {\r
- final Class<?> sqlLogRegistryType = sqlLogRegistry.getClass();\r
- final Method method = sqlLogRegistryType.getMethod("getLast", (Class[])null);\r
- return method.invoke(sqlLogRegistry, (Object[])null);\r
- } catch (Exception e) {\r
- String msg = "${glInternalSqlLogRegistry}.findLastContainerSqlLog() threw the exception:";\r
- msg = msg + " sqlLogRegistry=" + sqlLogRegistry;\r
- throw new IllegalStateException(msg, e);\r
- }\r
- }\r
- \r
- protected static String extractCompleteSqlFromContainerSqlLog(Object sqlLog) {\r
- if (sqlLog == null) {\r
- return null;\r
- }\r
- try {\r
- final Class<?> sqlLogType = sqlLog.getClass();\r
- final Method method = sqlLogType.getMethod("getCompleteSql", (Class[])null);\r
- return (String)method.invoke(sqlLog, (Object[])null);\r
- } catch (Exception e) {\r
- String msg = "${glInternalSqlLogRegistry}.extractCompleteSqlFromContainerSqlLog() threw the exception:";\r
- msg = msg + " sqlLog=" + sqlLog;\r
- throw new IllegalStateException(msg, e);\r
- }\r
- }\r
- \r
- protected static Class<?> forNameContainerSqlLogRegistryLocator() {\r
- Class<?> clazz = null;\r
- try {\r
- clazz = Class.forName(NAME_SqlLogRegistryLocator);\r
- STATUS_SqlLogExists = true;\r
- } catch (Exception ignored) {\r
- STATUS_SqlLogExists = false;\r
- return null;\r
- }\r
- return clazz;\r
- }\r
- \r
- protected static Class<?> forNameContainerSqlLogRegistry() {\r
- Class<?> clazz = null;\r
- try {\r
- clazz = Class.forName(NAME_SqlLogRegistry);\r
- } catch (Exception ignored) {\r
- return null;\r
- }\r
- return clazz;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlParser};\r
-\r
-import org.seasar.dao.CommandContext;\r
-import org.seasar.dao.context.CommandContextImpl;\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInternalCommandContextCreator} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected String[] argNames;\r
- protected Class<?>[] argTypes;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalCommandContextCreator}(String[] argNames, Class<?>[] argTypes) {\r
- this.argNames = (argNames != null ? argNames : new String[0]);\r
- this.argTypes = (argTypes != null ? argTypes : new Class[0]);\r
- }\r
- \r
- // ===================================================================================\r
- // Create\r
- // ======\r
- public CommandContext createCommandContext(Object[] args) {\r
- final CommandContext ctx = new CommandContextImpl();\r
- if (args != null) {\r
- for (int i = 0; i < args.length; ++i) {\r
- Class<?> argType = null;\r
- if (args[i] != null) {\r
- if (i < argTypes.length) {\r
- argType = argTypes[i];\r
- } else if (args[i] != null) {\r
- argType = args[i].getClass();\r
- }\r
- }\r
- if (i < argNames.length) {\r
- ctx.addArg(argNames[i], args[i], argType);\r
- } else {\r
- ctx.addArg("$" + (i + 1), args[i], argType);\r
- }\r
- }\r
- }\r
- return ctx;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlParser};\r
-\r
-import java.lang.reflect.Array;\r
-import java.lang.reflect.Method;\r
-import java.util.Map;\r
-import java.util.List;\r
-import java.util.ArrayList;\r
-import java.util.Stack;\r
-import java.util.StringTokenizer;\r
-\r
-import org.seasar.dao.CommandContext;\r
-import org.seasar.dao.Node;\r
-import org.seasar.dao.node.AbstractNode;\r
-import org.seasar.dao.node.BeginNode;\r
-import org.seasar.dao.node.ContainerNode;\r
-import org.seasar.dao.node.ElseNode;\r
-import org.seasar.dao.node.PrefixSqlNode;\r
-import org.seasar.dao.node.SqlNode;\r
-import org.seasar.framework.beans.BeanDesc;\r
-import org.seasar.framework.beans.PropertyDesc;\r
-import org.seasar.framework.beans.factory.BeanDescFactory;\r
-import org.seasar.framework.util.OgnlUtil;\r
-\r
-import ${glPackageBaseCommonCBean}.${glMapParameterBeanInterfaceName};\r
-import ${glPackageBaseCommonCOption}.${glConditionOptionLikeSearchName};\r
-import ${glPackageBaseCommonException}.${glBindVariableCommentNotFoundPropertyException};\r
-import ${glPackageBaseCommonException}.${glBindVariableParameterNullValueException};\r
-import ${glPackageBaseCommonException}.${glEmbeddedValueCommentNotFoundPropertyException};\r
-import ${glPackageBaseCommonException}.${glEmbeddedValueParameterNullValueException};\r
-import ${glPackageBaseCommonException}.${glEndCommentNotFoundException};\r
-import ${glPackageBaseCommonException}.${glIfCommentConditionNotFoundException};\r
-import ${glPackageBaseCommonException}.${glIfCommentNotBooleanResultException};\r
-import ${glPackageBaseCommonException}.${glIfCommentWrongExpressionException};\r
-import ${glPackageBaseCommonException}.${glRequiredOptionNotFoundException};\r
-import ${glPackageBaseCommonS2DaoInternalUtil}.${glInternalBindVariableUtil};\r
-import ${glPackageBaseCommonUtil}.${glSimpleStringUtil};\r
-import ${glPackageBaseCommonUtil}.${glSimpleSystemUtil};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInternalSqlParser} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected ${glInternalSqlTokenizer} tokenizer;\r
- protected Stack<Node> nodeStack = new Stack<Node>();\r
- protected String specifiedSql;// Extension!\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalSqlParser}(String sql) {\r
- sql = sql.trim();\r
- if (sql.endsWith(";")) {\r
- sql = sql.substring(0, sql.length() - 1);\r
- }\r
- specifiedSql = sql;// Extension!\r
- tokenizer = new ${glInternalSqlTokenizer}(sql);\r
- }\r
-\r
- // ===================================================================================\r
- // Parse\r
- // =====\r
- public Node parse() {\r
- push(new ContainerNode());\r
- while (${glInternalSqlTokenizer}.EOF != tokenizer.next()) {\r
- parseToken();\r
- }\r
- return pop();\r
- }\r
-\r
- protected void parseToken() {\r
- switch (tokenizer.getTokenType()) {\r
- case ${glInternalSqlTokenizer}.SQL:\r
- parseSql();\r
- break;\r
- case ${glInternalSqlTokenizer}.COMMENT:\r
- parseComment();\r
- break;\r
- case ${glInternalSqlTokenizer}.ELSE:\r
- parseElse();\r
- break;\r
- case ${glInternalSqlTokenizer}.BIND_VARIABLE:\r
- parseBindVariable();\r
- break;\r
- }\r
- }\r
-\r
- protected void parseSql() {\r
- String sql = tokenizer.getToken();\r
- if (isElseMode()) {\r
- sql = InternalStringUtil.replace(sql, "--", "");\r
- }\r
- Node node = peek();\r
- if ((node instanceof InternalIfNode || node instanceof ElseNode) && node.getChildSize() == 0) {\r
-\r
- ${glInternalSqlTokenizer} st = new ${glInternalSqlTokenizer}(sql);\r
- st.skipWhitespace();\r
- String token = st.skipToken();\r
- st.skipWhitespace();\r
- if (sql.startsWith(",")) {\r
- if (sql.startsWith(", ")) {\r
- node.addChild(new PrefixSqlNode(", ", sql.substring(2)));\r
- } else {\r
- node.addChild(new PrefixSqlNode(",", sql.substring(1)));\r
- }\r
- } else if ("AND".equalsIgnoreCase(token) || "OR".equalsIgnoreCase(token)) {\r
- node.addChild(new PrefixSqlNode(st.getBefore(), st.getAfter()));\r
- } else {\r
- node.addChild(new SqlNode(sql));\r
- }\r
- } else {\r
- node.addChild(new SqlNode(sql));\r
- }\r
- }\r
-\r
- protected void parseComment() {\r
- final String comment = tokenizer.getToken();\r
- if (isTargetComment(comment)) {\r
- if (isIfComment(comment)) {\r
- parseIf();\r
- } else if (isBeginComment(comment)) {\r
- parseBegin();\r
- } else if (isEndComment(comment)) {\r
- return;\r
- } else {\r
- parseCommentBindVariable();\r
- }\r
- } else if (comment != null && 0 < comment.length()) {\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- // [UnderReview]: Should I resolve bind character on scope comment(normal comment)?\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- String before = tokenizer.getBefore();\r
- peek().addChild(new SqlNode(before.substring(before.lastIndexOf("/*"))));\r
- }\r
- }\r
-\r
- protected void parseIf() {\r
- final String condition = tokenizer.getToken().substring(2).trim();\r
- if (InternalStringUtil.isEmpty(condition)) {\r
- throwIfCommentConditionNotFoundException();\r
- }\r
- final ContainerNode ifNode = createIfNode(condition);\r
- peek().addChild(ifNode);\r
- push(ifNode);\r
- parseEnd();\r
- }\r
- \r
- protected void throwIfCommentConditionNotFoundException() {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The condition of IF comment was Not Found!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "Please confirm the IF comment expression." + getLineSeparator();\r
- msg = msg + "It may exist the IF comment that DOESN'T have a condition." + getLineSeparator();\r
- msg = msg + " For example:" + getLineSeparator();\r
- msg = msg + " before (x) -- /*IF*/XXX_ID = /*pmb.xxxId*/3/*END*/" + getLineSeparator();\r
- msg = msg + " after (o) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3/*END*/" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[IF Comment Expression]" + getLineSeparator() + tokenizer.getToken() + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new ${glIfCommentConditionNotFoundException}(msg);\r
- }\r
-\r
- protected void parseBegin() {\r
- BeginNode beginNode = new BeginNode();\r
- peek().addChild(beginNode);\r
- push(beginNode);\r
- parseEnd();\r
- }\r
-\r
- protected void parseEnd() {\r
- while (${glInternalSqlTokenizer}.EOF != tokenizer.next()) {\r
- if (tokenizer.getTokenType() == ${glInternalSqlTokenizer}.COMMENT && isEndComment(tokenizer.getToken())) {\r
- pop();\r
- return;\r
- }\r
- parseToken();\r
- }\r
- throwEndCommentNotFoundException();\r
- }\r
-\r
- protected void throwEndCommentNotFoundException() {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The end comment was Not Found!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "Please confirm the parameter comment logic." + getLineSeparator();\r
- msg = msg + "It may exist the parameter comment that DOESN'T have an end comment." + getLineSeparator();\r
- msg = msg + " For example:" + getLineSeparator();\r
- msg = msg + " before (x) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3" + getLineSeparator();\r
- msg = msg + " after (o) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3/*END*/" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new ${glEndCommentNotFoundException}(msg);\r
- }\r
- \r
- protected void parseElse() {\r
- final Node parent = peek();\r
- if (!(parent instanceof InternalIfNode)) {\r
- return;\r
- }\r
- final InternalIfNode ifNode = (InternalIfNode) pop();\r
- final InternalElseNode elseNode = new InternalElseNode();\r
- ifNode.setElseNode(elseNode);\r
- push(elseNode);\r
- tokenizer.skipWhitespace();\r
- }\r
-\r
- protected void parseCommentBindVariable() {\r
- final String expr = tokenizer.getToken();\r
- final String s = tokenizer.skipToken();\r
- if (expr.startsWith("${database.dollar}")) {\r
- peek().addChild(createEmbeddedValueNode(expr.substring(1), s));// Extension!\r
- } else {\r
- peek().addChild(createBindVariableNode(expr, s));// Extension!\r
- }\r
- }\r
-\r
- protected void parseBindVariable() {\r
- final String expr = tokenizer.getToken();\r
- peek().addChild(createBindVariableNode(expr, null));// Extension!\r
- }\r
-\r
- protected Node pop() {\r
- return (Node) nodeStack.pop();\r
- }\r
-\r
- protected Node peek() {\r
- return (Node) nodeStack.peek();\r
- }\r
-\r
- protected void push(Node node) {\r
- nodeStack.push(node);\r
- }\r
-\r
- protected boolean isElseMode() {\r
- for (int i = 0; i < nodeStack.size(); ++i) {\r
- if (nodeStack.get(i) instanceof InternalElseNode) {\r
- return true;\r
- }\r
- }\r
- return false;\r
- }\r
-\r
- private static boolean isTargetComment(String comment) {\r
- return comment != null && comment.length() > 0 && Character.isJavaIdentifierStart(comment.charAt(0));\r
- }\r
-\r
- private static boolean isIfComment(String comment) {\r
- return comment.startsWith("IF");\r
- }\r
-\r
- private static boolean isBeginComment(String content) {\r
- return content != null && "BEGIN".equals(content);\r
- }\r
-\r
- private static boolean isEndComment(String content) {\r
- return content != null && "END".equals(content);\r
- }\r
-\r
- protected AbstractNode createBindVariableNode(String expr, String testValue) {// Extension!\r
- return new InternalBindVariableNode(expr, testValue, specifiedSql);\r
- }\r
-\r
- protected AbstractNode createEmbeddedValueNode(String expr, String testValue) {// Extension!\r
- return new InternalEmbeddedValueNode(expr, testValue, specifiedSql);\r
- }\r
-\r
- protected ContainerNode createIfNode(String expr) {// Extension!\r
- return new InternalIfNode(expr, specifiedSql);\r
- }\r
-\r
- // ===================================================================================\r
- // General Helper\r
- // ==============\r
- protected String getLineSeparator() {\r
- return ${glSimpleSystemUtil}.getLineSeparator();\r
- }\r
- \r
- protected final String replaceString(String text, String fromText, String toText) {\r
- return ${glSimpleStringUtil}.replace(text, fromText, toText);\r
- }\r
- \r
- // ===================================================================================\r
- // Extension\r
- // =========\r
- // -----------------------------------------------------\r
- // BindVariableNode\r
- // ----------------\r
- protected static class InternalBindVariableNode extends AbstractNode {\r
- protected String _expression;\r
- protected String _testValue;\r
- protected String[] _names;\r
- protected String _specifiedSql;\r
-\r
- public InternalBindVariableNode(String expression, String testValue, String specifiedSql) {\r
- this._expression = expression;\r
- this._testValue = testValue;\r
- this._names = InternalStringUtil.split(expression, ".");\r
- this._specifiedSql = specifiedSql;\r
- }\r
-\r
- public void accept(CommandContext ctx) {\r
- final Object value = ctx.getArg(_names[0]);\r
- final Class<?> clazz = ctx.getArgType(_names[0]);\r
- final InternalValueAndType valueAndType = new InternalValueAndType();\r
- valueAndType.setTargetValue(value);\r
- valueAndType.setTargetType(clazz);\r
- setupValueAndType(valueAndType);\r
- \r
- if (valueAndType.getTargetValue() == null) {\r
- throwBindOrEmbeddedParameterNullValueException(valueAndType);\r
- }\r
- if (!isInScope()) {\r
- // Main Root\r
- ctx.addSql("?", valueAndType.getTargetValue(), valueAndType.getTargetType());\r
- } else {\r
- if (List.class.isAssignableFrom(valueAndType.getTargetType())) {\r
- bindArray(ctx, ((List<?>)valueAndType.getTargetValue()).toArray());\r
- } else if (valueAndType.getTargetType().isArray()) {\r
- bindArray(ctx, valueAndType.getTargetValue());\r
- } else {\r
- ctx.addSql("?", valueAndType.getTargetValue(), valueAndType.getTargetType());\r
- }\r
- }\r
- if (valueAndType.isValidRearOption()) {\r
- ctx.addSql(valueAndType.buildRearOptionOnSql());\r
- }\r
- }\r
-\r
- protected void setupValueAndType(InternalValueAndType valueAndType) {\r
- final InternalValueAndTypeSetuper valueAndTypeSetuper = new InternalValueAndTypeSetuper(_expression, _names, _specifiedSql, true);\r
- valueAndTypeSetuper.setupValueAndType(valueAndType);\r
- }\r
- \r
- protected void throwBindOrEmbeddedParameterNullValueException(InternalValueAndType valueAndType) {\r
- ParameterCommentExceptionProvider.throwBindOrEmbeddedParameterNullValueException(_expression, valueAndType.getTargetType(), _specifiedSql, true);\r
- }\r
- \r
- protected boolean isInScope() {\r
- return _testValue != null && _testValue.startsWith("(") && _testValue.endsWith(")");\r
- }\r
- \r
- protected void bindArray(CommandContext ctx, Object array) {\r
- if (array == null) {\r
- return;\r
- }\r
- final int length = Array.getLength(array);\r
- if (length == 0) {\r
- throwBindOrEmbeddedParameterEmptyListException();\r
- }\r
- Class<?> clazz = null;\r
- for (int i = 0; i < length; ++i) {\r
- final Object currentElement = Array.get(array, i);\r
- if (currentElement != null) {\r
- clazz = currentElement.getClass();\r
- break;\r
- }\r
- }\r
- if (clazz == null) {\r
- throwBindOrEmbeddedParameterNullOnlyListException();\r
- }\r
- boolean existsValidElements = false;\r
- ctx.addSql("(");\r
- for (int i = 0; i < length; ++i) {\r
- final Object currentElement = Array.get(array, i);\r
- if (currentElement != null) {\r
- if (!existsValidElements) {\r
- ctx.addSql("?", currentElement, clazz);\r
- existsValidElements = true;\r
- } else {\r
- ctx.addSql(", ?", currentElement, clazz);\r
- }\r
- }\r
- }\r
- ctx.addSql(")");\r
- }\r
-\r
- protected void throwBindOrEmbeddedParameterEmptyListException() {\r
- ParameterCommentExceptionProvider.throwBindOrEmbeddedParameterEmptyListException(_expression, _specifiedSql, false);\r
- }\r
- \r
- protected void throwBindOrEmbeddedParameterNullOnlyListException() {\r
- ParameterCommentExceptionProvider.throwBindOrEmbeddedParameterNullOnlyListException(_expression, _specifiedSql, true);\r
- }\r
- }\r
-\r
- // -----------------------------------------------------\r
- // EmbeddedValueNode\r
- // -----------------\r
- protected static class InternalEmbeddedValueNode extends AbstractNode {\r
- protected String _expression;\r
- protected String _testValue;\r
- protected String[] _names;\r
- protected String _specifiedSql;\r
-\r
- public InternalEmbeddedValueNode(String expression, String testValue, String specifiedSql) {\r
- this._expression = expression;\r
- this._testValue = testValue;\r
- this._names = InternalStringUtil.split(expression, ".");\r
- this._specifiedSql = specifiedSql;\r
- }\r
-\r
- public void accept(CommandContext ctx) {\r
- final Object value = ctx.getArg(_names[0]);\r
- final Class<?> clazz = ctx.getArgType(_names[0]);\r
- final InternalValueAndType valueAndType = new InternalValueAndType();\r
- valueAndType.setTargetValue(value);\r
- valueAndType.setTargetType(clazz);\r
- setupValueAndType(valueAndType);\r
- \r
- if (valueAndType.getTargetValue() == null) {\r
- throwBindOrEmbeddedParameterNullValueException(valueAndType);\r
- }\r
- if (!isInScope()) {\r
- // Main Root\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- // [UnderReview]: Should I make an original exception instead of this exception?\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- if (valueAndType.getTargetValue() != null && valueAndType.getTargetValue().toString().indexOf("?") > -1) {\r
- throw new org.seasar.framework.exception.SRuntimeException("EDAO0023");\r
- }\r
- ctx.addSql(valueAndType.getTargetValue().toString());\r
- } else {\r
- if (List.class.isAssignableFrom(valueAndType.getTargetType())) {\r
- embedArray(ctx, ((List<?>)valueAndType.getTargetValue()).toArray());\r
- } else if (valueAndType.getTargetType().isArray()) {\r
- embedArray(ctx, valueAndType.getTargetValue());\r
- } else {\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- // [UnderReview]: Should I make an original exception instead of this exception?\r
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r
- if (valueAndType.getTargetValue() != null && valueAndType.getTargetValue().toString().indexOf("?") > -1) {\r
- throw new org.seasar.framework.exception.SRuntimeException("EDAO0023");\r
- }\r
- ctx.addSql(valueAndType.getTargetValue().toString());\r
- }\r
- }\r
- if (valueAndType.isValidRearOption()) {\r
- ctx.addSql(valueAndType.buildRearOptionOnSql());\r
- }\r
- }\r
-\r
- protected void setupValueAndType(InternalValueAndType valueAndType) {\r
- final InternalValueAndTypeSetuper valueAndTypeSetuper = new InternalValueAndTypeSetuper(_expression, _names, _specifiedSql, false);\r
- valueAndTypeSetuper.setupValueAndType(valueAndType);\r
- }\r
- \r
- protected void throwBindOrEmbeddedParameterNullValueException(InternalValueAndType valueAndType) {\r
- ParameterCommentExceptionProvider.throwBindOrEmbeddedParameterNullValueException(_expression, valueAndType.getTargetType(), _specifiedSql, false);\r
- }\r
- \r
- protected boolean isInScope() {\r
- return _testValue != null && _testValue.startsWith("(") && _testValue.endsWith(")");\r
- }\r
- \r
- protected void embedArray(CommandContext ctx, Object array) {\r
- if (array == null) {\r
- return;\r
- }\r
- final int length = Array.getLength(array);\r
- if (length == 0) {\r
- throwBindOrEmbeddedParameterEmptyListException();\r
- }\r
- String quote = null;\r
- for (int i = 0; i < length; ++i) {\r
- final Object currentElement = Array.get(array, i);\r
- if (currentElement != null) {\r
- quote = !(currentElement instanceof Number) ? "'" : "";\r
- break;\r
- }\r
- }\r
- if (quote == null) {\r
- throwBindOrEmbeddedParameterNullOnlyListException();\r
- }\r
- boolean existsValidElements = false;\r
- ctx.addSql("(");\r
- for (int i = 0; i < length; ++i) {\r
- final Object currentElement = Array.get(array, i);\r
- if (currentElement != null) {\r
- if (!existsValidElements) {\r
- ctx.addSql(quote + currentElement + quote);\r
- existsValidElements = true;\r
- } else {\r
- ctx.addSql(", " + quote + currentElement + quote);\r
- }\r
- }\r
- }\r
- ctx.addSql(")");\r
- }\r
- \r
- protected void throwBindOrEmbeddedParameterEmptyListException() {\r
- ParameterCommentExceptionProvider.throwBindOrEmbeddedParameterEmptyListException(_expression, _specifiedSql, false);\r
- }\r
- \r
- protected void throwBindOrEmbeddedParameterNullOnlyListException() {\r
- ParameterCommentExceptionProvider.throwBindOrEmbeddedParameterNullOnlyListException(_expression, _specifiedSql, false);\r
- }\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Value and Type\r
- // --------------\r
- protected static class InternalValueAndType {\r
- public Object _targetValue;\r
- public Class<?> _targetType;\r
- protected String _rearOption;\r
-\r
- public boolean isValidRearOption() {\r
- return _targetValue != null && _rearOption != null && _rearOption.trim().length() > 0;\r
- }\r
-\r
- public String buildRearOptionOnSql() {\r
- return " " + _rearOption.trim() + " ";\r
- }\r
-\r
- public Object getTargetValue() {\r
- return _targetValue;\r
- }\r
- public void setTargetValue(Object targetValue) {\r
- this._targetValue = targetValue;\r
- }\r
- public Class<?> getTargetType() {\r
- return _targetType;\r
- }\r
- public void setTargetType(Class<?> targetType) {\r
- this._targetType = targetType;\r
- }\r
- public String getRearOption() {\r
- return _rearOption;\r
- }\r
- public void setRearOption(String rearOption) {\r
- this._rearOption = rearOption;\r
- }\r
- }\r
-\r
- protected static class InternalValueAndTypeSetuper {\r
- protected String _expression;\r
- protected String[] _names;\r
- protected String _specifiedSql;\r
- protected boolean _bind;\r
-\r
- public InternalValueAndTypeSetuper(String expression, String[] names, String specifiedSql, boolean bind) {\r
- this._expression = expression;\r
- this._names = names;\r
- this._specifiedSql = specifiedSql;\r
- this._bind = bind;\r
- }\r
-\r
- protected void setupValueAndType(InternalValueAndType valueAndType) {\r
- Object value = valueAndType.getTargetValue();\r
- Class<?> clazz = valueAndType.getTargetType();\r
-\r
- // LikeSearchOption handling here is for OutsideSql.\r
- ${glConditionOptionLikeSearchName} likeSearchOption = null;\r
- String rearOption = null;\r
-\r
- for (int pos = 1; pos < _names.length; ++pos) {\r
- if (value == null) {\r
- break;\r
- }\r
- final String currentName = _names[pos];\r
- if (pos == 1) {// at the First Loop\r
- final BeanDesc beanDesc = BeanDescFactory.getBeanDesc(clazz);\r
- if (hasLikeSearchOption(beanDesc, currentName)) {\r
- likeSearchOption = getLikeSearchOption(beanDesc, currentName, value);\r
- }\r
- }\r
- if (Map.class.isInstance(value)) {\r
- final Map<?, ?> map = (Map<?, ?>) value;\r
- value = map.get(_names[pos]);\r
- if (isLastLoop4LikeSearch(pos, likeSearchOption) && isValidStringValue(value)) {// at the Last Loop\r
- value = likeSearchOption.generateRealValue((String) value);\r
- rearOption = likeSearchOption.getRearOption();\r
- }\r
- clazz = (value != null ? value.getClass() : clazz);\r
- continue;\r
- }\r
- final BeanDesc beanDesc = BeanDescFactory.getBeanDesc(clazz);\r
- if (beanDesc.hasPropertyDesc(currentName)) {\r
- final PropertyDesc pd = beanDesc.getPropertyDesc(currentName);\r
- value = getPropertyValue(clazz, value, currentName, pd);\r
- if (isLastLoop4LikeSearch(pos, likeSearchOption) && isValidStringValue(value)) {// at the Last Loop\r
- value = likeSearchOption.generateRealValue((String) value);\r
- rearOption = likeSearchOption.getRearOption();\r
- }\r
- clazz = (value != null ? value.getClass() : pd.getPropertyType());\r
- continue;\r
- }\r
- final String methodName = "get" + initCap(currentName);\r
- if (beanDesc.hasMethod(methodName)) {// Is this unused???\r
- final Method method = beanDesc.getMethod(methodName);\r
- value = invokeGetter(method, value);\r
- clazz = method.getReturnType();\r
- continue;\r
- }\r
- if (pos == 1 && ${glMapParameterBeanInterfaceName}.class.isAssignableFrom(clazz)) {\r
- final ${glMapParameterBeanInterfaceName} pmb = (${glMapParameterBeanInterfaceName})value;\r
- final Map<String, Object> map = pmb.getParameterMap();\r
- final Object elementValue = (map != null ? map.get(_names[pos]) : null);\r
- if (elementValue != null) {\r
- value = elementValue;\r
- clazz = value.getClass();\r
- continue;\r
- }\r
- }\r
- throwBindOrEmbeddedCommentNotFoundPropertyException(_expression, clazz, currentName, _specifiedSql, _bind);\r
- }\r
- valueAndType.setTargetValue(value);\r
- valueAndType.setTargetType(clazz);\r
- valueAndType.setRearOption(rearOption);\r
- }\r
-\r
- // for OutsideSql\r
- protected boolean isLastLoop4LikeSearch(int pos, ${glConditionOptionLikeSearchName} likeSearchOption) {\r
- return _names.length == (pos + 1) && likeSearchOption != null;\r
- }\r
-\r
- protected boolean isValidStringValue(Object value) {\r
- return value != null && value instanceof String && ((String) value).length() > 0;\r
- }\r
-\r
- // for OutsideSql\r
- protected boolean hasLikeSearchOption(BeanDesc beanDesc, String currentName) {\r
- return beanDesc.hasPropertyDesc(currentName + "InternalLikeSearchOption");\r
- }\r
-\r
- // for OutsideSql\r
- protected ${glConditionOptionLikeSearchName} getLikeSearchOption(BeanDesc beanDesc, String currentName, Object resourceBean) {\r
- final PropertyDesc pb = beanDesc.getPropertyDesc(currentName + "InternalLikeSearchOption");\r
- final ${glConditionOptionLikeSearchName} option = (${glConditionOptionLikeSearchName}) pb.getValue(resourceBean);\r
- if (option == null) {\r
- throwLikeSearchOptionNotFoundException(resourceBean, currentName);\r
- }\r
- if (option.isSplit()) {\r
- throwOutsideSqlLikeSearchOptionSplitUnsupportedException(option, resourceBean, currentName);\r
- }\r
- return option;\r
- }\r
-\r
- // for OutsideSql\r
- protected void throwLikeSearchOptionNotFoundException(Object resourceBean, String currentName) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The likeSearchOption was Not Found! (Should not be null!)" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "Please confirm your method call:" + getLineSeparator();\r
- final String beanName = resourceBean.getClass().getSimpleName();\r
- final String methodName = "set" + initCap(currentName) + "_LikeSearch(value, likeSearchOption);";\r
- msg = msg + " " + beanName + "." + methodName + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Target ParameterBean]" + getLineSeparator() + resourceBean + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new ${glRequiredOptionNotFoundException}(msg);\r
- }\r
- \r
- // for OutsideSql\r
- protected void throwOutsideSqlLikeSearchOptionSplitUnsupportedException(${glConditionOptionLikeSearchName} option, Object resourceBean, String currentName) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The splitByXxx() of LikeSearchOption is unsupported at OutsideSql!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "Please confirm your method call:" + getLineSeparator();\r
- msg = msg + " For example:" + getLineSeparator();\r
- msg = msg + " before (x):" + getLineSeparator();\r
- final String beanName = resourceBean.getClass().getSimpleName();\r
- final String methodName = "set" + initCap(currentName) + "_LikeSearch(value, likeSearchOption);";\r
- msg = msg + " " + beanName + " pmb = new " + beanName + "();" + getLineSeparator();\r
- msg = msg + " LikeSearchOption likeSearchOption = new LikeSearchOption().likeContain();" + getLineSeparator();\r
- msg = msg + " likeSearchOption.splitBySpace(); // *No! Don't invoke this!" + getLineSeparator();\r
- msg = msg + " pmb." + methodName + getLineSeparator();\r
- msg = msg + " after (o):" + getLineSeparator();\r
- msg = msg + " " + beanName + " pmb = new " + beanName + "();" + getLineSeparator();\r
- msg = msg + " LikeSearchOption likeSearchOption = new LikeSearchOption().likeContain();" + getLineSeparator();\r
- msg = msg + " pmb." + methodName + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Target LikeSearchOption]" + getLineSeparator() + option + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Target ParameterBean]" + getLineSeparator() + resourceBean + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new UnsupportedOperationException(msg);\r
- }\r
-\r
- protected Object getPropertyValue(Class<?> beanType, Object beanValue, String currentName, PropertyDesc pd) {\r
- try {\r
- return pd.getValue(beanValue);\r
- } catch (RuntimeException e) {\r
- throwPropertyHandlingFailureException(beanType, beanValue, currentName, _expression, _specifiedSql, _bind, e);\r
- return null;// Unreachable!\r
- }\r
- }\r
- \r
- protected void throwPropertyHandlingFailureException(Class<?> beanType, Object beanValue, String currentName,\r
- String expression, String specifiedSql, boolean bind, Exception e) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The handlig of the property was failed!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "This is the Framework Exception!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[" + (bind ? "Bind Variable" : "Embedded Value") + " Comment Expression]" + getLineSeparator()\r
- + expression + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Bean Type]" + getLineSeparator() + beanType + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Bean Value]" + getLineSeparator() + beanValue + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Property Name]" + getLineSeparator() + currentName + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new IllegalStateException(msg, e);\r
- }\r
-\r
- protected String initCap(String name) {\r
- return ${glSimpleStringUtil}.initCap(name);\r
- }\r
-\r
- protected Object invokeGetter(Method method, Object target) {\r
- try {\r
- return method.invoke(target, (Object[]) null);\r
- } catch (IllegalArgumentException e) {\r
- throw new RuntimeException(e);\r
- } catch (IllegalAccessException e) {\r
- throw new RuntimeException(e);\r
- } catch (java.lang.reflect.InvocationTargetException e) {\r
- throw new RuntimeException(e);\r
- }\r
- }\r
-\r
- protected void throwBindOrEmbeddedCommentNotFoundPropertyException(String expression, Class<?> targetType, String notFoundProperty, String specifiedSql, boolean bind) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The property on the " + (bind ? "bind variable" : "embedded value") + " comment was Not Found!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "Please confirm the existence of your property on your arguments." + getLineSeparator();\r
- msg = msg + "Abd has the property had misspelling?" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[" + (bind ? "Bind Variable" : "Embedded Value") + " Comment Expression]" + getLineSeparator() + expression + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[NotFound Property]" + getLineSeparator() + (targetType != null ? targetType.getName() + "#" : "") + notFoundProperty + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- if (bind) {\r
- throw new ${glBindVariableCommentNotFoundPropertyException}(msg);\r
- } else {\r
- throw new ${glEmbeddedValueCommentNotFoundPropertyException}(msg);\r
- }\r
- }\r
-\r
- protected String getLineSeparator() {\r
- return ${glSimpleSystemUtil}.getLineSeparator();\r
- }\r
- }\r
- \r
- // -----------------------------------------------------\r
- // Exception Provider\r
- // ------------------\r
- protected static class ParameterCommentExceptionProvider {\r
- public static void throwBindOrEmbeddedParameterNullValueException(String expression, Class<?> targetType, String specifiedSql, boolean bind) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The value of " + (bind ? "bind variable" : "embedded value") + " was Null!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "Is it within the scope of your assumption?" + getLineSeparator();\r
- msg = msg + "If the answer is YES, please confirm your application logic about the parameter." + getLineSeparator();\r
- msg = msg + "If the answer is NO, please confirm the logic of parameter comment(especially IF comment)." + getLineSeparator();\r
- msg = msg + " --> For example:" + getLineSeparator();\r
- msg = msg + " before (x) -- XXX_ID = /*pmb.xxxId*/3" + getLineSeparator();\r
- msg = msg + " after (o) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3/*END*/" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[" + (bind ? "Bind Variable" : "Embedded Value") + " Comment Expression]" + getLineSeparator() + expression + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Parameter Property Type]" + getLineSeparator() + targetType + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- if (bind) {\r
- throw new ${glBindVariableParameterNullValueException}(msg);\r
- } else {\r
- throw new ${glEmbeddedValueParameterNullValueException}(msg);\r
- }\r
- }\r
- \r
- public static void throwBindOrEmbeddedParameterEmptyListException(String expression, String specifiedSql, boolean bind) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The list of " + (bind ? "bind variable" : "embedded value") + " was empty!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "Please confirm your application logic." + getLineSeparator();\r
- msg = msg + " For example:" + getLineSeparator();\r
- msg = msg + " before (x):" + getLineSeparator();\r
- msg = msg + " List<Integer> xxxIdList = new ArrayList<Integer>();" + getLineSeparator();\r
- msg = msg + " cb.query().setXxxId_InScope(xxxIdList);// Or pmb.setXxxIdList(xxxIdList);" + getLineSeparator();\r
- msg = msg + " after (o):" + getLineSeparator();\r
- msg = msg + " List<Integer> xxxIdList = new ArrayList<Integer>();" + getLineSeparator();\r
- msg = msg + " xxxIdList.add(3);" + getLineSeparator();\r
- msg = msg + " xxxIdList.add(7);" + getLineSeparator();\r
- msg = msg + " cb.query().setXxxId_InScope(xxxIdList);// Or pmb.setXxxIdList(xxxIdList);" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[" + (bind ? "Bind Variable" : "Embedded Value") + " Comment Expression]" + getLineSeparator() + expression + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- \r
- public static void throwBindOrEmbeddedParameterNullOnlyListException(String expression, String specifiedSql, boolean bind) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The list of " + (bind ? "bind variable" : "embedded value") + " was 'Null Only List'!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "Please confirm your application logic." + getLineSeparator();\r
- msg = msg + " For example:" + getLineSeparator();\r
- msg = msg + " before (x):" + getLineSeparator();\r
- msg = msg + " List<Integer> xxxIdList = new ArrayList<Integer>();" + getLineSeparator();\r
- msg = msg + " xxxIdList.add(null);" + getLineSeparator();\r
- msg = msg + " xxxIdList.add(null);" + getLineSeparator();\r
- msg = msg + " cb.query().setXxxId_InScope(xxxIdList);// Or pmb.setXxxIdList(xxxIdList);" + getLineSeparator();\r
- msg = msg + " after (o):" + getLineSeparator();\r
- msg = msg + " List<Integer> xxxIdList = new ArrayList<Integer>();" + getLineSeparator();\r
- msg = msg + " xxxIdList.add(3);" + getLineSeparator();\r
- msg = msg + " xxxIdList.add(7);" + getLineSeparator();\r
- msg = msg + " cb.query().setXxxId_InScope(xxxIdList);// Or pmb.setXxxIdList(xxxIdList);" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[" + (bind ? "Bind Variable" : "Embedded Value") + " Comment Expression]" + getLineSeparator() + expression + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- \r
- protected static String getLineSeparator() {\r
- return ${glSimpleSystemUtil}.getLineSeparator();\r
- }\r
- }\r
- \r
- // -----------------------------------------------------\r
- // IfNode\r
- // ------\r
- protected static class InternalIfNode extends ContainerNode {\r
- private String _expression;\r
- private Object _parsedExpression;\r
- private InternalElseNode _elseNode;\r
- private String _specifiedSql;\r
-\r
- public InternalIfNode(String expression, String specifiedSql) {\r
- this._expression = expression;\r
- this._parsedExpression = OgnlUtil.parseExpression(expression);\r
- this._specifiedSql = specifiedSql;\r
- }\r
-\r
- public String getExpression() {\r
- return _expression;\r
- }\r
-\r
- public InternalElseNode getElseNode() {\r
- return _elseNode;\r
- }\r
-\r
- public void setElseNode(InternalElseNode elseNode) {\r
- this._elseNode = elseNode;\r
- }\r
-\r
- public void accept(CommandContext ctx) {\r
- Object result = null;\r
- try {\r
- result = OgnlUtil.getValue(_parsedExpression, ctx);\r
- } catch (RuntimeException e) {\r
- if (!_expression.contains("pmb.")) {\r
- throwIfCommentWrongExpressionException(_expression, e, _specifiedSql);\r
- }\r
- final String replaced = InternalStringUtil.replace(_expression, "pmb.", "pmb.parameterMap.");\r
- final Object secondParsedExpression = OgnlUtil.parseExpression(replaced);\r
- try {\r
- result = OgnlUtil.getValue(secondParsedExpression, ctx);\r
- } catch (RuntimeException ignored) {\r
- throwIfCommentWrongExpressionException(_expression, e, _specifiedSql);\r
- }\r
- if (result == null) {\r
- throwIfCommentWrongExpressionException(_expression, e, _specifiedSql);\r
- }\r
- _parsedExpression = secondParsedExpression;\r
- }\r
- if (result != null && result instanceof Boolean) {\r
- if (((Boolean) result).booleanValue()) {\r
- super.accept(ctx);\r
- ctx.setEnabled(true);\r
- } else if (_elseNode != null) {\r
- _elseNode.accept(ctx);\r
- ctx.setEnabled(true);\r
- }\r
- } else {\r
- throwIfCommentNotBooleanResultException(_expression, result, _specifiedSql);\r
- }\r
- }\r
-\r
- protected void throwIfCommentWrongExpressionException(String expression, RuntimeException cause, String specifiedSql) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The IF comment of your specified SQL was Wrong!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "Please confirm the existence of your property on your arguments." + getLineSeparator();\r
- msg = msg + "And confirm the IF comment of your specified SQL." + getLineSeparator();\r
- msg = msg + " For example, correct IF comment is as below:" + getLineSeparator();\r
- msg = msg + " /*IF pmb.xxxId != null*/XXX_ID = .../*END*/" + getLineSeparator();\r
- msg = msg + " /*IF pmb.isPaging()*/.../*END*/" + getLineSeparator();\r
- msg = msg + " /*IF pmb.xxxId == null && pmb.xxxName != null*/.../*END*/" + getLineSeparator();\r
- msg = msg + " /*IF pmb.xxxId == null || pmb.xxxName != null*/.../*END*/" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[IF Comment Expression]" + getLineSeparator() + expression + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Cause Message]" + getLineSeparator();\r
- msg = msg + cause.getClass() + ":" + getLineSeparator();\r
- msg = msg + " --> " + cause.getMessage() + getLineSeparator();\r
- final Throwable nestedCause = cause.getCause();\r
- if (nestedCause != null) {\r
- msg = msg + nestedCause.getClass() + ":" + getLineSeparator();\r
- msg = msg + " --> " + nestedCause.getMessage() + getLineSeparator();\r
- }\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new ${glIfCommentWrongExpressionException}(msg, cause);\r
- }\r
-\r
- protected void throwIfCommentNotBooleanResultException(String expression, Object result, String specifiedSql) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The boolean expression on IF comment of your specified SQL was Wrong!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "Please confirm the grammar of your IF comment. Does it really express boolean?" + getLineSeparator();\r
- msg = msg + "And confirm the existence of your property on your arguments if you use parameterMap." + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[IF Comment Expression]" + getLineSeparator() + expression + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[IF Comment Result Value]" + getLineSeparator() + result + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new ${glIfCommentNotBooleanResultException}(msg);\r
- }\r
-\r
- protected String getLineSeparator() {\r
- return ${glSimpleSystemUtil}.getLineSeparator();\r
- }\r
- }\r
-\r
- // -----------------------------------------------------\r
- // ElseNode\r
- // --------\r
- protected static class InternalElseNode extends ContainerNode {\r
- public void accept(CommandContext ctx) {\r
- super.accept(ctx);\r
- ctx.setEnabled(true);\r
- }\r
- }\r
-\r
- // -----------------------------------------------------\r
- // StringUtil\r
- // ----------\r
- protected static class InternalStringUtil {\r
-\r
- public static final String[] EMPTY_STRINGS = new String[0];\r
- private InternalStringUtil() {\r
- }\r
-\r
- public static final boolean isEmpty(String text) {\r
- return text == null || text.length() == 0;\r
- }\r
-\r
- public static final String replace(String text, String fromText, String toText) {\r
- return ${glSimpleStringUtil}.replace(text, fromText, toText);\r
- }\r
-\r
- public static String[] split(String str, String delim) {\r
- if (str == null) {\r
- return EMPTY_STRINGS;\r
- }\r
- List<String> list = new ArrayList<String>();\r
- StringTokenizer st = new StringTokenizer(str, delim);\r
- while (st.hasMoreElements()) {\r
- list.add(st.nextToken());\r
- }\r
- return (String[]) list.toArray(new String[list.size()]);\r
- }\r
- }\r
- \r
- // ===================================================================================\r
- // Convert\r
- // =======\r
- public static String convertTwoWaySql2DisplaySql(String twoWaySql, Object arg) {\r
- final String[] argNames = new String[]{"dto"};\r
- final Class<?>[] argTypes = new Class<?>[]{arg.getClass()};\r
- final Object[] args = new Object[]{arg};\r
- return convertTwoWaySql2DisplaySql(twoWaySql, argNames, argTypes, args);\r
- }\r
- \r
- public static String convertTwoWaySql2DisplaySql(String twoWaySql, String[] argNames, Class<?>[] argTypes, Object[] args) {\r
- final CommandContext context;\r
- {\r
- final ${glInternalSqlParser} parser = new ${glInternalSqlParser}(twoWaySql);\r
- final Node node = parser.parse();\r
- final ${glInternalCommandContextCreator} creator = new ${glInternalCommandContextCreator}(argNames, argTypes);\r
- context = creator.createCommandContext(args);\r
- node.accept(context);\r
- }\r
- final String preparedSql = context.getSql();\r
- return ${glInternalBindVariableUtil}.getCompleteSql(preparedSql, context.getBindVariables());\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalSqlParser};\r
-\r
-import ${glPackageBaseCommonException}.${glEndCommentNotFoundException};\r
-import ${glPackageBaseCommonUtil}.${glSimpleSystemUtil};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInternalSqlTokenizer} {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- public static final int SQL = 1;\r
- public static final int COMMENT = 2;\r
- public static final int ELSE = 3;\r
- public static final int BIND_VARIABLE = 4;\r
- public static final int EOF = 99;\r
- \r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected String sql;\r
- protected int position = 0;\r
- protected String token;\r
- protected int tokenType = SQL;\r
- protected int nextTokenType = SQL;\r
- protected int bindVariableNum = 0;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalSqlTokenizer}(String sql) {\r
- this.sql = sql;\r
- }\r
-\r
- // ===================================================================================\r
- // Tokenize\r
- // ========\r
- public int next() {\r
- if (position >= sql.length()) {\r
- token = null;\r
- tokenType = EOF;\r
- nextTokenType = EOF;\r
- return tokenType;\r
- }\r
- switch (nextTokenType) {\r
- case SQL:\r
- parseSql();\r
- break;\r
- case COMMENT:\r
- parseComment();\r
- break;\r
- case ELSE:\r
- parseElse();\r
- break;\r
- case BIND_VARIABLE:\r
- parseBindVariable();\r
- break;\r
- default:\r
- parseEof();\r
- break;\r
- }\r
- return tokenType;\r
- }\r
-\r
- protected void parseSql() {\r
- int commentStartPos = sql.indexOf("/*", position);\r
- int commentStartPos2 = sql.indexOf("${database.sharp}*", position);\r
- if (0 < commentStartPos2 && commentStartPos2 < commentStartPos) {\r
- commentStartPos = commentStartPos2;\r
- }\r
- int lineCommentStartPos = sql.indexOf("--", position);\r
- int bindVariableStartPos = sql.indexOf("?", position);\r
- int elseCommentStartPos = -1;\r
- int elseCommentLength = -1;\r
- if (lineCommentStartPos >= 0) {\r
- int skipPos = skipWhitespace(lineCommentStartPos + 2);\r
- if (skipPos + 4 < sql.length()\r
- && "ELSE".equals(sql.substring(skipPos, skipPos + 4))) {\r
- elseCommentStartPos = lineCommentStartPos;\r
- elseCommentLength = skipPos + 4 - lineCommentStartPos;\r
- }\r
- }\r
- int nextStartPos = getNextStartPos(commentStartPos, elseCommentStartPos, bindVariableStartPos);\r
- if (nextStartPos < 0) {\r
- token = sql.substring(position);\r
- nextTokenType = EOF;\r
- position = sql.length();\r
- tokenType = SQL;\r
- } else {\r
- token = sql.substring(position, nextStartPos);\r
- tokenType = SQL;\r
- boolean needNext = nextStartPos == position;\r
- if (nextStartPos == commentStartPos) {\r
- nextTokenType = COMMENT;\r
- position = commentStartPos + 2;\r
- } else if (nextStartPos == elseCommentStartPos) {\r
- nextTokenType = ELSE;\r
- position = elseCommentStartPos + elseCommentLength;\r
- } else if (nextStartPos == bindVariableStartPos) {\r
- nextTokenType = BIND_VARIABLE;\r
- position = bindVariableStartPos;\r
- }\r
- if (needNext) {\r
- next();\r
- }\r
- }\r
- }\r
-\r
- protected int getNextStartPos(int commentStartPos, int elseCommentStartPos, int bindVariableStartPos) {\r
- int nextStartPos = -1;\r
- if (commentStartPos >= 0) {\r
- nextStartPos = commentStartPos;\r
- }\r
- if (elseCommentStartPos >= 0\r
- && (nextStartPos < 0 || elseCommentStartPos < nextStartPos)) {\r
- nextStartPos = elseCommentStartPos;\r
- }\r
- if (bindVariableStartPos >= 0\r
- && (nextStartPos < 0 || bindVariableStartPos < nextStartPos)) {\r
- nextStartPos = bindVariableStartPos;\r
- }\r
- return nextStartPos;\r
- }\r
-\r
- protected String nextBindVariableName() {\r
- return "${database.dollar}" + ++bindVariableNum;\r
- }\r
-\r
- protected void parseComment() {\r
- int commentEndPos = sql.indexOf("*/", position);\r
- int commentEndPos2 = sql.indexOf("*${database.sharp}", position);\r
- if (0 < commentEndPos2 && commentEndPos2 < commentEndPos) {\r
- commentEndPos = commentEndPos2;\r
- }\r
- if (commentEndPos < 0) {\r
- throwEndCommentNotFoundException(sql.substring(position));\r
- }\r
- token = sql.substring(position, commentEndPos);\r
- nextTokenType = SQL;\r
- position = commentEndPos + 2;\r
- tokenType = COMMENT;\r
- }\r
-\r
- protected void throwEndCommentNotFoundException(String expression) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "The end comment was Not Found!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "Please confirm the parameter comment logic." + getLineSeparator();\r
- msg = msg + "It may exist the parameter comment that DOESN'T have an end comment." + getLineSeparator();\r
- msg = msg + " For example:" + getLineSeparator();\r
- msg = msg + " before (x) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3" + getLineSeparator();\r
- msg = msg + " after (o) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3/*END*/" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[End Comment Expected Place]" + getLineSeparator() + expression + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Specified SQL]" + getLineSeparator() + sql + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */" + getLineSeparator();\r
- throw new ${glEndCommentNotFoundException}(msg);\r
- }\r
-\r
- protected void parseBindVariable() {\r
- token = nextBindVariableName();\r
- nextTokenType = SQL;\r
- position += 1;\r
- tokenType = BIND_VARIABLE;\r
- }\r
-\r
- protected void parseElse() {\r
- token = null;\r
- nextTokenType = SQL;\r
- tokenType = ELSE;\r
- }\r
-\r
- protected void parseEof() {\r
- token = null;\r
- tokenType = EOF;\r
- nextTokenType = EOF;\r
- }\r
-\r
- public String skipToken() {\r
- int index = sql.length();\r
- char quote = position < sql.length() ? sql.charAt(position) : '\0';\r
- boolean quoting = quote == '\'' || quote == '(';\r
- if (quote == '(') {\r
- quote = ')';\r
- }\r
- for (int i = quoting ? position + 1 : position; i < sql.length(); ++i) {\r
- char c = sql.charAt(i);\r
- if ((Character.isWhitespace(c) || c == ',' || c == ')' || c == '(')\r
- && !quoting) {\r
- index = i;\r
- break;\r
- } else if (c == '/' && i + 1 < sql.length()\r
- && sql.charAt(i + 1) == '*') {\r
- index = i;\r
- break;\r
- } else if (c == '-' && i + 1 < sql.length()\r
- && sql.charAt(i + 1) == '-') {\r
- index = i;\r
- break;\r
- } else if (quoting && quote == '\'' && c == '\''\r
- && (i + 1 >= sql.length() || sql.charAt(i + 1) != '\'')) {\r
- index = i + 1;\r
- break;\r
- } else if (quoting && c == quote) {\r
- index = i + 1;\r
- break;\r
- }\r
- }\r
- token = sql.substring(position, index);\r
- tokenType = SQL;\r
- nextTokenType = SQL;\r
- position = index;\r
- return token;\r
- }\r
-\r
- public String skipWhitespace() {\r
- int index = skipWhitespace(position);\r
- token = sql.substring(position, index);\r
- position = index;\r
- return token;\r
- }\r
-\r
- protected int skipWhitespace(int position) {\r
- int index = sql.length();\r
- for (int i = position; i < sql.length(); ++i) {\r
- char c = sql.charAt(i);\r
- if (!Character.isWhitespace(c)) {\r
- index = i;\r
- break;\r
- }\r
- }\r
- return index;\r
- }\r
-\r
- // ===================================================================================\r
- // General Helper\r
- // ==============\r
- protected String getLineSeparator() {\r
- return ${glSimpleSystemUtil}.getLineSeparator();\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public int getPosition() {\r
- return position;\r
- }\r
-\r
- public String getToken() {\r
- return token;\r
- }\r
-\r
- public String getBefore() {\r
- return sql.substring(0, position);\r
- }\r
-\r
- public String getAfter() {\r
- return sql.substring(position);\r
- }\r
-\r
- public int getTokenType() {\r
- return tokenType;\r
- }\r
-\r
- public int getNextTokenType() {\r
- return nextTokenType;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalUtil};\r
-\r
-import java.lang.reflect.Method;\r
-import java.lang.reflect.InvocationTargetException;\r
-import java.sql.Date;\r
-import java.sql.Time;\r
-import java.sql.Timestamp;\r
-import java.text.SimpleDateFormat;\r
-import java.util.Calendar;\r
-\r
-import org.seasar.extension.jdbc.ValueType;\r
-\r
-import ${glPackageBaseCommon}.${glDBFluteConfig};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInternalBindVariableUtil} {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- private static final String NULL = "null";\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- private ${glInternalBindVariableUtil}() {\r
- }\r
-\r
- public static String getCompleteSql(String sql, Object[] args) {\r
- if (args == null || args.length == 0) {\r
- return sql;\r
- }\r
- return getCompleteSql(sql, args, new ValueType[args.length]);\r
- }\r
-\r
- public static String getCompleteSql(String sql, Object[] args,\r
- ValueType[] valueTypes) {\r
- if (args == null || args.length == 0) {\r
- return sql;\r
- }\r
- StringBuffer buf = new StringBuffer(sql.length() + args.length * 15);\r
- int pos = 0;\r
- int pos2 = 0;\r
- int pos3 = 0;\r
- int pos4 = 0;\r
- int pos5 = 0;\r
- int pos6 = 0;\r
- int index = 0;\r
- while (true) {\r
- pos = sql.indexOf('?', pos2);\r
- pos3 = sql.indexOf('\'', pos2);\r
- pos4 = sql.indexOf('\'', pos3 + 1);\r
- pos5 = sql.indexOf("/*", pos2);\r
- pos6 = sql.indexOf("*/", pos5 + 1);\r
- if (pos > 0) {\r
- if (pos3 >= 0 && pos3 < pos && pos < pos4) {\r
- buf.append(sql.substring(pos2, pos4 + 1));\r
- pos2 = pos4 + 1;\r
- } else if (pos5 >= 0 && pos5 < pos && pos < pos6) {\r
- buf.append(sql.substring(pos2, pos6 + 1));\r
- pos2 = pos6 + 1;\r
- } else {\r
- if (args.length <= index) {\r
- String msg = "The size of bind arguments is illegal:";\r
- msg = msg + " size=" + args.length + " sql=" + sql;\r
- throw new IllegalStateException(msg);\r
- }\r
- buf.append(sql.substring(pos2, pos));\r
- buf.append(getBindVariableText(args[index],\r
- valueTypes[index]));\r
- pos2 = pos + 1;\r
- index++;\r
- }\r
- } else {\r
- buf.append(sql.substring(pos2));\r
- break;\r
- }\r
- }\r
- return buf.toString();\r
- }\r
-\r
- public static String getBindVariableText(Object bindVariable) {\r
- if (bindVariable instanceof String) {\r
- return quote(bindVariable.toString());\r
- } else if (bindVariable instanceof Number) {\r
- return bindVariable.toString();\r
- } else if (bindVariable instanceof Time) {\r
- SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");\r
- return quote(sdf.format((java.util.Date) bindVariable));\r
- } else if (bindVariable instanceof Timestamp) {\r
- SimpleDateFormat sdf = new SimpleDateFormat(getLogTimestampFormat());\r
- return quote(sdf.format((java.util.Date) bindVariable));\r
- } else if (bindVariable instanceof java.util.Date) {\r
- SimpleDateFormat sdf = new SimpleDateFormat(getLogDateFormat());\r
- return quote(sdf.format((java.util.Date) bindVariable));\r
- } else if (bindVariable instanceof Boolean) {\r
- return bindVariable.toString();\r
- } else if (bindVariable == null) {\r
- return NULL;\r
- } else {\r
- return quote(bindVariable.toString());\r
- }\r
- }\r
-\r
- protected static String getLogDateFormat() {\r
- String logDateFormat = ${glDBFluteConfig}.getInstance().getLogDateFormat();\r
- return logDateFormat != null ? logDateFormat : "yyyy-MM-dd";\r
- }\r
-\r
- protected static String getLogTimestampFormat() {\r
- String logTimestampFormat = ${glDBFluteConfig}.getInstance().getLogTimestampFormat();\r
- return logTimestampFormat != null ? logTimestampFormat : "yyyy-MM-dd HH:mm:ss";\r
- }\r
- \r
- // For various seasar's version.\r
- protected static final Class<?>[] TOTEXT_ARGUMENT_TYPES = new Class<?>[]{Object.class};\r
- protected static final Method TOTEXT_METHOD;\r
- static {\r
- Method method = null;\r
- try {\r
- method = ValueType.class.getMethod("toText", TOTEXT_ARGUMENT_TYPES);\r
- } catch (SecurityException e) {\r
- } catch (NoSuchMethodException e) {\r
- }\r
- TOTEXT_METHOD = method;\r
- }\r
- public static String getBindVariableText(Object bindVariable, ValueType valueType) {\r
- if (valueType != null && TOTEXT_METHOD != null ) {\r
- try {\r
- return (String)TOTEXT_METHOD.invoke(valueType, new Object[]{bindVariable});\r
- } catch (IllegalArgumentException e) {\r
- String msg = "ValueType.toText() threw the IllegalArgumentException:";\r
- msg = msg + " valueType=" + valueType + " bindVariable=" + bindVariable;\r
- throw new IllegalStateException(msg, e);\r
- } catch (IllegalAccessException e) {\r
- String msg = "ValueType.toText() threw the IllegalAccessException:";\r
- msg = msg + " valueType=" + valueType + " bindVariable=" + bindVariable;\r
- throw new IllegalStateException(msg, e);\r
- } catch (InvocationTargetException e) {\r
- if (e.getTargetException() instanceof RuntimeException) {\r
- throw (RuntimeException)e.getTargetException();\r
- } else {\r
- String msg = "ValueType.toText() threw the exception:";\r
- msg = msg + " valueType=" + valueType + " bindVariable=" + bindVariable;\r
- throw new IllegalStateException(msg, e.getTargetException());\r
- }\r
- }\r
- }\r
- return getBindVariableText(bindVariable);\r
- }\r
- \r
- public static String nullText() {\r
- return NULL;\r
- }\r
-\r
- public static String toText(Number value) {\r
- if (value == null) {\r
- return NULL;\r
- }\r
- return value.toString();\r
- }\r
-\r
- public static String toText(Boolean value) {\r
- if (value == null) {\r
- return NULL;\r
- }\r
- return quote(value.toString());\r
- }\r
-\r
- public static String toText(String value) {\r
- if (value == null) {\r
- return NULL;\r
- }\r
- return quote(value);\r
- }\r
-\r
- public static String toText(Date value) {\r
- if (value == null) {\r
- return NULL;\r
- }\r
- Calendar calendar = Calendar.getInstance();\r
- calendar.setTime(value);\r
- StringBuilder buf = new StringBuilder();\r
- addDate(buf, calendar);\r
- return quote(buf.toString());\r
- }\r
-\r
- public static String toText(Time value) {\r
- if (value == null) {\r
- return NULL;\r
- }\r
- Calendar calendar = Calendar.getInstance();\r
- calendar.setTime(value);\r
- StringBuilder buf = new StringBuilder();\r
- addTime(buf, calendar);\r
- addTimeDecimalPart(buf, calendar.get(Calendar.MILLISECOND));\r
- return quote(buf.toString());\r
- }\r
-\r
- public static String toText(Timestamp value) {\r
- if (value == null) {\r
- return NULL;\r
- }\r
- Calendar calendar = Calendar.getInstance();\r
- calendar.setTime(value);\r
- StringBuilder buf = new StringBuilder(30);\r
- addDate(buf, calendar);\r
- addTime(buf, calendar);\r
- addTimeDecimalPart(buf, value.getNanos());\r
- return quote(buf.toString());\r
- }\r
-\r
- public static String toText(byte[] value) {\r
- if (value == null) {\r
- return NULL;\r
- }\r
- return quote(value.toString() + "(byteLength=" + Integer.toString(value.length) + ")");\r
- }\r
-\r
- /**\r
- * {@link Object}の文字列表現を返します。\r
- * \r
- * @param value\r
- * 値\r
- * @return 文字列表現\r
- */\r
- public static String toText(Object value) {\r
- if (value == null) {\r
- return NULL;\r
- }\r
- return quote(value.toString());\r
- }\r
-\r
- // yyyy-mm-dd\r
- protected static void addDate(StringBuilder buf, Calendar calendar) {\r
- int year = calendar.get(Calendar.YEAR);\r
- buf.append(year);\r
- buf.append('-');\r
- int month = calendar.get(Calendar.MONTH) + 1;\r
- if (month < 10) {\r
- buf.append('0');\r
- }\r
- buf.append(month);\r
- buf.append('-');\r
- int date = calendar.get(Calendar.DATE);\r
- if (date < 10) {\r
- buf.append('0');\r
- }\r
- buf.append(date);\r
- }\r
-\r
- // hh:mm:ss\r
- protected static void addTime(StringBuilder buf, Calendar calendar) {\r
- if (buf.length() > 0) {\r
- buf.append(' ');\r
- }\r
- int hour = calendar.get(Calendar.HOUR_OF_DAY);\r
- if (hour < 10) {\r
- buf.append('0');\r
- }\r
- buf.append(hour);\r
- buf.append(':');\r
- int minute = calendar.get(Calendar.MINUTE);\r
- if (minute < 10) {\r
- buf.append('0');\r
- }\r
- buf.append(minute);\r
- buf.append(':');\r
- int second = calendar.get(Calendar.SECOND);\r
- if (second < 10) {\r
- buf.append('0');\r
- }\r
- buf.append(second);\r
- }\r
-\r
- // .000\r
- protected static void addTimeDecimalPart(StringBuilder buf, int decimalPart) {\r
- if (decimalPart == 0) {\r
- return;\r
- }\r
- if (buf.length() > 0) {\r
- buf.append('.');\r
- }\r
- buf.append(decimalPart);\r
- }\r
-\r
- // 'text'\r
- protected static String quote(String text) {\r
- return "'" + text + "'";\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalVarious};\r
-\r
-import java.util.Collection;\r
-import java.util.Comparator;\r
-import java.util.HashMap;\r
-import java.util.Map;\r
-import java.util.TreeMap;\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInternalProcedureMetaData} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- private String procedureName;\r
- private Map<String, ${glInternalProcedureParameterType}> unorderedMap = createUnorderedMap();\r
- private Map<String, ${glInternalProcedureParameterType}> parameterTypes = createParameterTypes();\r
- private boolean returnType;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalProcedureMetaData}(final String procedureName) {\r
- this.procedureName = procedureName;\r
- }\r
-\r
- // ===================================================================================\r
- // Factory\r
- // =======\r
- protected Map<String, ${glInternalProcedureParameterType}> createUnorderedMap() {\r
- return new HashMap<String, ${glInternalProcedureParameterType}>();\r
- }\r
-\r
- protected Map<String, ${glInternalProcedureParameterType}> createParameterTypes() {\r
- return new TreeMap<String, ${glInternalProcedureParameterType}>(new ParameterComparator());\r
- }\r
-\r
- protected class ParameterComparator implements Comparator<String> {\r
- public int compare(String o1, String o2) {\r
- final int oneGreaterThanTwo = 1;\r
- final int twoGreaterThanOne = -1;\r
- final ${glInternalProcedureParameterType} parameterType1 = unorderedMap.get(o1);\r
- final ${glInternalProcedureParameterType} parameterType2 = unorderedMap.get(o2);\r
- if (parameterType1.isReturnType()) {\r
- return twoGreaterThanOne; // Return type is prior\r
- }\r
- if (parameterType2.isReturnType()) {\r
- return oneGreaterThanTwo; // Return type is prior\r
- }\r
- final Integer parameterIndex1 = parameterType1.getParameterIndex();\r
- final Integer parameterIndex2 = parameterType2.getParameterIndex();\r
- if (parameterIndex1 == null && parameterIndex2 == null) {\r
- return oneGreaterThanTwo; // No changes\r
- }\r
- if (parameterIndex1 != null && parameterIndex2 == null) {\r
- return twoGreaterThanOne; // Not null is prior\r
- }\r
- if (parameterIndex1 == null && parameterIndex2 != null) {\r
- return oneGreaterThanTwo; // Not null is prior\r
- }\r
- return parameterIndex1.compareTo(parameterIndex2);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public String getProcedureName() {\r
- return procedureName;\r
- }\r
-\r
- public Collection<${glInternalProcedureParameterType}> parameterTypes() {\r
- return parameterTypes.values();\r
- }\r
-\r
- public void addParameterType(final ${glInternalProcedureParameterType} parameterType) {\r
- final String name = parameterType.getParameterName();\r
- unorderedMap.put(name, parameterType);\r
- parameterTypes.put(name, parameterType);\r
- if (parameterType.isReturnType()) {\r
- returnType = true;\r
- }\r
- }\r
-\r
- public boolean hasReturnParameterType() {\r
- return returnType;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalVarious};\r
-\r
-import java.lang.reflect.Field;\r
-import java.lang.reflect.Modifier;\r
-import java.util.Collection;\r
-import java.util.List;\r
-import java.util.Map;\r
-import java.util.Stack;\r
-\r
-import org.seasar.framework.beans.BeanDesc;\r
-import org.seasar.framework.beans.factory.BeanDescFactory;\r
-import org.seasar.extension.jdbc.ValueType;\r
-import org.seasar.extension.jdbc.types.ValueTypes;\r
-import org.seasar.dao.ValueTypeFactory;\r
-import org.seasar.dao.util.TypeUtil;\r
-\r
-import ${glPackageBaseCommonCBean}.${glConditionBeanContextName};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInternalProcedureMetaDataFactory} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected ValueTypeFactory valueTypeFactory;\r
- protected InternalFieldProcedureAnnotationReader annotationReader = new InternalFieldProcedureAnnotationReader();\r
- \r
- // ===================================================================================\r
- // Main\r
- // ====\r
- public ${glInternalProcedureMetaData} createProcedureMetaData(final String procedureName, final Class<?> pmbType) {\r
- final ${glInternalProcedureMetaData} metaData = new ${glInternalProcedureMetaData}(procedureName);\r
- if (pmbType == null) {\r
- return metaData;\r
- } else {\r
- if (!isDtoType(pmbType)) {\r
- throw new IllegalStateException("The pmb type was Not DTO type: " + pmbType.getName());\r
- }\r
- }\r
- final BeanDesc pmbDesc = BeanDescFactory.getBeanDesc(pmbType);\r
-\r
- // *Point\r
- final Stack<Class<?>> stack = new Stack<Class<?>>();\r
- for (Class<?> clazz = pmbType; clazz != null && clazz != Object.class; clazz = clazz.getSuperclass()) {\r
- stack.push(clazz);\r
- }\r
- for ( ; !stack.isEmpty() ;) {\r
- final Class<?> clazz = stack.pop();\r
- registerParameterType(metaData, pmbDesc, clazz.getDeclaredFields());\r
- }\r
-\r
- return metaData;\r
- }\r
- protected void registerParameterType(${glInternalProcedureMetaData} metaData, BeanDesc pmbDesc, Field[] fields) {\r
- for (Field field : fields) {\r
- if (!isInstanceField(field)) {\r
- continue;\r
- }\r
- final ${glInternalProcedureParameterType} ppt = getProcedureParameterType(pmbDesc, field);\r
- if (ppt == null) {\r
- continue;\r
- }\r
- metaData.addParameterType(ppt);\r
- }\r
- }\r
- protected ${glInternalProcedureParameterType} getProcedureParameterType(final BeanDesc dtoDesc, final Field field) {\r
- final String procedureParameter = annotationReader.getProcedureParameter(dtoDesc, field);\r
- if (procedureParameter == null) {\r
- return null;\r
- }\r
- final String type = extractParameterType(procedureParameter);\r
- field.setAccessible(true);\r
- final ${glInternalProcedureParameterType} ppt = new ${glInternalProcedureParameterType}(field);\r
- if (type.equalsIgnoreCase("in")) {\r
- ppt.setInType(true);\r
- } else if (type.equalsIgnoreCase("out")) {\r
- ppt.setOutType(true);\r
- } else if (type.equalsIgnoreCase("inout")) {\r
- ppt.setInType(true);\r
- ppt.setOutType(true);\r
- } else if (type.equalsIgnoreCase("return")) {\r
- ppt.setOutType(true);\r
- ppt.setReturnType(true);\r
- } else {\r
- String msg = "The parameter type should be 'in' or 'out' or 'inout' or 'return':";\r
- msg = msg + " class=" + field.getDeclaringClass().getSimpleName();\r
- msg = msg + " field=" + field.getName();\r
- msg = msg + " parameterType=" + type;\r
- throw new IllegalStateException(msg);\r
- }\r
- final Integer index = extractParameterIndex(procedureParameter, field);\r
- ppt.setParameterIndex(index);\r
- final ValueType valueType = getValueType(dtoDesc, field);\r
- ppt.setValueType(valueType);\r
- return ppt;\r
- }\r
- protected String extractParameterType(String procedureParameter) {\r
- if (procedureParameter.contains(",")) {\r
- return procedureParameter.substring(0, procedureParameter.indexOf(",")).trim();\r
- }\r
- return procedureParameter.trim();\r
- }\r
- protected Integer extractParameterIndex(String procedureParameter, Field field) {\r
- if (procedureParameter.contains(",")) {\r
- String tmp = procedureParameter.substring(procedureParameter.indexOf(",") + ",".length()).trim();\r
- try {\r
- return Integer.valueOf(tmp);\r
- } catch (NumberFormatException e) {\r
- String msg = "The parameter index should be number:";\r
- msg = msg + " class=" + field.getDeclaringClass().getSimpleName();\r
- msg = msg + " field=" + field.getName();\r
- msg = msg + " parameterIndex=" + tmp + " procedureParameter=" + procedureParameter;\r
- throw new IllegalStateException(msg, e);\r
- }\r
- }\r
- return null;\r
- }\r
- protected ValueType getValueType(final BeanDesc dtoDesc, final Field field) {\r
- final String name = annotationReader.getValueType(dtoDesc, field);\r
- if (name != null) {\r
- return valueTypeFactory.getValueTypeByName(name);\r
- }\r
- final Class<?> type = field.getType();\r
- if (List.class.isAssignableFrom(type)) {// is for out parameter cursor.\r
- if (${glConditionBeanContextName}.isOracle()) {\r
- return ValueTypes.ORACLE_RESULT_SET;\r
- } else if (${glConditionBeanContextName}.isPostgreSql()) {\r
- return ValueTypes.POSTGRE_RESULT_SET;\r
- } else {\r
- return ValueTypes.SERIALIZABLE_BYTE_ARRAY;\r
- }\r
- }\r
- return valueTypeFactory.getValueTypeByClass(type);\r
- }\r
- protected boolean isInstanceField(final Field field) {\r
- final int mod = field.getModifiers();\r
- return !Modifier.isStatic(mod) && !Modifier.isFinal(mod);\r
- }\r
- protected boolean isDtoType(final Class<?> clazz) {\r
- return !TypeUtil.isSimpleType(clazz) && !isContainerType(clazz);\r
- }\r
- protected boolean isContainerType(final Class<?> clazz) {\r
- if (clazz == null) { throw new NullPointerException("clazz"); }\r
- return Collection.class.isAssignableFrom(clazz) || Map.class.isAssignableFrom(clazz) || clazz.isArray();\r
- }\r
- public void setValueTypeFactory(final ValueTypeFactory valueTypeFactory) {\r
- this.valueTypeFactory = valueTypeFactory;\r
- }\r
- \r
- protected static class InternalFieldProcedureAnnotationReader {\r
- protected String PROCEDURE_PARAMETER_SUFFIX;\r
- protected String VALUE_TYPE_SUFFIX;\r
- public InternalFieldProcedureAnnotationReader() {\r
- PROCEDURE_PARAMETER_SUFFIX = "_PROCEDURE_PARAMETER";\r
- VALUE_TYPE_SUFFIX = "_VALUE_TYPE";\r
- }\r
- public String getProcedureParameter(BeanDesc dtoDesc, Field field) {\r
- String fieldName = removeInstanceVariablePrefix(field.getName());// *Point\r
- String annotationName = fieldName + PROCEDURE_PARAMETER_SUFFIX;\r
- if (dtoDesc.hasField(annotationName)) {\r
- Field f = dtoDesc.getField(annotationName);\r
- return (String) getValue(f, null);\r
- } else {\r
- return null;\r
- }\r
- }\r
- public String getValueType(BeanDesc dtoDesc, Field field) {\r
- String fieldName = removeInstanceVariablePrefix(field.getName());// *Point\r
- String annotationName = fieldName + VALUE_TYPE_SUFFIX;\r
- if (dtoDesc.hasField(annotationName)) {\r
- Field f = dtoDesc.getField(annotationName);\r
- return (String) getValue(f, null);\r
- } else {\r
- return null;\r
- }\r
- }\r
- protected String removeInstanceVariablePrefix(String fieldName) {\r
- return fieldName.startsWith("_") ? fieldName.substring("_".length()) : fieldName;\r
- }\r
- protected Object getValue(Field field, Object target) {\r
- try {\r
- return field.get(target);\r
- } catch (IllegalAccessException e) {\r
- String msg = "The getting of the field threw the exception:";\r
- msg = msg + " class=" + field.getDeclaringClass().getSimpleName();\r
- msg = msg + " field=" + field.getName();\r
- throw new IllegalStateException(msg, e);\r
- }\r
- }\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalVarious};\r
-\r
-import java.lang.reflect.Field;\r
-\r
-import org.seasar.extension.jdbc.ValueType;\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInternalProcedureParameterType} {\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- private String parameterName;\r
- private Integer parameterIndex;\r
- private Field field;\r
- private ValueType valueType;\r
- private boolean inType;\r
- private boolean outType;\r
- private boolean returnType;\r
-\r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- public ${glInternalProcedureParameterType}(Field field) {\r
- this.field = field;\r
- this.parameterName = field.getName();\r
- }\r
-\r
- // ===================================================================================\r
- // Field Value\r
- // ===========\r
- public Object getValue(Object target) {\r
- try {\r
- return field.get(target);\r
- } catch (IllegalAccessException e) {\r
- String msg = "The getting of the field threw the exception:";\r
- msg = msg + " class=" + field.getDeclaringClass().getSimpleName();\r
- msg = msg + " field=" + field.getName();\r
- throw new IllegalStateException(msg, e);\r
- }\r
- }\r
-\r
- public void setValue(Object target, Object value) {\r
- try {\r
- field.set(target, value);\r
- } catch (IllegalAccessException e) {\r
- String msg = "The setting of the field threw the exception:";\r
- msg = msg + " class=" + field.getDeclaringClass().getSimpleName();\r
- msg = msg + " field=" + field.getName();\r
- throw new IllegalStateException(msg, e);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public String getParameterName() {\r
- return parameterName;\r
- }\r
- \r
- public Integer getParameterIndex() {\r
- return parameterIndex;\r
- }\r
- \r
- public void setParameterIndex(Integer parameterIndex) {\r
- this.parameterIndex = parameterIndex;\r
- }\r
-\r
- public ValueType getValueType() {\r
- return valueType;\r
- }\r
-\r
- public void setValueType(final ValueType valueType) {\r
- this.valueType = valueType;\r
- }\r
-\r
- public boolean isInType() {\r
- return inType;\r
- }\r
-\r
- public void setInType(final boolean inType) {\r
- this.inType = inType;\r
- }\r
-\r
- public boolean isOutType() {\r
- return outType;\r
- }\r
-\r
- public void setOutType(final boolean outType) {\r
- this.outType = outType;\r
- }\r
-\r
- public boolean isReturnType() {\r
- return returnType;\r
- }\r
-\r
- public void setReturnType(final boolean returnType) {\r
- this.returnType = returnType;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalVarious};\r
-\r
-import java.util.Iterator;\r
-import java.util.Map;\r
-import java.util.Set;\r
-import java.util.Stack;\r
-import java.sql.ResultSet;\r
-import java.sql.SQLException;\r
-\r
-import org.seasar.framework.beans.PropertyDesc;\r
-import org.seasar.extension.jdbc.PropertyType;\r
-import org.seasar.extension.jdbc.ValueType;\r
-import org.seasar.dao.BeanMetaData;\r
-import org.seasar.dao.RelationPropertyType;\r
-import org.seasar.dao.impl.RelationRowCreationResource;\r
-import org.seasar.dao.impl.RelationRowCreatorImpl;\r
-\r
-import ${glPackageBaseCommonCBean}.${glConditionBeanInterfaceName};\r
-import ${glPackageBaseCommonCBean}.${glConditionBeanContextName};\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInterfaceName};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInternalRelationRowCreator} extends RelationRowCreatorImpl {\r
-\r
- @Override\r
- protected Object createRelationRow(RelationRowCreationResource res)\r
- throws SQLException {\r
- // - - - - - - - - - - - \r
- // Recursive Call Point!\r
- // - - - - - - - - - - -\r
- if (!res.hasPropertyCacheElement()) {\r
- return null;\r
- }\r
- setupRelationKeyValue(res);\r
- setupRelationAllValue(res);\r
- return res.getRow();\r
- }\r
-\r
- @Override\r
- protected void setupRelationKeyValue(RelationRowCreationResource res) {\r
- final RelationPropertyType rpt = res.getRelationPropertyType();\r
- final BeanMetaData bmd = rpt.getBeanMetaData();\r
- final ${glDBMetaInterfaceName} dbmeta = findDBMeta(bmd.getBeanClass(), bmd.getTableName());\r
- for (int i = 0; i < rpt.getKeySize(); ++i) {\r
- final String columnName = rpt.getMyKey(i) + res.getBaseSuffix();\r
-\r
- if (!res.containsColumnName(columnName)) {\r
- continue;\r
- }\r
- if (!res.hasRowInstance()) {\r
- final Object row;\r
- if (dbmeta != null) {\r
- row = dbmeta.newEntity();\r
- } else {\r
- row = newRelationRow(rpt);\r
- }\r
- res.setRow(row);\r
- }\r
- if (!res.containsRelKeyValueIfExists(columnName)) {\r
- continue;\r
- }\r
- final Object value = res.extractRelKeyValue(columnName);\r
- if (value == null) {\r
- continue;\r
- }\r
-\r
- final String yourKey = rpt.getYourKey(i);\r
- final PropertyType pt = bmd.getPropertyTypeByColumnName(yourKey);\r
- final PropertyDesc pd = pt.getPropertyDesc();\r
- pd.setValue(res.getRow(), value);\r
- continue;\r
- }\r
- }\r
-\r
- protected Object createRelationRowInstance(${glDBMetaInterfaceName} dbmeta) {\r
- if (dbmeta != null) {\r
- return dbmeta.newEntity();\r
- }\r
- return null;\r
- }\r
-\r
- protected ${glDBMetaInterfaceName} findDBMeta(Class<?> rowType, String tableName) {\r
- return ${glInternalRowCreator}.findDBMeta(rowType, tableName);\r
- }\r
-\r
- @SuppressWarnings("unchecked")\r
- @Override\r
- protected void setupRelationAllValue(RelationRowCreationResource res) throws SQLException {\r
- final Map propertyCacheElement = res.extractPropertyCacheElement();\r
- final Set columnNameCacheElementKeySet = propertyCacheElement.keySet();\r
- for (final Iterator ite = columnNameCacheElementKeySet.iterator(); ite.hasNext();) {\r
- final String columnName = (String) ite.next();\r
- final PropertyType pt = (PropertyType) propertyCacheElement.get(columnName);\r
- res.setCurrentPropertyType(pt);\r
- if (!isValidRelationPerPropertyLoop(res)) {\r
- res.clearRowInstance();\r
- return;\r
- }\r
- setupRelationProperty(res);\r
- }\r
- if (!isValidRelationAfterPropertyLoop(res)) {\r
- res.clearRowInstance();\r
- return;\r
- }\r
- res.clearValidValueCount();\r
- if (res.hasNextRelationProperty() && (hasConditionBean(res) || res.hasNextRelationLevel())) {\r
- setupNextRelationRow(res);\r
- }\r
- }\r
- \r
- @Override\r
- protected void registerRelationValue(RelationRowCreationResource res, String columnName) throws SQLException {\r
- final PropertyType pt = res.getCurrentPropertyType();\r
- Object value = null;\r
- if (res.containsRelKeyValueIfExists(columnName)) {\r
- value = res.extractRelKeyValue(columnName);\r
- } else {\r
- final ValueType valueType = pt.getValueType();\r
- value = valueType.getValue(res.getResultSet(), columnName);\r
- }\r
- \r
- if (value != null) {\r
- res.incrementValidValueCount();\r
- final ${glDBMetaInterfaceName} dbmeta = findDBMeta(res.getRow());\r
- final String propertyName = pt.getPropertyName();\r
- if (dbmeta != null && dbmeta.hasEntityPropertySetupper(propertyName)) {\r
- dbmeta.setupEntityProperty(propertyName, res.getRow(), value);\r
- } else {\r
- final PropertyDesc pd = pt.getPropertyDesc();\r
- pd.setValue(res.getRow(), value);\r
- }\r
- }\r
- }\r
- \r
- /**\r
- * @param row The instance of row. (NotNull)\r
- * @return The interface of DBMeta. (Nullable: If it's null, it means NotFound.)\r
- */\r
- protected ${glDBMetaInterfaceName} findDBMeta(Object row) {\r
- return ${glInternalRowCreator}.findDBMeta(row);\r
- }\r
-\r
- @Override\r
- protected void setupPropertyCache(RelationRowCreationResource res) throws SQLException {\r
- // - - - - - - - - - - - \r
- // Recursive Call Point!\r
- // - - - - - - - - - - -\r
- res.initializePropertyCacheElement();\r
-\r
- // Do only selected foreign property for performance if condition-bean exists.\r
- if (hasConditionBean(res) && !hasSelectedForeignInfo(res)) {\r
- return;\r
- }\r
-\r
- // Set up property cache about current beanMetaData.\r
- final BeanMetaData nextBmd = res.getRelationBeanMetaData();\r
- for (int i = 0; i < nextBmd.getPropertyTypeSize(); ++i) {\r
- final PropertyType pt = nextBmd.getPropertyType(i);\r
- res.setCurrentPropertyType(pt);\r
- if (!isTargetProperty(res)) {\r
- continue;\r
- }\r
- setupPropertyCacheElement(res);\r
- }\r
- \r
- // Set up next relation.\r
- if (res.hasNextRelationProperty() && (hasConditionBean(res) || res.hasNextRelationLevel())) {\r
- res.backupRelationPropertyType();\r
- res.incrementCurrentRelationNestLevel();\r
- try {\r
- setupNextPropertyCache(res, nextBmd);\r
- } finally {\r
- res.restoreRelationPropertyType();\r
- res.decrementCurrentRelationNestLevel();\r
- }\r
- }\r
- }\r
-\r
- @Override\r
- protected boolean isTargetProperty(RelationRowCreationResource res) throws SQLException {\r
- final PropertyType pt = res.getCurrentPropertyType();\r
- if (!pt.getPropertyDesc().hasWriteMethod()) {\r
- return false;\r
- }\r
- if (java.util.List.class.isAssignableFrom(pt.getPropertyDesc().getPropertyType())) {\r
- return false;\r
- }\r
- return true;\r
- }\r
-\r
- @Override\r
- protected boolean isCreateDeadLink() {\r
- return false;\r
- }\r
- \r
- @Override\r
- protected int getLimitRelationNestLevel() {\r
- return 2;// for Compatible\r
- }\r
-\r
- @SuppressWarnings("unchecked")\r
- @Override\r
- protected RelationRowCreationResource createResourceForRow(ResultSet rs,\r
- RelationPropertyType rpt, Set columnNames, Map relKeyValues,\r
- Map relationPropertyCache) throws SQLException {\r
- final RelationRowCreationResource res = new RelationRowCreationResourceExtension();\r
- res.setResultSet(rs);\r
- res.setRelationPropertyType(rpt);\r
- res.setColumnNames(columnNames);\r
- res.setRelKeyValues(relKeyValues);\r
- res.setRelationPropertyCache(relationPropertyCache);\r
- res.setBaseSuffix("");// as Default\r
- res.setRelationNoSuffix(buildRelationNoSuffix(rpt));\r
- res.setLimitRelationNestLevel(getLimitRelationNestLevel());\r
- res.setCurrentRelationNestLevel(1);// as Default\r
- res.setCreateDeadLink(isCreateDeadLink());\r
- return res;\r
- }\r
-\r
- @SuppressWarnings("unchecked")\r
- @Override\r
- protected RelationRowCreationResource createResourceForPropertyCache(RelationPropertyType rpt, Set columnNames,\r
- Map relationPropertyCache, String baseSuffix, String relationNoSuffix, int limitRelationNestLevel)\r
- throws SQLException {\r
- final RelationRowCreationResource res = new RelationRowCreationResourceExtension();\r
- res.setRelationPropertyType(rpt);\r
- res.setColumnNames(columnNames);\r
- res.setRelationPropertyCache(relationPropertyCache);\r
- res.setBaseSuffix(baseSuffix);\r
- res.setRelationNoSuffix(relationNoSuffix);\r
- res.setLimitRelationNestLevel(limitRelationNestLevel);\r
- res.setCurrentRelationNestLevel(1);// as Default\r
- return res;\r
- }\r
- \r
- protected boolean isConditionBeanSelectedRelation(RelationRowCreationResource res) {\r
- if (hasConditionBean(res)) {\r
- final ${glConditionBeanInterfaceName} cb = ${glConditionBeanContextName}.getConditionBeanOnThread();\r
- if (cb.getSqlClause().hasSelectedForeignInfo(res.getRelationNoSuffix())) {\r
- return true;\r
- }\r
- }\r
- return false;\r
- }\r
- \r
- protected boolean hasConditionBean(RelationRowCreationResource res) {\r
- return ${glConditionBeanContextName}.isExistConditionBeanOnThread();\r
- }\r
- \r
- protected boolean hasSelectedForeignInfo(RelationRowCreationResource res) {\r
- final ${glConditionBeanInterfaceName} cb = ${glConditionBeanContextName}.getConditionBeanOnThread();\r
- if (cb.getSqlClause().hasSelectedForeignInfo(res.getRelationNoSuffix())) {\r
- return true;\r
- }\r
- return false;\r
- }\r
- \r
- protected static class RelationRowCreationResourceExtension extends RelationRowCreationResource {\r
- protected Stack<RelationPropertyType> backupRelationPropertyType = new Stack<RelationPropertyType>();\r
- protected Stack<String> backupBaseSuffix = new Stack<String>();\r
- protected Stack<String> backupRelationSuffix = new Stack<String>();\r
- \r
- @Override\r
- public void backupRelationPropertyType() {\r
- backupRelationPropertyType.push(getRelationPropertyType());\r
- }\r
- \r
- @Override\r
- public void restoreRelationPropertyType() {\r
- setRelationPropertyType(backupRelationPropertyType.pop());\r
- }\r
- \r
- @Override\r
- public void backupSuffixAndPrepare(String baseSuffix, String additionalRelationNoSuffix) {\r
- backupBaseSuffixExtension();\r
- backupRelationNoSuffixExtension();\r
- setBaseSuffix(baseSuffix);\r
- addRelationNoSuffix(additionalRelationNoSuffix);\r
- }\r
- \r
- @Override\r
- public void restoreSuffix() {\r
- restoreBaseSuffixExtension();\r
- restoreRelationNoSuffixExtension();\r
- }\r
- \r
- protected void backupBaseSuffixExtension() {\r
- backupBaseSuffix.push(getBaseSuffix());\r
- }\r
-\r
- protected void restoreBaseSuffixExtension() {\r
- setBaseSuffix(backupBaseSuffix.pop());\r
- }\r
- \r
- protected void backupRelationNoSuffixExtension() {\r
- backupRelationSuffix.push(getRelationNoSuffix());\r
- }\r
- \r
- protected void restoreRelationNoSuffixExtension() {\r
- setRelationNoSuffix(backupRelationSuffix.pop());\r
- }\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonS2DaoInternalVarious};\r
-\r
-import java.util.HashMap;\r
-import java.util.Iterator;\r
-import java.util.Map;\r
-import java.util.Set;\r
-import java.sql.ResultSet;\r
-import java.sql.SQLException;\r
-\r
-import org.seasar.extension.jdbc.PropertyType;\r
-import org.seasar.extension.jdbc.ValueType;\r
-import org.seasar.dao.impl.RowCreatorImpl;\r
-\r
-import ${glPackageBaseCommon}.${glEntityInterfaceName};\r
-import ${glPackageBaseCommon}.${glInternalMapContextName};\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInterfaceName};\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaInstanceHandlerName};\r
-import ${glPackageBaseCommonUtil}.${glSimpleSystemUtil};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glInternalRowCreator} extends RowCreatorImpl {\r
-\r
- // ===================================================================================\r
- // Definition\r
- // ==========\r
- /** Log instance. */\r
- private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory.getLog(${glInternalRowCreator}.class);\r
-\r
- /** The key of DBMeta cache. */\r
- protected static final String DBMETA_CACHE_KEY = "df:DBMetaCache";\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
- protected ${glDBMetaInterfaceName} _dbmeta;\r
- \r
- // ===================================================================================\r
- // Constructor\r
- // ===========\r
- protected ${glInternalRowCreator}() {}\r
-\r
- /**\r
- * @param beanClass The class of target bean to find DB-meta. (Nullable)\r
- * @return The instance of internal row creator. (NotNull)\r
- */\r
- public static ${glInternalRowCreator} createInternalRowCreator(Class<?> beanClass) {\r
- final ${glInternalRowCreator} rowCreator = new ${glInternalRowCreator}();\r
- if (beanClass != null) {\r
- rowCreator.setDBMeta(findDBMetaByClass(beanClass));\r
- }\r
- return rowCreator;\r
- }\r
-\r
- // ===================================================================================\r
- // Main\r
- // ====\r
- @SuppressWarnings("unchecked")\r
- @Override\r
- public Object createRow(ResultSet rs, Map propertyCache, Class beanClass) throws SQLException {\r
- final Set columnNameSet = propertyCache.keySet();\r
- String columnName = null;\r
- PropertyType pt = null;\r
- String propertyName = null;\r
- final Object row;\r
- final ${glDBMetaInterfaceName} dbmeta;\r
- if (_dbmeta != null) {\r
- dbmeta = _dbmeta;\r
- row = dbmeta.newEntity();\r
- } else {\r
- row = newBean(beanClass);\r
- dbmeta = findDBMeta(row);\r
- }\r
- try {\r
- if (dbmeta != null) {\r
- for (final Iterator ite = columnNameSet.iterator(); ite.hasNext();) {\r
- columnName = (String) ite.next();\r
- pt = (PropertyType) propertyCache.get(columnName);\r
- propertyName = pt.getPropertyName();\r
- if (dbmeta.hasEntityPropertySetupper(propertyName)) {\r
- final ValueType valueType = pt.getValueType();\r
- final Object value = valueType.getValue(rs, columnName);\r
- dbmeta.setupEntityProperty(propertyName, row, value);\r
- } else {\r
- registerValue(rs, row, pt, columnName);\r
- }\r
- }\r
- } else {\r
- for (final Iterator ite = columnNameSet.iterator(); ite.hasNext();) {\r
- columnName = (String) ite.next();\r
- pt = (PropertyType) propertyCache.get(columnName);\r
- propertyName = pt.getPropertyName();\r
- registerValue(rs, row, pt, columnName);\r
- }\r
- }\r
- return row;\r
- } catch (ClassCastException e) {\r
- if (_log.isWarnEnabled()) {\r
- String msg = ClassCastException.class.getSimpleName() + " occurred while ResultSet Handling:";\r
- _log.warn(msg + " target=" + beanClass.getSimpleName() + "." + propertyName + " dbmeta");\r
- }\r
- throwNonsenseClassCastException(row, dbmeta, e);\r
- return null; // Unreachable!\r
- } catch (SQLException e) {\r
- if (_log.isWarnEnabled()) {\r
- String msg = SQLException.class.getSimpleName() + " occurred while ResultSet Handling:";\r
- _log.warn(msg + " target=" + beanClass.getSimpleName() + "." + propertyName);\r
- }\r
- throw e;\r
- }\r
- }\r
- \r
- protected void throwNonsenseClassCastException(Object entity, ${glDBMetaInterfaceName} dbmeta, ClassCastException e) {\r
- String msg = "Look! Read the message below." + getLineSeparator();\r
- msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + getLineSeparator();\r
- msg = msg + "Nonsense ClassCastException occured!" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Advice]" + getLineSeparator();\r
- msg = msg + "This exception may be from ClassLoader Headache about HotDeploy." + getLineSeparator();\r
- msg = msg + "Please add the ignore-package setting to convention.dicon like as follows:" + getLineSeparator();\r
- msg = msg + " For example:" + getLineSeparator();\r
- msg = msg + " <initMethod name=”addIgnorePackageName”>" + getLineSeparator();\r
- msg = msg + " <arg>”com.example.xxx.dbflute”</arg>" + getLineSeparator();\r
- msg = msg + " </initMethod>" + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Exception Message]" + getLineSeparator() + e.getMessage() + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Target Entity]" + getLineSeparator() + entity + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Target Entity Class Loader]" + getLineSeparator() + entity.getClass().getClassLoader() + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Target DBMeta]" + getLineSeparator() + dbmeta + getLineSeparator();\r
- msg = msg + getLineSeparator();\r
- msg = msg + "[Target DBMeta Class Loader]" + getLineSeparator() + dbmeta.getClass().getClassLoader() + getLineSeparator();\r
- msg = msg + "* * * * * * * * * */";\r
- throw new NonsenseClassCastException(msg, e);\r
- }\r
-\r
- public static class NonsenseClassCastException extends RuntimeException {\r
- private static final long serialVersionUID = 1L;\r
- public NonsenseClassCastException(String msg, ClassCastException e) {\r
- super(msg, e);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // Assist Helper\r
- // =============\r
- /**\r
- * @param row The instance of row. (NotNull)\r
- * @return The interface of DBMeta. (Nullable: If it's null, it means NotFound.)\r
- */\r
- public static ${glDBMetaInterfaceName} findDBMeta(Object row) {\r
- return DBMetaCacheHandler.findDBMeta(row);\r
- }\r
-\r
- /**\r
- * @param rowType The type of row. (NotNull)\r
- * @param tableName The name of table. (NotNull)\r
- * @return The interface of DBMeta. (Nullable: If it's null, it means NotFound.)\r
- */\r
- public static ${glDBMetaInterfaceName} findDBMeta(Class<?> rowType, String tableName) {\r
- return DBMetaCacheHandler.findDBMeta(rowType, tableName);\r
- }\r
-\r
- protected static class DBMetaCacheHandler {\r
- \r
- /** The key of DBMeta cache. */\r
- protected static final String DBMETA_CACHE_KEY = "df:DBMetaCache";\r
-\r
- public static ${glDBMetaInterfaceName} findDBMeta(Object row) {\r
- if (!(row instanceof ${glEntityInterfaceName})) {\r
- return null;\r
- }\r
- final ${glEntityInterfaceName} entity = (${glEntityInterfaceName}) row;\r
- ${glDBMetaInterfaceName} dbmeta = findCachedDBMeta(entity.getClass());\r
- if (dbmeta != null) {\r
- return dbmeta;\r
- }\r
- dbmeta = entity.getDBMeta();\r
- cacheDBMeta(entity, dbmeta);\r
- return dbmeta;\r
- }\r
- \r
- public static ${glDBMetaInterfaceName} findDBMeta(Class<?> rowType, String tableName) {\r
- ${glDBMetaInterfaceName} dbmeta = findCachedDBMeta(rowType);\r
- if (dbmeta != null) {\r
- return dbmeta;\r
- }\r
- try {\r
- dbmeta = ${glDBMetaInstanceHandlerName}.findDBMeta(tableName);\r
- } catch (${glDBMetaInstanceHandlerName}.DBMetaNotFoundException ignored) {\r
- return null;\r
- }\r
- cacheDBMeta(rowType, dbmeta);\r
- return dbmeta;\r
- }\r
-\r
- protected static ${glDBMetaInterfaceName} findCachedDBMeta(Class<?> rowType) {\r
- Map<Class<?>, ${glDBMetaInterfaceName}> dbmetaCache = findDBMetaCache();\r
- if (dbmetaCache == null) {\r
- dbmetaCache = new HashMap<Class<?>, ${glDBMetaInterfaceName}>();\r
- ${glInternalMapContextName}.setObject(DBMETA_CACHE_KEY, dbmetaCache);\r
- }\r
- return dbmetaCache.get(rowType);\r
- }\r
- \r
- protected static void cacheDBMeta(${glEntityInterfaceName} entity, ${glDBMetaInterfaceName} dbmeta) {\r
- cacheDBMeta(entity.getClass(), dbmeta);\r
- }\r
- \r
- protected static void cacheDBMeta(Class<?> type, ${glDBMetaInterfaceName} dbmeta) {\r
- final Map<Class<?>, ${glDBMetaInterfaceName}> dbmetaCache = findDBMetaCache();\r
- dbmetaCache.put(type, dbmeta);\r
- }\r
- \r
- @SuppressWarnings("unchecked")\r
- protected static Map<Class<?>, ${glDBMetaInterfaceName}> findDBMetaCache() {\r
- return (Map<Class<?>, ${glDBMetaInterfaceName}>)${glInternalMapContextName}.getObject(DBMETA_CACHE_KEY);\r
- }\r
- }\r
-\r
- protected static ${glDBMetaInterfaceName} findDBMetaByClass(Class<?> beanClass) {\r
- final Object instance = newInstance(beanClass);\r
- if (!(instance instanceof ${glEntityInterfaceName})) {\r
- return null;\r
- }\r
- return ((${glEntityInterfaceName})instance).getDBMeta();\r
- }\r
-\r
- protected static Object newInstance(Class<?> clazz) {\r
- try {\r
- return clazz.newInstance();\r
- } catch (InstantiationException e) {\r
- throw new IllegalStateException(e);\r
- } catch (IllegalAccessException e) {\r
- throw new IllegalStateException(e);\r
- }\r
- }\r
-\r
- // ===================================================================================\r
- // General Helper\r
- // ==============\r
- protected String getLineSeparator() {\r
- return ${glSimpleSystemUtil}.getLineSeparator();\r
- }\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
- public void setDBMeta(${glDBMetaInterfaceName} dbmeta) {\r
- this._dbmeta = dbmeta;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonUtil};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glSimpleAssertUtil} {\r
-\r
- // ===================================================================================\r
- // Assert\r
- // ======\r
- // -----------------------------------------------------\r
- // Assert Object\r
- // -------------\r
- /**\r
- * Assert that the object is not null.\r
- * \r
- * @param variableName Variable name. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @exception IllegalArgumentException\r
- */\r
- public static void assertObjectNotNull(String variableName, Object value) {\r
- if (variableName == null) {\r
- String msg = "The value should not be null: variableName=" + variableName + " value=" + value;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (value == null) {\r
- String msg = "The value should not be null: variableName=" + variableName;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Assert String\r
- // -------------\r
- /**\r
- * Assert that the entity is not null and not trimmed empty.\r
- * \r
- * @param variableName Variable name. (NotNull)\r
- * @param value Value. (NotNull)\r
- */\r
- public static void assertStringNotNullAndNotTrimmedEmpty(String variableName, String value) {\r
- assertObjectNotNull("variableName", variableName);\r
- assertObjectNotNull("value", value);\r
- if (value.trim().length() ==0) {\r
- String msg = "The value should not be empty: variableName=" + variableName + " value=" + value;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonUtil};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glSimpleStringUtil} {\r
-\r
- // ===================================================================================\r
- // String\r
- // ======\r
- public static String replace(String text, String fromText, String toText) {\r
- if(text == null || fromText == null || toText == null) {\r
- return null;\r
- }\r
- StringBuilder sb = new StringBuilder();\r
- int pos = 0;\r
- int pos2 = 0;\r
- do {\r
- pos = text.indexOf(fromText, pos2);\r
- if(pos == 0) {\r
- sb.append(toText);\r
- pos2 = fromText.length();\r
- } else\r
- if(pos > 0) {\r
- sb.append(text.substring(pos2, pos));\r
- sb.append(toText);\r
- pos2 = pos + fromText.length();\r
- } else {\r
- sb.append(text.substring(pos2));\r
- return sb.toString();\r
- }\r
- } while(true);\r
- }\r
- \r
- public static String initCap(String str) {\r
- assertObjectNotNull("str", str);\r
- return str.substring(0, 1).toUpperCase() + str.substring(1);\r
- }\r
- \r
- public static String initUncap(String str) {\r
- assertObjectNotNull("str", str);\r
- return str.substring(0, 1).toLowerCase() + str.substring(1);\r
- }\r
- \r
- // -----------------------------------------------------\r
- // Assert Object\r
- // -------------\r
- /**\r
- * Assert that the object is not null.\r
- * @param variableName Variable name. (NotNull)\r
- * @param value Value. (NotNull)\r
- * @exception IllegalArgumentException\r
- */\r
- protected static void assertObjectNotNull(String variableName, Object value) {\r
- if (variableName == null) {\r
- String msg = "The value should not be null: variableName=" + variableName + " value=" + value;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (value == null) {\r
- String msg = "The value should not be null: variableName=" + variableName;\r
- throw new IllegalArgumentException(msg);\r
- }\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonUtil};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glSimpleSystemUtil} {\r
-\r
- // ===================================================================================\r
- // System\r
- // ======\r
- public static String getLineSeparator() {\r
- // /- - - - - - - - - - - - - - - - - - - - - -\r
- // Because 'CR + LF' caused many trouble!\r
- // And Now 'LF' have little trouble. \r
- // \r
- // return System.getProperty("line.separator");\r
- // - - - - - - - - - -/\r
- return "\n";\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonUtil};\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glTraceViewUtilName} {\r
-\r
- /**\r
- * Convert to performance view.\r
- * @param afterMinusBefore The value of after-minus-before millisecond.\r
- * @return Performance view. (ex. 1m23s456ms) (NotNull)\r
- */\r
- public static String convertToPerformanceView(long afterMinusBefore) {\r
- if (afterMinusBefore < 0) {\r
- return String.valueOf(afterMinusBefore);\r
- }\r
-\r
- long sec = afterMinusBefore / 1000;\r
- final long min = sec / 60;\r
- sec = sec % 60;\r
- final long mil = afterMinusBefore % 1000;\r
-\r
- final StringBuffer sb = new StringBuffer();\r
- if (min >= 10) { // Minute\r
- sb.append(min).append("m");\r
- } else if (min < 10 && min >= 0) {\r
- sb.append("0").append(min).append("m");\r
- }\r
- if (sec >= 10) { // Second\r
- sb.append(sec).append("s");\r
- } else if (sec < 10 && sec >= 0) {\r
- sb.append("0").append(sec).append("s");\r
- }\r
- if (mil >= 100) { // Millisecond\r
- sb.append(mil).append("ms");\r
- } else if (mil < 100 && mil >= 10) {\r
- sb.append("0").append(mil).append("ms");\r
- } else if (mil < 10 && mil >= 0) {\r
- sb.append("00").append(mil).append("ms");\r
- }\r
-\r
- return sb.toString();\r
- }\r
-\r
- /**\r
- * Convert object array to string view.\r
- * @param objArray The array of object. (Nullable)\r
- * @return The string divided with comma. (NotNull: If the argument is null, returns empty string.)\r
- */\r
- public static String convertObjectArrayToStringView(Object[] objArray) {\r
- if (objArray == null) {\r
- return "";\r
- }\r
- final StringBuffer sb = new StringBuffer();\r
- for (int i = 0; i < objArray.length; i++) {\r
- if (i == 0) {\r
- sb.append(objArray[i]);\r
- } else {\r
- sb.append(", ").append(objArray[i]);\r
- }\r
- }\r
- return sb.toString();\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseCommonUtil};\r
-\r
-import java.util.List;\r
-import java.util.Map;\r
-import java.util.LinkedHashMap;\r
-\r
-/**\r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${glValueLabelUtilName} {\r
-\r
- /**\r
- * Find the label by the value from the list of value label.\r
- * @param valueLabelList The list of value label. (NotNull and NotEmpty)\r
- * @param value Value. (NotNull)\r
- * @return Label. (NotNull)\r
- */\r
- public static String findLabel(List<Map<String, Object>> valueLabelList, Object value) {\r
- if (valueLabelList == null) {\r
- String msg = "The arguement[valueLabelList] should not be null.";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (valueLabelList.isEmpty()) {\r
- String msg = "The arguement[valueLabelList] should not be empty.";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- if (value == null) {\r
- String msg = "The arguement[value] should not be null.";\r
- throw new IllegalArgumentException(msg);\r
- }\r
- for (Map<String, Object> elementMap : valueLabelList) {\r
- final Object currentValue = elementMap.get("value");\r
- if (value.equals(currentValue)) {\r
- return (String) elementMap.get("label");\r
- }\r
- }\r
- String msg = "Not found label by the value: value=" + value + " valueLabelList=" + valueLabelList;\r
- throw new IllegalStateException(msg);\r
- }\r
- \r
- public static Map<Object, String> createValueLabelMap(List<Map<String, Object>> valueLabelList) {\r
- final Map<Object, String> resultMap = new LinkedHashMap<Object, String>();\r
- for (Map<String, Object> elementMap : valueLabelList) {\r
- final Object currentValue = elementMap.get("value");\r
- final String currentLabel = (String) elementMap.get("label");\r
- resultMap.put(currentValue, currentLabel);\r
- }\r
- return resultMap;\r
- }\r
- \r
- public static Map<String, Object> createLabelValueMap(List<Map<String, Object>> valueLabelList) {\r
- final Map<String, Object> resultMap = new LinkedHashMap<String, Object>();\r
- for (Map<String, Object> elementMap : valueLabelList) {\r
- final Object currentValue = elementMap.get("value");\r
- final String currentLabel = (String) elementMap.get("label");\r
- resultMap.put(currentLabel, currentValue);\r
- }\r
- return resultMap;\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${myBaseDaoPackageName};\r
-\r
-#set ($myClassName = "${myBaseDaoClassName}")\r
-import java.util.List;\r
-\r
-import ${glPackageExtendedEntity}.${myExtendedObjectClassName};\r
-import ${glPackageCB}.${myConditionBeanClassName};\r
-#set ($InterfaceName = "")\r
-#if ($table.isWritable())\r
- #set ($InterfaceName = "${glPackageBaseCommon}.${glDaoWritableInterfaceName}")\r
-#else\r
- #set ($InterfaceName = "${glPackageBaseCommon}.${glDaoReadableInterfaceName}")\r
-#end\r
-\r
-/**\r
- * The DAO interface of ${table.name}.\r
- * @author ${database.ClassAuthor}\r
- */\r
-public interface ${myClassName} extends ${InterfaceName} {\r
-\r
- public Class<?> BEAN = ${myExtendedObjectClassName}.class; // For S2Dao\r
-#if ($table.isWritable() && $table.hasOnlyOnePrimaryKey() && $database.isUseBuri())\r
-\r
- public static final String getEntityByIds_ARGS = "ids";\r
- public static final String getEntityByIds_QUERY = "${table.primaryKeyNameAsOne} in /*ids*/(1)";\r
- List<${myExtendedObjectClassName}> getEntityByIds(List<${table.primaryKeyJavaNativeAsOne}> ids);// For the Framework 'Buri'\r
-#end\r
-\r
- public int selectCount(${myConditionBeanClassName} cb);\r
- public List<${myExtendedObjectClassName}> selectList(${myConditionBeanClassName} cb);\r
-#if ($table.isWritable())\r
-\r
- int insert(${myExtendedObjectClassName} entity);\r
- int updateModifiedOnly(${myExtendedObjectClassName} entity);\r
-#if ($table.hasOptimisticLock())\r
- int updateNonstrictModifiedOnly(${myExtendedObjectClassName} entity);\r
-#end\r
- int delete(${myExtendedObjectClassName} entity);\r
-#if ($table.hasOptimisticLock())\r
- int deleteNonstrict(${myExtendedObjectClassName} entity);\r
-#end\r
-\r
- int[] insertList(List<${myExtendedObjectClassName}> entityList);\r
- int[] updateList(List<${myExtendedObjectClassName}> entityList);\r
-#if ($table.hasOptimisticLock())\r
- int[] updateListNonstrict(List<${myExtendedObjectClassName}> entityList);\r
-#end\r
-#if (${table.hasOnlyOnePrimaryKey()})\r
- int updateByQuery(${myConditionBeanClassName} cb, ${myExtendedObjectClassName} entity);\r
-#end\r
- int[] deleteList(List<${myExtendedObjectClassName}> entityList);\r
-#if ($table.hasOptimisticLock())\r
- int[] deleteListNonstrict(List<${myExtendedObjectClassName}> entityList);\r
-#end\r
-#if (${table.hasOnlyOnePrimaryKey()})\r
- int deleteByQuery(${myConditionBeanClassName} cb);\r
-#end\r
-#else\r
-\r
-#if ($table.isAvailableNonPrimaryKeyWritable())\r
- int insert(${myExtendedObjectClassName} entity);\r
-#end\r
-#end\r
-#if ($table.isUseSequence())\r
-\r
- ${table.sequenceReturnType} selectNextVal();\r
-#end\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${myBaseEntityPackageName};\r
-\r
-#set ($myClassName = "${myBaseObjectClassName}")\r
-\r
-/**\r
- * The entity of ${table.Name}.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public class ${myClassName} implements java.io.Serializable {\r
-\r
- /** Serial version UID. (Default) */\r
- private static final long serialVersionUID = 1L;\r
-\r
- // ===================================================================================\r
- // Attribute\r
- // =========\r
-#foreach ($col in $table.Columns)\r
- \r
- /** The value of ${col.UncapitalisedJavaName}. */\r
- protected ${col.JavaNative} _${col.UncapitalisedJavaName};\r
-#end\r
-\r
- // ===================================================================================\r
- // Accessor\r
- // ========\r
-#foreach ($col in $table.Columns)\r
-\r
- /**\r
- * Get the value of ${col.UncapitalisedJavaName}.\r
- * \r
- * @return The value of ${col.UncapitalisedJavaName}. (Nullable)\r
- */\r
- public ${col.JavaNative} get${col.JavaName}() {\r
- return _${col.UncapitalisedJavaName};\r
- }\r
-\r
- /**\r
- * Set the value of ${col.UncapitalisedJavaName}.\r
- * \r
- * @param ${col.UncapitalisedJavaName} The value of ${col.UncapitalisedJavaName}. (Nullable)\r
- */\r
- public void set${col.JavaName}(${col.JavaNative} ${col.UncapitalisedJavaName}) {\r
- _${col.UncapitalisedJavaName} = ${col.UncapitalisedJavaName};\r
- }\r
-#end\r
-\r
- // ===================================================================================\r
- // Basic Override\r
- // ==============\r
-#if ($table.hasPrimaryKey())\r
-\r
- /**\r
- * ${database.OverrideComment}\r
- * If the primary-key of the other is same as this one, returns true.\r
- * \r
- * @param other Other entity.\r
- * @return Comparing result.\r
- */\r
- public boolean equals(Object other) {\r
- if (other == null) {\r
- return false;\r
- }\r
- if (!(other instanceof $myClassName)) {\r
- return false;\r
- }\r
- final $myClassName otherEntity = ($myClassName)other;\r
- #foreach ($col in $table.PrimaryKey)\r
-\r
- if (get${col.JavaName}() == null || !get${col.JavaName}().equals(otherEntity.get${col.JavaName}())) {\r
- return false;\r
- }\r
- #end\r
-\r
- return true;\r
- }\r
-\r
- /**\r
- * ${database.OverrideComment}\r
- * Calculates hash-code from primary-key.\r
- * \r
- * @return Hash-code from primary-keys.\r
- */\r
- public int hashCode() {\r
- int result = 0;\r
- #foreach ($col in $table.PrimaryKey)\r
-\r
- if (this.get${col.JavaName}() != null) {\r
- result = result + get${col.JavaName}().hashCode();\r
- }\r
- #end\r
-\r
- return result;\r
- }\r
-#else\r
-\r
- /**\r
- * ${database.OverrideComment}\r
- * If the all-column value of the other is same as this one, returns true.\r
- * \r
- * @param other Other entity. (Nullable)\r
- * @return Comparing result. If other is null, returns false.\r
- */\r
- public boolean equals(Object other) {\r
- if (other == null) {\r
- return false;\r
- }\r
- if (!(other instanceof $myClassName)) {\r
- return false;\r
- }\r
- final $myClassName otherEntity = ($myClassName)other;\r
- #foreach ($col in $table.Columns)\r
-\r
- if (get${col.JavaName}() == null || !get${col.JavaName}().equals(otherEntity.get${col.JavaName}())) {\r
- return false;\r
- }\r
- #end\r
-\r
- return true;\r
- }\r
-\r
- /**\r
- * ${database.OverrideComment}\r
- * Calculates hash-code from all-columns.\r
- * \r
- * @return Hash-code from all-columns.\r
- */\r
- public int hashCode() {\r
- int result = 0;\r
- #foreach ($col in $table.Columns)\r
-\r
- if (this.get${col.JavaName}() != null) {\r
- result = result + this.get${col.JavaName}().hashCode();\r
- }\r
- #end\r
-\r
- return result;\r
- }\r
-#end\r
-\r
- /**\r
- * ${database.OverrideComment}\r
- * \r
- * @return Column-value map-string. (NotNull)\r
- */\r
- public String toString() {\r
- final String delimiter = ",";\r
- final StringBuffer sb = new StringBuffer();\r
-#foreach ($col in $table.Columns)\r
-\r
- sb.append(delimiter).append(get${col.JavaName}());\r
-#end\r
-\r
- sb.delete(0, delimiter.length());\r
- sb.insert(0, "{").append("}");\r
- return sb.toString();\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${myDBMetaPackageName};\r
-#set ($myClassName = "${myDBMetaClassName}")\r
-\r
-import java.util.List;\r
-import java.util.Map;\r
-\r
-import ${glPackageBaseCommon}.${glEntityInterfaceName};\r
-import ${glPackageBaseCommonDBMeta}.${glDBMetaAbstractName};\r
-import ${myExtendedEntityPackageName}.${myExtendedObjectClassName};\r
-import ${glPackageBaseCommonDBMetaInfo}.*;\r
-\r
-/**\r
- * The DB meta of ${table.Name}. (Singleton)\r
- * @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public class ${myClassName} extends ${glDBMetaAbstractName} {\r
-\r
- private static final ${myClassName} _instance = new ${myClassName}();\r
- private ${myClassName}() {}\r
- public static ${myClassName} getInstance() { return _instance; }\r
-\r
- // ===================================================================================\r
- // Table Info\r
- // ==========\r
- public String getTableDbName() { return "$table.name"; }\r
- public String getTablePropertyName() { return "$table.javaBeansRulePropertyName"; }\r
- public String getTableSqlName() { return "$table.tableSqlName"; }\r
-\r
- // ===================================================================================\r
- // Column Info\r
- // ===========\r
-#foreach ($col in $table.columns)\r
-#if ($col.isVersionNo())\r
- protected ${glColumnInfoName} _column${col.javaBeansRulePropertyNameInitCap} = cci("${col.name}", "${col.javaBeansRulePropertyName}", ${col.javaNative}.class, ${col.isPrimaryKey()}, ${col.columnSizeSettingExpression}, ${col.columnDecimalDigitsSettingExpression}, OptimisticLockType.VERSION_NO);\r
-#elseif ($col.isUpdateDate())\r
- protected ${glColumnInfoName} _column${col.javaBeansRulePropertyNameInitCap} = cci("${col.name}", "${col.javaBeansRulePropertyName}", ${col.javaNative}.class, ${col.isPrimaryKey()}, ${col.columnSizeSettingExpression}, ${col.columnDecimalDigitsSettingExpression}, OptimisticLockType.UPDATE_DATE);\r
-#else\r
- protected ${glColumnInfoName} _column${col.javaBeansRulePropertyNameInitCap} = cci("${col.name}", "${col.javaBeansRulePropertyName}", ${col.javaNative}.class, ${col.isPrimaryKey()}, ${col.columnSizeSettingExpression}, ${col.columnDecimalDigitsSettingExpression});\r
-#end\r
-#end\r
-\r
-#foreach ($col in $table.columns)\r
- public ${glColumnInfoName} column${col.javaBeansRulePropertyNameInitCap}() { return _column${col.javaBeansRulePropertyNameInitCap}; }\r
-#end\r
- { initializeColumnInfoList(); }\r
-#if ($database.isMakeDBMetaStaticDefinition())\r
-\r
- // ===================================================================================\r
- // Name Definition\r
- // ===============\r
- // -----------------------------------------------------\r
- // Table\r
- // -----\r
- public static final String TABLE_DB_NAME = "$table.name";\r
- public static final String TABLE_PROPERTY_NAME = "$table.javaBeansRulePropertyName";\r
-\r
- // -----------------------------------------------------\r
- // Column DB Name\r
- // --------------\r
-#foreach ($col in $table.columns)\r
- public static final String DB_NAME_${col.name} = "$col.name";\r
-#end\r
-\r
- // -----------------------------------------------------\r
- // Column Property Name\r
- // (JavaBeansRule)\r
- // --------------------\r
-#foreach ($col in $table.columns)\r
- public static final String PROPERTY_NAME_${col.javaBeansRulePropertyName} = "$col.javaBeansRulePropertyName";\r
-#end\r
-#end\r
-\r
- // ===================================================================================\r
- // Name Map\r
- // ========\r
- public Map<String, String> getDbNamePropertyNameKeyToLowerMap() { return createDbNamePropertyNameKeyToLowerMap(); }\r
- public Map<String, String> getPropertyNameDbNameKeyToLowerMap() { return createPropertyNameDbNameKeyToLowerMap(); }\r
- protected static Map<String, String> _dbNamePropertyNameKeyToLowerMap;\r
- protected Map<String, String> createDbNamePropertyNameKeyToLowerMap() {\r
- if (_dbNamePropertyNameKeyToLowerMap == null) { _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); }\r
- return _dbNamePropertyNameKeyToLowerMap;\r
- }\r
- protected static Map<String, String> _propertyNameDbNameKeyToLowerMap;\r
- protected Map<String, String> createPropertyNameDbNameKeyToLowerMap() {\r
- if (_propertyNameDbNameKeyToLowerMap == null) { _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); }\r
- return _propertyNameDbNameKeyToLowerMap;\r
- }\r
-\r
- // ===================================================================================\r
- // Type Name\r
- // =========\r
- public String getEntityTypeName() { return "${myExtendedEntityPackageName}.${myExtendedObjectClassName}"; }\r
-#if ($isExistConditionBean)\r
- public String getConditionBeanTypeName() { return "${glPackageBaseCB}.${myConditionBeanClassName}"; }\r
-#else\r
- public String getConditionBeanTypeName() { return null; }\r
-#end\r
-#if ($isExistDao)\r
- public String getDaoTypeName() { return "${myExtendedDaoPackageName}.${myExtendedDaoClassName}"; }\r
-#else\r
- public String getDaoTypeName() { return null; }\r
-#end\r
-#if ($isExistBehavior)\r
- public String getBehaviorTypeName() { return "${myExtendedBhvPackageName}.${myExtendedBhvClassName}"; }\r
-#else\r
- public String getBehaviorTypeName() { return null; }\r
-#end\r
-\r
- // ===================================================================================\r
- // Object Type\r
- // ===========\r
- public Class<${myExtendedObjectClassName}> getEntityType() { return ${myExtendedObjectClassName}.class; }\r
-\r
- // ===================================================================================\r
- // Object Instance\r
- // ===============\r
- public ${glEntityInterfaceName} newEntity() { return newMyEntity(); }\r
- public ${myExtendedObjectClassName} newMyEntity() { return new ${myExtendedObjectClassName}(); }\r
-\r
- // ===================================================================================\r
- // Unique Info\r
- // ===========\r
- // -----------------------------------------------------\r
- // Primary Element\r
- // ---------------\r
-#if ($table.hasPrimaryKey())\r
-#if ($table.hasOnlyOnePrimaryKey())\r
- public ${glUniqueInfoName} getPrimaryUniqueInfo() { return createPrimaryUniqueInfo(column${table.primaryKeyAsOne.javaBeansRulePropertyNameInitCap}()); }\r
-#else\r
- public ${glUniqueInfoName} getPrimaryUniqueInfo() {\r
- ${glUniqueInfoName} uniqueInfo = createPrimaryUniqueInfo();\r
-#foreach ($col in $table.primaryKey)\r
- uniqueInfo.addUniqueColumnList(column${col.javaBeansRulePropertyNameInitCap}());\r
-#end\r
- return uniqueInfo;\r
- }\r
-#end\r
-#else\r
- public ${glUniqueInfoName} getPrimaryUniqueInfo() {\r
- throw new UnsupportedOperationException("The table doen not have primary key: " + getTableDbName());\r
- }\r
-#end\r
- public boolean hasPrimaryKey() { return ${table.hasPrimaryKey()}; }\r
- public boolean hasTwoOrMorePrimaryKeys() { return ${table.hasTwoOrMorePrimaryKeys()}; }\r
-\r
- // ===================================================================================\r
- // Relation Info\r
- // =============\r
- // -----------------------------------------------------\r
- // Foreign Property\r
- // ----------------\r
-#foreach ($foreignKeys in $table.foreignKeys)\r
- public ${glForeignInfoName} foreign${foreignKeys.foreignJavaBeansRulePropertyNameInitCap}() {\r
-#if ($foreignKeys.isSimpleKeyFK())\r
-#set ($column = $foreignKeys.localColumnAsOne)\r
-#set ($yourColumn = ${foreignKeys.getForeignColumnByLocalColumn(${column})})\r
- Map<${glColumnInfoName}, ${glColumnInfoName}> map = newLinkedHashMap(column${column.javaBeansRulePropertyNameInitCap}(), ${foreignKeys.foreignTableDBMetaClassName}.getInstance().column${yourColumn.javaBeansRulePropertyNameInitCap}());\r
-#else\r
- Map<${glColumnInfoName}, ${glColumnInfoName}> map = newLinkedHashMap();\r
-#foreach ($column in $foreignKeys.localColumnList)\r
-#set ($yourColumn = ${foreignKeys.getForeignColumnByLocalColumn(${column})})\r
- map.put(column${column.javaBeansRulePropertyNameInitCap}(), ${foreignKeys.foreignTableDBMetaClassName}.getInstance().column${yourColumn.javaBeansRulePropertyNameInitCap}());\r
-#end\r
-#end\r
- return cfi("${foreignKeys.foreignJavaBeansRulePropertyName}", this, ${foreignKeys.foreignTableDBMetaClassName}.getInstance(), map, ${table.resolveForeignIndex($foreignKeys)}, ${foreignKeys.isOneToOne()});\r
- }\r
-#end\r
-#foreach ($referrer in $table.referrers)\r
-#set ($genericsColumnInfoMap = "${glColumnInfoName}, ${glColumnInfoName}")\r
-#if (${referrer.isOneToOne()})\r
- public ${glForeignInfoName} foreign${referrer.referrerJavaBeansRulePropertyNameAsOneInitCap}() {\r
-#if ($referrer.isSimpleKeyFK())\r
-#set ($column = $referrer.foreignColumnAsOne)\r
-#set ($yourColumn = ${referrer.getLocalColumnByForeignColumn(${column})})\r
- Map<${glColumnInfoName}, ${glColumnInfoName}> map = newLinkedHashMap(column${column.javaBeansRulePropertyNameInitCap}(), ${referrer.referrerTableDBMetaClassName}.getInstance().column${yourColumn.javaBeansRulePropertyNameInitCap}());\r
-#else\r
- Map<${glColumnInfoName}, ${glColumnInfoName}> map = newLinkedHashMap();\r
-#foreach ($column in $referrer.foreignColumnList)\r
-#set ($yourColumn = ${referrer.getLocalColumnByForeignColumn(${column})})\r
- map.put(column${column.javaBeansRulePropertyNameInitCap}(), ${referrer.referrerTableDBMetaClassName}.getInstance().column${yourColumn.javaBeansRulePropertyNameInitCap}());\r
-#end\r
-#end\r
- return cfi("${referrer.refererJavaBeansRulePropertyNameAsOne}", this, ${referrer.referrerTableDBMetaClassName}.getInstance(), map, ${table.resolveReferrerIndexAsOne($referrer)}, ${referrer.isOneToOne()});\r
- }\r
-#end\r
-#end\r
-\r
- // -----------------------------------------------------\r
- // Referrer Property\r
- // -----------------\r
-#foreach ($referrer in $table.referrers)\r
-#if (!${referrer.isOneToOne()})\r
- public ${glReferrerInfoName} referrer${referrer.referrerJavaBeansRulePropertyNameInitCap}() {\r
-#if ($referrer.isSimpleKeyFK())\r
-#set ($column = $referrer.foreignColumnAsOne)\r
- Map<${glColumnInfoName}, ${glColumnInfoName}> map = newLinkedHashMap(column${column.javaBeansRulePropertyNameInitCap}(), ${referrer.referrerTableDBMetaClassName}.getInstance().column${referrer.getLocalColumnByForeignColumn(${column}).javaBeansRulePropertyNameInitCap}());\r
-#else\r
- Map<${glColumnInfoName}, ${glColumnInfoName}> map = newLinkedHashMap();\r
-#foreach ($column in $referrer.foreignColumnList)\r
- map.put(column${column.javaBeansRulePropertyNameInitCap}(), ${referrer.referrerTableDBMetaClassName}.getInstance().column${referrer.getLocalColumnByForeignColumn(${column}).javaBeansRulePropertyNameInitCap}());\r
-#end\r
-#end\r
- return cri("${referrer.referrerJavaBeansRulePropertyName}", this, ${referrer.referrerTableDBMetaClassName}.getInstance(), map, ${referrer.isOneToOne()});\r
- }\r
-#end\r
-#end\r
-#if ($database.isMakeFlatExpansion())\r
-\r
- // -----------------------------------------------------\r
- // Relation Trace\r
- // --------------\r
- public ${table.relationTraceClassName}RelationTrace createRelationTrace(RelationTraceFixHandler relationTraceFixHandler) {\r
- return new ${table.relationTraceClassName}RelationTrace(relationTraceFixHandler);\r
- }\r
-\r
- public ${table.relationTraceClassName}RelationTrace createRelationTrace(List<${glRelationInfoName}> relationList, List<AbstractRelationTrace> relationTraceList) {\r
- return new ${table.relationTraceClassName}RelationTrace(relationList, relationTraceList);\r
- }\r
-\r
- public static class ${table.relationTraceClassName}RelationTrace extends AbstractRelationTrace {\r
-\r
- /**\r
- * Constructor for first step.\r
- * @param relationTraceFixHandler The handler of fixed relation trace. (Nullable)\r
- */\r
- public ${table.relationTraceClassName}RelationTrace(RelationTraceFixHandler relationTraceFixHandler) {\r
- super(relationTraceFixHandler);\r
- }\r
-\r
- /**\r
- * Constructor for relation step.\r
- * @param relationList The list of relation. (NotNull)\r
- * @param relationTraceList The list of relation trace. (NotNull)\r
- */\r
- public ${table.relationTraceClassName}RelationTrace(List<${glRelationInfoName}> relationList, List<AbstractRelationTrace> relationTraceList) {\r
- super(relationList, relationTraceList);\r
- }\r
-\r
-#foreach ($foreignKeys in $table.foreignKeys)\r
- public ${foreignKeys.foreignTableDBMetaClassName}.${foreignKeys.foreignTable.relationTraceClassName}RelationTrace foreign${foreignKeys.foreignJavaBeansRulePropertyNameInitCap}() {\r
- _relationList.add(${myDBMetaClassName}.getInstance().foreign${foreignKeys.foreignJavaBeansRulePropertyNameInitCap}());\r
- return ${foreignKeys.foreignTableDBMetaClassName}.getInstance().createRelationTrace(_relationList, _relationTraceList);\r
- }\r
-#end\r
-#foreach ($referrer in $table.referrers)\r
-#if (${referrer.isOneToOne()})\r
- public ${referrer.referrerTableDBMetaClassName}.${referrer.table.relationTraceClassName}RelationTrace foreign${referrer.referrerJavaBeansRulePropertyNameAsOneInitCap}() {\r
- _relationList.add(${myDBMetaClassName}.getInstance().foreign${referrer.referrerJavaBeansRulePropertyNameAsOneInitCap}());\r
- return ${referrer.referrerTableDBMetaClassName}.getInstance().createRelationTrace(_relationList, _relationTraceList);\r
- }\r
-#end\r
-#end\r
-#foreach ($referrer in $table.referrers)\r
-#if (!${referrer.isOneToOne()})\r
- public ${referrer.referrerTableDBMetaClassName}.${referrer.table.relationTraceClassName}RelationTrace referrer${referrer.referrerJavaBeansRulePropertyNameInitCap}() {\r
- _relationList.add(${myDBMetaClassName}.getInstance().referrer${referrer.referrerJavaBeansRulePropertyNameInitCap}());\r
- return ${referrer.referrerTableDBMetaClassName}.getInstance().createRelationTrace(_relationList, _relationTraceList);\r
- }\r
-#end\r
-#end\r
-\r
-#foreach ($col in $table.columns)\r
- public RelationTrace column${col.javaBeansRulePropertyNameInitCap}() { return fixTrace(_relationList, ${myDBMetaClassName}.getInstance().column${col.javaBeansRulePropertyNameInitCap}()); }\r
-#end\r
- }\r
-#end\r
-\r
- // ===================================================================================\r
- // Various Info\r
- // ============\r
-#if ($table.isUseSequence())\r
- public boolean hasSequence() { return true; }\r
- public String getSequenceNextValSql() { return "${table.sequenceNextSql}"; }\r
-#end\r
-#if ($table.isUseVersionNo())\r
- public boolean hasVersionNo() { return true; }\r
- public ${glColumnInfoName} getVersionNoColumnInfo() { return _column${table.versionNoJavaName}; }\r
-#end\r
-#if ($table.isUseUpdateDate())\r
- public boolean hasUpdateDate() { return true; }\r
- public ${glColumnInfoName} getUpdateDateColumnInfo() { return _column${table.updateDateJavaName}; }\r
-#end\r
-#if ($table.hasAllCommonColumn())\r
- public boolean hasCommonColumn() { return true; }\r
-#end\r
-\r
- // ===================================================================================\r
- // Entity Handling\r
- // =============== \r
- // -----------------------------------------------------\r
- // Accept\r
- // ------\r
- public void acceptPrimaryKeyMap(${glEntityInterfaceName} entity, Map<String, ? extends Object> primaryKeyMap) {\r
- doAcceptPrimaryKeyMap((${myExtendedObjectClassName})entity, primaryKeyMap, _epsMap);\r
- }\r
-\r
- public void acceptPrimaryKeyMapString(${glEntityInterfaceName} entity, String primaryKeyMapString) {\r
- MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity);\r
- }\r
-\r
- public void acceptColumnValueMap(${glEntityInterfaceName} entity, Map<String, ? extends Object> columnValueMap) {\r
- doAcceptColumnValueMap((${myExtendedObjectClassName})entity, columnValueMap, _epsMap);\r
- }\r
-\r
- public void acceptColumnValueMapString(${glEntityInterfaceName} entity, String columnValueMapString) {\r
- MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity);\r
- }\r
-\r
- // -----------------------------------------------------\r
- // Extract\r
- // -------\r
- public String extractPrimaryKeyMapString(${glEntityInterfaceName} entity) { return MapStringUtil.extractPrimaryKeyMapString(entity); }\r
- public String extractPrimaryKeyMapString(${glEntityInterfaceName} entity, String startBrace, String endBrace, String delimiter, String equal) {\r
- return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, delimiter, equal);\r
- }\r
- public String extractColumnValueMapString(${glEntityInterfaceName} entity) { return MapStringUtil.extractColumnValueMapString(entity); }\r
- public String extractColumnValueMapString(${glEntityInterfaceName} entity, String startBrace, String endBrace, String delimiter, String equal) {\r
- return doExtractColumnValueMapString(entity, startBrace, endBrace, delimiter, equal);\r
- }\r
-#if ($database.isMakeDBMetaCommonColumnHandling())\r
-#if (${table.hasAllCommonColumn()})\r
-\r
- public String extractCommonColumnValueMapString(${glEntityInterfaceName} entity) {\r
- return extractCommonColumnValueMapString(entity, MAP_STRING_START_BRACE, MAP_STRING_END_BRACE, MAP_STRING_DELIMITER, MAP_STRING_EQUAL);\r
- }\r
-\r
- public String extractCommonColumnValueMapString(${glEntityInterfaceName} entity, String startBrace, String endBrace, String delimiter, String equal) {\r
- final ${myExtendedObjectClassName} myEntity = (${myExtendedObjectClassName})entity;\r
- final String mapMarkAndStartBrace = MAP_STRING_MAP_MARK + startBrace;\r
- final StringBuffer sb = new StringBuffer();\r
- #foreach ($columnName in ${database.commonColumnNameList})\r
- #set ($filteredColumnName = ${database.filterCommonColumn(${columnName})})\r
- #set ($commonColumnMap = ${database.commonColumnMap})\r
- #set ($columnType = ${commonColumnMap.get(${columnName})})\r
- #set ($javaNative = ${database.convertJavaNativeByJdbcType(${columnType})})\r
- #set ($javaName = ${database.convertJavaNameByJdbcNameAsColumn(${filteredColumnName})})\r
- #set ($targetColumnName = ${table.findTargetColumnNameByCommonColumnName(${columnName})})\r
- #set ($col = $table.getColumnByFlexibleName($columnName))\r
- #if ($col.isJavaNativeDateObject())\r
-\r
- sb.append(delimiter).append("${targetColumnName}").append(equal);\r
- sb.append((myEntity.get${javaName}() != null ? helpFormatingDate(myEntity.get${javaName}()) : ""));\r
- #else\r
-\r
- sb.append(delimiter).append("${targetColumnName}").append(equal);\r
- sb.append((myEntity.get${javaName}() != null ? myEntity.get${javaName}().toString() : ""));\r
- #end\r
- #end\r
-\r
- sb.delete(0, delimiter.length()).insert(0, mapMarkAndStartBrace).append(endBrace);\r
- return sb.toString();\r
- }\r
-#else\r
-\r
- public String extractCommonColumnValueMapString(${glEntityInterfaceName} entity) {\r
- return "map:{}";\r
- }\r
-\r
- public String extractCommonColumnValueMapString(${glEntityInterfaceName} entity, String startBrace, String endBrace, String delimiter, String equal) {\r
- return "map:" + startBrace + endBrace;\r
- }\r
-#end\r
-#end\r
-\r
- // -----------------------------------------------------\r
- // Convert\r
- // -------\r
- public List<Object> convertToColumnValueList(${glEntityInterfaceName} entity) { return newArrayList(convertToColumnValueMap(entity).values()); }\r
- public Map<String, Object> convertToColumnValueMap(${glEntityInterfaceName} entity) { return doConvertToColumnValueMap(entity); }\r
- public List<String> convertToColumnStringValueList(${glEntityInterfaceName} entity) { return newArrayList(convertToColumnStringValueMap(entity).values()); }\r
- public Map<String, String> convertToColumnStringValueMap(${glEntityInterfaceName} entity) { return doConvertToColumnStringValueMap(entity); }\r
-#if ($database.isMakeDBMetaJDBCSupport())\r
-\r
- // ===================================================================================\r
- // JDBC Support\r
- // ============\r
- public String getPreparedInsertClause() {\r
- return getPreparedInsertClause(new PreparedInsertClauseOption());\r
- }\r
-\r
- public String getPreparedInsertClause(PreparedInsertClauseOption preparedInsertClauseOption) {\r
- if (preparedInsertClauseOption.getTablePrefix() != null) {\r
- final String tablePrefix = preparedInsertClauseOption.getTablePrefix();\r
- return "insert into " + tablePrefix + "${table.name}(${table.ColumnNameCommaString}) values(${table.insertClauseValuesAsQuetionMark})";\r
- }\r
- return "insert into ${table.name}(${table.ColumnNameCommaString}) values(${table.insertClauseValuesAsQuetionMark})";\r
- }\r
-#end\r
-\r
- // ===================================================================================\r
- // Entity Property Setup\r
- // =====================\r
- // It's very INTERNAL!\r
- protected Map<String, Eps<${myExtendedObjectClassName}>> _epsMap = newHashMap();\r
- {\r
-#foreach ($column in $table.columns)\r
- setupEps(_epsMap, new Eps${column.javaName}(), column${column.javaBeansRulePropertyNameInitCap}());\r
-#end\r
- }\r
- \r
- public boolean hasEntityPropertySetupper(String propertyName) {\r
- return _epsMap.containsKey(propertyName);\r
- }\r
-\r
- public void setupEntityProperty(String propertyName, Object entity, Object value) {\r
- findEps(_epsMap, propertyName).setup((${myExtendedObjectClassName})entity, value);\r
- }\r
- \r
-#foreach ($column in $table.columns)\r
- public static class Eps${column.javaName} implements Eps<${myExtendedObjectClassName}> {\r
- public void setup(${myExtendedObjectClassName} e, Object v) { e.set${column.javaName}((${column.javaNative})v); }\r
- }\r
-#end\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${myExtendedDaoPackageName};\r
-#set ($myClassName = "${myExtendedDaoClassName}")\r
-\r
-/**\r
- * The dao interface of ${table.name}. <br />\r
- * <p>\r
- * You can implement your original methods here.\r
- * This class is NOT overrided when re-generating.\r
- * </p>\r
- * @author ${database.ClassAuthor}\r
- */${database.outputSuppressWarningsAfterLineSeparator()}\r
-public interface ${myClassName} extends ${myBaseDaoPackageName}.${myBaseDaoClassName} {\r
-}\r
+++ /dev/null
-\r
-\r
-targetdatabase = $targetDatabase\r
-\r
-##\r
-## Loop by data-model.\r
-##\r
-#foreach ($dataModel in $dataModels)\r
-\r
- ##\r
- ## Loop by database.\r
- ##\r
- #foreach ($database in $dataModel.Databases)\r
- $database.enableGenerateOutputDirectory()\r
- \r
- ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \r
- ## Initialize CustomizeDao and AdditionalForeignKey and ClassificationDeployment and IncludeQuery.\r
- ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \r
- $database.initializeCustomizeDao()\r
- $database.initializeAdditionalForeignKey()\r
- $database.initializeClassificationDeployment()\r
- $database.initializeIncludeQuery()\r
-\r
- ## *****************************************************************************************************************\r
- ## Global Paramter\r
- ## ***************\r
- ## ===================================================================================\r
- ## Language\r
- ## ========\r
- #set ($glTargetLanguage = ${database.targetLanguage})\r
-\r
- ## ===================================================================================\r
- ## Resource Directory\r
- ## ==================\r
- #set ($glResourceDirectory = ${database.resourceDirectory})\r
-\r
- ## ===================================================================================\r
- ## Extension\r
- ## =========\r
- #set ($glTemplateFileExtension = ${database.templateFileExtension})\r
- #set ($glClassFileExtension = ${database.classFileExtension})\r
-\r
- ## -----------------------------------------------------\r
- ## Prefix\r
- ## ------\r
- #set ($glProjectPrefix = ${database.projectPrefix})\r
- #set ($glBasePrefix = ${database.basePrefix})\r
- #set ($glBaseSuffixForEntity = ${database.baseSuffixForEntity})\r
-\r
- ## -----------------------------------------------------\r
- ## Dicon\r
- ## -----\r
- #set ($glDaoDiconNamespace = "${database.daoDiconNamespace}")\r
- #set ($glDBFluteDiconNamespace = "${database.daoDiconNamespace}")\r
- #set ($glDaoDiconFileName = "${database.daoDiconFileName}")\r
- #set ($glDBFluteDiconFileName = "${database.DBFluteDiconFileName}")\r
- #set ($glCreatorDiconFileName = "${database.DBFluteCreatorDiconFileName}")\r
- #set ($glCustomizerDiconFileName = "${database.DBFluteCustomizerDiconFileName}")\r
- #set ($glJdbcDiconResourceName = "${database.jdbcDiconResourceName}")\r
- #set ($glDBFluteBeansFileName = "${database.DBFluteBeansFileName}")\r
-\r
- ## -----------------------------------------------------\r
- ## Class Name\r
- ## ----------\r
- ## [Allcommon-Annotation]\r
- #set ($glOutsideSqlAnnotation = "OutsideSql")\r
-\r
- ## [Allcommon-Base-AccessContext]\r
- #set ($glAccessContextName = "${glProjectPrefix}AccessContext")\r
-\r
- ## [Allcommon-Base-Dao]\r
- #set ($glDaoReadableInterfaceName = "${glProjectPrefix}DaoReadable")\r
- #set ($glDaoWritableInterfaceName = "${glProjectPrefix}DaoWritable")\r
-\r
- ## [Allcommon-Base-Entity]\r
- #set ($glEntityInterfaceName = "${glProjectPrefix}Entity")\r
- #set ($glEntityDefinedCommonColumnInterfaceName = "${glProjectPrefix}EntityDefinedCommonColumn")\r
-\r
- ## [Allcommon-Base-BFinder]\r
- #set ($glBFinderName = "${glProjectPrefix}BFinder")\r
- \r
- ## [Allcommon-Base-CacheAbstractSelector]\r
- #set ($glCacheAbstractSelector = "${glProjectPrefix}CacheAbstractSelector")\r
- \r
- ## [Allcommon-Base-DaoSelector]\r
- #set ($glDaoSelectorInterfaceName = "${glProjectPrefix}DaoSelector")\r
- #set ($glCacheDaoSelectorName = "${glProjectPrefix}CacheDaoSelector")\r
-\r
- ## [Allcommon-Base-BehaviorSelector]\r
- #set ($glBehaviorSelectorInterfaceName = "${glProjectPrefix}BehaviorSelector")\r
- #set ($glCacheBehaviorSelectorName = "${glProjectPrefix}CacheBehaviorSelector")\r
-\r
- ## [Allcommon-Base-GenMetaData]\r
- #set ($glGenMetaDataClassName = "${glProjectPrefix}GenMetaData")\r
-\r
- ## [Allcommon-Base-InternalMapContext]\r
- #set ($glInternalMapContextName = "${glProjectPrefix}InternalMapContext")\r
-\r
- ## [Allcommon-Base-ClassificationDefinition]\r
- #set ($glClassificationDefinition = "${glProjectPrefix}ClassificationDefinition")\r
- \r
- ## [Allcommon-Base-QLog]\r
- #set ($glQLog = "${glProjectPrefix}QLog")\r
- \r
- ## [Allcommon-Base-DBFluteConfig]\r
- #set ($glDBFluteConfig = "${glProjectPrefix}DBFluteConfig")\r
-\r
- ## [Allcommon-Behavior]\r
- #set ($glBehaviorReadableAbstractName = "${glProjectPrefix}AbstractBehaviorReadable")\r
- #set ($glBehaviorWritableAbstractName = "${glProjectPrefix}AbstractBehaviorWritable")\r
- #set ($glBehaviorReadableInterfaceName = "${glProjectPrefix}BehaviorReadable")\r
- #set ($glBehaviorWritableInterfaceName = "${glProjectPrefix}BehaviorWritable")\r
-\r
- ## [Allcommon-Behavior-Batch]\r
- #set ($glTokenFileReflectionOptionName = "${glProjectPrefix}TokenFileReflectionOption")\r
- #set ($glTokenFileReflectionResultName = "${glProjectPrefix}TokenFileReflectionResult")\r
- #set ($glTokenFileReflectionFailureName = "${glProjectPrefix}TokenFileReflectionFailure")\r
- #set ($glTokenFileOutputOptionName = "${glProjectPrefix}TokenFileOutputOption")\r
- #set ($glTokenFileOutputResultName = "${glProjectPrefix}TokenFileOutputResult")\r
-\r
- ## [Allcommon-Behavior-Load]\r
- #set ($glLoadRefererOptionName = "${glProjectPrefix}LoadRefererOption")\r
- #set ($glLoadReferrerOptionName = "${glProjectPrefix}LoadReferrerOption")\r
-\r
- ## [Allcommon-Behavior-Setup]\r
- #set ($glConditionBeanSetupperName = "${glProjectPrefix}ConditionBeanSetupper")\r
- #set ($glEntityListSetupperName = "${glProjectPrefix}EntityListSetupper")\r
- #set ($glValueLabelSetupperName = "${glProjectPrefix}ValueLabelSetupper")\r
- #set ($glValueLabelBoxName = "${glProjectPrefix}ValueLabelBox")\r
-\r
- ## [Allcommon-ConditionBean]\r
- #set ($glFetchNarrowingBeanInterfaceName = "${glProjectPrefix}FetchNarrowingBean")\r
- #set ($glSimplePagingBeanName = "${glProjectPrefix}SimplePagingBean")\r
- #set ($glSimpleOrderByBeanName = "${glProjectPrefix}SimpleOrderByBean")\r
- #set ($glConditionBeanInterfaceName = "${glProjectPrefix}ConditionBean")\r
- #set ($glConditionQueryInterfaceName = "${glProjectPrefix}ConditionQuery")\r
- #set ($glOrderByBeanInterfaceName = "${glProjectPrefix}OrderByBean")\r
- #set ($glPagingBeanInterfaceName = "${glProjectPrefix}PagingBean")\r
- #set ($glSelectResourceInterfaceName = "${glProjectPrefix}SelectResource")\r
- #set ($glFetchNarrowingBeanContextName = "${glProjectPrefix}FetchNarrowingBeanContext")\r
- #set ($glMapParameterBeanInterfaceName = "${glProjectPrefix}MapParameterBean")\r
- #set ($glPagingHandlerName = "${glProjectPrefix}PagingHandler")\r
- #set ($glPagingInvokerName = "${glProjectPrefix}PagingInvoker")\r
- #set ($glPagingResultBeanName = "${glProjectPrefix}PagingResultBean")\r
- #set ($glListResultBeanName = "${glProjectPrefix}ListResultBean")\r
- #set ($glResultBeanBuilderName = "${glProjectPrefix}ResultBeanBuilder")\r
- #set ($glConditionBeanContextName = "${glProjectPrefix}ConditionBeanContext")\r
- #set ($glConditionBeanAbstractName = "${glProjectPrefix}AbstractConditionBean")\r
- #set ($glConditionQueryAbstractName = "${glProjectPrefix}AbstractConditionQuery")\r
- #set ($glConditionKeyName = "${glProjectPrefix}ConditionKey")\r
- #set ($glConditionValueName = "${glProjectPrefix}ConditionValue")\r
-\r
- ## [Allcommon-ConditionBean-Option]\r
- #set ($glConditionOptionInterfaceName = "${glProjectPrefix}ConditionOption")\r
- #set ($glConditionOptionSimpleStringName = "${glProjectPrefix}SimpleStringOption")\r
- #set ($glConditionOptionFromToName = "${glProjectPrefix}FromToOption")\r
- #set ($glConditionOptionDateFromToName = "${glProjectPrefix}DateFromToOption")\r
- #set ($glConditionOptionLikeSearchName = "${glProjectPrefix}LikeSearchOption")\r
- #set ($glConditionOptionInScopeName = "${glProjectPrefix}InScopeOption")\r
- #set ($glConditionOptionPartsSplitName = "${glProjectPrefix}SplitOptionParts")\r
- #set ($glConditionOptionPartsToUpperLowerCaseName = "${glProjectPrefix}ToUpperLowerCaseOptionParts")\r
- #set ($glConditionOptionPartsToSingleByteName = "${glProjectPrefix}ToSingleByteOptionParts")\r
- #set ($glConditionOptionPartsAgentJapaneseName = "${glProjectPrefix}JapaneseOptionPartsAgent")\r
-\r
- ## [Allcommon-ConditionBean-Grouping]\r
- #set ($glGroupingOptionName = "${glProjectPrefix}GroupingOption")\r
- #set ($glGroupingRowEndDeterminerName = "${glProjectPrefix}GroupingRowEndDeterminer")\r
- #set ($glGroupingRowResourceName = "${glProjectPrefix}GroupingRowResource")\r
- #set ($glGroupingRowSetupperName = "${glProjectPrefix}GroupingRowSetupper")\r
-\r
- ## [Allcommon-ConditionBean-Mapping]\r
- #set ($glEntityDtoMapperName = "${glProjectPrefix}EntityDtoMapper")\r
-\r
- ## [Allcommon-ConditionBean-OutsideSql]\r
- #set ($glOutsideSqlContextName = "${glProjectPrefix}OutsideSqlContext")\r
- #set ($glOutsideSqlDaoName = "${glProjectPrefix}OutsideSqlDao")\r
- #set ($glOutsideSqlOptionName = "${glProjectPrefix}OutsideSqlOption")\r
-\r
- ## [Allcommon-ConditionBean-OutsideSql-Executor]\r
- #set ($glOutsideSqlBasicExecutorName = "${glProjectPrefix}OutsideSqlBasicExecutor")\r
- #set ($glOutsideSqlCursorExecutorName = "${glProjectPrefix}OutsideSqlCursorExecutor")\r
- #set ($glOutsideSqlPagingExecutorName = "${glProjectPrefix}OutsideSqlPagingExecutor")\r
- #set ($glOutsideSqlEntityExecutorName = "${glProjectPrefix}OutsideSqlEntityExecutor")\r
-\r
- ## [Allcommon-ConditionBean-Pagenavi]\r
- #set ($glPageNumberLinkName = "${glProjectPrefix}PageNumberLink")\r
- #set ($glPageNumberLinkSetupperName = "${glProjectPrefix}PageNumberLinkSetupper")\r
- #set ($glPageGroupBeanName = "${glProjectPrefix}PageGroupBean")\r
- #set ($glPageGroupOptionName = "${glProjectPrefix}PageGroupOption")\r
- #set ($glPageRangeBeanName = "${glProjectPrefix}PageRangeBean")\r
- #set ($glPageRangeOptionName = "${glProjectPrefix}PageRangeOption")\r
-\r
- ## [Allcommon-ConditionBean-SqlClause]\r
- #set ($glSqlClauseName = "${glProjectPrefix}SqlClause")\r
- #set ($glSqlClauseInterfaceName = "${glProjectPrefix}SqlClause")\r
- #set ($glSqlClauseAbstractName = "${glProjectPrefix}AbstractSqlClause")\r
- #set ($glOrderByClauseName = "${glProjectPrefix}OrderByClause")\r
- #set ($glOrderByElementName = "${glProjectPrefix}OrderByElement")\r
- #set ($glWhereClauseSimpleFilterInterfaceName = "${glProjectPrefix}WhereClauseSimpleFilter")\r
-\r
- ## [Allcommon-DBMeta]\r
- #set ($glDBMetaInterfaceName = "${glProjectPrefix}DBMeta")\r
- #set ($glDBMetaAbstractName = "${glProjectPrefix}AbstractDBMeta")\r
- #set ($glDBMetaInstanceHandlerName = "${glProjectPrefix}DBMetaInstanceHandler")\r
-\r
- ## [Allcommon-DBMetaHierarchy]\r
- #set ($glHierarchyArrangerName = "${glProjectPrefix}HierarchyArranger")\r
- #set ($glHierarchyBasicRequestName = "${glProjectPrefix}HierarchyBasicRequest")\r
- #set ($glHierarchyRequestName = "${glProjectPrefix}HierarchyRequest")\r
- #set ($glHierarchyRequestElementName = "${glProjectPrefix}HierarchyRequestElement")\r
- #set ($glHierarchySourceColumnName = "${glProjectPrefix}HierarchySourceColumn")\r
- #set ($glHierarchySourceIteratorName = "${glProjectPrefix}HierarchySourceIterator")\r
- #set ($glHierarchySourceRowName = "${glProjectPrefix}HierarchySourceRow")\r
-\r
- ## [Allcommon-DBMetaHierarchyBasic]\r
- #set ($glHierarchySourceEntityColumnName = "${glProjectPrefix}HierarchySourceEntityColumn")\r
- #set ($glHierarchySourceEntityListIteratorName = "${glProjectPrefix}HierarchySourceEntityListIterator")\r
- #set ($glHierarchySourceEntityRowName = "${glProjectPrefix}HierarchySourceEntityRow")\r
- #set ($glHierarchySourceListIteratorName = "${glProjectPrefix}HierarchySourceListIterator")\r
- #set ($glHierarchySourceRowSetupperName = "${glProjectPrefix}HierarchySourceRowSetupper")\r
-\r
- ## [Allcommon-DBMetaInfo]\r
- #set ($glForeignInfoName = "${glProjectPrefix}ForeignInfo")\r
- #set ($glReferrerInfoName = "${glProjectPrefix}ReferrerInfo")\r
- #set ($glRefererInfoName = "${glProjectPrefix}RefererInfo")\r
- #set ($glRelationInfoName = "${glProjectPrefix}RelationInfo")\r
- #set ($glUniqueInfoName = "${glProjectPrefix}UniqueInfo")\r
- #set ($glColumnInfoName = "${glProjectPrefix}ColumnInfo")\r
-\r
- ## [Allcommon-Exception]\r
- #set ($glBindVariableCommentNotFoundPropertyException = "${glProjectPrefix}BindVariableCommentNotFoundPropertyException")\r
- #set ($glBindVariableParameterNullValueException = "${glProjectPrefix}BindVariableParameterNullValueException")\r
- #set ($glDangerousResultSizeExceptionName = "${glProjectPrefix}DangerousResultSizeException")\r
- #set ($glDangerousResultSizeException = "${glProjectPrefix}DangerousResultSizeException")\r
- #set ($glEmbeddedValueCommentNotFoundPropertyException = "${glProjectPrefix}EmbeddedValueCommentNotFoundPropertyException")\r
- #set ($glEmbeddedValueParameterNullValueException = "${glProjectPrefix}EmbeddedValueParameterNullValueException")\r
- #set ($glEndCommentNotFoundException = "${glProjectPrefix}EndCommentNotFoundException")\r
- #set ($glEntityAlreadyUpdatedException = "${glProjectPrefix}EntityAlreadyUpdatedException")\r
- #set ($glEntityAlreadyDeletedException = "${glProjectPrefix}EntityAlreadyDeletedException")\r
- #set ($glEntityDuplicatedException = "${glProjectPrefix}EntityDuplicatedException")\r
- #set ($glIfCommentConditionNotFoundException = "${glProjectPrefix}IfCommentConditionNotFoundException")\r
- #set ($glIfCommentNotBooleanResultException = "${glProjectPrefix}IfCommentNotBooleanResultException")\r
- #set ($glIfCommentWrongExpressionException = "${glProjectPrefix}IfCommentWrongExpressionException")\r
- #set ($glOutsideSqlNotFoundException = "${glProjectPrefix}OutsideSqlNotFoundException")\r
- #set ($glRequiredOptionNotFoundException = "${glProjectPrefix}RequiredOptionNotFoundException")\r
- #set ($glRecordHasOverlappedException = "${glProjectPrefix}RecordHasOverlappedException")\r
- #set ($glRecordHasAlreadyBeenDeletedException = "${glProjectPrefix}RecordHasAlreadyBeenDeletedException")\r
-\r
- ## [Allcommon-Helper]\r
- #set ($glMapListStringName = "${glProjectPrefix}MapListString")\r
- #set ($glMapListStringImplName = "${glProjectPrefix}MapListStringImpl")\r
- #set ($glMapStringBuilderName = "${glProjectPrefix}MapStringBuilder")\r
- #set ($glMapStringBuilderImplName = "${glProjectPrefix}MapStringBuilderImpl")\r
-\r
- #set ($glGeneralCharacterName = "${glProjectPrefix}GeneralCharacter")\r
- #set ($glGeneralCharacterImplName = "${glProjectPrefix}GeneralCharacterImpl")\r
-\r
- #set ($glJapaneseCharacterName = "${glProjectPrefix}JapaneseCharacter")\r
- #set ($glJapaneseCharacterImplName = "${glProjectPrefix}JapaneseCharacterImpl")\r
-\r
- #set ($glLineTokenName = "${glProjectPrefix}LineToken")\r
- #set ($glLineTokenImplName = "${glProjectPrefix}LineTokenImpl")\r
- #set ($glLineTokenizingOptionName = "${glProjectPrefix}LineTokenizingOption")\r
- #set ($glLineMakingOptionName = "${glProjectPrefix}LineMakingOption")\r
-\r
- #set ($glFileTokenName = "${glProjectPrefix}FileToken")\r
- #set ($glFileTokenImplName = "${glProjectPrefix}FileTokenImpl")\r
-\r
- #set ($glFileTokenizingOptionName = "${glProjectPrefix}FileTokenizingOption")\r
- #set ($glFileTokenizingRowResourceName = "${glProjectPrefix}FileTokenizingRowResource")\r
- #set ($glFileTokenizingCallbackName = "${glProjectPrefix}FileTokenizingCallback")\r
- #set ($glFileTokenizingHeaderInfoName = "${glProjectPrefix}FileTokenizingHeaderInfo")\r
-\r
- #set ($glFileMakingOptionName = "${glProjectPrefix}FileMakingOption")\r
- #set ($glFileMakingRowResourceName = "${glProjectPrefix}FileMakingRowResource")\r
- #set ($glFileMakingCallbackName = "${glProjectPrefix}FileMakingCallback")\r
- #set ($glFileMakingHeaderInfoName = "${glProjectPrefix}FileMakingHeaderInfo")\r
- #set ($glFileMakingSimpleFacadeName = "${glProjectPrefix}FileMakingSimpleFacade")\r
- #set ($glFileMakingSimpleFacadeImplName = "${glProjectPrefix}FileMakingSimpleFacadeImpl")\r
-\r
- #set ($glAccordingToOrderName = "${glProjectPrefix}AccordingToOrder")\r
- #set ($glAccordingToOrderOptionName = "${glProjectPrefix}AccordingToOrderOption")\r
- #set ($glAccordingToOrderIdExtractorName = "${glProjectPrefix}AccordingToOrderIdExtractor")\r
- #set ($glAccordingToOrderImplName = "${glProjectPrefix}AccordingToOrderImpl")\r
-\r
- ## [Allcommon-Interceptor]\r
- #set ($glCommonColumnSetupAbstractInterceptor = "${glProjectPrefix}CommonColumnSetupAbstractInterceptor")\r
- #set ($glCommonColumnSetupBeforeInsertInterceptor = "${glProjectPrefix}CommonColumnSetupBeforeInsertInterceptor")\r
- #set ($glCommonColumnSetupBeforeUpdateInterceptor = "${glProjectPrefix}CommonColumnSetupBeforeUpdateInterceptor")\r
- #set ($glCommonColumnSetupBeforeDeleteInterceptor = "${glProjectPrefix}CommonColumnSetupBeforeDeleteInterceptor")\r
-\r
- ## [Allcommon-JavaLike]\r
- #set ($glJavaBasic = "${glProjectPrefix}JavaBasic")\r
- #set ($glJavaCollection = "${glProjectPrefix}JavaCollection")\r
- #set ($glJavaException = "${glProjectPrefix}JavaException")\r
- #set ($glJavaReflection = "${glProjectPrefix}JavaReflection")\r
- \r
- ## [Allcommon-JDBC]\r
- #set ($glCursorHandlerName = "${glProjectPrefix}CursorHandler")\r
- #set ($glCursorFetcherName = "${glProjectPrefix}CursorFetcher")\r
- #set ($glLatestSqlProviderName = "${glProjectPrefix}LatestSqlProvider")\r
- #set ($glStatementConfig = "${glProjectPrefix}StatementConfig")\r
-\r
- ## [Allcommon-JDBC-History]\r
- #set ($glPreparedExecutionBeanName = "${glProjectPrefix}PreparedExecutionBean")\r
- #set ($glPreparedParameterElementName = "${glProjectPrefix}PreparedParameterElement")\r
- #set ($glStatementHistoryName = "${glProjectPrefix}StatementHistory")\r
- #set ($glStatementHistoryWitnessName = "${glProjectPrefix}StatementHistoryWitness")\r
- #set ($glTraceablePreparedStatementName = "${glProjectPrefix}TraceablePreparedStatement")\r
-\r
- ## [Allcommon-S2Container]\r
- #set ($glBehaviorCreator = "${glProjectPrefix}BehaviorCreator")\r
-\r
- ## [Allcommon-S2Dao]\r
- #set ($glS2DaoInterceptor = "${glProjectPrefix}S2DaoInterceptor")\r
- #set ($glDaoInterceptor = "${glProjectPrefix}S2DaoInterceptor")\r
- #set ($glS2DaoLatestSqlProvider = "${glProjectPrefix}S2DaoLatestSqlProvider")\r
- #set ($glDaoLatestSqlProvider = "${glProjectPrefix}S2DaoLatestSqlProvider")\r
- #set ($glS2DaoMetaDataExtension = "${glProjectPrefix}S2DaoMetaDataExtension")\r
- #set ($glDaoMetaDataExtension = "${glProjectPrefix}S2DaoMetaDataExtension")\r
- #set ($glS2DaoMetaDataFactoryImpl = "${glProjectPrefix}S2DaoMetaDataFactoryImpl")\r
- #set ($glDaoMetaDataFactoryImpl = "${glProjectPrefix}S2DaoMetaDataFactoryImpl")\r
- #set ($glS2BeanMetaDataFactoryImpl = "${glProjectPrefix}S2BeanMetaDataFactoryImpl")\r
- #set ($glBeanMetaDataFactoryImpl = "${glProjectPrefix}S2BeanMetaDataFactoryImpl")\r
- #set ($glS2DaoPropertyTypeFactoryBuilderExtension = "${glProjectPrefix}S2DaoPropertyTypeFactoryBuilderExtension")\r
- #set ($glDaoPropertyTypeFactoryBuilderExtension = "${glProjectPrefix}S2DaoPropertyTypeFactoryBuilderExtension")\r
- #set ($glS2DaoSelectDynamicCommand = "${glProjectPrefix}S2DaoSelectDynamicCommand")\r
- #set ($glSelectDynamicCommand = "${glProjectPrefix}S2DaoSelectDynamicCommand")\r
- #set ($glDaoStatementFactory = "${glProjectPrefix}S2DaoStatementFactory")\r
- #set ($glFetchNarrowingResultSetFactory = "${glProjectPrefix}FetchNarrowingResultSetFactory")\r
- #set ($glFetchNarrowingResultSetWrapper = "${glProjectPrefix}FetchNarrowingResultSetWrapper")\r
- #set ($glS2DaoSetting = "${glProjectPrefix}S2DaoSetting")\r
-\r
- ## [Allcommon-S2Dao-Internal]\r
- #set ($glInternalAbstractAutoStaticCommand = "${glProjectPrefix}InternalAbstractAutoStaticCommand")\r
- #set ($glInternalAbstractBatchAutoStaticCommand = "${glProjectPrefix}InternalAbstractBatchAutoStaticCommand")\r
- #set ($glInternalAbstractDynamicCommand = "${glProjectPrefix}InternalAbstractDynamicCommand")\r
- #set ($glInternalAbstractSqlCommand = "${glProjectPrefix}InternalAbstractSqlCommand")\r
- #set ($glInternalAbstractStaticCommand = "${glProjectPrefix}InternalAbstractStaticCommand")\r
- #set ($glInternalDeleteAutoStaticCommand = "${glProjectPrefix}InternalDeleteAutoStaticCommand")\r
- #set ($glInternalDeleteBatchAutoStaticCommand = "${glProjectPrefix}InternalDeleteBatchAutoStaticCommand")\r
- #set ($glInternalDeleteQueryAutoDynamicCommand = "${glProjectPrefix}InternalDeleteQueryAutoDynamicCommand")\r
- #set ($glInternalInsertAutoDynamicCommand = "${glProjectPrefix}InternalInsertAutoDynamicCommand")\r
- #set ($glInternalInsertBatchAutoStaticCommand = "${glProjectPrefix}InternalInsertBatchAutoStaticCommand")\r
- #set ($glInternalUpdateAutoDynamicCommand = "${glProjectPrefix}InternalUpdateAutoDynamicCommand")\r
- #set ($glInternalUpdateBatchAutoStaticCommand = "${glProjectPrefix}InternalUpdateBatchAutoStaticCommand")\r
- #set ($glInternalUpdateModifiedOnlyCommand = "${glProjectPrefix}InternalUpdateModifiedOnlyCommand")\r
- #set ($glInternalAbstractAutoHandler = "${glProjectPrefix}InternalAbstractAutoHandler")\r
- #set ($glInternalAbstractBatchAutoHandler = "${glProjectPrefix}InternalAbstractBatchAutoHandler")\r
- #set ($glInternalBasicHandler = "${glProjectPrefix}InternalBasicHandler")\r
- #set ($glInternalBasicSelectHandler = "${glProjectPrefix}InternalBasicSelectHandler")\r
- #set ($glInternalCommandContextHandler = "${glProjectPrefix}InternalCommandContextHandler")\r
- #set ($glInternalDeleteAutoHandler = "${glProjectPrefix}InternalDeleteAutoHandler")\r
- #set ($glInternalDeleteBatchAutoHandler = "${glProjectPrefix}InternalDeleteBatchAutoHandler")\r
- #set ($glInternalInsertAutoHandler = "${glProjectPrefix}InternalInsertAutoHandler")\r
- #set ($glInternalInsertBatchAutoHandler = "${glProjectPrefix}InternalInsertBatchAutoHandler")\r
- #set ($glInternalUpdateAutoHandler = "${glProjectPrefix}InternalUpdateAutoHandler")\r
- #set ($glInternalUpdateBatchAutoHandler = "${glProjectPrefix}InternalUpdateBatchAutoHandler")\r
- #set ($glInternalSqlLog = "${glProjectPrefix}InternalSqlLog")\r
- #set ($glInternalSqlLogRegistry = "${glProjectPrefix}InternalSqlLogRegistry")\r
- #set ($glInternalCommandContextCreator = "${glProjectPrefix}InternalCommandContextCreator")\r
- #set ($glInternalSqlParser = "${glProjectPrefix}InternalSqlParser")\r
- #set ($glInternalSqlTokenizer = "${glProjectPrefix}InternalSqlTokenizer")\r
- #set ($glInternalBindVariableUtil = "${glProjectPrefix}InternalBindVariableUtil")\r
- \r
- ## [Allcommon-Util]\r
- #set ($glSimpleAssertUtil = "${glProjectPrefix}SimpleAssertUtil")\r
- #set ($glSimpleStringUtil = "${glProjectPrefix}SimpleStringUtil")\r
- #set ($glSimpleSystemUtil = "${glProjectPrefix}SimpleSystemUtil")\r
- #set ($glValueLabelUtilName = "${glProjectPrefix}ValueLabelUtil")\r
- #set ($glTraceViewUtilName = "${glProjectPrefix}TraceViewUtil")\r
-\r
- ## ===================================================================================\r
- ## Variable\r
- ## ========\r
- #set ($glConditionBeanInitialName = "CB")\r
- #set ($glConditionQueryInitialName = "CQ")\r
- #set ($glAttachedCBArgsVariableName = "cb")\r
- #set ($glParentVariablePrefix = "_parent")\r
- #set ($glChildrenVariablePrefix = "_children")\r
-\r
- ## ===================================================================================\r
- ## Package\r
- ## =======\r
- ## [Common]\r
- #set ($glPackageBaseCommon = "${database.baseCommonPackage}")\r
- #set ($glPackageBaseCommonAnnotation = "${database.baseCommonPackage}.annotation")\r
- #set ($glPackageBaseCommonBhv = "${database.baseCommonPackage}.bhv")\r
- #set ($glPackageBaseCommonBhvBatch = "${database.baseCommonPackage}.bhv.batch")\r
- #set ($glPackageBaseCommonBhvLoad = "${database.baseCommonPackage}.bhv.load")\r
- #set ($glPackageBaseCommonBhvSetup = "${database.baseCommonPackage}.bhv.setup")\r
- #set ($glPackageBaseCommonCBean = "${database.baseCommonPackage}.cbean")\r
- #set ($glPackageBaseCommonCKey = "${database.baseCommonPackage}.cbean.ckey")\r
- #set ($glPackageBaseCommonCBeanMapping = "${database.baseCommonPackage}.cbean.mapping")\r
- #set ($glPackageBaseCommonCBeanGrouping = "${database.baseCommonPackage}.cbean.grouping")\r
- #set ($glPackageBaseCommonCBeanOutsidesql = "${database.baseCommonPackage}.cbean.outsidesql")\r
- #set ($glPackageBaseCommonCBeanOutsidesqlExecutor = "${database.baseCommonPackage}.cbean.outsidesql.executor")\r
- #set ($glPackageBaseCommonCBeanPagenavi = "${database.baseCommonPackage}.cbean.pagenavi")\r
- #set ($glPackageBaseCommonCBeanPagenaviGroup = "${database.baseCommonPackage}.cbean.pagenavi.group")\r
- #set ($glPackageBaseCommonCBeanPagenaviRange = "${database.baseCommonPackage}.cbean.pagenavi.range")\r
- #set ($glPackageBaseCommonSqlClause = "${database.baseCommonPackage}.cbean.sqlclause")\r
- #set ($glPackageBaseCommonCValue = "${database.baseCommonPackage}.cbean.cvalue")\r
- #set ($glPackageBaseCommonCOption = "${database.baseCommonPackage}.cbean.coption")\r
- #set ($glPackageBaseCommonCOptionParts = "${database.baseCommonPackage}.cbean.coption.parts")\r
- #set ($glPackageBaseCommonCOptionPartsLocal = "${database.baseCommonPackage}.cbean.coption.parts.local")\r
- #set ($glPackageBaseCommonDBMeta = "${database.baseCommonPackage}.dbmeta")\r
- #set ($glPackageBaseCommonDBMetaHierarchy = "${database.baseCommonPackage}.dbmeta.hierarchy")\r
- #set ($glPackageBaseCommonDBMetaHierarchyBasic = "${database.baseCommonPackage}.dbmeta.hierarchy.basic")\r
- #set ($glPackageBaseCommonDBMetaInfo = "${database.baseCommonPackage}.dbmeta.info")\r
- #set ($glPackageBaseCommonException = "${database.baseCommonPackage}.exception")\r
- #set ($glPackageBaseCommonHelper = "${database.baseCommonPackage}.helper")\r
- #set ($glPackageBaseCommonHelperCharacter = "${database.baseCommonPackage}.helper.character")\r
- #set ($glPackageBaseCommonHelperCharacterImpl = "${database.baseCommonPackage}.helper.character.impl")\r
- #set ($glPackageBaseCommonHelperCollectionOrder = "${database.baseCommonPackage}.helper.collection.order")\r
- #set ($glPackageBaseCommonHelperCollectionOrderImpl = "${database.baseCommonPackage}.helper.collection.order.impl")\r
- #set ($glPackageBaseCommonHelperToken = "${database.baseCommonPackage}.helper.token")\r
- #set ($glPackageBaseCommonHelperTokenLine = "${database.baseCommonPackage}.helper.token.line")\r
- #set ($glPackageBaseCommonHelperTokenLineImpl = "${database.baseCommonPackage}.helper.token.line.impl")\r
- #set ($glPackageBaseCommonHelperTokenFile = "${database.baseCommonPackage}.helper.token.file")\r
- #set ($glPackageBaseCommonHelperTokenFileImpl = "${database.baseCommonPackage}.helper.token.file.impl")\r
-\r
- #set ($glPackageBaseCommonInterceptor = "${database.baseCommonPackage}.interceptor")\r
- #set ($glPackageBaseCommonJavaLike = "${database.baseCommonPackage}.javalike")\r
- #set ($glPackageBaseCommonJdbc = "${database.baseCommonPackage}.jdbc")\r
- #set ($glPackageBaseCommonJdbcHistory = "${database.baseCommonPackage}.jdbc.history")\r
- #set ($glPackageBaseCommonS2Container = "${database.baseCommonPackage}.s2container")\r
- #set ($glPackageBaseCommonS2Dao = "${database.baseCommonPackage}.s2dao")\r
- #set ($glPackageBaseCommonS2DaoInternal = "${database.baseCommonPackage}.s2dao.internal")\r
- #set ($glPackageBaseCommonS2DaoInternalSqlCommand = "${database.baseCommonPackage}.s2dao.internal.sqlcommand")\r
- #set ($glPackageBaseCommonS2DaoInternalSqlHandler = "${database.baseCommonPackage}.s2dao.internal.sqlhandler")\r
- #set ($glPackageBaseCommonS2DaoInternalSqlLog = "${database.baseCommonPackage}.s2dao.internal.sqllog")\r
- #set ($glPackageBaseCommonS2DaoInternalSqlParser = "${database.baseCommonPackage}.s2dao.internal.sqlparser")\r
- #set ($glPackageBaseCommonS2DaoInternalUtil = "${database.baseCommonPackage}.s2dao.internal.util")\r
- #set ($glPackageBaseCommonUtil = "${database.baseCommonPackage}.util")\r
-\r
- #if ($database.isTargetLanguageCSharp())\r
- ## [Common]\r
- #set ($glPackageBaseCommon = "${database.baseCommonPackage}")\r
- #set ($glPackageBaseCommonAnnotation = "${database.baseCommonPackage}.Annotation")\r
- #set ($glPackageBaseCommonBhv = "${database.baseCommonPackage}.Bhv")\r
- #set ($glPackageBaseCommonBhvBatch = "${database.baseCommonPackage}.Bhv.Batch")\r
- #set ($glPackageBaseCommonBhvLoad = "${database.baseCommonPackage}.Bhv.Load")\r
- #set ($glPackageBaseCommonBhvSetup = "${database.baseCommonPackage}.Bhv.Setup")\r
- #set ($glPackageBaseCommonCBean = "${database.baseCommonPackage}.CBean")\r
- #set ($glPackageBaseCommonCKey = "${database.baseCommonPackage}.CBean.CKey")\r
- #set ($glPackageBaseCommonCBeanMapping = "${database.baseCommonPackage}.CBean.Mapping")\r
- #set ($glPackageBaseCommonCBeanGrouping = "${database.baseCommonPackage}.CBean.Grouping")\r
- #set ($glPackageBaseCommonCBeanOutsidesql = "${database.baseCommonPackage}.CBean.OutsideSql")\r
- #set ($glPackageBaseCommonCBeanOutsidesqlExecutor = "${database.baseCommonPackage}.CBean.OutsideSql.Executor")\r
- #set ($glPackageBaseCommonCBeanPagenavi = "${database.baseCommonPackage}.CBean.PageNavi")\r
- #set ($glPackageBaseCommonCBeanPagenaviGroup = "${database.baseCommonPackage}.CBean.PageNavi.Group")\r
- #set ($glPackageBaseCommonCBeanPagenaviRange = "${database.baseCommonPackage}.CBean.PageNavi.Range")\r
- #set ($glPackageBaseCommonSqlClause = "${database.baseCommonPackage}.CBean.SClause")\r
- #set ($glPackageBaseCommonCValue = "${database.baseCommonPackage}.CBean.CValue")\r
- #set ($glPackageBaseCommonCOption = "${database.baseCommonPackage}.CBean.COption")\r
- #set ($glPackageBaseCommonCOptionParts = "${database.baseCommonPackage}.CBean.COption.Parts")\r
- #set ($glPackageBaseCommonCOptionPartsLocal = "${database.baseCommonPackage}.CBean.COption.Parts.Local")\r
- #set ($glPackageBaseCommonDBMeta = "${database.baseCommonPackage}.Dbm")\r
- #set ($glPackageBaseCommonDBMetaHierarchy = "${database.baseCommonPackage}.Dbm.Hierarchy")\r
- #set ($glPackageBaseCommonDBMetaHierarchyBasic = "${database.baseCommonPackage}.Dbm.Hierarchy.Basic")\r
- #set ($glPackageBaseCommonDBMetaInfo = "${database.baseCommonPackage}.Dbm.Info")\r
- #set ($glPackageBaseCommonException = "${database.baseCommonPackage}.Exp")\r
- #set ($glPackageBaseCommonHelper = "${database.baseCommonPackage}.Helper")\r
- #set ($glPackageBaseCommonHelperCharacter = "${database.baseCommonPackage}.Helper.Character")\r
- #set ($glPackageBaseCommonHelperCharacterImpl = "${database.baseCommonPackage}.Helper.Character.Impl")\r
- #set ($glPackageBaseCommonHelperCollectionOrder = "${database.baseCommonPackage}.Helper.Collection.Order")\r
- #set ($glPackageBaseCommonHelperCollectionOrderImpl = "${database.baseCommonPackage}.Helper.Collection.Order.Impl")\r
- #set ($glPackageBaseCommonHelperToken = "${database.baseCommonPackage}.Helper.Token")\r
- #set ($glPackageBaseCommonHelperTokenLine = "${database.baseCommonPackage}.Helper.Token.Line")\r
- #set ($glPackageBaseCommonHelperTokenLineImpl = "${database.baseCommonPackage}.Helper.Token.Line.Impl")\r
- #set ($glPackageBaseCommonHelperTokenFile = "${database.baseCommonPackage}.Helper.Token.File")\r
- #set ($glPackageBaseCommonHelperTokenFileImpl = "${database.baseCommonPackage}.Helper.Token.File.Impl")\r
- #set ($glPackageBaseCommonInterceptor = "${database.baseCommonPackage}.Interceptor")\r
- #set ($glPackageBaseCommonJavaLike = "${database.baseCommonPackage}.JavaLike")\r
- #set ($glPackageBaseCommonJdbc = "${database.baseCommonPackage}.Ado")\r
- #set ($glPackageBaseCommonJdbcHistory = "${database.baseCommonPackage}.Ado.History")\r
- #set ($glPackageBaseCommonS2Container = "${database.baseCommonPackage}.S2Container")\r
- #set ($glPackageBaseCommonS2Dao = "${database.baseCommonPackage}.S2Dao")\r
- #set ($glPackageBaseCommonS2DaoInternalSqlParser = "${database.baseCommonPackage}.S2Dao.Internal.SqlParser")\r
- #set ($glPackageBaseCommonS2DaoInternalUtil = "${database.baseCommonPackage}.S2Dao.Internal.Util")\r
- #set ($glPackageBaseCommonUtil = "${database.baseCommonPackage}.Util")\r
- #end\r
-\r
- ## [Main]\r
- #set ($glPackageBaseBhv = "${database.baseBehaviorPackage}")\r
- #set ($glPackageBaseDao = "${database.baseDaoPackage}" )\r
- #set ($glPackageBaseCustomizeDao = "${database.baseDaoPackage}.customize" )\r
- #set ($glPackageBaseEntity = "${database.baseEntityPackage}")\r
- #set ($glPackageBaseCustomizeEntity = "${database.baseEntityPackage}.customize" )\r
- #set ($glPackageExtendedBhv = "${database.extendedBehaviorPackage}")\r
- #set ($glPackageExtendedDao = "${database.extendedDaoPackage}")\r
- #set ($glPackageExtendedCustomizeDao = "${database.extendedDaoPackage}.customize" )\r
- #set ($glPackageExtendedEntity = "${database.extendedEntityPackage}")\r
- #set ($glPackageExtendedCustomizeEntity = "${database.extendedEntityPackage}.customize" )\r
- #set ($glPackageBaseCB = "${database.conditionBeanPackage}.bs")\r
- #set ($glPackageCB = "${database.conditionBeanPackage}")\r
- #set ($glPackageBaseCQ = "${database.conditionBeanPackage}.cq.bs")\r
- #set ($glPackageCQ = "${database.conditionBeanPackage}.cq")\r
- #set ($glPackageCIQ = "${database.conditionBeanPackage}.cq.ciq")\r
- #set ($glPackageNss = "${database.conditionBeanPackage}.nss")\r
- #set ($glPackageBaseDBMeta = "${glPackageBaseEntity}.dbmeta")\r
- #set ($glPackageBaseCustomizeDBMeta = "${glPackageBaseCustomizeEntity}.dbmeta")\r
- #set ($glPackageBaseSqlParameterBean = "${database.SqlParameterBeanPackage}.bsparam")\r
- #set ($glPackageExtendedSqlParameterBean = "${database.SqlParameterBeanPackage}.exparam")\r
- #set ($glPackageArgumentBean = "${database.ArgumentBeanPackage}")\r
-\r
- #if ($database.isTargetLanguageCSharp())\r
- #set ($glPackageBaseBhv = "${database.baseBehaviorPackage}")\r
- #set ($glPackageBaseDao = "${database.baseDaoPackage}" )\r
- #set ($glPackageBaseCustomizeDao = "${database.baseDaoPackage}.Customize" )\r
- #set ($glPackageBaseEntity = "${database.baseEntityPackage}")\r
- #set ($glPackageBaseCustomizeEntity = "${database.baseEntityPackage}.Customize" )\r
- #set ($glPackageExtendedBhv = "${database.extendedBehaviorPackage}")\r
- #set ($glPackageExtendedDao = "${database.extendedDaoPackage}")\r
- #set ($glPackageExtendedCustomizeDao = "${database.extendedDaoPackage}.Customize" )\r
- #set ($glPackageExtendedEntity = "${database.extendedEntityPackage}")\r
- #set ($glPackageExtendedCustomizeEntity = "${database.extendedEntityPackage}.Customize" )\r
- #set ($glPackageBaseCB = "${database.conditionBeanPackage}.BS")\r
- #set ($glPackageCB = "${database.conditionBeanPackage}")\r
- #set ($glPackageBaseCQ = "${database.conditionBeanPackage}.CQ.BS")\r
- #set ($glPackageCQ = "${database.conditionBeanPackage}.CQ")\r
- #set ($glPackageCIQ = "${database.conditionBeanPackage}.CQ.Ciq")\r
- #set ($glPackageNss = "${database.conditionBeanPackage}.Nss")\r
- #set ($glPackageBaseDBMeta = "${glPackageBaseEntity}.Dbm")\r
- #set ($glPackageBaseCustomizeDBMeta = "${glPackageBaseCustomizeEntity}.Dbm")\r
- #set ($glPackageBaseSqlParameterBean = "${database.SqlParameterBeanPackage}.BsParam")\r
- #set ($glPackageExtendedSqlParameterBean = "${database.SqlParameterBeanPackage}.ExParam")\r
- #set ($glPackageArgumentBean = "${database.ArgumentBeanPackage}")\r
- #end\r
-\r
- ## *****************************************************************************************************************\r
- ## Parsing\r
- ## *******\r
- ## ===================================================================================\r
- ## S2JDBC Entity\r
- ## =============\r
- #if ($database.hasS2jdbcDefinition() && $database.isTargetLanguageJava())\r
- $database.debug("parseS2jdbcEntity() {")\r
- #set ($myBaseEntityPackageName = "${database.s2jdbcBaseEntityPackage}")\r
- #set ($myExtendedEntityPackageName = "${database.s2jdbcExtendedEntityPackage}")\r
-\r
- #set ($path = $strings.getPackageAsPath(${myBaseEntityPackageName}))\r
- $database.makeDirectory($path)\r
- \r
- #set ($path = $strings.getPackageAsPath(${myExtendedEntityPackageName}))\r
- $database.makeDirectory($path)\r
-\r
- #foreach ($table in $database.tables)\r
- #set ($myBaseObjectClassName = "${database.s2jdbcBaseEntityPrefix}${table.javaName}${database.s2jdbcBaseEntitySuffix}")\r
- #set ($myExtendedObjectClassName = "${table.javaName}")\r
-\r
- $database.debug(" parse('${myExtendedObjectClassName}')")\r
- \r
- #set ( $path = "${strings.getPackageAsPath(${myBaseEntityPackageName})}${myBaseObjectClassName}.${glClassFileExtension}" )\r
- $generator.parse("om/${glResourceDirectory}/other/s2jdbc/entity/S2jdbcBaseEntity.${glTemplateFileExtension}", $path, "table", $table)\r
-\r
- #if (!$database.isStopGenerateExtendedEntity())\r
- #set ( $path = "${strings.getPackageAsPath(${myExtendedEntityPackageName})}${myExtendedObjectClassName}.${glClassFileExtension}" )\r
- #if (!$files.file(${generator.OutputPath},$path).exists())\r
- $generator.parse("om/${glResourceDirectory}/other/s2jdbc/entity/S2jdbcExtendedEntity.${glTemplateFileExtension}", $path, "table", $table)\r
- #end\r
- #end\r
-\r
- #end\r
- $database.debug("}")\r
- #end\r
- #end\r
-#end\r
-\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageArgumentBean};\r
-\r
-#set ($myClassName = "${myArgumentBeanClassName}")\r
-\r
-/**\r
- * The argument-bean of ${myArgumentBeanName}.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} {\r
-\r
- // =====================================================================================\r
- // Static Definition\r
- // =================\r
-#foreach ($propertyName in $propertyDefinitionMap.keySet())\r
-\r
- /// <summary>The java name of ${propertyName}</summary>\r
- public static final String JAVA_NAME_OF_${database.initCap($propertyName)} = "${database.initCap($propertyName)}";\r
-#end\r
-\r
-#foreach ($propertyName in $propertyDefinitionMap.keySet())\r
-\r
- /// <summary>The property name of ${propertyName}</summary>\r
- public static final String PROPERTY_NAME_OF_${database.initCap($propertyName)} = "${propertyName}";\r
-#end\r
-\r
- // =====================================================================================\r
- // Attribute\r
- // =========\r
-#foreach ($propertyName in $propertyDefinitionMap.keySet())\r
- #set ($propertyJavaNative = $database.getArgumentBeanPropertyType($myArgumentBeanName, $propertyName))\r
-\r
- /// <summary>The value of ${propertyName}.</summary>\r
- protected ${propertyJavaNative} _${propertyName};\r
-\r
- /// <summary>Has the setter of ${col.UncapitalisedJavaName} been invoked?</summary>\r
- protected boolean _isSetterInvoked${database.initCap($propertyName)};\r
-#end\r
-\r
- // =====================================================================================\r
- // Constructor\r
- // ===========\r
- /// <summary>\r
- /// Constructor.\r
- /// </summary>\r
- /**\r
- * Constructor.\r
- */\r
- public ${myClassName}() {\r
- }\r
-\r
- // =====================================================================================\r
- // Getter Setter\r
- // =============\r
-#foreach ($propertyName in $propertyDefinitionMap.keySet())\r
- #set ($propertyJavaNative = $database.getArgumentBeanPropertyType($myArgumentBeanName, $propertyName))\r
-\r
- /**\r
- * Get the value of ${propertyName}.\r
- * \r
- * @return The value of ${propertyName}.\r
- */\r
- public ${propertyJavaNative} get${database.initCap($propertyName)}() {\r
- return _${propertyName};\r
- set { _isSetterInvoked${database.initCap($propertyName)} = true; _${propertyName} = value; }\r
- }\r
-\r
- /**\r
- * Set the value of ${propertyName}.\r
- * \r
- * @param value The value of ${propertyName}.\r
- */\r
- public ${propertyJavaNative} set${database.initCap($propertyName)}(${propertyJavaNative} value) {\r
- _isSetterInvoked${database.initCap($propertyName)} = true;\r
- _${propertyName} = value;\r
- }\r
-#end\r
-\r
- // =====================================================================================\r
- // Invoking Determination\r
- // ======================\r
-#foreach ($propertyName in $propertyDefinitionMap.keySet())\r
- #set ($propertyJavaNative = $database.getArgumentBeanPropertyType($myArgumentBeanName, $propertyName))\r
-\r
- /**\r
- * Has the setter of ${propertyName} been invoked?\r
- * \r
- * @return Determination.\r
- */\r
- public boolean isSetterInvoked${database.initCap($propertyName)}() {\r
- return _isSetterInvoked${database.initCap($propertyName)};\r
- }\r
-#end\r
-\r
-#if (${database.isAvailableSqlParameterBeanGeneration()})\r
-\r
- // =====================================================================================\r
- // Prepared SqlParameter\r
- // =====================\r
- #foreach ($sqlParameterName in $database.getArgumentBeanRelatedSqlParameterSqlParameterNameList($myArgumentBeanName))\r
-\r
- /// <summary>\r
- /// Get prepared parameter bean of ${sqlParameterName}.\r
- /// </summary>\r
- public ${glPackageExtendedSqlParameterBean}.${sqlParameterName} generatePreparedSqlParameter${sqlParameterName}() {\r
- final ${glPackageExtendedSqlParameterBean}.${sqlParameterName} pmb = new ${glPackageExtendedSqlParameterBean}.${sqlParameterName}();\r
- #foreach ($propertyName in $propertyDefinitionMap.keySet())\r
- #set ($propertyJavaNative = $database.getArgumentBeanPropertyType($myArgumentBeanName, $propertyName))\r
- #if ($database.isSqlParameterBeanHaveTheProperty($sqlParameterName, $propertyName))\r
-\r
- pmb.set${database.initCap($propertyName)}(get${database.initCap($propertyName)});\r
- #end\r
- #end\r
-\r
- return pmb;\r
- }\r
- #end\r
-#end\r
-\r
- // =====================================================================================\r
- // Basic Override Method\r
- // =====================\r
- /**\r
- * ${database.OverrideComment}\r
- * \r
- * @return Property-string. (NotNull)\r
- */\r
- public override String ToString() {\r
- StringBuffer sb = new StringBuffer();\r
-#foreach ($propertyName in $propertyDefinitionMap.keySet())\r
- #set ($propertyJavaNative = $database.getArgumentBeanPropertyType($myArgumentBeanName, $propertyName))\r
-\r
- sb.append(" ${propertyName}=").append(this.${database.initCap($propertyName)});\r
-#end\r
-\r
- return sb.toString();\r
- }\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageBaseSqlParameterBean};\r
-\r
-#set ($myClassName = "${myBaseSqlParameterClassName}")\r
-\r
-/**\r
- * The sql-parametaer-bean of ${mySqlParameterBeanName}.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} {\r
-\r
- // =====================================================================================\r
- // Static Definition\r
- // =================\r
-#foreach ($propertyName in $propertyDefinitionMap.keySet())\r
-\r
- /// <summary>The java name of ${propertyName}</summary>\r
- public static final String JAVA_NAME_OF_${database.initCap($propertyName)} = "${database.initCap($propertyName)}";\r
-#end\r
-\r
-#foreach ($propertyName in $propertyDefinitionMap.keySet())\r
-\r
- /// <summary>The property name of ${propertyName}</summary>\r
- public static final String PROPERTY_NAME_OF_${database.initCap($propertyName)} = "${propertyName}";\r
-#end\r
-\r
- // =====================================================================================\r
- // Attribute\r
- // =========\r
-#foreach ($propertyName in $propertyDefinitionMap.keySet())\r
- #set ($propertyJavaNative = $database.getSqlParameterBeanPropertyType($mySqlParameterBeanName, $propertyName))\r
-\r
- /// <summary>The value of ${propertyName}.</summary>\r
- protected ${propertyJavaNative} _${propertyName};\r
-\r
- /// <summary>Has the setter of ${col.UncapitalisedJavaName} been invoked?</summary>\r
- protected boolean _isSetterInvoked${database.initCap($propertyName)};\r
-#end\r
-\r
- // =====================================================================================\r
- // Constructor\r
- // ===========\r
- /// <summary>\r
- /// Constructor.\r
- /// </summary>\r
- /**\r
- * Constructor.\r
- */\r
- public ${myClassName}() {\r
- }\r
-\r
- // =====================================================================================\r
- // Getter Setter\r
- // =============\r
-#foreach ($propertyName in $propertyDefinitionMap.keySet())\r
- #set ($propertyJavaNative = $database.getSqlParameterBeanPropertyType($mySqlParameterBeanName, $propertyName))\r
-\r
- /**\r
- * Get the value of ${propertyName}.\r
- * \r
- * @return The value of ${propertyName}.\r
- */\r
- public ${propertyJavaNative} get${database.initCap($propertyName)}() {\r
- return _${propertyName};\r
- set { _isSetterInvoked${database.initCap($propertyName)} = true; _${propertyName} = value; }\r
- }\r
-\r
- /**\r
- * Set the value of ${propertyName}.\r
- * \r
- * @param value The value of ${propertyName}.\r
- */\r
- public ${propertyJavaNative} set${database.initCap($propertyName)}(${propertyJavaNative} value) {\r
- _isSetterInvoked${database.initCap($propertyName)} = true;\r
- _${propertyName} = value;\r
- }\r
-#end\r
-\r
- // =====================================================================================\r
- // Invoking Determination\r
- // ======================\r
-#foreach ($propertyName in $propertyDefinitionMap.keySet())\r
- #set ($propertyJavaNative = $database.getSqlParameterBeanPropertyType($mySqlParameterBeanName, $propertyName))\r
-\r
- /**\r
- * Has the setter of ${propertyName} been invoked?\r
- * \r
- * @return Determination.\r
- */\r
- public boolean isSetterInvoked${database.initCap($propertyName)}() {\r
- return _isSetterInvoked${database.initCap($propertyName)};\r
- }\r
-#end\r
-\r
- // =====================================================================================\r
- // Basic Override Method\r
- // =====================\r
- /**\r
- * ${database.OverrideComment}\r
- * \r
- * @return Property-string. (NotNull)\r
- */\r
- public String toString() {\r
- StringBuffer sb = new StringBuffer();\r
-#foreach ($propertyName in $propertyDefinitionMap.keySet())\r
- #set ($propertyJavaNative = $database.getSqlParameterBeanPropertyType($mySqlParameterBeanName, $propertyName))\r
-\r
- sb.append(" ${propertyName}=").append(this.${database.initCap($propertyName)});\r
-#end\r
-\r
- return sb.toString();\r
- }\r
- }\r
-}\r
+++ /dev/null
-${database.allClassCopyright}package ${glPackageExtendedSqlParameterBean};\r
-\r
-#set ($myClassName = "${myExtendedSqlParameterClassName}")\r
-\r
-/**\r
- * The sql-parameter-bean of ${mySqlParameterBeanName}.\r
- * \r
- * @author ${database.ClassAuthor}\r
- */\r
-public class ${myClassName} extends ${glPackageBaseSqlParameterBean}.${myBaseSqlParameterClassName} {\r
-}\r
+++ /dev/null
-\r
-\r
-# ========================================================================================\r
-# [./doc]\r
-# =======\r
-\r
-It is the directory that save velocity template for document task.\r
-\r
-\r
- [./doc/Control.vm] : Velocity template of main.\r
- [./doc/html/datamodel.vm] : Velocity template of data model as html.\r
- [./doc/html/table.vm] : Velocity template of table list as html.\r
-\r
-\r
-\r
-\r
-\r
-\r
-# ========================================================================================\r
-# [./om]\r
-# ======\r
-\r
-It is the directory that save velocity template for om task. (VERY IMPORTANT)\r
-This directory see [./sql].\r
-\r
-\r