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 2007/02/11 06:00:25 UTC

svn commit: r505839 - in /ibatis/trunk/java/mapper/mapper2: build/ src/com/ibatis/common/beans/ test/com/ibatis/sqlmap/ test/com/ibatis/sqlmap/maps/ test/testdomain/

Author: cbegin
Date: Sat Feb 10 21:00:24 2007
New Revision: 505839

URL: http://svn.apache.org/viewvc?view=rev&rev=505839
Log:
Changed syntax of field mappings to be exactly the same as property mappings.  It now decides to use field mappings only if set/get methods do not exist.  

Added:
    ibatis/trunk/java/mapper/mapper2/test/testdomain/FieldAccount.java
Modified:
    ibatis/trunk/java/mapper/mapper2/build/version.properties
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/beans/ClassInfo.java
    ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/BaseSqlMapTest.java
    ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/DirectFieldMappingTest.java
    ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/Account.xml

Modified: ibatis/trunk/java/mapper/mapper2/build/version.properties
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/build/version.properties?view=diff&rev=505839&r1=505838&r2=505839
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/build/version.properties (original)
+++ ibatis/trunk/java/mapper/mapper2/build/version.properties Sat Feb 10 21:00:24 2007
@@ -1,5 +1,5 @@
 #Build version info
-#Sat Feb 10 18:39:04 MST 2007
+#Sat Feb 10 21:56:50 MST 2007
 version=2.3.1
-buildDate=2007/02/10 18\:39
-buildNum=681
+buildDate=2007/02/10 21\:56
+buildNum=683

Modified: ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/beans/ClassInfo.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/beans/ClassInfo.java?view=diff&rev=505839&r1=505838&r2=505839
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/beans/ClassInfo.java (original)
+++ ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/beans/ClassInfo.java Sat Feb 10 21:00:24 2007
@@ -115,10 +115,14 @@
         }
       }
       if (field.isAccessible()) {
-        setMethods.put("(" + field.getName() + ")", new SetFieldInvoker(field));
-        setTypes.put("(" + field.getName() + ")", field.getType());
-        getMethods.put("(" + field.getName() + ")", new GetFieldInvoker(field));
-        getTypes.put("(" + field.getName() + ")", field.getType());
+        if (!setMethods.containsKey(field.getName())) {
+          setMethods.put(field.getName(), new SetFieldInvoker(field));
+          setTypes.put(field.getName(), field.getType());
+        }
+        if (!getMethods.containsKey(field.getName())) {
+          getMethods.put(field.getName(), new GetFieldInvoker(field));
+          getTypes.put(field.getName(), field.getType());
+        }
       }
     }
     if (clazz.getSuperclass() != null) {

Modified: ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/BaseSqlMapTest.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/BaseSqlMapTest.java?view=diff&rev=505839&r1=505838&r2=505839
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/BaseSqlMapTest.java (original)
+++ ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/BaseSqlMapTest.java Sat Feb 10 21:00:24 2007
@@ -8,6 +8,7 @@
 import testdomain.Account;
 import testdomain.Order;
 import testdomain.PrivateAccount;
+import testdomain.FieldAccount;
 
 import javax.sql.DataSource;
 import java.io.Reader;
@@ -52,6 +53,15 @@
     return account;
   }
 
