package be.mentoringsystems.merke.helper; import java.lang.reflect.InvocationTargetException; import java.util.Collection; import java.util.Collections; import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.PropertyUtils; /** * * @author anthonyarents */ public final class DTOHelper { private DTOHelper() { } public static void copyNonNull(final Object source, final Object target) { try { Map sourceValues = PropertyUtils.describe(source); Collection values = sourceValues.values(); values.removeAll(Collections.singleton(null)); populate(sourceValues, target); } catch (IllegalAccessException | InvocationTargetException | NoSuchMethodException ex) { Logger.getLogger(DTOHelper.class.getName()).log(Level.SEVERE, null, ex); } } public static void copy(final Object source, final Object target) { try { Map sourceValues = PropertyUtils.describe(source); populate(sourceValues, target); } catch (IllegalAccessException | InvocationTargetException | NoSuchMethodException ex) { Logger.getLogger(DTOHelper.class.getName()).log(Level.SEVERE, null, ex); } } public static void populate(final Map source, final Object target) throws IllegalAccessException, InvocationTargetException { BeanUtils.populate(target, source); } }