RegisterCarViewPopulator.java

package org.andromda.samples.carrental.inventory.web.registerCar;

import java.util.Map;

/**
 * Provides the ability to populate any view in the Register Car
 */
public final class RegisterCarViewPopulator
{
    /**
     * Map fields from RegisterNewCarCreateFormImpl form
     * to RegisterNewCarCreateFormImpl form
     *
     * @param fromForm origin form
     * @param toForm destiny form
     */
    public static void populateForm(RegisterNewCarCreateFormImpl fromForm, RegisterNewCarCreateFormImpl toForm)
    {
        if(fromForm.isInventoryNoSet())
        {
            toForm.setInventoryNo(fromForm.getInventoryNo());
        }
        if(fromForm.isRegistrationNoSet())
        {
            toForm.setRegistrationNo(fromForm.getRegistrationNo());
        }
        if(fromForm.isCarTypeIdSet())
        {
            toForm.setCarTypeId(fromForm.getCarTypeId());
        }
        if(fromForm.getCarTypeIdBackingList() != null)
        {
            toForm.setCarTypeIdBackingList(fromForm.getCarTypeIdBackingList());
        }
    }

    /**
     * Map fields from RegisterCarFormImpl form
     * to RegisterNewCarCreateFormImpl form
     *
     * @param fromForm origin form
     * @param toForm destiny form
     */
    public static void populateForm(RegisterCarFormImpl fromForm, RegisterNewCarCreateFormImpl toForm)
    {
        if(fromForm.isInventoryNoSet())
        {
            toForm.setInventoryNo(fromForm.getInventoryNo());
        }
        if(fromForm.isRegistrationNoSet())
        {
            toForm.setRegistrationNo(fromForm.getRegistrationNo());
        }
        if(fromForm.isCarTypeIdSet())
        {
            toForm.setCarTypeId(fromForm.getCarTypeId());
        }
        if(fromForm.getCarTypeIdBackingList() != null)
        {
            toForm.setCarTypeIdBackingList(fromForm.getCarTypeIdBackingList());
        }
    }

    /**
     * Populate page variables for view Register new Car
     *
     * @param fromForm origin form
     * @param pageVariables the page variables
     */
    public static void populateRegisterNewCarPageVariables(Object fromForm, Map<String,Object> pageVariables)
    {
        if(fromForm instanceof RegisterCarFormImpl)
        {
            final RegisterCarFormImpl sourceForm=(RegisterCarFormImpl)fromForm;
            if(sourceForm.isExistingcarsSet())
            {
                pageVariables.put("existingcars",sourceForm.getExistingcars());
            }
        }
    }

    /**
     * Populates the view using the appropriate view populator.
     *
     * @param fromForm the origin form
     * @param toForm the destiny form
     */
    public static void populateForm(Object fromForm, RegisterNewCarCreateFormImpl toForm)
    {
        if(fromForm instanceof RegisterNewCarCreateFormImpl)
        {
            populateForm((RegisterNewCarCreateFormImpl)fromForm,toForm);
        }
        else if(fromForm instanceof RegisterCarFormImpl)
        {
            populateForm((RegisterCarFormImpl)fromForm,toForm);
        }
    }
    
}