You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by cb...@apache.org on 2005/05/14 10:12:50 UTC
svn commit: r170130 - in /incubator/ibatis/trunk/java/mapper/mapper2: doc/
src/com/ibatis/sqlmap/engine/builder/xml/
src/com/ibatis/sqlmap/engine/execution/
src/com/ibatis/sqlmap/engine/mapping/result/
src/com/ibatis/sqlmap/engine/mapping/statement/ test/com/ibatis/sqlmap/
test/com/ibatis/sqlmap/maps/ test/scripts/ test/testdomain/
Author: cbegin
Date: Sat May 14 01:12:49 2005
New Revision: 170130
URL: http://svn.apache.org/viewcvs?rev=170130&view=rev
Log:
added discriminator/subMap for class inheritance support
Added:
incubator/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/DiscriminatorTest.java
incubator/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/Documents.xml
incubator/ibatis/trunk/java/mapper/mapper2/test/scripts/docs-init.sql
incubator/ibatis/trunk/java/mapper/mapper2/test/testdomain/Book.java
incubator/ibatis/trunk/java/mapper/mapper2/test/testdomain/Document.java
incubator/ibatis/trunk/java/mapper/mapper2/test/testdomain/Magazine.java
Modified:
incubator/ibatis/trunk/java/mapper/mapper2/doc/release.txt
incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/SqlMapParser.java
incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/sql-map-2.dtd
incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/execution/SqlExecutor.java
incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/BasicResultMap.java
incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/Discriminator.java
incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/ResultMap.java
incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/statement/RowHandlerCallback.java
incubator/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/BaseSqlMapTest.java
incubator/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/SqlMapConfig.xml
Modified: incubator/ibatis/trunk/java/mapper/mapper2/doc/release.txt
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/java/mapper/mapper2/doc/release.txt?rev=170130&r1=170129&r2=170130&view=diff
==============================================================================
--- incubator/ibatis/trunk/java/mapper/mapper2/doc/release.txt (original)
+++ incubator/ibatis/trunk/java/mapper/mapper2/doc/release.txt Sat May 14 01:12:49 2005
@@ -4,7 +4,8 @@
------------------------------
2.1.0 - May ??, 2004
------------------------------
-
+
+ o Added <discriminator> and <subMap> tags for class inheritance support
o Added removeFirstPrepend attribute to all tags
o Added open and close attributes to all dynamic tags to better handle complex queries that require bracketing
o Fixed IBATIS-45 Removed JavaBeanProbe/MapProbe in favor of ComplexBeanProbe
Modified: incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/SqlMapParser.java
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/SqlMapParser.java?rev=170130&r1=170129&r2=170130&view=diff
==============================================================================
--- incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/SqlMapParser.java (original)
+++ incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/SqlMapParser.java Sat May 14 01:12:49 2005
@@ -10,10 +10,7 @@
import com.ibatis.sqlmap.engine.cache.CacheModel;
import com.ibatis.sqlmap.engine.mapping.parameter.BasicParameterMap;
import com.ibatis.sqlmap.engine.mapping.parameter.BasicParameterMapping;
-import com.ibatis.sqlmap.engine.mapping.result.BasicResultMap;
-import com.ibatis.sqlmap.engine.mapping.result.BasicResultMapping;
-import com.ibatis.sqlmap.engine.mapping.result.ResultMapping;
-import com.ibatis.sqlmap.engine.mapping.result.Discriminator;
+import com.ibatis.sqlmap.engine.mapping.result.*;
import com.ibatis.sqlmap.engine.mapping.statement.*;
import com.ibatis.sqlmap.engine.type.CustomTypeHandler;
import com.ibatis.sqlmap.engine.type.TypeHandler;
@@ -23,6 +20,7 @@
import java.util.ArrayList;
import java.util.Properties;
import java.util.StringTokenizer;
+import java.util.Iterator;
public class SqlMapParser extends BaseParser {
@@ -54,6 +52,19 @@
vars.currentNamespace = attributes.getProperty("namespace");
}
});
+ parser.addNodelet("/sqlMap/end()", new Nodelet() {
+ public void process(Node node) throws Exception {
+ Iterator names = vars.delegate.getResultMapNames();
+ while (names.hasNext()) {
+ String name = (String)names.next();
+ ResultMap rm = vars.delegate.getResultMap(name);
+ Discriminator disc = rm.getDiscriminator();
+ if (disc != null) {
+ disc.bindSubMaps();
+ }
+ }
+ }
+ });
}
private void addSqlNodelets() {
@@ -416,22 +427,13 @@
Properties childAttributes = NodeletUtils.parseAttributes(node, vars.properties);
String value = childAttributes.getProperty("value");
String resultMap = childAttributes.getProperty("resultMap");
- vars.discriminator.addSubMap(value, resultMap);
- }
- });
-
- parser.addNodelet("/sqlMap/resultMap/discriminator/end()", new Nodelet() {
- public void process(Node node) throws Exception {
- if (vars.discriminator != null) {
- vars.discriminator.bindSubMaps();
- }
+ vars.discriminator.addSubMap(value, applyNamespace(resultMap));
}
});
parser.addNodelet("/sqlMap/resultMap/discriminator", new Nodelet() {
public void process(Node node) throws Exception {
Properties childAttributes = NodeletUtils.parseAttributes(node, vars.properties);
- String propertyName = childAttributes.getProperty("property");
String nullValue = childAttributes.getProperty("nullValue");
String jdbcType = childAttributes.getProperty("jdbcType");
String javaType = childAttributes.getProperty("javaType");
@@ -442,8 +444,6 @@
callback = vars.typeHandlerFactory.resolveAlias(callback);
javaType = vars.typeHandlerFactory.resolveAlias(javaType);
- vars.errorCtx.setObjectId(propertyName + " mapping of the " + vars.currentResultMap.getId() + " result map");
-
TypeHandler handler = null;
if (callback != null) {
vars.errorCtx.setMoreInfo("Check the result mapping typeHandler attribute '" + callback + "' (must be a TypeHandlerCallback implementation).");
@@ -461,11 +461,10 @@
}
} else {
vars.errorCtx.setMoreInfo("Check the result mapping property type or name.");
- handler = resolveTypeHandler(vars.client.getDelegate().getTypeHandlerFactory(), vars.currentResultMap.getResultClass(), propertyName, javaType, jdbcType, true);
+ handler = resolveTypeHandler(vars.client.getDelegate().getTypeHandlerFactory(), vars.currentResultMap.getResultClass(), "", javaType, jdbcType, true);
}
BasicResultMapping mapping = new BasicResultMapping();
- mapping.setPropertyName(propertyName);
mapping.setColumnName(columnName);
mapping.setJdbcTypeName(jdbcType);
mapping.setTypeHandler(handler);
Modified: incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/sql-map-2.dtd
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/sql-map-2.dtd?rev=170130&r1=170129&r2=170130&view=diff
==============================================================================
--- incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/sql-map-2.dtd (original)
+++ incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/sql-map-2.dtd Sat May 14 01:12:49 2005
@@ -58,8 +58,7 @@
>
<!ELEMENT discriminator (subMap+)>
<!ATTLIST discriminator
-property CDATA #REQUIRED
-javaType CDATA #IMPLIED
+javaType CDATA #REQUIRED
column CDATA #IMPLIED
columnIndex CDATA #IMPLIED
jdbcType CDATA #IMPLIED
Modified: incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/execution/SqlExecutor.java
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/execution/SqlExecutor.java?rev=170130&r1=170129&r2=170130&view=diff
==============================================================================
--- incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/execution/SqlExecutor.java (original)
+++ incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/execution/SqlExecutor.java Sat May 14 01:12:49 2005
@@ -360,8 +360,8 @@
// Get Results
int resultsFetched = 0;
while ((maxResults == SqlExecutor.NO_MAXIMUM_RESULTS || resultsFetched < maxResults) && rs.next()) {
- Object[] columnValues = resultMap.getResults(request, rs);
- callback.handleResultObject(request, columnValues);
+ Object[] columnValues = resultMap.resolveSubMap(request, rs).getResults(request, rs);
+ callback.handleResultObject(request, columnValues, rs);
resultsFetched++;
}
}
Modified: incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/BasicResultMap.java
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/BasicResultMap.java?rev=170130&r1=170129&r2=170130&view=diff
==============================================================================
--- incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/BasicResultMap.java (original)
+++ incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/BasicResultMap.java Sat May 14 01:12:49 2005
@@ -218,6 +218,25 @@
this.discriminator = discriminator;
}
+ public Discriminator getDiscriminator() {
+ return discriminator;
+ }
+
+ public ResultMap resolveSubMap (RequestScope request, ResultSet rs) throws SQLException {
+ ResultMap subMap = this;
+ if (discriminator != null) {
+ BasicResultMapping mapping = (BasicResultMapping)discriminator.getResultMapping();
+ Object value = getPrimitiveResultMappingValue(rs, mapping);
+ subMap = discriminator.getSubMap(String.valueOf(value));
+ if (subMap == null) {
+ subMap = this;
+ } else if (subMap != this) {
+ subMap = subMap.resolveSubMap(request, rs);
+ }
+ }
+ return subMap;
+ }
+
/**
* Setter for a list of the individual ResultMapping objects
*
Modified: incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/Discriminator.java
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/Discriminator.java?rev=170130&r1=170129&r2=170130&view=diff
==============================================================================
--- incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/Discriminator.java (original)
+++ incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/Discriminator.java Sat May 14 01:12:49 2005
@@ -39,6 +39,10 @@
subMaps.put(discriminatorValue, resultMapName);
}
+ public ResultMap getSubMap(String s) {
+ return (ResultMap) subMaps.get(s);
+ }
+
public void bindSubMaps() {
if (subMaps != null) {
Iterator keys = subMaps.keySet().iterator();
@@ -51,6 +55,5 @@
}
}
}
-
}
Modified: incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/ResultMap.java
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/ResultMap.java?rev=170130&r1=170129&r2=170130&view=diff
==============================================================================
--- incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/ResultMap.java (original)
+++ incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/ResultMap.java Sat May 14 01:12:49 2005
@@ -80,4 +80,7 @@
*/
public Object getUniqueKey(Object[] values);
+ public ResultMap resolveSubMap (RequestScope request, ResultSet rs) throws SQLException;
+
+ public Discriminator getDiscriminator();
}
Modified: incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/statement/RowHandlerCallback.java
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/statement/RowHandlerCallback.java?rev=170130&r1=170129&r2=170130&view=diff
==============================================================================
--- incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/statement/RowHandlerCallback.java (original)
+++ incubator/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/statement/RowHandlerCallback.java Sat May 14 01:12:49 2005
@@ -26,6 +26,8 @@
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.StringWriter;
+import java.sql.ResultSet;
+import java.sql.SQLException;
/**
* Class to manager row handler access
@@ -55,10 +57,10 @@
* @param request - the request scope
* @param results - the result data
*/
- public void handleResultObject(RequestScope request, Object[] results) {
+ public void handleResultObject(RequestScope request, Object[] results, ResultSet rs) throws SQLException {
Object object;
- object = resultMap.setResultObjectValues(request, resultObject, results);
+ object = resultMap.resolveSubMap(request, rs).setResultObjectValues(request, resultObject, results);
if (object != ResultMap.NO_VALUE) {
// XML Only special processing. (converts elements to string for easy insertion).
Modified: incubator/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/BaseSqlMapTest.java
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/BaseSqlMapTest.java?rev=170130&r1=170129&r2=170130&view=diff
==============================================================================
--- incubator/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/BaseSqlMapTest.java (original)
+++ incubator/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/BaseSqlMapTest.java Sat May 14 01:12:49 2005
@@ -10,6 +10,7 @@
import javax.sql.DataSource;
import java.io.Reader;
+import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
Added: incubator/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/DiscriminatorTest.java
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/DiscriminatorTest.java?rev=170130&view=auto
==============================================================================
--- incubator/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/DiscriminatorTest.java (added)
+++ incubator/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/DiscriminatorTest.java Sat May 14 01:12:49 2005
@@ -0,0 +1,49 @@
+package com.ibatis.sqlmap;
+
+import testdomain.Book;
+import testdomain.Magazine;
+import testdomain.Document;
+
+import java.util.List;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: cbegin
+ * Date: May 14, 2005
+ * Time: 1:19:54 AM
+ * To change this template use File | Settings | File Templates.
+ */
+public class DiscriminatorTest extends BaseSqlMapTest {
+
+ protected void setUp() throws Exception {
+ initSqlMap("com/ibatis/sqlmap/maps/SqlMapConfig.xml", null);
+ initScript("scripts/docs-init.sql");
+ }
+
+ public void testDiscriminator () throws Exception {
+
+ List list = sqlMap.queryForList("getDocuments",null);
+ assertEquals(6, list.size());
+
+ assertTrue (list.get(0) instanceof Book);
+ assertTrue (list.get(1) instanceof Magazine);
+ assertTrue (list.get(2) instanceof Book);
+ assertTrue (list.get(3) instanceof Magazine);
+ assertTrue (list.get(4) instanceof Document);
+ assertTrue (list.get(5) instanceof Document);
+
+ assertEquals(1, ((Document)list.get(0)).getId());
+ assertEquals(2, ((Document)list.get(1)).getId());
+ assertEquals(3, ((Document)list.get(2)).getId());
+ assertEquals(4, ((Document)list.get(3)).getId());
+ assertEquals(5, ((Document)list.get(4)).getId());
+ assertEquals(6, ((Document)list.get(5)).getId());
+
+ assertEquals(new Integer(55),((Book)list.get(0)).getPages());
+ assertEquals("Lyon",((Magazine)list.get(1)).getCity());
+ assertEquals(new Integer(3587),((Book)list.get(2)).getPages());
+ assertEquals("Paris",((Magazine)list.get(3)).getCity());
+ }
+
+
+}
Added: incubator/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/Documents.xml
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/Documents.xml?rev=170130&view=auto
==============================================================================
--- incubator/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/Documents.xml (added)
+++ incubator/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/Documents.xml Sat May 14 01:12:49 2005
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<!DOCTYPE sqlMap
+ PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
+ "http://www.ibatis.com/dtd/sql-map-2.dtd">
+
+<sqlMap namespace="Documents">
+
+ <resultMap id="document" class="testdomain.Document">
+ <result property="id" column="DOCUMENT_ID"/>
+ <result property="title" column="DOCUMENT_TITLE"/>
+ <result property="type" column="DOCUMENT_TYPE"/>
+ <discriminator column="DOCUMENT_TYPE" javaType="string" >
+ <subMap value="Book" resultMap="book"/>
+ <subMap value="Newspaper" resultMap="news"/>
+ </discriminator>
+ </resultMap>
+
+ <resultMap id="book" class="testdomain.Book" extends="document">
+ <result property="pages" column="DOCUMENT_PAGENUMBER"/>
+ </resultMap>
+
+ <resultMap id="news" class="testdomain.Magazine" extends="document">
+ <result property="city" column="DOCUMENT_CITY"/>
+ </resultMap>
+
+ <select id="getDocuments" resultMap="document">
+ select * from DOCUMENTS
+ </select>
+
+</sqlMap>
\ No newline at end of file
Modified: incubator/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/SqlMapConfig.xml
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/SqlMapConfig.xml?rev=170130&r1=170129&r2=170130&view=diff
==============================================================================
--- incubator/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/SqlMapConfig.xml (original)
+++ incubator/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/SqlMapConfig.xml Sat May 14 01:12:49 2005
@@ -54,5 +54,6 @@
<sqlMap resource="${SqlMapPath}/XmlStatements.xml"/>
<sqlMap resource="${SqlMapPath}/DomStatements.xml"/>
<sqlMap resource="${SqlMapPath}/RepeatingGroupMapping.xml"/>
+ <sqlMap resource="${SqlMapPath}/Documents.xml"/>
</sqlMapConfig>
Added: incubator/ibatis/trunk/java/mapper/mapper2/test/scripts/docs-init.sql
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/java/mapper/mapper2/test/scripts/docs-init.sql?rev=170130&view=auto
==============================================================================
--- incubator/ibatis/trunk/java/mapper/mapper2/test/scripts/docs-init.sql (added)
+++ incubator/ibatis/trunk/java/mapper/mapper2/test/scripts/docs-init.sql Sat May 14 01:12:49 2005
@@ -0,0 +1,17 @@
+DROP TABLE DOCUMENTS;
+
+CREATE TABLE DOCUMENTS (
+ DOCUMENT_ID INTEGER NOT NULL,
+ DOCUMENT_TITLE VARCHAR(32),
+ DOCUMENT_TYPE VARCHAR(32),
+ DOCUMENT_PAGENUMBER INTEGER,
+ DOCUMENT_CITY VARCHAR(32),
+ PRIMARY KEY (DOCUMENT_ID)
+);
+
+INSERT INTO DOCUMENTS VALUES (1, 'The World of Null-A', 'Book', 55, null);
+INSERT INTO DOCUMENTS VALUES (2, 'Le Progres de Lyon', 'Newspaper', null , 'Lyon');
+INSERT INTO DOCUMENTS VALUES (3, 'Lord of the Rings', 'Book', 3587, null);
+INSERT INTO DOCUMENTS VALUES (4, 'Le Canard enchaine', 'Newspaper', null , 'Paris');
+INSERT INTO DOCUMENTS VALUES (5, 'Le Monde', 'Broadsheet', null , 'Paris');
+INSERT INTO DOCUMENTS VALUES (6, 'Foundation', 'Monograph', 557, null);
Added: incubator/ibatis/trunk/java/mapper/mapper2/test/testdomain/Book.java
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/java/mapper/mapper2/test/testdomain/Book.java?rev=170130&view=auto
==============================================================================
--- incubator/ibatis/trunk/java/mapper/mapper2/test/testdomain/Book.java (added)
+++ incubator/ibatis/trunk/java/mapper/mapper2/test/testdomain/Book.java Sat May 14 01:12:49 2005
@@ -0,0 +1,22 @@
+package testdomain;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: cbegin
+ * Date: May 14, 2005
+ * Time: 1:39:55 AM
+ * To change this template use File | Settings | File Templates.
+ */
+public class Book extends Document {
+
+ private Integer pages;
+
+ public Integer getPages() {
+ return pages;
+ }
+
+ public void setPages(Integer pages) {
+ this.pages = pages;
+ }
+
+}
Added: incubator/ibatis/trunk/java/mapper/mapper2/test/testdomain/Document.java
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/java/mapper/mapper2/test/testdomain/Document.java?rev=170130&view=auto
==============================================================================
--- incubator/ibatis/trunk/java/mapper/mapper2/test/testdomain/Document.java (added)
+++ incubator/ibatis/trunk/java/mapper/mapper2/test/testdomain/Document.java Sat May 14 01:12:49 2005
@@ -0,0 +1,33 @@
+package testdomain;
+
+public class Document {
+
+ private int id;
+ private String title;
+ private String type;
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+}
Added: incubator/ibatis/trunk/java/mapper/mapper2/test/testdomain/Magazine.java
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/java/mapper/mapper2/test/testdomain/Magazine.java?rev=170130&view=auto
==============================================================================
--- incubator/ibatis/trunk/java/mapper/mapper2/test/testdomain/Magazine.java (added)
+++ incubator/ibatis/trunk/java/mapper/mapper2/test/testdomain/Magazine.java Sat May 14 01:12:49 2005
@@ -0,0 +1,22 @@
+package testdomain;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: cbegin
+ * Date: May 14, 2005
+ * Time: 1:40:08 AM
+ * To change this template use File | Settings | File Templates.
+ */
+public class Magazine extends Document {
+
+ private String city;
+
+ public String getCity() {
+ return city;
+ }
+
+ public void setCity(String city) {
+ this.city = city;
+ }
+
+}