Interface DynamicBean

  • All Superinterfaces:
    Bean
    All Known Implementing Classes:
    FlexiBean, MapBean

    public interface DynamicBean
    extends Bean
    A dynamic bean that allows properties to be added and removed.

    A JavaBean is defined at compile-time and cannot have additional properties added. Instances of this interface allow additional properties to be added and removed probably by wrapping a map

    • Method Detail

      • metaBean

        DynamicMetaBean metaBean()
        Gets the meta-bean representing the parts of the bean that are common across all instances, such as the set of meta-properties.
        Specified by:
        metaBean in interface Bean
        Returns:
        the meta-bean, not null
      • property

        <R> Property<R> property​(String propertyName)
        Gets a property by name.

        This will not throw an exception if the property name does not exist. Whether a property is immediately created or not is implementation dependent.

        Specified by:
        property in interface Bean
        Type Parameters:
        R - the property type, optional, enabling auto-casting
        Parameters:
        propertyName - the property name to retrieve, not null
        Returns:
        the property, not null
      • propertyDefine

        void propertyDefine​(String propertyName,
                            Class<?> propertyType)
        Adds a property to those allowed to be stored in the bean.

        Some implementations will automatically add properties, in which case this method will have no effect.

        Parameters:
        propertyName - the property name to check, not empty, not null
        propertyType - the property type, not null
      • propertyRemove

        void propertyRemove​(String propertyName)
        Removes a property by name.
        Parameters:
        propertyName - the property name to remove, null ignored