Author: cbegin
Date: Tue May 19 04:54:33 2009
New Revision: 776184

URL: http://svn.apache.org/viewvc?rev=776184&view=rev
Log:
Removed annotation support for join mapping due to Java annotation limitation 
(cyclic element type) -- currently commented out code, will remove in next 
commit.

Added:
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Arg.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/CacheDomain.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/CacheDomainRef.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Case.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/ConstructorArgs.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Delete.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/DeleteProvider.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Insert.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/InsertProvider.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Many.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/One.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Options.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Result.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Results.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Select.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/SelectProvider.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/TypeDiscriminator.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Update.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/UpdateProvider.java
Removed:
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Annotations.java
Modified:
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/annotation/MapperAnnotationParser.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BindingTest.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundAuthorMapper.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundBlogMapper.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/IbatisConfig.java

Added: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Arg.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Arg.java?rev=776184&view=auto
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Arg.java
 (added)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Arg.java
 Tue May 19 04:54:33 2009
@@ -0,0 +1,22 @@
+package org.apache.ibatis.annotations;
+
+import org.apache.ibatis.type.JdbcType;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.lang.annotation.ElementType;
+
+...@retention(RetentionPolicy.RUNTIME)
+  @Target(ElementType.METHOD)
+  public @interface Arg {
+  public abstract boolean id() default false;
+
+  public abstract String column() default "";
+
+  public abstract Class javaType() default void.class;
+
+  public abstract JdbcType jdbcType() default JdbcType.UNDEFINED;
+
+  public abstract Class typeHandler() default void.class;
+}

Added: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/CacheDomain.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/CacheDomain.java?rev=776184&view=auto
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/CacheDomain.java
 (added)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/CacheDomain.java
 Tue May 19 04:54:33 2009
@@ -0,0 +1,23 @@
+package org.apache.ibatis.annotations;
+
+import org.apache.ibatis.cache.impl.PerpetualCache;
+import org.apache.ibatis.cache.decorators.LruCache;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.lang.annotation.ElementType;
+
+...@retention(RetentionPolicy.RUNTIME)
+  @Target(ElementType.TYPE)
+  public @interface CacheDomain {
+  public abstract Class<? extends org.apache.ibatis.cache.Cache> 
implementation() default PerpetualCache.class;
+
+  public abstract Class<? extends org.apache.ibatis.cache.Cache> eviction() 
default LruCache.class;
+
+  public abstract long flushInterval() default 3600000;
+
+  public abstract int size() default 1000;
+
+  public abstract boolean readWrite() default true;
+}

Added: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/CacheDomainRef.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/CacheDomainRef.java?rev=776184&view=auto
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/CacheDomainRef.java
 (added)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/CacheDomainRef.java
 Tue May 19 04:54:33 2009
@@ -0,0 +1,12 @@
+package org.apache.ibatis.annotations;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.lang.annotation.ElementType;
+
+...@retention(RetentionPolicy.RUNTIME)
+  @Target(ElementType.TYPE)
+  public @interface CacheDomainRef {
+  public abstract Class value();
+}

Added: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Case.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Case.java?rev=776184&view=auto
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Case.java
 (added)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Case.java
 Tue May 19 04:54:33 2009
@@ -0,0 +1,16 @@
+package org.apache.ibatis.annotations;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.lang.annotation.ElementType;
+
+...@retention(RetentionPolicy.RUNTIME)
+  @Target(ElementType.METHOD)
+  public @interface Case {
+  public abstract String value();
+
+  public abstract Class type();
+
+  public abstract Result[] results() default {};
+}

Added: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/ConstructorArgs.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/ConstructorArgs.java?rev=776184&view=auto
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/ConstructorArgs.java
 (added)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/ConstructorArgs.java
 Tue May 19 04:54:33 2009
@@ -0,0 +1,12 @@
+package org.apache.ibatis.annotations;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.lang.annotation.ElementType;
+
+...@retention(RetentionPolicy.RUNTIME)
+  @Target(ElementType.METHOD)
+  public @interface ConstructorArgs {
+  public abstract Arg[] value() default {};
+}

