Class BeanCopy<F,T>

java.lang.Object
org.oddjob.beanbus.destinations.BeanCopy<F,T>
Type Parameters:
F - From
T - To
All Implemented Interfaces:
Consumer<F>, ArooaSessionAware, BusFilter<F,T>, Outbound<T>

public class BeanCopy<F,T> extends Object implements Consumer<F>, BusFilter<F,T>, ArooaSessionAware
Author:
rob

Description

Copy the properties of a bean to another bean.

Example

Copy beans into bean properties given by the class.
<oddjob>

    <job>

        <bean class="org.oddjob.beanbus.drivers.IterableBusDriver" id="bus">

            <values>

                <value value="${iterable}"/>

            </values>

            <to>

                <bean class="org.oddjob.beanbus.destinations.BeanCopy">

                    <arooaClass>

                        <class name="org.oddjob.beanbus.destinations.BeanCopyTest$BeanTo"/>

                    </arooaClass>

                    <to>

                        <list/>

                    </to>

                    <mappings>

                        <value key="fruit" value="snack"/>

                        <value key="quantity" value="number"/>

                        <value key="price" value="COST"/>

                    </mappings>

                </bean>

            </to>

        </bean>

    </job>

</oddjob>
Copy beans into a dynamically created bean.
<oddjob>

    <job>

        <bean class="org.oddjob.beanbus.drivers.IterableBusDriver" id="bus">

            <values>

                <value value="${iterable}"/>

            </values>

            <to>

                <bean class="org.oddjob.beanbus.destinations.BeanCopy">

                    <arooaClass>

                        <magic-class name="BeanCopyTestMagiClass">

                            <properties>

                                <value key="snack" value="java.lang.String"/>

                                <value key="number" value="java.lang.Integer"/>

                                <value key="COST" value="java.lang.Double"/>

                            </properties>

                        </magic-class>

                    </arooaClass>

                    <to>

                        <list/>

                    </to>

                    <mappings>

                        <value key="fruit" value="snack"/>

                        <value key="quantity" value="number"/>

                        <value key="price" value="COST"/>

                    </mappings>

                </bean>

            </to>

        </bean>

    </job>

</oddjob>
Copy beans into a dynamically created bean the properties of which match the source bean.
<oddjob>

    <job>

        <bean class="org.oddjob.beanbus.drivers.IterableBusDriver" id="bus">

            <values>

                <value value="${iterable}"/>

            </values>

            <to>

                <bean class="org.oddjob.beanbus.destinations.BeanCopy">

                    <to>

                        <list/>

                    </to>

                    <mappings>

                        <value key="fruit" value="snack"/>

                        <value key="quantity" value="number"/>

                        <value key="price" value="COST"/>

                    </mappings>

                </bean>

            </to>

        </bean>

    </job>

</oddjob>
  • Constructor Details

    • BeanCopy

      public BeanCopy()
  • Method Details

    • setArooaSession

      public void setArooaSession(ArooaSession session)
      Description copied from interface: ArooaSessionAware
      Accept the current Arooa Session.
      Specified by:
      setArooaSession in interface ArooaSessionAware
      Parameters:
      session - The Arooa Session. Never null.
    • accept

      public void accept(F bean)
      Specified by:
      accept in interface Consumer<F>
    • createClassFromBean

      protected ArooaClass createClassFromBean(F bean)
    • setArooaClass

      public void setArooaClass(ArooaClass arooaClass)
    • setTo

      public void setTo(Consumer<? super T> to)
      Description copied from interface: Outbound
      Set the out bound destination.
      Specified by:
      setTo in interface Outbound<F>
      Parameters:
      to -
    • getTo

      public Consumer<? super T> getTo()
    • setMappings

      public void setMappings(String from, String to)
    • getName

      public String getName()
    • setName

      public void setName(String name)
    • toString

      public String toString()
      Overrides:
      toString in class Object