Class FieldHandlerImpl

    • Constructor Detail

      • FieldHandlerImpl

        public FieldHandlerImpl​(FieldHandler handler,
                                TypeInfo typeInfo)
        Construct a new field handler for the specified field. The field must be public, and may not be static or transient. The field name is determined from the Java field, the type from the type information.
        Parameters:
        handler -
        typeInfo - Type information
      • FieldHandlerImpl

        public FieldHandlerImpl​(java.lang.reflect.Field field,
                                TypeInfo typeInfo)
                         throws MappingException
        Construct a new field handler for the specified field. The field must be public, and may not be static or transient. The field name is determined from the Java field, the type from the type information.
        Parameters:
        field - The field being described
        typeInfo - Type information
        Throws:
        MappingException - If the field is not public, is static or transient
      • FieldHandlerImpl

        public FieldHandlerImpl​(java.lang.String fieldName,
                                java.lang.reflect.Method[] getSequence,
                                java.lang.reflect.Method[] setSequence,
                                java.lang.reflect.Method getMethod,
                                java.lang.reflect.Method setMethod,
                                TypeInfo typeInfo)
                         throws MappingException
        Construct a new field handler for the specified field that is accessed through the accessor methods (get/set). The accessor methods must be public and not static. The field name is required for descriptive purposes. The field type must match the return value of the get method and the single parameter of the set method. Either get or set methods are optional.
        Parameters:
        fieldName - The field being described
        getMethod - The method used to retrieve the field value, must accept no parameters and have a return type castable to the field type
        setMethod - The method used to set the field value, must accept a single parameter that is castable to the field type
        typeInfo - Type information
        Throws:
        MappingException - If the get or set method are not public, are static, or do not specify the proper types
    • Method Detail

      • resetValue

        public void resetValue​(java.lang.Object object)
        Description copied from class: FieldHandlerFriend
        Sets the value of the field to a default value.

        Reference fields are set to null, primitive fields are set to their default value, collection fields are emptied of all elements.

        Specified by:
        resetValue in interface FieldHandler
        Specified by:
        resetValue in class FieldHandlerFriend
        Parameters:
        object - The object
      • newInstance

        public java.lang.Object newInstance​(java.lang.Object parent)
                                     throws java.lang.IllegalStateException
        Creates a new instance of the object described by this field.
        Specified by:
        newInstance in interface FieldHandler
        Specified by:
        newInstance in class FieldHandlerFriend
        Parameters:
        parent - The object for which the field is created
        Returns:
        A new instance of the field's value
        Throws:
        java.lang.IllegalStateException - This field is a simple type and cannot be instantiated
      • newInstance

        public java.lang.Object newInstance​(java.lang.Object parent,
                                            java.lang.Object[] args)
                                     throws java.lang.IllegalStateException
        Creates a new instance of the object described by this field.
        Specified by:
        newInstance in class ExtendedFieldHandler
        Parameters:
        parent - The object for which the field is created
        args - the set of constructor arguments
        Returns:
        A new instance of the field's value
        Throws:
        java.lang.IllegalStateException - This field is a simple type and cannot be instantiated
      • setConvertFrom

        public void setConvertFrom​(TypeConvertor convertor)
        Sets the TypeConvertor used during calls to getValue
        Parameters:
        convertor - the TypeConvertor to use during calls to getValue
      • setConvertTo

        public void setConvertTo​(TypeConvertor convertor)
        Sets the TypeConvertor used during calls to setValue
        Parameters:
        convertor - the TypeConvertor to use during calls to setValue
      • setHasDeleteMethod

        public void setHasDeleteMethod​(java.lang.reflect.Method hasMethod,
                                       java.lang.reflect.Method deleteMethod)
                                throws MappingException
        Mutator method used by AbstractMappingLoader and Introspector. Please understand how this method is used before you start playing with it! :-)
        Throws:
        MappingException
      • setReadMethod

        public void setReadMethod​(java.lang.reflect.Method method)
                           throws MappingException
        Mutator method used by Introspector. Please understand how this method is used before you start playing with it! :-)
        Throws:
        MappingException
      • setWriteMethod

        public void setWriteMethod​(java.lang.reflect.Method method)
                            throws MappingException
        Mutator method used by Introspector. Please understand how this method is used before you start playing with it! :-)
        Throws:
        MappingException
      • setAddMethod

        public void setAddMethod​(java.lang.reflect.Method method)
                          throws MappingException
        Mutator method used by Introspector. Please understand how this method is used before you start playing with it! :-)
        Throws:
        MappingException
      • isCollection

        public boolean isCollection()
        Return true if the field is a collection.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • setFieldDescriptor

        public void setFieldDescriptor​(FieldDescriptor fieldDesc)
        Sets the FieldDescriptor that this FieldHander is responsibile for. By setting the FieldDescriptor, it allows the implementation of the FieldHandler methods to obtain information about the field itself. This allows a particular implementation to become more generic and reusable.
        Overrides:
        setFieldDescriptor in class AbstractFieldHandler
        Parameters:
        fieldDesc - the FieldDescriptor to set