Class BasicBeanBuilder<T extends Bean>

  • Type Parameters:
    T - the bean type
    All Implemented Interfaces:
    BeanBuilder<T>
    Direct Known Subclasses:
    DirectBeanBuilder

    public class BasicBeanBuilder<T extends Bean>
    extends java.lang.Object
    implements BeanBuilder<T>
    Basic implementation of BeanBuilder that wraps a real bean.

    This approach saves creating a temporary map, but is only suitable if the bean has a no-arg constructor and allows properties to be set.

    • Constructor Summary

      Constructors 
      Constructor Description
      BasicBeanBuilder​(T bean)
      Constructs the builder wrapping the target bean.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      T build()
      Builds the bean from the state of the builder.
      java.lang.Object get​(java.lang.String propertyName)
      Gets the value of a single property previously added to the builder.
      <P> P get​(MetaProperty<P> metaProperty)
      Gets the value of a single property previously added to the builder.
      protected T getTargetBean()
      Gets the target bean.
      BeanBuilder<T> set​(java.lang.String propertyName, java.lang.Object value)
      Sets the value of a single property into the builder.
      BeanBuilder<T> set​(MetaProperty<?> metaProperty, java.lang.Object value)
      Sets the value of a single property into the builder.
      java.lang.String toString()
      Returns a string that summarises the builder.
      protected void validate​(T bean)
      Hook to allow a subclass to validate the bean.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • BasicBeanBuilder

        public BasicBeanBuilder​(T bean)
        Constructs the builder wrapping the target bean.
        Parameters:
        bean - the target bean, not null
    • Method Detail

      • getTargetBean

        protected T getTargetBean()
        Gets the target bean.
        Returns:
        the target bean, not null
      • get

        public java.lang.Object get​(java.lang.String propertyName)
        Description copied from interface: BeanBuilder
        Gets the value of a single property previously added to the builder.
        Specified by:
        get in interface BeanBuilder<T extends Bean>
        Parameters:
        propertyName - the property name to query, not null
        Returns:
        the previously set value, null if none
      • get

        public <P> P get​(MetaProperty<P> metaProperty)
        Description copied from interface: BeanBuilder
        Gets the value of a single property previously added to the builder.
        Specified by:
        get in interface BeanBuilder<T extends Bean>
        Type Parameters:
        P - the type of the property.
        Parameters:
        metaProperty - the meta-property to query, not null
        Returns:
        the previously set value, null if none
      • set

        public BeanBuilder<T> set​(java.lang.String propertyName,
                                  java.lang.Object value)
        Description copied from interface: BeanBuilder
        Sets the value of a single property into the builder.

        This will normally behave as per a Map, however it may not and as a general rule callers should only set each property once.

        Specified by:
        set in interface BeanBuilder<T extends Bean>
        Parameters:
        propertyName - the property name to set, not null
        value - the property value, may be null
        Returns:
        this, for chaining, not null
      • set

        public BeanBuilder<T> set​(MetaProperty<?> metaProperty,
                                  java.lang.Object value)
        Description copied from interface: BeanBuilder
        Sets the value of a single property into the builder.

        This will normally behave as per a Map, however it may not and as a general rule callers should only set each property once.

        Specified by:
        set in interface BeanBuilder<T extends Bean>
        Parameters:
        metaProperty - the meta-property to set, not null
        value - the property value, may be null
        Returns:
        this, for chaining, not null
      • build

        public T build()
        Description copied from interface: BeanBuilder
        Builds the bean from the state of the builder.

        Once this method has been called, the builder is in an invalid state. The effect of further method calls is undetermined.

        Specified by:
        build in interface BeanBuilder<T extends Bean>
        Returns:
        the created bean, not null
      • validate

        protected void validate​(T bean)
        Hook to allow a subclass to validate the bean.
        Parameters:
        bean - the bean to validate, not null
      • toString

        public java.lang.String toString()
        Returns a string that summarises the builder.
        Overrides:
        toString in class java.lang.Object
        Returns:
        a summary string, not null