package cytoscape.visual.mappings.rangecalculators;

import cytoscape.visual.mappings.RangeValueCalculator;
import cytoscape.visual.parsers.DoubleParser;
import cytoscape.visual.parsers.ValueParser;

public class DoubleRangeValueCalculator implements RangeValueCalculator<Double> {

	private ValueParser parser;

	public DoubleRangeValueCalculator() {
		parser = new DoubleParser();
	}

	
	public Double getRange(Object attrValue) {
		if (attrValue instanceof Number) {
			final Number num = (Number) attrValue;
			return num.doubleValue();
		} else if (attrValue instanceof String)
			return (Double) parser.parseStringValue((String) attrValue);

		return null;
	}


	public boolean isCompatible(Class<?> type) {
		if (type.isAssignableFrom(Double.class))
			return true;
		else
			return false;
	}

}
