All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.pelle.mango.db.copy.handler.MapCopyHandler Maven / Gradle / Ivy

The newest version!
package io.pelle.mango.db.copy.handler;
import io.pelle.mango.db.copy.ObjectFieldDescriptor;
import io.pelle.mango.db.copy.IFieldCopyHandler;

import java.util.HashMap;
import java.util.Map;

import org.apache.commons.beanutils.PropertyUtils;

public class MapCopyHandler implements IFieldCopyHandler
{

	@Override
	public boolean check(ObjectFieldDescriptor fieldDescriptor)
	{
		return Map.class.isAssignableFrom(fieldDescriptor.getSourceType()) && Map.class.isAssignableFrom(fieldDescriptor.getTargetType());
	}

	@SuppressWarnings("unchecked")
	@Override
	public void copy(ObjectFieldDescriptor fieldDescriptor, Object sourceObject, Object targetObject) throws Exception
	{
		HashMap targetMap = new HashMap();

		for (Map.Entry entry1 : ((Map) fieldDescriptor.getSourceValue(sourceObject)).entrySet())
		{
			targetMap.put(entry1.getKey(), entry1.getValue());
		}

		PropertyUtils.setProperty(targetObject, fieldDescriptor.getFieldName(), targetMap);
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy