From: Steve F. <sm...@us...> - 2003-07-06 23:40:31
|
Update of /cvsroot/mockobjects/mockobjects-java/src/core/com/mockobjects/dynamic In directory sc8-pr-cvs1:/tmp/cvs-serv21899/src/core/com/mockobjects/dynamic Modified Files: AbstractCallableCollection.java CallableList.java Added Files: CallableArrayList.java Log Message: Extracted CallableList and CallableArrayList --- NEW FILE: CallableArrayList.java --- /* * Copyright mockobjects.com 05-Jul-2003 */ package com.mockobjects.dynamic; import java.util.ArrayList; public class CallableArrayList implements CallableList { public ArrayList list = new ArrayList(); public void add(Callable callable) { list.add(callable); } public boolean isEmpty() { return list.isEmpty(); } public Callable get(int index) { return (Callable)list.get(index); } public int size() { return list.size(); } public void clear() { list.clear(); } public Callable firstMatchingCall(final Invocation invocation) { return apply(new Handler() { public Callable handle(int index, Callable callable) { return callable.matches(invocation) ? callable : null; } }); } public Callable apply(final CallableList.Handler handler) { for (int i = 0; i < list.size(); i++) { Callable result = handler.handle(i, (Callable)list.get(i)); if (null != result) { return result; } } return null; } public void verify() { apply(new Handler() { public Callable handle(int index, Callable callable) { callable.verify(); return null; } }); } } Index: AbstractCallableCollection.java =================================================================== RCS file: /cvsroot/mockobjects/mockobjects-java/src/core/com/mockobjects/dynamic/AbstractCallableCollection.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- AbstractCallableCollection.java 6 Jul 2003 23:24:09 -0000 1.2 +++ AbstractCallableCollection.java 6 Jul 2003 23:40:29 -0000 1.3 @@ -4,6 +4,9 @@ abstract public class AbstractCallableCollection implements CallableCollection { + protected CallableList expectedCalls = new CallableArrayList(); + protected CallableList matchingCalls = new CallableArrayList(); + abstract public String getDescription(); abstract public Object call(Invocation invocation) throws Throwable; @@ -28,8 +31,13 @@ expectedCalls.verify(); } - protected CallableList expectedCalls = new CallableList(); - protected CallableList matchingCalls = new CallableList(); + protected Callable findMatchingCall(Invocation invocation) throws AssertionFailedError { + Callable foundCall = matchingCalls.firstMatchingCall(invocation); + if (foundCall == null) { + throw createUnexpectedCallError(invocation); + } + return foundCall; + } protected AssertionFailedError createUnexpectedCallError(Invocation invocation) { StringBuffer buf = new StringBuffer(); @@ -40,13 +48,4 @@ buf.append(getDescription()); return new AssertionFailedError(buf.toString()); } - - protected Callable findMatchingCall(Invocation invocation) throws AssertionFailedError { - Callable foundCall = matchingCalls.firstMatchingCall(invocation); - if (foundCall == null) { - throw createUnexpectedCallError(invocation); - } - return foundCall; - } - } Index: CallableList.java =================================================================== RCS file: /cvsroot/mockobjects/mockobjects-java/src/core/com/mockobjects/dynamic/CallableList.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- CallableList.java 6 Jul 2003 23:24:09 -0000 1.2 +++ CallableList.java 6 Jul 2003 23:40:29 -0000 1.3 @@ -1,63 +1,23 @@ /* - * Copyright mockobjects.com 05-Jul-2003 + * Copyright mockobjects.com 07-Jul-2003 + * */ package com.mockobjects.dynamic; -import java.util.ArrayList; - import com.mockobjects.Verifiable; -public class CallableList implements Verifiable { - public interface Handler { - Callable handle(int index, Callable callable); - } - - public ArrayList list = new ArrayList(); - - public void add(Callable callable) { - list.add(callable); - } - - public boolean isEmpty() { - return list.isEmpty(); - } - - public Callable get(int index) { - return (Callable)list.get(index); - } - - public int size() { - return list.size(); - } - - public void clear() { - list.clear(); - } - - public Callable firstMatchingCall(final Invocation invocation) { - return apply(new Handler() { - public Callable handle(int index, Callable callable) { - return callable.matches(invocation) ? callable : null; - } - }); - } - - public Callable apply(final Handler handler) { - for (int i = 0; i < list.size(); i++) { - Callable result = handler.handle(i, (Callable)list.get(i)); - if (null != result) { - return result; - } - } - return null; - } - - public void verify() { - apply(new Handler() { - public Callable handle(int index, Callable callable) { - callable.verify(); - return null; - } - }); - } -} +public interface CallableList extends Verifiable { + + public interface Handler { + Callable handle(int index, Callable callable); + } + + + void add(Callable callable); + boolean isEmpty(); + Callable get(int index); + int size(); + void clear(); + Callable firstMatchingCall(final Invocation invocation); + Callable apply(final Handler handler); +} \ No newline at end of file |