You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by mb...@apache.org on 2013/08/19 18:50:40 UTC

svn commit: r1515508 - in /commons/proper/proxy/branches/version-2.0-work/stub/src/main/java/org/apache/commons/proxy2/stub: AnnotationTrainer.java BaseAnnotationTrainer.java

Author: mbenson
Date: Mon Aug 19 16:50:39 2013
New Revision: 1515508

URL: http://svn.apache.org/r1515508
Log:
support further annotation trainer subclassing by moving all related functionality to the still self-typed BaseAnnotationTrainer

Added:
    commons/proper/proxy/branches/version-2.0-work/stub/src/main/java/org/apache/commons/proxy2/stub/BaseAnnotationTrainer.java
      - copied, changed from r1515504, commons/proper/proxy/branches/version-2.0-work/stub/src/main/java/org/apache/commons/proxy2/stub/AnnotationTrainer.java
Modified:
    commons/proper/proxy/branches/version-2.0-work/stub/src/main/java/org/apache/commons/proxy2/stub/AnnotationTrainer.java

Modified: commons/proper/proxy/branches/version-2.0-work/stub/src/main/java/org/apache/commons/proxy2/stub/AnnotationTrainer.java
URL: http://svn.apache.org/viewvc/commons/proper/proxy/branches/version-2.0-work/stub/src/main/java/org/apache/commons/proxy2/stub/AnnotationTrainer.java?rev=1515508&r1=1515507&r2=1515508&view=diff
==============================================================================
--- commons/proper/proxy/branches/version-2.0-work/stub/src/main/java/org/apache/commons/proxy2/stub/AnnotationTrainer.java (original)
+++ commons/proper/proxy/branches/version-2.0-work/stub/src/main/java/org/apache/commons/proxy2/stub/AnnotationTrainer.java Mon Aug 19 16:50:39 2013
@@ -21,7 +21,7 @@ import java.lang.annotation.Annotation;
 
 import org.apache.commons.proxy2.interceptor.InterceptorUtils;
 
-public abstract class AnnotationTrainer<A extends Annotation> extends BaseTrainer<AnnotationTrainer<A>, A>
+public abstract class AnnotationTrainer<A extends Annotation> extends BaseAnnotationTrainer<AnnotationTrainer<A>, A>
 {
     protected AnnotationTrainer() {
         super();
@@ -31,26 +31,4 @@ public abstract class AnnotationTrainer<
         super(traineeType);
     }
 
-    protected class WhenAnnotation<R> extends WhenObject<R>
-    {
-        protected AnnotationTrainer<A> thenStub(Class<R> type) {
-            trainingContext().push(type);
-            trainingContext().then(InterceptorUtils.constant(trainingContext().pop(AnnotationInvoker.INSTANCE)));
-            return AnnotationTrainer.this;
-        }
-
-        @Override
-        protected AnnotationTrainer<A> thenStub(BaseTrainer<?, R> trainer) {
-            final R trainee = trainingContext().push(trainer.traineeType);
-            trainer.train(trainee);
-            trainingContext().then(InterceptorUtils.constant(trainingContext().pop(AnnotationInvoker.INSTANCE)));
-            return AnnotationTrainer.this;
-        }
-    }
-
-    @Override
-    protected <R> WhenAnnotation<R> when(R expression) {
-        return new WhenAnnotation<R>();
-    }
-
 }

Copied: commons/proper/proxy/branches/version-2.0-work/stub/src/main/java/org/apache/commons/proxy2/stub/BaseAnnotationTrainer.java (from r1515504, commons/proper/proxy/branches/version-2.0-work/stub/src/main/java/org/apache/commons/proxy2/stub/AnnotationTrainer.java)
URL: http://svn.apache.org/viewvc/commons/proper/proxy/branches/version-2.0-work/stub/src/main/java/org/apache/commons/proxy2/stub/BaseAnnotationTrainer.java?p2=commons/proper/proxy/branches/version-2.0-work/stub/src/main/java/org/apache/commons/proxy2/stub/BaseAnnotationTrainer.java&p1=commons/proper/proxy/branches/version-2.0-work/stub/src/main/java/org/apache/commons/proxy2/stub/AnnotationTrainer.java&r1=1515504&r2=1515508&rev=1515508&view=diff
==============================================================================
--- commons/proper/proxy/branches/version-2.0-work/stub/src/main/java/org/apache/commons/proxy2/stub/AnnotationTrainer.java (original)
+++ commons/proper/proxy/branches/version-2.0-work/stub/src/main/java/org/apache/commons/proxy2/stub/BaseAnnotationTrainer.java Mon Aug 19 16:50:39 2013
@@ -21,30 +21,30 @@ import java.lang.annotation.Annotation;
 
 import org.apache.commons.proxy2.interceptor.InterceptorUtils;
 
-public abstract class AnnotationTrainer<A extends Annotation> extends BaseTrainer<AnnotationTrainer<A>, A>
+public abstract class BaseAnnotationTrainer<S extends BaseAnnotationTrainer<S, A>, A extends Annotation> extends BaseTrainer<S, A>
 {
-    protected AnnotationTrainer() {
+    protected BaseAnnotationTrainer() {
         super();
     }
 
-    protected AnnotationTrainer(Class<A> traineeType) {
+    protected BaseAnnotationTrainer(Class<A> traineeType) {
         super(traineeType);
     }
 
     protected class WhenAnnotation<R> extends WhenObject<R>
     {
-        protected AnnotationTrainer<A> thenStub(Class<R> type) {
+        protected S thenStub(Class<R> type) {
             trainingContext().push(type);
             trainingContext().then(InterceptorUtils.constant(trainingContext().pop(AnnotationInvoker.INSTANCE)));
-            return AnnotationTrainer.this;
+            return self();
         }
 
         @Override
-        protected AnnotationTrainer<A> thenStub(BaseTrainer<?, R> trainer) {
+        protected S thenStub(BaseTrainer<?, R> trainer) {
             final R trainee = trainingContext().push(trainer.traineeType);
             trainer.train(trainee);
             trainingContext().then(InterceptorUtils.constant(trainingContext().pop(AnnotationInvoker.INSTANCE)));
-            return AnnotationTrainer.this;
+            return self();
         }
     }