You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by gb...@apache.org on 2005/05/15 10:25:09 UTC
svn commit: r170206 - in
/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper: ./
Configuration/ResultMapping/ Test/ Test/Domain/ Test/Maps/Access/OleDb/
Test/Maps/MSSQL/Odbc/ Test/Maps/MSSQL/OleDb/ Test/Maps/MSSQL/SqlClient/
Test/Maps/MySql/ByteFx/ Test/Maps/MySql/MySql/ Test/Maps/Oracle/ODP/
Test/Maps/Oracle/OracleClient/ Test/NUnit/SqlMapTests/ Test/bin/Debug/
Author: gbayon
Date: Sun May 15 01:25:07 2005
New Revision: 170206
URL: http://svn.apache.org/viewcvs?rev=170206&view=rev
Log:
- Updated discriminator to follow Java usage (need to update doc)
Added:
incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/CustomInheritance.cs
Removed:
incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/MyFormula.cs
incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/Configuration/ResultMapping/DefaultFormula.cs
incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/Configuration/ResultMapping/IDiscriminatorFormula.cs
Modified:
incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.csproj
incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Access/OleDb/Document.xml
incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/Odbc/Document.xml
incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/OleDb/document.xml
incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/Document.xml
incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MySql/ByteFx/Document.xml
incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MySql/MySql/Document.xml
incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Oracle/ODP/Document.xml
incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Oracle/OracleClient/Document.xml
incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/InheritanceTest.cs
incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/bin/Debug/IBatisNet.DataMapper.Test.dll.config
incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/Configuration/ResultMapping/Discriminator.cs
incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/Configuration/ResultMapping/ResultMap.cs
incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/Configuration/ResultMapping/ResultProperty.cs
incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/IBatisNet.DataMapper.csproj
Added: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/CustomInheritance.cs
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/CustomInheritance.cs?rev=170206&view=auto
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/CustomInheritance.cs (added)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/CustomInheritance.cs Sun May 15 01:25:07 2005
@@ -0,0 +1,47 @@
+using System;
+
+using IBatisNet.DataMapper.TypeHandlers;
+
+namespace IBatisNet.DataMapper.Test.Domain
+{
+ /// <summary>
+ /// Description résumée de CustomInheritance.
+ /// </summary>
+ public class CustomInheritance : ITypeHandlerCallback
+ {
+
+ #region ITypeHandlerCallback members
+
+ public object GetNullValue(string nullValue)
+ {
+ throw new NotImplementedException();
+ }
+
+ public object GetResult(IResultGetter getter)
+ {
+ string type = getter.Value.ToString();
+
+ if (type=="Monograph" || type=="Book")
+ {
+ return "Book";
+ }
+ else if (type=="Tabloid" || type=="Broadsheet" || type=="Newspaper")
+ {
+
+ return "Newspaper";
+ }
+ else
+ {
+ return "Document";
+ }
+
+ }
+
+ public void SetParameter(IParameterSetter setter, object parameter)
+ {
+ throw new NotImplementedException();
+ }
+
+ #endregion
+ }
+}
Modified: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.csproj
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.csproj?rev=170206&r1=170205&r2=170206&view=diff
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.csproj (original)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.csproj Sun May 15 01:25:07 2005
@@ -208,6 +208,11 @@
BuildAction = "Compile"
/>
<File
+ RelPath = "Domain\CustomInheritance.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
RelPath = "Domain\Document.cs"
SubType = "Code"
BuildAction = "Compile"
@@ -234,11 +239,6 @@
/>
<File
RelPath = "Domain\LineItemCollection.cs"
- SubType = "Code"
- BuildAction = "Compile"
- />
- <File
- RelPath = "Domain\MyFormula.cs"
SubType = "Code"
BuildAction = "Compile"
/>
Modified: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Access/OleDb/Document.xml
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Access/OleDb/Document.xml?rev=170206&r1=170205&r2=170206&view=diff
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Access/OleDb/Document.xml (original)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Access/OleDb/Document.xml Sun May 15 01:25:07 2005
@@ -7,7 +7,6 @@
<typeAlias alias="Book" type="IBatisNet.DataMapper.Test.Domain.Book, IBatisNet.DataMapper.Test" />
<typeAlias alias="Newspaper" type="IBatisNet.DataMapper.Test.Domain.Newspaper, IBatisNet.DataMapper.Test" />
<typeAlias alias="DocumentCollection" type="IBatisNet.DataMapper.Test.Domain.DocumentCollection, IBatisNet.DataMapper.Test" />
- <typeAlias alias="MyFormula" type="IBatisNet.DataMapper.Test.Domain.MyFormula, IBatisNet.DataMapper.Test" />
</alias>
<resultMaps>
@@ -19,13 +18,13 @@
<subMap value="Newspaper" resultMapping="newspaper" />
</resultMap>
- <resultMap id="document-custom-formula" class="Document">
+ <!-- <resultMap id="document-custom-formula" class="Document">
<result property="Id" column="Document_ID"/>
<result property="Title" column="Document_Title"/>
<discriminator formula="MyFormula" />
<subMap value="Book" resultMapping="book" />
<subMap value="Newspaper" resultMapping="newspaper" />
- </resultMap>
+ </resultMap>-->
<resultMap id="book" class="Book" extends="document">
<result property="PageNumber" column="Document_PageNumber"/>
Modified: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/Odbc/Document.xml
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/Odbc/Document.xml?rev=170206&r1=170205&r2=170206&view=diff
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/Odbc/Document.xml (original)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/Odbc/Document.xml Sun May 15 01:25:07 2005
@@ -7,22 +7,22 @@
<typeAlias alias="Book" type="IBatisNet.DataMapper.Test.Domain.Book, IBatisNet.DataMapper.Test" />
<typeAlias alias="Newspaper" type="IBatisNet.DataMapper.Test.Domain.Newspaper, IBatisNet.DataMapper.Test" />
<typeAlias alias="DocumentCollection" type="IBatisNet.DataMapper.Test.Domain.DocumentCollection, IBatisNet.DataMapper.Test" />
- <typeAlias alias="MyFormula" type="IBatisNet.DataMapper.Test.Domain.MyFormula, IBatisNet.DataMapper.Test" />
+ <typeAlias alias="CustomInheritance" type="IBatisNet.DataMapper.Test.Domain.CustomInheritance, IBatisNet.DataMapper.Test"/>
</alias>
<resultMaps>
<resultMap id="document" class="Document">
<result property="Id" column="Document_ID"/>
<result property="Title" column="Document_Title"/>
- <discriminator column="Document_Type" />
+ <discriminator column="Document_Type" type="string"/>
<subMap value="Book" resultMapping="book" />
<subMap value="Newspaper" resultMapping="newspaper" />
</resultMap>
- <resultMap id="document-custom-formula" class="Document">
+ <resultMap id="document-custom-handler" class="Document">
<result property="Id" column="Document_ID"/>
- <result property="Title" column="Document_Title"/>
- <discriminator formula="MyFormula" />
+ <result property="Title" column="Document_Title"/>
+ <discriminator column="Document_Type" typeHandler="CustomInheritance"/>
<subMap value="Book" resultMapping="book" />
<subMap value="Newspaper" resultMapping="newspaper" />
</resultMap>
@@ -56,8 +56,8 @@
order by Document_Type, Document_Id
</select>
- <select id="GetAllDocumentWithFormula"
- resultMap="document-custom-formula">
+ <select id="GetAllDocumentWithCustomTypeHandler"
+ resultMap="document-custom-handler">
select
*
from Documents
Modified: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/OleDb/document.xml
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/OleDb/document.xml?rev=170206&r1=170205&r2=170206&view=diff
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/OleDb/document.xml (original)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/OleDb/document.xml Sun May 15 01:25:07 2005
@@ -7,22 +7,22 @@
<typeAlias alias="Book" type="IBatisNet.DataMapper.Test.Domain.Book, IBatisNet.DataMapper.Test" />
<typeAlias alias="Newspaper" type="IBatisNet.DataMapper.Test.Domain.Newspaper, IBatisNet.DataMapper.Test" />
<typeAlias alias="DocumentCollection" type="IBatisNet.DataMapper.Test.Domain.DocumentCollection, IBatisNet.DataMapper.Test" />
- <typeAlias alias="MyFormula" type="IBatisNet.DataMapper.Test.Domain.MyFormula, IBatisNet.DataMapper.Test" />
+ <typeAlias alias="CustomInheritance" type="IBatisNet.DataMapper.Test.Domain.CustomInheritance, IBatisNet.DataMapper.Test"/>
</alias>
<resultMaps>
<resultMap id="document" class="Document">
<result property="Id" column="Document_ID"/>
<result property="Title" column="Document_Title"/>
- <discriminator column="Document_Type" />
+ <discriminator column="Document_Type" type="string"/>
<subMap value="Book" resultMapping="book" />
<subMap value="Newspaper" resultMapping="newspaper" />
</resultMap>
- <resultMap id="document-custom-formula" class="Document">
+ <resultMap id="document-custom-handler" class="Document">
<result property="Id" column="Document_ID"/>
- <result property="Title" column="Document_Title"/>
- <discriminator formula="MyFormula" />
+ <result property="Title" column="Document_Title"/>
+ <discriminator column="Document_Type" typeHandler="CustomInheritance"/>
<subMap value="Book" resultMapping="book" />
<subMap value="Newspaper" resultMapping="newspaper" />
</resultMap>
@@ -56,8 +56,8 @@
order by Document_Type, Document_Id
</select>
- <select id="GetAllDocumentWithFormula"
- resultMap="document-custom-formula">
+ <select id="GetAllDocumentWithCustomTypeHandler"
+ resultMap="document-custom-handler">
select
*
from Documents
Modified: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/Document.xml
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/Document.xml?rev=170206&r1=170205&r2=170206&view=diff
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/Document.xml (original)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/Document.xml Sun May 15 01:25:07 2005
@@ -7,32 +7,32 @@
<typeAlias alias="Book" type="IBatisNet.DataMapper.Test.Domain.Book, IBatisNet.DataMapper.Test" />
<typeAlias alias="Newspaper" type="IBatisNet.DataMapper.Test.Domain.Newspaper, IBatisNet.DataMapper.Test" />
<typeAlias alias="DocumentCollection" type="IBatisNet.DataMapper.Test.Domain.DocumentCollection, IBatisNet.DataMapper.Test" />
- <typeAlias alias="MyFormula" type="IBatisNet.DataMapper.Test.Domain.MyFormula, IBatisNet.DataMapper.Test" />
+ <typeAlias alias="CustomInheritance" type="IBatisNet.DataMapper.Test.Domain.CustomInheritance, IBatisNet.DataMapper.Test"/>
</alias>
<resultMaps>
<resultMap id="document" class="Document">
<result property="Id" column="Document_ID"/>
- <result property="Title" column="Document_Title"/>
- <discriminator column="Document_Type" />
+ <result property="Title" column="Document_Title"/>
+ <discriminator column="Document_Type" type="string"/>
<subMap value="Book" resultMapping="book" />
<subMap value="Newspaper" resultMapping="newspaper" />
</resultMap>
- <resultMap id="document-custom-formula" class="Document">
+ <resultMap id="document-custom-handler" class="Document">
<result property="Id" column="Document_ID"/>
- <result property="Title" column="Document_Title"/>
- <discriminator formula="MyFormula" />
+ <result property="Title" column="Document_Title"/>
+ <discriminator column="Document_Type" typeHandler="CustomInheritance"/>
<subMap value="Book" resultMapping="book" />
<subMap value="Newspaper" resultMapping="newspaper" />
</resultMap>
<resultMap id="book" class="Book" extends="document">
- <result property="PageNumber" column="Document_PageNumber"/>
+ <result property="PageNumber" column="Document_PageNumber"/>
</resultMap>
<resultMap id="newspaper" class="Newspaper" extends="document">
- <result property="City" column="Document_City"/>
+ <result property="City" column="Document_City"/>
</resultMap>
</resultMaps>
@@ -56,8 +56,8 @@
order by Document_Type, Document_Id
</select>
- <select id="GetAllDocumentWithFormula"
- resultMap="document-custom-formula">
+ <select id="GetAllDocumentWithCustomTypeHandler"
+ resultMap="document-custom-handler">
select
*
from Documents
Modified: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MySql/ByteFx/Document.xml
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MySql/ByteFx/Document.xml?rev=170206&r1=170205&r2=170206&view=diff
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MySql/ByteFx/Document.xml (original)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MySql/ByteFx/Document.xml Sun May 15 01:25:07 2005
@@ -7,22 +7,22 @@
<typeAlias alias="Book" type="IBatisNet.DataMapper.Test.Domain.Book, IBatisNet.DataMapper.Test" />
<typeAlias alias="Newspaper" type="IBatisNet.DataMapper.Test.Domain.Newspaper, IBatisNet.DataMapper.Test" />
<typeAlias alias="DocumentCollection" type="IBatisNet.DataMapper.Test.Domain.DocumentCollection, IBatisNet.DataMapper.Test" />
- <typeAlias alias="MyFormula" type="IBatisNet.DataMapper.Test.Domain.MyFormula, IBatisNet.DataMapper.Test" />
+ <typeAlias alias="CustomInheritance" type="IBatisNet.DataMapper.Test.Domain.CustomInheritance, IBatisNet.DataMapper.Test"/>
</alias>
<resultMaps>
<resultMap id="document" class="Document">
<result property="Id" column="Document_ID"/>
<result property="Title" column="Document_Title"/>
- <discriminator column="Document_Type" />
+ <discriminator column="Document_Type" type="string"/>
<subMap value="Book" resultMapping="book" />
<subMap value="Newspaper" resultMapping="newspaper" />
</resultMap>
- <resultMap id="document-custom-formula" class="Document">
+ <resultMap id="document-custom-handler" class="Document">
<result property="Id" column="Document_ID"/>
- <result property="Title" column="Document_Title"/>
- <discriminator formula="MyFormula" />
+ <result property="Title" column="Document_Title"/>
+ <discriminator column="Document_Type" typeHandler="CustomInheritance"/>
<subMap value="Book" resultMapping="book" />
<subMap value="Newspaper" resultMapping="newspaper" />
</resultMap>
@@ -56,13 +56,13 @@
order by Document_Type, Document_Id
</select>
- <statement id="GetAllDocumentWithFormula"
- resultMap="document-custom-formula">
+ <select id="GetAllDocumentWithCustomTypeHandler"
+ resultMap="document-custom-handler">
select
*
from Documents
order by Document_Type, Document_Id
- </statement>
+ </select>
</statements>
Modified: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MySql/MySql/Document.xml
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MySql/MySql/Document.xml?rev=170206&r1=170205&r2=170206&view=diff
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MySql/MySql/Document.xml (original)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MySql/MySql/Document.xml Sun May 15 01:25:07 2005
@@ -7,22 +7,22 @@
<typeAlias alias="Book" type="IBatisNet.DataMapper.Test.Domain.Book, IBatisNet.DataMapper.Test" />
<typeAlias alias="Newspaper" type="IBatisNet.DataMapper.Test.Domain.Newspaper, IBatisNet.DataMapper.Test" />
<typeAlias alias="DocumentCollection" type="IBatisNet.DataMapper.Test.Domain.DocumentCollection, IBatisNet.DataMapper.Test" />
- <typeAlias alias="MyFormula" type="IBatisNet.DataMapper.Test.Domain.MyFormula, IBatisNet.DataMapper.Test" />
+ <typeAlias alias="CustomInheritance" type="IBatisNet.DataMapper.Test.Domain.CustomInheritance, IBatisNet.DataMapper.Test"/>
</alias>
<resultMaps>
<resultMap id="document" class="Document">
<result property="Id" column="Document_ID"/>
<result property="Title" column="Document_Title"/>
- <discriminator column="Document_Type" />
+ <discriminator column="Document_Type" type="string"/>
<subMap value="Book" resultMapping="book" />
<subMap value="Newspaper" resultMapping="newspaper" />
</resultMap>
- <resultMap id="document-custom-formula" class="Document">
+ <resultMap id="document-custom-handler" class="Document">
<result property="Id" column="Document_ID"/>
- <result property="Title" column="Document_Title"/>
- <discriminator formula="MyFormula" />
+ <result property="Title" column="Document_Title"/>
+ <discriminator column="Document_Type" typeHandler="CustomInheritance"/>
<subMap value="Book" resultMapping="book" />
<subMap value="Newspaper" resultMapping="newspaper" />
</resultMap>
@@ -56,13 +56,13 @@
order by Document_Type, Document_Id
</select>
- <statement id="GetAllDocumentWithFormula"
- resultMap="document-custom-formula">
+ <select id="GetAllDocumentWithCustomTypeHandler"
+ resultMap="document-custom-handler">
select
*
from Documents
order by Document_Type, Document_Id
- </statement>
+ </select>
</statements>
Modified: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Oracle/ODP/Document.xml
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Oracle/ODP/Document.xml?rev=170206&r1=170205&r2=170206&view=diff
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Oracle/ODP/Document.xml (original)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Oracle/ODP/Document.xml Sun May 15 01:25:07 2005
@@ -7,22 +7,22 @@
<typeAlias alias="Book" type="IBatisNet.DataMapper.Test.Domain.Book, IBatisNet.DataMapper.Test" />
<typeAlias alias="Newspaper" type="IBatisNet.DataMapper.Test.Domain.Newspaper, IBatisNet.DataMapper.Test" />
<typeAlias alias="DocumentCollection" type="IBatisNet.DataMapper.Test.Domain.DocumentCollection, IBatisNet.DataMapper.Test" />
- <typeAlias alias="MyFormula" type="IBatisNet.DataMapper.Test.Domain.MyFormula, IBatisNet.DataMapper.Test" />
+ <typeAlias alias="CustomInheritance" type="IBatisNet.DataMapper.Test.Domain.CustomInheritance, IBatisNet.DataMapper.Test"/>
</alias>
<resultMaps>
<resultMap id="document" class="Document">
<result property="Id" column="Document_ID"/>
<result property="Title" column="Document_Title"/>
- <discriminator column="Document_Type" />
+ <discriminator column="Document_Type" type="string"/>
<subMap value="Book" resultMapping="book" />
<subMap value="Newspaper" resultMapping="newspaper" />
</resultMap>
- <resultMap id="document-custom-formula" class="Document">
+ <resultMap id="document-custom-handler" class="Document">
<result property="Id" column="Document_ID"/>
- <result property="Title" column="Document_Title"/>
- <discriminator formula="MyFormula" />
+ <result property="Title" column="Document_Title"/>
+ <discriminator column="Document_Type" typeHandler="CustomInheritance"/>
<subMap value="Book" resultMapping="book" />
<subMap value="Newspaper" resultMapping="newspaper" />
</resultMap>
@@ -56,13 +56,13 @@
order by Document_Type, Document_Id
</select>
- <statement id="GetAllDocumentWithFormula"
- resultMap="document-custom-formula">
+ <select id="GetAllDocumentWithCustomTypeHandler"
+ resultMap="document-custom-handler">
select
*
from Documents
order by Document_Type, Document_Id
- </statement>
+ </select>
</statements>
Modified: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Oracle/OracleClient/Document.xml
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Oracle/OracleClient/Document.xml?rev=170206&r1=170205&r2=170206&view=diff
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Oracle/OracleClient/Document.xml (original)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Oracle/OracleClient/Document.xml Sun May 15 01:25:07 2005
@@ -7,22 +7,22 @@
<typeAlias alias="Book" type="IBatisNet.DataMapper.Test.Domain.Book, IBatisNet.DataMapper.Test" />
<typeAlias alias="Newspaper" type="IBatisNet.DataMapper.Test.Domain.Newspaper, IBatisNet.DataMapper.Test" />
<typeAlias alias="DocumentCollection" type="IBatisNet.DataMapper.Test.Domain.DocumentCollection, IBatisNet.DataMapper.Test" />
- <typeAlias alias="MyFormula" type="IBatisNet.DataMapper.Test.Domain.MyFormula, IBatisNet.DataMapper.Test" />
+ <typeAlias alias="CustomInheritance" type="IBatisNet.DataMapper.Test.Domain.CustomInheritance, IBatisNet.DataMapper.Test"/>
</alias>
<resultMaps>
<resultMap id="document" class="Document">
<result property="Id" column="Document_ID"/>
<result property="Title" column="Document_Title"/>
- <discriminator column="Document_Type" />
+ <discriminator column="Document_Type" type="string"/>
<subMap value="Book" resultMapping="book" />
<subMap value="Newspaper" resultMapping="newspaper" />
</resultMap>
- <resultMap id="document-custom-formula" class="Document">
+ <resultMap id="document-custom-handler" class="Document">
<result property="Id" column="Document_ID"/>
- <result property="Title" column="Document_Title"/>
- <discriminator formula="MyFormula" />
+ <result property="Title" column="Document_Title"/>
+ <discriminator column="Document_Type" typeHandler="CustomInheritance"/>
<subMap value="Book" resultMapping="book" />
<subMap value="Newspaper" resultMapping="newspaper" />
</resultMap>
@@ -56,13 +56,13 @@
order by Document_Type, Document_Id
</select>
- <statement id="GetAllDocumentWithFormula"
- resultMap="document-custom-formula">
+ <select id="GetAllDocumentWithCustomTypeHandler"
+ resultMap="document-custom-handler">
select
*
from Documents
order by Document_Type, Document_Id
- </statement>
+ </select>
</statements>
Modified: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/InheritanceTest.cs
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/InheritanceTest.cs?rev=170206&r1=170205&r2=170206&view=diff
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/InheritanceTest.cs (original)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/InheritanceTest.cs Sun May 15 01:25:07 2005
@@ -103,12 +103,12 @@
}
/// <summary>
- /// Test All document with formula
+ /// Test All document with Custom Type Handler
/// </summary>
[Test]
- public void GetAllDocumentWithFormula()
+ public void GetAllDocumentWithCustomTypeHandler()
{
- IList list = sqlMap.QueryForList("GetAllDocumentWithFormula", null);
+ IList list = sqlMap.QueryForList("GetAllDocumentWithCustomTypeHandler", null);
Assert.AreEqual(6, list.Count);
Book book = (Book) list[0];
Modified: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/bin/Debug/IBatisNet.DataMapper.Test.dll.config
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/bin/Debug/IBatisNet.DataMapper.Test.dll.config?rev=170206&r1=170205&r2=170206&view=diff
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/bin/Debug/IBatisNet.DataMapper.Test.dll.config (original)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/bin/Debug/IBatisNet.DataMapper.Test.dll.config Sun May 15 01:25:07 2005
@@ -20,7 +20,7 @@
<!-- To test MySql via MySql provider value="MySql" -->
<!-- To test via OleDb provider (any database) value="OleDb" -->
<!-- To test via Odbc provider (any database) value="Odbc" -->
- <add key="providerType" value="SqlClient"/>
+ <add key="providerType" value="OleDb"/>
</appSettings>
<!-- This section contains the log4net configuration settings -->
Modified: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/Configuration/ResultMapping/Discriminator.cs
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/Configuration/ResultMapping/Discriminator.cs?rev=170206&r1=170205&r2=170206&view=diff
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/Configuration/ResultMapping/Discriminator.cs (original)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/Configuration/ResultMapping/Discriminator.cs Sun May 15 01:25:07 2005
@@ -29,7 +29,6 @@
using System;
using System.Collections;
using System.Collections.Specialized;
-using System.Data;
using System.Xml.Serialization;
using IBatisNet.DataMapper.Scope;
@@ -47,9 +46,7 @@
#region Fields
[NonSerialized]
- private string _discriminatorColumn = string.Empty;
- [NonSerialized]
- private IDiscriminatorFormula _formula = null;
+ private ResultProperty _mapping = null;
/// <summary>
/// (discriminatorValue (string), ResultMap)
/// </summary>
@@ -60,41 +57,102 @@
/// </summary>
[NonSerialized]
private ArrayList _subMaps = null;
+
+ [NonSerialized]
+ private string _nullValue = string.Empty;
+ [NonSerialized]
+ private string _columnName = string.Empty;
+ [NonSerialized]
+ private int _columnIndex = ResultProperty.UNKNOWN_COLUMN_INDEX;
[NonSerialized]
- private string _formulaClassName = string.Empty;//typeof(DefaultFormula).FullName;
+ private string _dbType = string.Empty;
+ [NonSerialized]
+ private string _clrType = string.Empty;
+ [NonSerialized]
+ private string _callBackName= string.Empty;
#endregion
#region Properties
/// <summary>
- /// Formula class name,
- /// used to calculate the discriminator value to use
+ /// Specify the custom type handlers to used.
+ /// </summary>
+ /// <remarks>Will be an alias to a class wchic implement ITypeHandlerCallback</remarks>
+ [XmlAttribute("typeHandler")]
+ public string CallBackName
+ {
+ get { return _callBackName; }
+ set { _callBackName = value; }
+ }
+
+ /// <summary>
+ /// Give an entry in the 'DbType' enumeration
+ /// </summary>
+ /// <example >
+ /// For Sql Server, give an entry of SqlDbType : Bit, Decimal, Money...
+ /// <br/>
+ /// For Oracle, give an OracleType Enumeration : Byte, Int16, Number...
+ /// </example>
+ [XmlAttribute("dbType")]
+ public string DbType
+ {
+ get { return _dbType; }
+ set { _dbType = value; }
+ }
+
+ /// <summary>
+ /// Specify the CLR type of the result.
+ /// </summary>
+ /// <remarks>
+ /// The type attribute is used to explicitly specify the property type of the property to be set.
+ /// Normally this can be derived from a property through reflection, but certain mappings such as
+ /// HashTable cannot provide the type to the framework.
+ /// </remarks>
+ [XmlAttribute("type")]
+ public string CLRType
+ {
+ get { return _clrType; }
+ set { _clrType = value; }
+ }
+
+ /// <summary>
+ /// Column Index
/// </summary>
- [XmlAttribute("formula")]
- public string FormulaClassName
+ [XmlAttribute("columnIndex")]
+ public int ColumnIndex
{
- get { return _formulaClassName; }
- set { _formulaClassName = value; }
+ get { return _columnIndex; }
+ set { _columnIndex = value; }
}
/// <summary>
/// Column Name
/// </summary>
[XmlAttribute("column")]
- public string DiscriminatorColumn
+ public string ColumnName
+ {
+ get { return _columnName; }
+ set { _columnName = value; }
+ }
+
+ /// <summary>
+ /// Null value replacement.
+ /// </summary>
+ /// <example>"no_email@provided.com"</example>
+ [XmlAttribute("nullValue")]
+ public string NullValue
{
- get { return _discriminatorColumn; }
- set { _discriminatorColumn = value; }
+ get { return _nullValue; }
+ set { _nullValue = value; }
}
/// <summary>
- /// A formula to calculate the discriminator value to use
+ /// Th underlying ResultProperty
/// </summary>
[XmlIgnore]
- public IDiscriminatorFormula Formula
+ public ResultProperty ResultProperty
{
- get { return _formula; }
- set { _formula = value; }
+ get { return _mapping; }
}
#endregion
@@ -113,22 +171,29 @@
#region Methods
/// <summary>
+ /// Initilaize the underlying mapping
+ /// </summary>
+ /// <param name="configScope"></param>
+ public void SetMapping(ConfigurationScope configScope)
+ {
+ configScope.ErrorContext.MoreInfo = "Initialize discriminator mapping";
+ _mapping = new ResultProperty();
+ _mapping.ColumnName = _columnName;
+ _mapping.ColumnIndex = _columnIndex;
+ _mapping.CLRType = _clrType;
+ _mapping.CallBackName = _callBackName;
+ _mapping.DbType = _dbType;
+ _mapping.NullValue = _nullValue;
+
+ _mapping.Initialize( configScope, null );
+ }
+
+ /// <summary>
/// Initialize the Discriminator
/// </summary>
/// <param name="configScope"></param>
public void Initialize(ConfigurationScope configScope)
{
- // Set the formula
- if (_formulaClassName.Length == 0)
- {
- _formula = new DefaultFormula(_discriminatorColumn);
- }
- else
- {
- Type formulaType = configScope.SqlMapper.GetType(_formulaClassName);
- _formula = Activator.CreateInstance(formulaType) as IDiscriminatorFormula;
- }
-
// Set the ResultMaps
for(int index=0; index<_subMaps.Count; index++)
{
@@ -149,16 +214,13 @@
/// <summary>
/// Find the SubMap to use.
/// </summary>
- /// <param name="dataReader">A IDataReader which contains result values</param>
+ /// <param name="discriminatorValue">the discriminator value</param>
/// <returns>The find ResultMap</returns>
- public ResultMap GetSubMap(IDataReader dataReader)
+ public ResultMap GetSubMap(string discriminatorValue)
{
- // Find the resultmap to use
- // 1/ Find the value to test
- // 2/ Find the resultmap
- string discriminatorValue = _formula.GetDiscriminatorValue(dataReader);
return _resultMaps[discriminatorValue] as ResultMap;
}
+
#endregion
Modified: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/Configuration/ResultMapping/ResultMap.cs
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/Configuration/ResultMapping/ResultMap.cs?rev=170206&r1=170205&r2=170206&view=diff
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/Configuration/ResultMapping/ResultMap.cs (original)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/Configuration/ResultMapping/ResultMap.cs Sun May 15 01:25:07 2005
@@ -206,7 +206,7 @@
private void GetChildNode(ConfigurationScope configScope)
{
XmlSerializer serializer = null;
- ResultProperty property = null;
+ ResultProperty mapping = null;
SubMap subMap = null;
#region Load the Result Properties
@@ -214,19 +214,19 @@
serializer = new XmlSerializer(typeof(ResultProperty));
foreach ( XmlNode resultNode in configScope.NodeContext.SelectNodes("result") )
{
- property = (ResultProperty) serializer.Deserialize(new XmlNodeReader(resultNode));
+ mapping = (ResultProperty) serializer.Deserialize(new XmlNodeReader(resultNode));
- configScope.ErrorContext.MoreInfo = "initialize result property :"+property.PropertyName;
+ configScope.ErrorContext.MoreInfo = "initialize result property :"+mapping.PropertyName;
PropertyInfo propertyInfo = null;
- if ( property.PropertyName != "value" && !typeof(IDictionary).IsAssignableFrom(_class) )
+ if ( mapping.PropertyName != "value" && !typeof(IDictionary).IsAssignableFrom(_class) )
{
- propertyInfo = ReflectionInfo.GetInstance(_class).GetSetter( property.PropertyName );
+ propertyInfo = ReflectionInfo.GetInstance(_class).GetSetter( mapping.PropertyName );
}
- property.Initialize( configScope, propertyInfo );
+ mapping.Initialize( configScope, propertyInfo );
- this.AddResultPropery( property );
+ this.AddResultPropery( mapping );
}
#endregion
@@ -239,6 +239,8 @@
configScope.ErrorContext.MoreInfo = "initialize discriminator";
this.Discriminator = (Discriminator) serializer.Deserialize(new XmlNodeReader(discriminatorNode));
+
+ this.Discriminator.SetMapping( configScope );
}
#endregion
@@ -326,9 +328,12 @@
public ResultMap ResolveSubMap(IDataReader dataReader)
{
ResultMap subMap = this;
- if (this.Discriminator != null)
- {
- subMap = this.Discriminator.GetSubMap(dataReader);
+ if (_discriminator != null)
+ {
+ ResultProperty mapping = _discriminator.ResultProperty;
+ object dataBaseValue = mapping.TypeHandler.GetDataBaseValue( mapping, dataReader);
+ subMap = _discriminator.GetSubMap( dataBaseValue.ToString() );
+
if (subMap == null)
{
subMap = this;
Modified: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/Configuration/ResultMapping/ResultProperty.cs
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/Configuration/ResultMapping/ResultProperty.cs?rev=170206&r1=170205&r2=170206&view=diff
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/Configuration/ResultMapping/ResultProperty.cs (original)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/Configuration/ResultMapping/ResultProperty.cs Sun May 15 01:25:07 2005
@@ -192,13 +192,7 @@
public string PropertyName
{
get { return _property; }
- set
- {
- if ((value == null) || (value.Length < 1))
- throw new ArgumentNullException("The property attribute is mandatory in a result property.");
-
- _property = value;
- }
+ set { _property = value; }
}
/// <summary>
Modified: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/IBatisNet.DataMapper.csproj
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/IBatisNet.DataMapper.csproj?rev=170206&r1=170205&r2=170206&view=diff
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/IBatisNet.DataMapper.csproj (original)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/IBatisNet.DataMapper.csproj Sun May 15 01:25:07 2005
@@ -271,17 +271,7 @@
BuildAction = "Compile"
/>
<File
- RelPath = "Configuration\ResultMapping\DefaultFormula.cs"
- SubType = "Code"
- BuildAction = "Compile"
- />
- <File
RelPath = "Configuration\ResultMapping\Discriminator.cs"
- SubType = "Code"
- BuildAction = "Compile"
- />
- <File
- RelPath = "Configuration\ResultMapping\IDiscriminatorFormula.cs"
SubType = "Code"
BuildAction = "Compile"
/>