1/* 2 * Copyright (c) 2007 Mockito contributors 3 * This program is made available under the terms of the MIT License. 4 */ 5package org.mockito.configuration; 6 7import org.mockito.MockitoAnnotations; 8 9import java.lang.annotation.Annotation; 10import java.lang.reflect.Field; 11 12/** 13 * Configures mock creation logic behind @Mock, @Captor and @Spy annotations 14 * <p> 15 * If you are interested then see implementations or source code of {@link MockitoAnnotations#initMocks(Object)} 16 */ 17public interface AnnotationEngine { 18 19 /** 20 * @deprecated 21 * Please use {@link AnnotationEngine#process(Class, Object)} method instead that is more robust 22 * <p> 23 * Creates mock, ArgumentCaptor or wraps field instance in spy object. 24 * Only if of correct annotation type. 25 * 26 * @param annotation Annotation 27 * @param field Field details 28 */ 29 @Deprecated 30 Object createMockFor(Annotation annotation, Field field); 31 32 /** 33 * Allows extending the interface to perform action on specific fields on the test class. 34 * <p> 35 * See the implementation of this method to figure out what is it for. 36 * 37 * @param clazz Class where to extract field information, check implementation for details 38 * @param testInstance Test instance 39 */ 40 void process(Class<?> clazz, Object testInstance); 41}