/* * Copyright (c) 2006 Rogério Liesenfeld * This file is subject to the terms of the MIT license (see LICENSE.txt). */ package mockit.internal.expectations; import java.util.*; import javax.annotation.*; abstract class Phase { @Nonnull final RecordAndReplayExecution recordAndReplay; Phase(@Nonnull RecordAndReplayExecution recordAndReplay) { this.recordAndReplay = recordAndReplay; } @Nonnull public final Map<Object, Object> getInstanceMap() { return recordAndReplay.executionState.instanceMap; } @Nonnull final Map<Object, Object> getReplacementMap() { return recordAndReplay.executionState.replacementMap; } @Nullable abstract Object handleInvocation( @Nullable Object mock, int mockAccess, @Nonnull String mockClassDesc, @Nonnull String mockNameAndDesc, @Nullable String genericSignature, boolean withRealImpl, @Nonnull Object[] args) throws Throwable; }