Class FieldInitializer


  • public class FieldInitializer
    extends java.lang.Object
    Initialize a field with type instance if a default constructor can be found.

    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.

    • Constructor Detail

      • FieldInitializer

        public FieldInitializer​(java.lang.Object fieldOwner,
                                java.lang.reflect.Field field)
        Prepare initializer with the given field on the given instance.

        This constructor fail fast if the field type cannot be handled.

        Parameters:
        fieldOwner - Instance of the test.
        field - Field to be initialize.
      • FieldInitializer

        public FieldInitializer​(java.lang.Object fieldOwner,
                                java.lang.reflect.Field field,
                                FieldInitializer.ConstructorArgumentResolver argResolver)
        Prepare initializer with the given field on the given instance.

        This constructor fail fast if the field type cannot be handled.

        Parameters:
        fieldOwner - Instance of the test.
        field - Field to be initialize.
        argResolver - Constructor parameters resolver
    • Method Detail

      • initialize

        public FieldInitializationReport initialize()
        Initialize field if not initialized and return the actual instance.
        Returns:
        Actual field instance.
      • checkNotLocal

        private void checkNotLocal​(java.lang.reflect.Field field)
      • checkNotInner

        private void checkNotInner​(java.lang.reflect.Field field)
      • checkNotInterface

        private void checkNotInterface​(java.lang.reflect.Field field)
      • checkNotAbstract

        private void checkNotAbstract​(java.lang.reflect.Field field)
      • checkNotEnum

        private void checkNotEnum​(java.lang.reflect.Field field)
      • acquireFieldInstance

        private FieldInitializationReport acquireFieldInstance()
                                                        throws java.lang.IllegalAccessException
        Throws:
        java.lang.IllegalAccessException