1e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson/* 2e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * Copyright (c) 2007 Mockito contributors 3e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * This program is made available under the terms of the MIT License. 4e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson */ 5e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 6e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonpackage org.mockito.internal.util.reflection; 7e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 8e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson/** 9e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * Report on field initialization 10e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson */ 11e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonpublic class FieldInitializationReport { 12e03a0f42b85425bffd40bcf790819671a7848c1aPaul Duffin private final Object fieldInstance; 13e03a0f42b85425bffd40bcf790819671a7848c1aPaul Duffin private final boolean wasInitialized; 14e03a0f42b85425bffd40bcf790819671a7848c1aPaul Duffin private final boolean wasInitializedUsingConstructorArgs; 15e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 16e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson public FieldInitializationReport(Object fieldInstance, boolean wasInitialized, boolean wasInitializedUsingConstructorArgs) { 17e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson this.fieldInstance = fieldInstance; 18e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson this.wasInitialized = wasInitialized; 19e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson this.wasInitializedUsingConstructorArgs = wasInitializedUsingConstructorArgs; 20e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson } 21e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 22e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson /** 23e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * Returns the actual field instance. 24e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * 25e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * @return the actual instance 26e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson */ 27e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson public Object fieldInstance() { 28e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson return fieldInstance; 29e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson } 30e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 31e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson /** 32e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * Indicate wether the field was created during the process or not. 33e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * 34e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * @return <code>true</code> if created, <code>false</code> if the field did already hold an instance. 35e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson */ 36e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson public boolean fieldWasInitialized() { 37e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson return wasInitialized; 38e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson } 39e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 40e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson /** 41e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * Indicate wether the field was created using constructor args. 42e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * 43e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * @return <code>true</code> if field was created using constructor parameters. 44e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson */ 45e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson public boolean fieldWasInitializedUsingContructorArgs() { 46e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson return wasInitializedUsingConstructorArgs; 47e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson } 48e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 49e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson /** 50e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * Returns the class of the actual instance in the field. 51e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * 52e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * @return Class of the instance 53e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson */ 54e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson public Class<?> fieldClass() { 55e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson return fieldInstance != null ? fieldInstance.getClass() : null; 56e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson } 57e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson} 58e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 59