EnumerationsDataConverter.java
package sk.iway.iwcm.components.enumerations;
import java.util.Collection;
import java.util.Locale;
import org.eclipse.persistence.mappings.DatabaseMapping;
import org.eclipse.persistence.mappings.converters.Converter;
import org.eclipse.persistence.sessions.Session;
import net.sourceforge.stripes.validation.TypeConverter;
import net.sourceforge.stripes.validation.ValidationError;
import sk.iway.iwcm.Tools;
import sk.iway.iwcm.components.enumerations.dto.EnumerationDataDto;
import sk.iway.iwcm.components.enumerations.mapper.EnumerationMapper;
/**
* Automaticky konvertuje EnumerationDataBean na EnumerationDataDto na int a spat JPA
*
* @author mpijak
*
*/
public class EnumerationsDataConverter implements Converter, TypeConverter<EnumerationDataDto>
{
private static final long serialVersionUID = 1L;
@Override
public EnumerationDataDto convertDataValueToObjectValue(Object value, Session arg1)
{
if (value instanceof Number) {
Integer id = ((Number) value).intValue();
EnumerationDataDto enumerationDataDto = EnumerationMapper.INSTANCE.toEnumerationDataDto(EnumerationDataDB.getEnumerationDataById(id.intValue()));
if (enumerationDataDto != null) {
return enumerationDataDto;
}
}
return null;
}
@Override
public Integer convertObjectValueToDataValue(Object object, Session arg1)
{
if (object instanceof EnumerationDataDto)
{
EnumerationDataDto enumerationDataDto = (EnumerationDataDto) object;
return Integer.valueOf(enumerationDataDto.getId());
}
return null;
}
@Override
public EnumerationDataDto convert(String value, Class<? extends EnumerationDataDto> paramClass, Collection<ValidationError> paramCollection)
{
int id = Tools.getIntValue(value, 0);
if (id > 0)
{
EnumerationDataDto enumerationDataDto = EnumerationMapper.INSTANCE.toEnumerationDataDto(EnumerationDataDB.getEnumerationDataById(id));
if (enumerationDataDto != null) {
return enumerationDataDto;
}
}
return null;
}
@Override
public void setLocale(Locale paramLocale)
{
//must implement
}
@Override
public void initialize(DatabaseMapping arg0, Session arg1)
{
//must implement
}
@Override
public boolean isMutable()
{
return false;
}
}