Added: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Delete.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Delete.java?rev=776184&view=auto
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Delete.java
 (added)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Delete.java
 Tue May 19 04:54:33 2009
@@ -0,0 +1,12 @@
+package org.apache.ibatis.annotations;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.lang.annotation.ElementType;
+
+...@retention(RetentionPolicy.RUNTIME)
+  @Target(ElementType.METHOD)
+  public @interface Delete {
+  public abstract String[] value();
+}

Added: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/DeleteProvider.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/DeleteProvider.java?rev=776184&view=auto
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/DeleteProvider.java
 (added)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/DeleteProvider.java
 Tue May 19 04:54:33 2009
@@ -0,0 +1,14 @@
+package org.apache.ibatis.annotations;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.lang.annotation.ElementType;
+
+...@retention(RetentionPolicy.RUNTIME)
+  @Target(ElementType.METHOD)
+  public @interface DeleteProvider {
+  public abstract Class type();
+
+  public abstract String method();
+}

Added: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Insert.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Insert.java?rev=776184&view=auto
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Insert.java
 (added)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Insert.java
 Tue May 19 04:54:33 2009
@@ -0,0 +1,12 @@
+package org.apache.ibatis.annotations;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.lang.annotation.ElementType;
+
+...@retention(RetentionPolicy.RUNTIME)
+  @Target(ElementType.METHOD)
+  public @interface Insert {
+  public abstract String[] value();
+}

Added: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/InsertProvider.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/InsertProvider.java?rev=776184&view=auto
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/InsertProvider.java
 (added)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/InsertProvider.java
 Tue May 19 04:54:33 2009
@@ -0,0 +1,14 @@
+package org.apache.ibatis.annotations;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.lang.annotation.ElementType;
+
+...@retention(RetentionPolicy.RUNTIME)
+  @Target(ElementType.METHOD)
+  public @interface InsertProvider {
+  public abstract Class type();
+
+  public abstract String method();
+}

Added: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Many.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Many.java?rev=776184&view=auto
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Many.java
 (added)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Many.java
 Tue May 19 04:54:33 2009
@@ -0,0 +1,18 @@
+package org.apache.ibatis.annotations;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.lang.annotation.ElementType;
+
+...@retention(RetentionPolicy.RUNTIME)
+  @Target(ElementType.METHOD)
+  public @interface Many {
+  public abstract Class javaType();
+
+  public abstract String select() default "";
+
+  public abstract ConstructorArgs constructor() default @ConstructorArgs;
+
+//  public abstract Results results() default @Results;
+}

Added: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/One.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/One.java?rev=776184&view=auto
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/One.java
 (added)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/One.java
 Tue May 19 04:54:33 2009
@@ -0,0 +1,16 @@
+package org.apache.ibatis.annotations;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.lang.annotation.ElementType;
+
+...@retention(RetentionPolicy.RUNTIME)
+  @Target(ElementType.METHOD)
+  public @interface One {
+  public abstract String select() default "";
+
+  public abstract ConstructorArgs constructor() default @ConstructorArgs;
+
+//  public abstract Results results() default @Results;
+}

Added: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Options.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Options.java?rev=776184&view=auto
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Options.java
 (added)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Options.java
 Tue May 19 04:54:33 2009
@@ -0,0 +1,29 @@
+package org.apache.ibatis.annotations;
+
+import org.apache.ibatis.mapping.ResultSetType;
+import org.apache.ibatis.mapping.StatementType;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.lang.annotation.ElementType;
+
+...@retention(RetentionPolicy.RUNTIME)
+  @Target(ElementType.METHOD)
+  public @interface Options {
+  public abstract boolean useCache() default true;
+
+  public abstract boolean flushCache() default false;
+
+  public abstract ResultSetType resultSetType() default 
ResultSetType.FORWARD_ONLY;
+
+  public abstract StatementType statementType() default StatementType.PREPARED;
+
+  public abstract int fetchSize() default -1;
+
+  public abstract int timeout() default -1;
+
+  public abstract boolean useGeneratedKeys() default false;
+
+  public abstract String keyProperty() default "id";
+}

Added: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Result.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Result.java?rev=776184&view=auto
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Result.java
 (added)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Result.java
 Tue May 19 04:54:33 2009
