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

org.dmg.pmml.adapters.NumberAdapter Maven / Gradle / Ivy

There is a newer version: 1.6.5
Show newest version
/*
 * Copyright (c) 2019 Villu Ruusmann
 */
package org.dmg.pmml.adapters;

import javax.xml.bind.annotation.adapters.XmlAdapter;

import org.jpmml.model.NumberUtil;

public class NumberAdapter extends XmlAdapter {

	@Override
	public Number unmarshal(String value){
		Number result = NumberUtil.parseNumber(value);

		if(!isValid(result)){
			throw new IllegalArgumentException(value);
		}

		return result;
	}

	@Override
	public String marshal(Number value){

		if(value == null){
			return null;
		}

		return NumberUtil.printNumber(value);
	}

	static
	public boolean isValid(Number value){

		if(value instanceof Float){
			Float floatValue = (Float)value;

			if(floatValue.isNaN() || floatValue.isInfinite()){
				return false;
			}
		} else

		if(value instanceof Double){
			Double doubleValue = (Double)value;

			if(doubleValue.isNaN() || doubleValue.isInfinite()){
				return false;
			}
		}

		return true;
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy