
com.cedarsoft.spring.rcp.conversion.NumberConverter Maven / Gradle / Ivy
The newest version!
package com.cedarsoft.spring.rcp.conversion;
import org.springframework.binding.convert.ConversionContext;
import org.springframework.binding.convert.support.ConversionServiceAwareConverter;
/**
*
*/
public class NumberConverter extends ConversionServiceAwareConverter {
@Override
protected Object doConvert( Object source, Class targetClass, ConversionContext context ) throws Exception {
Number number = ( Number ) source;
if ( targetClass.equals( Double.class ) || targetClass.equals( Double.TYPE ) ) {
return number.doubleValue();
}
if ( targetClass.equals( Integer.class ) || targetClass.equals( Integer.TYPE ) ) {
return number.intValue();
}
if ( targetClass.equals( Long.class ) || targetClass.equals( Long.TYPE ) ) {
return number.longValue();
}
if ( targetClass.equals( Short.class ) || targetClass.equals( Short.TYPE ) ) {
return number.shortValue();
}
throw new IllegalArgumentException( "Cannot convert " + targetClass.getName() );
}
@Override
public Class[] getSourceClasses() {
return new Class[]{Double.class, Long.class, Integer.class, Short.class, Double.TYPE, Long.TYPE, Integer.TYPE, Short.TYPE};
}
@Override
public Class[] getTargetClasses() {
return new Class[]{Double.class, Long.class, Integer.class, Short.class, Double.TYPE, Long.TYPE, Integer.TYPE, Short.TYPE};
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy