public class FieldInitializer
extends java.lang.Object
If the given field is already initialized, then the actual instance is returned. This initializer doesn't work with inner classes, local classes, interfaces or abstract types.
Modifier and Type | Class and Description |
---|---|
static interface |
FieldInitializer.ConstructorArgumentResolver
Represents the strategy used to resolve actual instances
to be given to a constructor given the argument types.
|
private static interface |
FieldInitializer.ConstructorInstantiator |
(package private) static class |
FieldInitializer.NoArgConstructorInstantiator
Constructor instantiating strategy for no-arg constructor.
|
(package private) static class |
FieldInitializer.ParameterizedConstructorInstantiator
Constructor instantiating strategy for parameterized constructors.
|
Modifier and Type | Field and Description |
---|---|
private java.lang.reflect.Field |
field |
private java.lang.Object |
fieldOwner |
private FieldInitializer.ConstructorInstantiator |
instantiator |
Modifier | Constructor and Description |
---|---|
|
FieldInitializer(java.lang.Object fieldOwner,
java.lang.reflect.Field field)
Prepare initializer with the given field on the given instance.
|
|
FieldInitializer(java.lang.Object fieldOwner,
java.lang.reflect.Field field,
FieldInitializer.ConstructorArgumentResolver argResolver)
Prepare initializer with the given field on the given instance.
|
private |
FieldInitializer(java.lang.Object fieldOwner,
java.lang.reflect.Field field,
FieldInitializer.ConstructorInstantiator instantiator) |
Modifier and Type | Method and Description |
---|---|
private FieldInitializationReport |
acquireFieldInstance() |
private void |
checkNotAbstract(java.lang.reflect.Field field) |
private void |
checkNotEnum(java.lang.reflect.Field field) |
private void |
checkNotInner(java.lang.reflect.Field field) |
private void |
checkNotInterface(java.lang.reflect.Field field) |
private void |
checkNotLocal(java.lang.reflect.Field field) |
FieldInitializationReport |
initialize()
Initialize field if not initialized and return the actual instance.
|
private final java.lang.Object fieldOwner
private final java.lang.reflect.Field field
private final FieldInitializer.ConstructorInstantiator instantiator
public FieldInitializer(java.lang.Object fieldOwner, java.lang.reflect.Field field)
This constructor fail fast if the field type cannot be handled.
fieldOwner
- Instance of the test.field
- Field to be initialize.public FieldInitializer(java.lang.Object fieldOwner, java.lang.reflect.Field field, FieldInitializer.ConstructorArgumentResolver argResolver)
This constructor fail fast if the field type cannot be handled.
fieldOwner
- Instance of the test.field
- Field to be initialize.argResolver
- Constructor parameters resolverprivate FieldInitializer(java.lang.Object fieldOwner, java.lang.reflect.Field field, FieldInitializer.ConstructorInstantiator instantiator)
public FieldInitializationReport initialize()
private void checkNotLocal(java.lang.reflect.Field field)
private void checkNotInner(java.lang.reflect.Field field)
private void checkNotInterface(java.lang.reflect.Field field)
private void checkNotAbstract(java.lang.reflect.Field field)
private void checkNotEnum(java.lang.reflect.Field field)
private FieldInitializationReport acquireFieldInstance() throws java.lang.IllegalAccessException
java.lang.IllegalAccessException