/*
* Copyright (c) 2006-2011 Rogério Liesenfeld
* This file is subject to the terms of the MIT license (see LICENSE.txt).
*/
package mockit.internal.expectations;
import java.util.*;
abstract class Phase
{
final RecordAndReplayExecution recordAndReplay;
Expectation currentExpectation;
Phase(RecordAndReplayExecution recordAndReplay) { this.recordAndReplay = recordAndReplay; }
final Expectation getCurrentExpectation()
{
if (currentExpectation == null) {
throw new IllegalStateException(
"Missing invocation to mocked type at this point; please make sure such invocations appear only after " +
"the declaration of a suitable mock field or parameter");
}
return currentExpectation;
}
final Map<Object, Object> getInstanceMap() { return recordAndReplay.executionState.instanceMap; }
abstract Object handleInvocation(
Object mock, int mockAccess, String mockClassDesc, String mockNameAndDesc, String genericSignature,
String exceptions, boolean withRealImpl, Object[] args) throws Throwable;
}