package org.openstack.atlas.api.mapper.dozer.converter; import org.openstack.atlas.docs.loadbalancers.api.v1.Created; import org.openstack.atlas.docs.loadbalancers.api.v1.Updated; import org.openstack.atlas.service.domain.exceptions.NoMappableConstantException; import org.dozer.CustomConverter; import java.util.Calendar; public class CalendarConverter implements CustomConverter { @Override public Object convert(Object existingDestinationFieldValue, Object sourceFieldValue, Class destinationClass, Class sourceClass) { if (sourceFieldValue == null) { return null; } if (sourceFieldValue instanceof Calendar && destinationClass.equals(Created.class)) { Created created = new Created(); created.setTime((Calendar) sourceFieldValue); return created; } if (sourceFieldValue instanceof Calendar && destinationClass.equals(Updated.class)) { Updated updated = new Updated(); updated.setTime((Calendar) sourceFieldValue); return updated; } if (sourceFieldValue instanceof Created) { Calendar cal = Calendar.getInstance(); cal.setTime(((Created) sourceFieldValue).getTime().getTime()); return cal; } if (sourceFieldValue instanceof Updated) { Calendar cal = Calendar.getInstance(); cal.setTime(((Updated) sourceFieldValue).getTime().getTime()); return cal; } throw new NoMappableConstantException("Cannot map source type: " + sourceClass.getName()); } }