@@ -0,0 +1,28 @@
+package org.apache.ibatis.annotations;
+
+import org.apache.ibatis.type.JdbcType;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.lang.annotation.ElementType;
+
+...@retention(RetentionPolicy.RUNTIME)
+  @Target(ElementType.METHOD)
+  public @interface Result {
+  public abstract boolean id() default false;
+
+  public abstract String column() default "";
+
+  public abstract String property() default "";
+
+  public abstract Class javaType() default void.class;
+
+  public abstract JdbcType jdbcType() default JdbcType.UNDEFINED;
+
+  public abstract Class typeHandler() default void.class;
+
+  public abstract One one() default @One;
+
+  public abstract Many many() default @Many(javaType = void.class);
+}

Added: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Results.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Results.java?rev=776184&view=auto
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Results.java
 (added)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Results.java
 Tue May 19 04:54:33 2009
@@ -0,0 +1,12 @@
+package org.apache.ibatis.annotations;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.lang.annotation.ElementType;
+
+...@retention(RetentionPolicy.RUNTIME)
+  @Target(ElementType.METHOD)
+  public @interface Results {
+  public abstract Result[] value() default {};
+}

Added: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Select.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Select.java?rev=776184&view=auto
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Select.java
 (added)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Select.java
 Tue May 19 04:54:33 2009
@@ -0,0 +1,12 @@
+package org.apache.ibatis.annotations;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.lang.annotation.ElementType;
+
+...@retention(RetentionPolicy.RUNTIME)
+  @Target(ElementType.METHOD)
+  public @interface Select {
+  public abstract String[] value();
+}

Added: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/SelectProvider.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/SelectProvider.java?rev=776184&view=auto
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/SelectProvider.java
 (added)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/SelectProvider.java
 Tue May 19 04:54:33 2009
@@ -0,0 +1,14 @@
+package org.apache.ibatis.annotations;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.lang.annotation.ElementType;
+
+...@retention(RetentionPolicy.RUNTIME)
+  @Target(ElementType.METHOD)
+  public @interface SelectProvider {
+  public abstract Class type();
+
+  public abstract String method();
+}

Added: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/TypeDiscriminator.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/TypeDiscriminator.java?rev=776184&view=auto
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/TypeDiscriminator.java
 (added)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/TypeDiscriminator.java
 Tue May 19 04:54:33 2009
@@ -0,0 +1,22 @@
+package org.apache.ibatis.annotations;
+
+import org.apache.ibatis.type.JdbcType;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.lang.annotation.ElementType;
+
+...@retention(RetentionPolicy.RUNTIME)
+  @Target(ElementType.METHOD)
+  public @interface TypeDiscriminator {
+  public abstract String column();
+
+  public abstract Class javaType() default void.class;
+
+  public abstract JdbcType jdbcType() default JdbcType.UNDEFINED;
+
+  public abstract Class typeHandler() default void.class;
+
+  public abstract Case[] cases();
+}

Added: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Update.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Update.java?rev=776184&view=auto
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Update.java
 (added)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Update.java
 Tue May 19 04:54:33 2009
@@ -0,0 +1,12 @@
+package org.apache.ibatis.annotations;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.lang.annotation.ElementType;
+
+...@retention(RetentionPolicy.RUNTIME)
+  @Target(ElementType.METHOD)
+  public @interface Update {
+  public abstract String[] value();
+}

Added: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/UpdateProvider.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/UpdateProvider.java?rev=776184&view=auto
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/UpdateProvider.java
 (added)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/UpdateProvider.java
 Tue May 19 04:54:33 2009
@@ -0,0 +1,14 @@
+package org.apache.ibatis.annotations;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.lang.annotation.ElementType;
+
+...@retention(RetentionPolicy.RUNTIME)
+  @Target(ElementType.METHOD)
+  public @interface UpdateProvider {
+  public abstract Class type();
+
+  public abstract String method();
+}

Modified: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/annotation/MapperAnnotationParser.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/annotation/MapperAnnotationParser.java?rev=776184&r1=776183&r2=776184&view=diff
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/annotation/MapperAnnotationParser.java
 (original)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/annotation/MapperAnnotationParser.java
 Tue May 19 04:54:33 2009
