1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package net.sf.beep4j.internal;
17
18 import org.jmock.core.Invocation;
19 import org.jmock.core.Stub;
20
21 public class ParameterCaptureStub<T> implements Stub {
22 private final int index;
23 private final Class<? extends T> type;
24 private final Stub target;
25 private T parameter;
26 public ParameterCaptureStub(int index, Class<? extends T> type, Stub target) {
27 this.index = index;
28 this.type = type;
29 this.target = target;
30 }
31 public T getParameter() {
32 return parameter;
33 }
34 public StringBuffer describeTo(StringBuffer buf) {
35 buf.append("stub[capture parameter " + index + "]");
36 return buf;
37 }
38 public Object invoke(Invocation invocation) throws Throwable {
39 parameter = type.cast(invocation.parameterValues.get(index));
40 if (target != null) {
41 return target.invoke(invocation);
42 } else {
43 return null;
44 }
45 }
46 }