Class MultiWrapDynaBean

  • All Implemented Interfaces:
    org.apache.commons.beanutils.DynaBean

    final class MultiWrapDynaBean
    extends java.lang.Object
    implements org.apache.commons.beanutils.DynaBean

    An implementation of the DynaBean interfaces which wraps multiple other beans.

    An instance of this class is constructed with a collection of beans to be wrapped. When reading or writing a property the wrapped bean which defines this property is determined, and the operation is executed on this bean.

    The wrapped beans should have disjunct properties. Otherwise, it is undefined which bean property is read or written.

    Since:
    2.0
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private org.apache.commons.beanutils.DynaClass dynaClass
      Stores the class of this DynaBean.
      private java.util.Map<java.lang.String,​org.apache.commons.beanutils.DynaBean> propsToBeans
      A map which associates property names with their defining beans.
    • Constructor Summary

      Constructors 
      Constructor Description
      MultiWrapDynaBean​(java.util.Collection<?> beans)
      Creates a new instance of MultiWrapDynaBean and initializes it with the given collections of beans to be wrapped.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean contains​(java.lang.String name, java.lang.String key)
      This operation is not supported by the WrapDynaBean objects used internally by this class.
      private static org.apache.commons.beanutils.DynaBean createDynaBean​(java.lang.Object bean)
      Creates a DynaBean object for the given bean.
      private org.apache.commons.beanutils.DynaBean fetchBean​(java.lang.String property)
      Returns the bean instance to which the given property belongs.
      java.lang.Object get​(java.lang.String name)  
      java.lang.Object get​(java.lang.String name, int index)  
      java.lang.Object get​(java.lang.String name, java.lang.String key)  
      org.apache.commons.beanutils.DynaClass getDynaClass()
      This implementation returns an instance of MultiWrapDynaClass.
      void remove​(java.lang.String name, java.lang.String key)
      This operation is not supported by the WrapDynaBean objects used internally by this class.
      void set​(java.lang.String name, int index, java.lang.Object value)  
      void set​(java.lang.String name, java.lang.Object value)  
      void set​(java.lang.String name, java.lang.String key, java.lang.Object value)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • dynaClass

        private final org.apache.commons.beanutils.DynaClass dynaClass
        Stores the class of this DynaBean.
      • propsToBeans

        private final java.util.Map<java.lang.String,​org.apache.commons.beanutils.DynaBean> propsToBeans
        A map which associates property names with their defining beans.
    • Constructor Detail

      • MultiWrapDynaBean

        public MultiWrapDynaBean​(java.util.Collection<?> beans)
        Creates a new instance of MultiWrapDynaBean and initializes it with the given collections of beans to be wrapped.
        Parameters:
        beans - the wrapped beans
    • Method Detail

      • createDynaBean

        private static org.apache.commons.beanutils.DynaBean createDynaBean​(java.lang.Object bean)
        Creates a DynaBean object for the given bean.
        Parameters:
        bean - the bean
        Returns:
        the DynaBean for this bean
      • contains

        public boolean contains​(java.lang.String name,
                                java.lang.String key)
        This operation is not supported by the WrapDynaBean objects used internally by this class. Therefore, just an exception is thrown.
        Specified by:
        contains in interface org.apache.commons.beanutils.DynaBean
      • fetchBean

        private org.apache.commons.beanutils.DynaBean fetchBean​(java.lang.String property)
        Returns the bean instance to which the given property belongs. If no such bean is found, an arbitrary bean is returned. (This causes the operation on this bean to fail with a meaningful error message.)
        Parameters:
        property - the property name
        Returns:
        the bean defining this property
      • get

        public java.lang.Object get​(java.lang.String name)
        Specified by:
        get in interface org.apache.commons.beanutils.DynaBean
      • get

        public java.lang.Object get​(java.lang.String name,
                                    int index)
        Specified by:
        get in interface org.apache.commons.beanutils.DynaBean
      • get

        public java.lang.Object get​(java.lang.String name,
                                    java.lang.String key)
        Specified by:
        get in interface org.apache.commons.beanutils.DynaBean
      • getDynaClass

        public org.apache.commons.beanutils.DynaClass getDynaClass()
        This implementation returns an instance of MultiWrapDynaClass.
        Specified by:
        getDynaClass in interface org.apache.commons.beanutils.DynaBean
      • remove

        public void remove​(java.lang.String name,
                           java.lang.String key)
        This operation is not supported by the WrapDynaBean objects used internally by this class. Therefore, just an exception is thrown.
        Specified by:
        remove in interface org.apache.commons.beanutils.DynaBean
      • set

        public void set​(java.lang.String name,
                        int index,
                        java.lang.Object value)
        Specified by:
        set in interface org.apache.commons.beanutils.DynaBean
      • set

        public void set​(java.lang.String name,
                        java.lang.Object value)
        Specified by:
        set in interface org.apache.commons.beanutils.DynaBean
      • set

        public void set​(java.lang.String name,
                        java.lang.String key,
                        java.lang.Object value)
        Specified by:
        set in interface org.apache.commons.beanutils.DynaBean