package org.springframework.binding.convert.converters;

import org.springframework.util.NumberUtils;

/**
 * A one-way converter that can convert from any JDK-standard Number implementation to any other JDK-standard Number
 * implementation.
 * 
 * Support Number classes include byte, short, integer, float, double, long, big integer, big decimal. This class
 * delegates to {@link NumberUtils#convertNumberToTargetClass(Number, Class)} to perform the conversion.
 * 
 * @see java.lang.Byte
 * @see java.lang.Short
 * @see java.lang.Integer
 * @see java.lang.Long
 * @see java.math.BigInteger
 * @see java.lang.Float
 * @see java.lang.Double
 * @see java.math.BigDecimal
 * 
 * @author Keith Donald
 */
public class NumberToNumber implements Converter {

	public Class getSourceClass() {
		return Number.class;
	}

	public Class getTargetClass() {
		return Number.class;
	}

	public Object convertSourceToTargetClass(Object source, Class targetClass) throws Exception {
		return NumberUtils.convertNumberToTargetClass((Number) source, targetClass);
	}

}