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();
}
}