@@ -1,6 +1,6 @@
 package org.apache.ibatis.builder.annotation;
 
-import static org.apache.ibatis.annotations.Annotations.*;
+import org.apache.ibatis.annotations.*;
 import org.apache.ibatis.binding.BindingException;
 import org.apache.ibatis.builder.*;
 import org.apache.ibatis.builder.xml.XMLMapperParser;
@@ -149,16 +149,16 @@
       for (Result result : results) {
         ensureHasOnlyCollectionOrResultNotBoth(result);
         if (hasCollection(result)) {
-          Class propertyType = result.many().javaType();
-          Arg[] nestedArgs = result.many().constructor().value();
-          Result[] nestedResults = result.many().results().value();
-          applyResultMap(nestedResultMapId(resultMapId, result), propertyType, 
nestedArgs, nestedResults, null);
+//          Class propertyType = result.many().javaType();
+//          Arg[] nestedArgs = result.many().constructor().value();
+//          Result[] nestedResults = result.many().results().value();
+//          applyResultMap(nestedResultMapId(resultMapId, result), 
propertyType, nestedArgs, nestedResults, null);
         }
         if (hasAssociation(result)) {
-          Class propertyType = 
MetaClass.forClass(returnType).getSetterType(result.property());
-          Arg[] nestedArgs = result.one().constructor().value();
-          Result[] nestedResults = result.one().results().value();
-          applyResultMap(nestedResultMapId(resultMapId, result), propertyType, 
nestedArgs, nestedResults, null);
+//          Class propertyType = 
MetaClass.forClass(returnType).getSetterType(result.property());
+//          Arg[] nestedArgs = result.one().constructor().value();
+//          Result[] nestedResults = result.one().results().value();
+//          applyResultMap(nestedResultMapId(resultMapId, result), 
propertyType, nestedArgs, nestedResults, null);
         }
       }
     }
@@ -359,13 +359,13 @@
   }
 
   private boolean hasAssociation(Result result) {
-    return result.one().constructor().value().length > 1
-        || result.one().results().value().length > 1;
+    return result.one().constructor().value().length > 1;
+//        || result.one().results().value().length > 1;
   }
 
   private boolean hasCollection(Result result) {
-    return result.many().constructor().value().length > 1
-        || result.many().results().value().length > 1;
+    return result.many().constructor().value().length > 1;
+//        || result.many().results().value().length > 1;
   }
 
   private Result[] resultsIf(Results results) {

Modified: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BindingTest.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BindingTest.java?rev=776184&r1=776183&r2=776184&view=diff
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BindingTest.java
 (original)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BindingTest.java
 Tue May 19 04:54:33 2009
@@ -138,25 +138,25 @@
     }
   }
 
-  @Test
-  public void shouldSelectBlogWithAssociations() {
-    SqlSession session = sqlSessionFactory.openSession();
-    try {
-      BoundBlogMapper mapper = session.getMapper(BoundBlogMapper.class);
-      List<Blog> blogs = mapper.selectBlogWithAssociations(1);
-      assertEquals(1, blogs.size());
-      Blog blog = blogs.get(0);
-      assertEquals(2, blog.getPosts().size());
-      Post firstPost = blog.getPosts().get(0);
-      assertEquals(3, firstPost.getTags().size());
-      assertEquals(2, firstPost.getComments().size());
-      Post secondPost = blog.getPosts().get(1);
-      assertEquals(1, secondPost.getTags().size());
-      assertEquals(0, secondPost.getComments().size());
-    } finally {
-      session.close();
-    }
-  }
+//  @Test
+//  public void shouldSelectBlogWithAssociations() {
+//    SqlSession session = sqlSessionFactory.openSession();
+//    try {
+//      BoundBlogMapper mapper = session.getMapper(BoundBlogMapper.class);
+//      List<Blog> blogs = mapper.selectBlogWithAssociations(1);
+//      assertEquals(1, blogs.size());
+//      Blog blog = blogs.get(0);
+//      assertEquals(2, blog.getPosts().size());
+//      Post firstPost = blog.getPosts().get(0);
+//      assertEquals(3, firstPost.getTags().size());
+//      assertEquals(2, firstPost.getComments().size());
+//      Post secondPost = blog.getPosts().get(1);
+//      assertEquals(1, secondPost.getTags().size());
+//      assertEquals(0, secondPost.getComments().size());
+//    } finally {
+//      session.close();
+//    }
+//  }
 
   @Test
   public void shouldExecuteBoundSelectOneBlogStatement() {

Modified: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundAuthorMapper.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundAuthorMapper.java?rev=776184&r1=776183&r2=776184&view=diff
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundAuthorMapper.java
 (original)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundAuthorMapper.java
 Tue May 19 04:54:33 2009
@@ -1,7 +1,7 @@
 package org.apache.ibatis.binding;
 
 import domain.blog.*;
-import static org.apache.ibatis.annotations.Annotations.*;
+import org.apache.ibatis.annotations.*;
 
 import java.util.List;
 

Modified: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundBlogMapper.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundBlogMapper.java?rev=776184&r1=776183&r2=776184&view=diff
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundBlogMapper.java
 (original)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundBlogMapper.java
 Tue May 19 04:54:33 2009
@@ -1,7 +1,7 @@
 package org.apache.ibatis.binding;
 
 import domain.blog.*;
-import static org.apache.ibatis.annotations.Annotations.*;
+import org.apache.ibatis.annotations.*;
 
 import java.util.*;
 
@@ -79,73 +79,73 @@
 
   //======================================================
 
-  @Results({
-    @Result(id = true, property = "id", column = "blog_id"),
-    @Result(property = "title", column = "blog_title"),
-    @Result(property = "author", column = "author_id", one = @One(
-        results = @Results({
-          @Result(id = true, property = "id", column = "author_id"),
-          @Result(property = "username", column = "author_username"),
-          @Result(property = "email", column = "author_email")
-            }))),
-    @Result(property = "posts", column = "post_id", many = @Many(
-        javaType = Post.class,
-        results = @Results({
-          @Result(id = true, property = "id", column = "post_id"),
-          @Result(property = "subject", column = "post_subject"),
-          @Result(property = "body", column = "post_body"),
-          @Result(property = "section", column = "post_section"),
-          @Result(id = true, property = "author.id", column = "author_id"),
-          @Result(property = "author.username", column = "author_username"),
-          @Result(property = "author.email", column = "author_email"),
-          @Result(property = "createdOn", column = "post_created_on")
-            , @Result(property = "tags", column = "tag_id", many = @Many(
-            javaType = Tag.class,
-            results = @Results({
-              @Result(id = true, property = "id", column = "tag_id"),
-              @Result(property = "name", column = "tag_name")
-                })))
-            , @Result(property = "comments", column = "comment_id", many = 
@Many(
-            javaType = Comment.class,
-            results = @Results({
-              @Result(id = true, property = "id", column = "comment_id"),
-              @Result(property = "name", column = "comment_name"),
-              @Result(property = "comment", column = "comment_text")
-                })))
-            })))
-      })
-  @Select("select" +
-      "    B.id as blog_id," +
-      "    B.title as blog_title," +
-      "    B.author_id as blog_author_id," +
-      "    A.id as author_id," +
-      "    A.username as author_username," +
-      "    A.password as author_password," +
-      "    A.email as author_email," +
-      "    A.bio as author_bio," +
-      "    A.favourite_section as author_favourite_section," +
-      "    P.id as post_id," +
-      "    P.blog_id as post_blog_id," +
-      "    P.author_id as post_author_id," +
-      "    P.created_on as post_created_on," +
-      "    P.section as post_section," +
-      "    P.subject as post_subject," +
-      "    P.draft as draft," +
-      "    P.body as post_body," +
-      "    C.id as comment_id," +
-      "    C.post_id as comment_post_id," +
-      "    C.name as comment_name," +
-      "    C.comment as comment_text," +
-      "    T.id as tag_id," +
-      "    T.name as tag_name" +
-      "    from Blog B" +
-      "    left outer join Author A on B.author_id = A.id" +
-      "    left outer join Post P on B.id = P.blog_id" +
-      "    left outer join Comment C on P.id = C.post_id" +
-      "    left outer join Post_Tag PT on PT.post_id = P.id" +
-      "    left outer join Tag T on PT.tag_id = T.id" +
-      "    where B.id = #{id}")
-  List<Blog> selectBlogWithAssociations(int id);
+//  @Results({
+//    @Result(id = true, property = "id", column = "blog_id"),
+//    @Result(property = "title", column = "blog_title"),
+//    @Result(property = "author", column = "author_id", one = @One(
+//        results = @Results({
+//          @Result(id = true, property = "id", column = "author_id"),
+//          @Result(property = "username", column = "author_username"),
+//          @Result(property = "email", column = "author_email")
+//            }))),
+//    @Result(property = "posts", column = "post_id", many = @Many(
+//        javaType = Post.class,
+//        results = @Results({
+//          @Result(id = true, property = "id", column = "post_id"),
+//          @Result(property = "subject", column = "post_subject"),
+//          @Result(property = "body", column = "post_body"),
+//          @Result(property = "section", column = "post_section"),
+//          @Result(id = true, property = "author.id", column = "author_id"),
+//          @Result(property = "author.username", column = "author_username"),
+//          @Result(property = "author.email", column = "author_email"),
+//          @Result(property = "createdOn", column = "post_created_on")
+//            , @Result(property = "tags", column = "tag_id", many = @Many(
+//            javaType = Tag.class,
+//            results = @Results({
+//              @Result(id = true, property = "id", column = "tag_id"),
+//              @Result(property = "name", column = "tag_name")
+//                })))
+//            , @Result(property = "comments", column = "comment_id", many = 
@Many(
+//            javaType = Comment.class,
+//            results = @Results({
+//              @Result(id = true, property = "id", column = "comment_id"),
+//              @Result(property = "name", column = "comment_name"),
+//              @Result(property = "comment", column = "comment_text")
+//                })))
+//            })))
+//      })
+//  @Select("select" +
+//      "    B.id as blog_id," +
+//      "    B.title as blog_title," +
+//      "    B.author_id as blog_author_id," +
+//      "    A.id as author_id," +
+//      "    A.username as author_username," +
+//      "    A.password as author_password," +
+//      "    A.email as author_email," +
+//      "    A.bio as author_bio," +
+//      "    A.favourite_section as author_favourite_section," +
+//      "    P.id as post_id," +
+//      "    P.blog_id as post_blog_id," +
+//      "    P.author_id as post_author_id," +
+//      "    P.created_on as post_created_on," +
+//      "    P.section as post_section," +
+//      "    P.subject as post_subject," +
+//      "    P.draft as draft," +
+//      "    P.body as post_body," +
+//      "    C.id as comment_id," +
+//      "    C.post_id as comment_post_id," +
+//      "    C.name as comment_name," +
+//      "    C.comment as comment_text," +
+//      "    T.id as tag_id," +
+//      "    T.name as tag_name" +
+//      "    from Blog B" +
+//      "    left outer join Author A on B.author_id = A.id" +
+//      "    left outer join Post P on B.id = P.blog_id" +
+//      "    left outer join Comment C on P.id = C.post_id" +
+//      "    left outer join Post_Tag PT on PT.post_id = P.id" +
+//      "    left outer join Tag T on PT.tag_id = T.id" +
+//      "    where B.id = #{id}")
+//  List<Blog> selectBlogWithAssociations(int id);
 
   //======================================================
 

Modified: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/IbatisConfig.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/IbatisConfig.java?rev=776184&r1=776183&r2=776184&view=diff
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/IbatisConfig.java
 (original)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/IbatisConfig.java
 Tue May 19 04:54:33 2009
@@ -13,7 +13,7 @@
 
 public class IbatisConfig {
 
-  public static SqlSessionFactory getSqlSessionFactory() {
+  public SqlSessionFactory getSqlSessionFactory() {
     try {
       DataSource dataSource = BaseDataTest.createBlogDataSource();
       BaseDataTest.runScript(dataSource, BaseDataTest.BLOG_DDL);


Reply via email to