147d431f63a66505a645f282416659a9758a91f1cBrett Chabot/* 247d431f63a66505a645f282416659a9758a91f1cBrett Chabot * Copyright 2001-2006 OFFIS, Tammo Freese 347d431f63a66505a645f282416659a9758a91f1cBrett Chabot * 447d431f63a66505a645f282416659a9758a91f1cBrett Chabot * Licensed under the Apache License, Version 2.0 (the "License"); 547d431f63a66505a645f282416659a9758a91f1cBrett Chabot * you may not use this file except in compliance with the License. 647d431f63a66505a645f282416659a9758a91f1cBrett Chabot * You may obtain a copy of the License at 747d431f63a66505a645f282416659a9758a91f1cBrett Chabot * 847d431f63a66505a645f282416659a9758a91f1cBrett Chabot * http://www.apache.org/licenses/LICENSE-2.0 947d431f63a66505a645f282416659a9758a91f1cBrett Chabot * 1047d431f63a66505a645f282416659a9758a91f1cBrett Chabot * Unless required by applicable law or agreed to in writing, software 1147d431f63a66505a645f282416659a9758a91f1cBrett Chabot * distributed under the License is distributed on an "AS IS" BASIS, 1247d431f63a66505a645f282416659a9758a91f1cBrett Chabot * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1347d431f63a66505a645f282416659a9758a91f1cBrett Chabot * See the License for the specific language governing permissions and 1447d431f63a66505a645f282416659a9758a91f1cBrett Chabot * limitations under the License. 1547d431f63a66505a645f282416659a9758a91f1cBrett Chabot */ 1647d431f63a66505a645f282416659a9758a91f1cBrett Chabotpackage org.easymock; 1747d431f63a66505a645f282416659a9758a91f1cBrett Chabot 1847d431f63a66505a645f282416659a9758a91f1cBrett Chabot/** 1947d431f63a66505a645f282416659a9758a91f1cBrett Chabot * Decides whether an actual argument is accepted. 2047d431f63a66505a645f282416659a9758a91f1cBrett Chabot */ 2147d431f63a66505a645f282416659a9758a91f1cBrett Chabotpublic interface IArgumentMatcher { 2247d431f63a66505a645f282416659a9758a91f1cBrett Chabot 2347d431f63a66505a645f282416659a9758a91f1cBrett Chabot /** 2447d431f63a66505a645f282416659a9758a91f1cBrett Chabot * Returns whether this matcher accepts the given argument. 2547d431f63a66505a645f282416659a9758a91f1cBrett Chabot * <p> 2647d431f63a66505a645f282416659a9758a91f1cBrett Chabot * Like Object.equals(), it should be aware that the argument passed might 2747d431f63a66505a645f282416659a9758a91f1cBrett Chabot * be null and of any type. So you will usually start the method with an 2847d431f63a66505a645f282416659a9758a91f1cBrett Chabot * instanceof and/or null check. 2947d431f63a66505a645f282416659a9758a91f1cBrett Chabot * <p> 3047d431f63a66505a645f282416659a9758a91f1cBrett Chabot * The method should <b>never</b> assert if the argument doesn't match. It 3147d431f63a66505a645f282416659a9758a91f1cBrett Chabot * should only return false. EasyMock will take care of asserting if the 3247d431f63a66505a645f282416659a9758a91f1cBrett Chabot * call is really unexpected. 3347d431f63a66505a645f282416659a9758a91f1cBrett Chabot * 3447d431f63a66505a645f282416659a9758a91f1cBrett Chabot * @param argument the argument 3547d431f63a66505a645f282416659a9758a91f1cBrett Chabot * @return whether this matcher accepts the given argument. 3647d431f63a66505a645f282416659a9758a91f1cBrett Chabot */ 3747d431f63a66505a645f282416659a9758a91f1cBrett Chabot boolean matches(Object argument); 3847d431f63a66505a645f282416659a9758a91f1cBrett Chabot 3947d431f63a66505a645f282416659a9758a91f1cBrett Chabot /** 4047d431f63a66505a645f282416659a9758a91f1cBrett Chabot * Appends a string representation of this matcher to the given buffer. In case 4147d431f63a66505a645f282416659a9758a91f1cBrett Chabot * of failure, the printed message will show this string to allow to know which 4247d431f63a66505a645f282416659a9758a91f1cBrett Chabot * matcher was used for the failing call. 4347d431f63a66505a645f282416659a9758a91f1cBrett Chabot * 4447d431f63a66505a645f282416659a9758a91f1cBrett Chabot * @param buffer the buffer to which the string representation is appended. 4547d431f63a66505a645f282416659a9758a91f1cBrett Chabot */ 4647d431f63a66505a645f282416659a9758a91f1cBrett Chabot void appendTo(StringBuffer buffer); 4747d431f63a66505a645f282416659a9758a91f1cBrett Chabot} 48