+  protected FieldAccount newFieldAccount6() {
+    FieldAccount account = new FieldAccount();
+    account.id(6);
+    account.firstName("Jennifer");
+    account.lastName("Begin");
+    account.emailAddress("no_email@provided.com");
+    return account;
+  }
+
   protected void assertAccount1(Account account) {
     assertEquals(1, account.getId());
     assertEquals("Clinton", account.getFirstName());
@@ -82,6 +92,13 @@
     assertEquals("Jennifer", account.getFirstName());
     assertEquals("Begin", account.getLastName());
     assertNull(account.getEmailAddress());
+  }
+
+  protected void assertFieldAccount6(FieldAccount account) {
+    assertEquals(6, account.id());
+    assertEquals("Jennifer", account.firstName());
+    assertEquals("Begin", account.lastName());
+    assertNull(account.emailAddress());
   }
 
   protected void assertAccount1(Map account) {

Modified: ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/DirectFieldMappingTest.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/DirectFieldMappingTest.java?view=diff&rev=505839&r1=505838&r2=505839
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/DirectFieldMappingTest.java (original)
+++ ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/DirectFieldMappingTest.java Sat Feb 10 21:00:24 2007
@@ -1,6 +1,6 @@
 package com.ibatis.sqlmap;
 
-import testdomain.Account;
+import testdomain.FieldAccount;
 import testdomain.PrivateAccount;
 
 import java.sql.SQLException;
@@ -13,18 +13,18 @@
   }
 
   public void testInsertAndSelectDirectToFields() throws SQLException {
-    Account account = newAccount6();
+    FieldAccount account = newFieldAccount6();
 
     sqlMap.insert("insertAccountFromFields", account);
 
-    account = (Account) sqlMap.queryForObject("getAccountToFields", new Integer(6));
+    account = (FieldAccount) sqlMap.queryForObject("getAccountToFields", new Integer(6));
 
-    assertAccount6(account);
-    assertAccount6(account.getAccount());
+    assertFieldAccount6(account);
+    assertFieldAccount6(account.account());
   }
   
   public void testGetAccountWithPrivateConstructor() throws SQLException {
-    Account account = newAccount6();
+    FieldAccount account = newFieldAccount6();
 
     sqlMap.insert("insertAccountFromFields", account);
 

Modified: ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/Account.xml
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/Account.xml?view=diff&rev=505839&r1=505838&r2=505839
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/Account.xml (original)
+++ ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/Account.xml Sat Feb 10 21:00:24 2007
@@ -462,7 +462,7 @@
 
 
   <insert id="insertAccountFromFields"
-    parameterClass="account"
+    parameterClass="testdomain.FieldAccount"
     >
     insert into ACCOUNT (
       ACC_ID,
@@ -470,25 +470,25 @@
       ACC_LAST_NAME,
       ACC_EMAIL)
     values (
-      #(id)#,
-      #(firstName)#,
-      #(lastName)#,
-      #(emailAddress):VARCHAR:no_email@provided.com#
+      #id#,
+      #firstName#,
+      #lastName#,
+      #emailAddress:VARCHAR:no_email@provided.com#
     )
   </insert>
 
   <select id="getAccountToFields"
     parameterClass="int"
-    resultClass="account">
+    resultClass="testdomain.FieldAccount">
     select
-      ACC_ID as "(id)",
-      ACC_FIRST_NAME as "(firstName)",
-      ACC_LAST_NAME as "(lastName)",
-      ACC_EMAIL as "(emailAddress)",
-      ACC_ID as "(account).(id)",
-      ACC_FIRST_NAME as "(account).(firstName)",
-      ACC_LAST_NAME as "(account).(lastName)",
-      ACC_EMAIL as "(account).(emailAddress)"
+      ACC_ID as "id",
+      ACC_FIRST_NAME as "firstName",
+      ACC_LAST_NAME as "lastName",
+      ACC_EMAIL as "emailAddress",
+      ACC_ID as "account.id",
+      ACC_FIRST_NAME as "account.firstName",
+      ACC_LAST_NAME as "account.lastName",
+      ACC_EMAIL as "account.emailAddress"
     from ACCOUNT
     where ACC_ID = #value#
   </select>
@@ -497,14 +497,14 @@
     parameterClass="int"
     resultClass="testdomain.PrivateAccount">
     select
-      ACC_ID as "(id)",
-      ACC_FIRST_NAME as "(firstName)",
-      ACC_LAST_NAME as "(lastName)",
-      ACC_EMAIL as "(emailAddress)",
-      ACC_ID as "(account).(id)",
-      ACC_FIRST_NAME as "(account).(firstName)",
-      ACC_LAST_NAME as "(account).(lastName)",
-      ACC_EMAIL as "(account).(emailAddress)"
+      ACC_ID as "id",
+      ACC_FIRST_NAME as "firstName",
+      ACC_LAST_NAME as "lastName",
+      ACC_EMAIL as "emailAddress",
+      ACC_ID as "account.id",
+      ACC_FIRST_NAME as "account.firstName",
+      ACC_LAST_NAME as "account.lastName",
+      ACC_EMAIL as "account.emailAddress"
     from ACCOUNT
     where ACC_ID = #value#
   </select>

Added: ibatis/trunk/java/mapper/mapper2/test/testdomain/FieldAccount.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/test/testdomain/FieldAccount.java?view=auto&rev=505839
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/test/testdomain/FieldAccount.java (added)
+++ ibatis/trunk/java/mapper/mapper2/test/testdomain/FieldAccount.java Sat Feb 10 21:00:24 2007
@@ -0,0 +1,52 @@
+package testdomain;
+
+import java.io.Serializable;
+
+public class FieldAccount implements Serializable {
+
+  private int id;
+  private String firstName;
+  private String lastName;
+  private String emailAddress;
+  private FieldAccount account;
+
+  public int id() {
+    return id;
+  }
+
+  public void id(int id) {
+    this.id = id;
+  }
+
+  public String firstName() {
+    return firstName;
+  }
+
+  public void firstName(String firstName) {
+    this.firstName = firstName;
+  }
+
+  public String lastName() {
+    return lastName;
+  }
+
+  public void lastName(String lastName) {
+    this.lastName = lastName;
+  }
+
+  public String emailAddress() {
+    return emailAddress;
+  }
+
+  public void emailAddress(String emailAddress) {
+    this.emailAddress = emailAddress;
+  }
+
+  public FieldAccount account() {
+    return account;
+  }
+
+  public void account(FieldAccount account) {
+    this.account = account;
+  }
+}