Class StandaloneMetaProperty<P>

  • Type Parameters:
    P - the type of the property content
    All Implemented Interfaces:
    MetaProperty<P>

    public final class StandaloneMetaProperty<P>
    extends BasicMetaProperty<P>
    A meta-property that exists separate from a bean.

    One use case for this is to handle renamed properties in SerDeserializer.

    • Method Detail

      • of

        public static <R> StandaloneMetaProperty<R> of​(java.lang.String propertyName,
                                                       MetaBean metaBean,
                                                       java.lang.Class<R> clazz)
        Creates a non-generified property.
        Type Parameters:
        R - the property type
        Parameters:
        propertyName - the property name, not empty
        metaBean - the meta-bean, which does not have to refer to this property, not null
        clazz - the type of the property, not null
        Returns:
        the meta-property, not null
      • of

        public static <R> StandaloneMetaProperty<R> of​(java.lang.String propertyName,
                                                       MetaBean metaBean,
                                                       java.lang.Class<R> clazz,
                                                       java.lang.reflect.Type type)
        Creates a property.
        Type Parameters:
        R - the property type
        Parameters:
        propertyName - the property name, not empty
        metaBean - the meta-bean, which does not have to refer to this property, not null
        clazz - the type of the property, not null
        type - the type of the property, not null
        Returns:
        the meta-property, not null
      • metaBean

        public MetaBean metaBean()
        Description copied from interface: MetaProperty
        Gets the meta-bean which owns this meta-property.

        Each meta-property is fully owned by a single bean.

        Returns:
        the meta-bean, not null
      • declaringType

        public java.lang.Class<?> declaringType()
        Description copied from interface: MetaProperty
        Get the type that declares the property, represented as a Class.

        This is the type of the bean where the property is declared.

        Returns:
        the type declaring the property, not null
      • propertyType

        public java.lang.Class<P> propertyType()
        Description copied from interface: MetaProperty
        Get the type of the property represented as a Class.

        This is the type of the property. For example, the surname of a person would typically be a String.

        Returns:
        the type of the property, not null
      • propertyGenericType

        public java.lang.reflect.Type propertyGenericType()
        Description copied from interface: MetaProperty
        Gets the generic types of the property.

        This provides access to the generic type declared in the source code.

        Returns:
        the full generic type of the property, unmodifiable, not null
      • style

        public PropertyStyle style()
        Description copied from interface: MetaProperty
        Gets the style of the property, such as read-only, read-write or write-only.

        Rather than testing against specific values, it is strongly recommended to call the helper methods on the returned style.

        Returns:
        the property style, not null
      • annotations

        public java.util.List<java.lang.annotation.Annotation> annotations()
        Description copied from interface: MetaProperty
        Gets the annotations of the property.

        The annotations are queried from the property. This is typically accomplished by querying the annotations of the underlying instance variable however any strategy is permitted.

        Returns:
        the annotations, unmodifiable, not null
      • get

        public P get​(Bean bean)
        Description copied from interface: MetaProperty
        Gets the value of the property for the specified bean.

        For a standard JavaBean, this is equivalent to calling getFoo() on the bean. Alternate implementations may perform any logic to obtain the value.

        Parameters:
        bean - the bean to query, not null
        Returns:
        the value of the property on the specified bean, may be null
      • set

        public void set​(Bean bean,
                        java.lang.Object value)
        Description copied from interface: MetaProperty
        Sets the value of the property on the specified bean.

        The value must be of the correct type for the property. For a standard JavaBean, this is equivalent to calling setFoo() on the bean. Alternate implementations may perform any logic to change the value.

        Parameters:
        bean - the bean to update, not null
        value - the value to set into the property on the specified bean, may be null