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:16:53 UTC
svn commit: r1515491 -
/commons/proper/proxy/branches/version-2.0-work/stub/src/main/java/org/apache/commons/proxy2/stub/TrainingContext.java
Author: mbenson
Date: Mon Aug 19 16:16:52 2013
New Revision: 1515491
URL: http://svn.apache.org/r1515491
Log:
allow custom invoker and clean up warnings
Modified:
commons/proper/proxy/branches/version-2.0-work/stub/src/main/java/org/apache/commons/proxy2/stub/TrainingContext.java
Modified: commons/proper/proxy/branches/version-2.0-work/stub/src/main/java/org/apache/commons/proxy2/stub/TrainingContext.java
URL: http://svn.apache.org/viewvc/commons/proper/proxy/branches/version-2.0-work/stub/src/main/java/org/apache/commons/proxy2/stub/TrainingContext.java?rev=1515491&r1=1515490&r2=1515491&view=diff
==============================================================================
--- commons/proper/proxy/branches/version-2.0-work/stub/src/main/java/org/apache/commons/proxy2/stub/TrainingContext.java (original)
+++ commons/proper/proxy/branches/version-2.0-work/stub/src/main/java/org/apache/commons/proxy2/stub/TrainingContext.java Mon Aug 19 16:16:52 2013
@@ -64,13 +64,18 @@ public class TrainingContext
<T> T pop()
{
+ return pop(NullInvoker.INSTANCE);
+ }
+
+ <T> T pop(Invoker invoker)
+ {
final TrainingContextFrame<?> frame = frameDeque.pop();
return proxyFactory.createInterceptorProxy(
- proxyFactory.createInvokerProxy(NullInvoker.INSTANCE, frame.type),
+ proxyFactory.createInvokerProxy(invoker, frame.type),
frame.stubInterceptor,
frame.type);
}
-
+
<T> T push(Class<T> type)
{
return push(type, new SwitchInterceptor());
@@ -84,7 +89,7 @@ public class TrainingContext
return proxyFactory.createInvokerProxy(invoker, type);
}
- public void record(ArgumentMatcher argumentMatcher)
+ public void record(ArgumentMatcher<?> argumentMatcher)
{
peek().argumentMatchers.add(argumentMatcher);
}
@@ -118,9 +123,9 @@ public class TrainingContext
private static final class MatchingArgumentsMatcher implements InvocationMatcher
{
private final RecordedInvocation recordedInvocation;
- private final ArgumentMatcher[] matchers;
+ private final ArgumentMatcher<?>[] matchers;
- private MatchingArgumentsMatcher(RecordedInvocation recordedInvocation, ArgumentMatcher[] matchers)
+ private MatchingArgumentsMatcher(RecordedInvocation recordedInvocation, ArgumentMatcher<?>[] matchers)
{
this.recordedInvocation = recordedInvocation;
this.matchers = ArrayUtils.clone(matchers);
@@ -138,7 +143,9 @@ public class TrainingContext
for (int i = 0; i < arguments.length; i++)
{
Object argument = arguments[i];
- if (!matchers[i].matches(argument))
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ final boolean matches = ((ArgumentMatcher) matchers[i]).matches(argument);
+ if (!matches)
{
return false;
}
@@ -153,7 +160,7 @@ public class TrainingContext
private final SwitchInterceptor stubInterceptor;
- private final List<ArgumentMatcher> argumentMatchers = new LinkedList<ArgumentMatcher>();
+ private final List<ArgumentMatcher<?>> argumentMatchers = new LinkedList<ArgumentMatcher<?>>();
private InvocationMatcher matcher = null;
@@ -182,7 +189,7 @@ public class TrainingContext
void methodInvoked(Method method, Object[] arguments)
{
- final ArgumentMatcher[] matchersArray = argumentMatchers.toArray(new ArgumentMatcher[argumentMatchers.size()]);
+ final ArgumentMatcher<?>[] matchersArray = argumentMatchers.toArray(new ArgumentMatcher[argumentMatchers.size()]);
argumentMatchers.clear();
final RecordedInvocation invocation = new RecordedInvocation(method, arguments);
if (ArrayUtils.isEmpty(matchersArray))
@@ -202,6 +209,8 @@ public class TrainingContext
private static final class TrainingInvoker implements Invoker
{
+ private static final long serialVersionUID = 1L;
+
private final String id;
private TrainingInvoker(TrainingContextFrame<?> frame)