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

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