/* * Copyright (c) 2006-2012 Rogério Liesenfeld * This file is subject to the terms of the MIT license (see LICENSE.txt). */ package mockit.internal.expectations.mocking; import java.lang.reflect.*; import java.util.*; import mockit.internal.util.*; final class CaptureOfNewInstancesForFields extends CaptureOfNewInstances { boolean captureNewInstanceForApplicableMockField(Object fieldOwner, Object mock) { boolean constructorModifiedForCaptureOnly = captureNewInstance(fieldOwner, mock); if (captureFound != null) { Field mockField = captureFound.typeMetadata.field; FieldReflection.setFieldValue(mockField, fieldOwner, mock); } return constructorModifiedForCaptureOnly; } void resetCaptureCount(Field mockField) { for (List<Capture> fieldsWithCapture : baseTypeToCaptures.values()) { resetCaptureCount(mockField, fieldsWithCapture); } } private void resetCaptureCount(Field mockField, List<Capture> fieldsWithCapture) { for (Capture fieldWithCapture : fieldsWithCapture) { if (fieldWithCapture.typeMetadata.field == mockField) { fieldWithCapture.reset(); } } } }