/** * Most of the code in the Qalingo project is copyrighted Hoteia and licensed * under the Apache License Version 2.0 (release version 0.8.0) * http://www.apache.org/licenses/LICENSE-2.0 * * Copyright (c) Hoteia, 2012-2014 * http://www.hoteia.com - http://twitter.com/hoteia - contact@hoteia.com * */ package org.hoteia.qalingo.core.web.util; import org.springframework.beans.BeanWrapper; import org.springframework.beans.BeanWrapperImpl; public class BeanUtilsBean extends org.springframework.beans.BeanUtils { public static void copyNotNullProperties(final Object source, final Object target, final Iterable<String> properties){ final BeanWrapper src = new BeanWrapperImpl(source); final BeanWrapper trg = new BeanWrapperImpl(target); for(final String propertyName : properties){ trg.setPropertyValue(propertyName, src.getPropertyValue(propertyName) ); } } // public void copyNotNullProperties(Object source, Object target) throws BeansException { // String[] ignoreEcoEngineSessionProperties = new String[] {"environmentStagingModeEnabled","environmentType","currentCustomer","currentMarketPlace","currentMarket","currentMarketArea","currentMarketAreaLocalization","currentMarketAreaRetailer","currentMarketAreaCurrency","currentUser","lastOrders","theme","device"}; // String[] ignoreCartProperties = new String[] {"taxes","deliveryMethods"}; // String[] ignoreCartItemProperties = new String[] {"taxes","deliveryMethod","productSku","cartItemPrice"}; // List<String> allIgnoreProperties = new ArrayList<String>(); // allIgnoreProperties.addAll(Arrays.asList(ignoreEcoEngineSessionProperties)); // allIgnoreProperties.addAll(Arrays.asList(ignoreCartProperties)); // allIgnoreProperties.addAll(Arrays.asList(ignoreCartItemProperties)); // String[] ignoreProperties = new String[allIgnoreProperties.size()]; // copyProperties(source, target, allIgnoreProperties.toArray(ignoreProperties)); // } // extends org.apache.commons.beanutils.BeanUtilsBean { //} // // public void copyNotNullProperties(Object dest, Object orig) throws IllegalAccessException, InvocationTargetException { // copyProperties(dest, orig); // } // // @Override // public void copyProperty(Object bean, String name, Object value) throws IllegalAccessException, InvocationTargetException { // if (value == null) { // return; // } else if (value instanceof Set && ((Set)value).isEmpty()) { // return; // } // super.copyProperty(bean, name, value); // } // }