From 9acef92923bdad869e718d784b552b1f94aacacf Mon Sep 17 00:00:00 2001 From: Villu Ruusmann Date: Sun, 13 Mar 2016 11:44:24 +0200 Subject: [PATCH] Mapped PMML 'INT-NUMBER', 'PROB-NUMBER' and 'PERCENTAGE-NUMBER' data types to Java primitive data types --- .../jre/javax/xml/bind/DatatypeConverter.java | 43 ----------------- .../org/dmg/pmml/adapters/DecimalAdapter.java | 48 ------------------- .../org/dmg/pmml/adapters/IntegerAdapter.java | 48 ------------------- .../java/org/dmg/pmml/adapters/ValueUtil.java | 24 ---------- pmml-model/src/main/schema/pmml.xjb | 20 +------- pmml-model/src/main/xsl/pmml.xsl | 16 ++++++- .../dmg/pmml/adapters/DecimalAdapterTest.java | 25 ---------- .../dmg/pmml/adapters/IntegerAdapterTest.java | 34 ------------- .../org/dmg/pmml/adapters/ValueUtilTest.java | 43 ----------------- 9 files changed, 16 insertions(+), 285 deletions(-) delete mode 100644 pmml-model-gwt/src/main/resources/org/dmg/pmml/jre/javax/xml/bind/DatatypeConverter.java delete mode 100644 pmml-model/src/main/java/org/dmg/pmml/adapters/DecimalAdapter.java delete mode 100644 pmml-model/src/main/java/org/dmg/pmml/adapters/IntegerAdapter.java delete mode 100644 pmml-model/src/main/java/org/dmg/pmml/adapters/ValueUtil.java delete mode 100644 pmml-model/src/test/java/org/dmg/pmml/adapters/DecimalAdapterTest.java delete mode 100644 pmml-model/src/test/java/org/dmg/pmml/adapters/IntegerAdapterTest.java delete mode 100644 pmml-model/src/test/java/org/dmg/pmml/adapters/ValueUtilTest.java diff --git a/pmml-model-gwt/src/main/resources/org/dmg/pmml/jre/javax/xml/bind/DatatypeConverter.java b/pmml-model-gwt/src/main/resources/org/dmg/pmml/jre/javax/xml/bind/DatatypeConverter.java deleted file mode 100644 index 0c179fe7..00000000 --- a/pmml-model-gwt/src/main/resources/org/dmg/pmml/jre/javax/xml/bind/DatatypeConverter.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2015 Villu Ruusmann - */ -package javax.xml.bind; - -import java.math.BigDecimal; -import java.math.BigInteger; - -public class DatatypeConverter { - - private DatatypeConverter(){ - } - - static - public float parseFloat(String string){ - return Float.parseFloat(string); - } - - static - public String printFloat(float value){ - return Float.toString(value); - } - - static - public BigDecimal parseDecimal(String string){ - return new BigDecimal(string); - } - - static - public String printDecimal(BigDecimal value){ - return value.toString(); - } - - static - public BigInteger parseInteger(String string){ - return new BigInteger(string); - } - - static - public String printInteger(BigInteger value){ - return value.toString(); - } -} diff --git a/pmml-model/src/main/java/org/dmg/pmml/adapters/DecimalAdapter.java b/pmml-model/src/main/java/org/dmg/pmml/adapters/DecimalAdapter.java deleted file mode 100644 index 51dd2e69..00000000 --- a/pmml-model/src/main/java/org/dmg/pmml/adapters/DecimalAdapter.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 2014 Villu Ruusmann - */ -package org.dmg.pmml.adapters; - -import java.math.BigDecimal; - -import javax.xml.bind.DatatypeConverter; -import javax.xml.bind.annotation.adapters.XmlAdapter; - -public class DecimalAdapter extends XmlAdapter { - - @Override - public Double unmarshal(String value){ - - if("0.0".equals(value)){ - return DecimalAdapter.ZERO; - } else - - if("1.0".equals(value)){ - return DecimalAdapter.ONE; - } - - BigDecimal decimal = DatatypeConverter.parseDecimal(value); - - if(!ValueUtil.checkRange(decimal, DecimalAdapter.MIN_VALUE, DecimalAdapter.MAX_VALUE)){ - throw new IllegalArgumentException(value); - } - - return Double.valueOf(decimal.doubleValue()); - } - - @Override - public String marshal(Double value){ - - if(value == null){ - return null; - } - - return DatatypeConverter.printDecimal(BigDecimal.valueOf(value.doubleValue())); - } - - public static final Double ZERO = Double.valueOf(0.0d); - public static final Double ONE = Double.valueOf(1.0d); - - protected static final BigDecimal MIN_VALUE = BigDecimal.valueOf(-Double.MAX_VALUE); - protected static final BigDecimal MAX_VALUE = BigDecimal.valueOf(Double.MAX_VALUE); -} \ No newline at end of file diff --git a/pmml-model/src/main/java/org/dmg/pmml/adapters/IntegerAdapter.java b/pmml-model/src/main/java/org/dmg/pmml/adapters/IntegerAdapter.java deleted file mode 100644 index d0b572e7..00000000 --- a/pmml-model/src/main/java/org/dmg/pmml/adapters/IntegerAdapter.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 2014 Villu Ruusmann - */ -package org.dmg.pmml.adapters; - -import java.math.BigInteger; - -import javax.xml.bind.DatatypeConverter; -import javax.xml.bind.annotation.adapters.XmlAdapter; - -public class IntegerAdapter extends XmlAdapter { - - @Override - public Integer unmarshal(String value){ - - if("0".equals(value)){ - return IntegerAdapter.ZERO; - } else - - if("1".equals(value)){ - return IntegerAdapter.ONE; - } - - BigInteger integer = DatatypeConverter.parseInteger(value); - - if(!ValueUtil.checkRange(integer, IntegerAdapter.MIN_VALUE, IntegerAdapter.MAX_VALUE)){ - throw new IllegalArgumentException(value); - } - - return Integer.valueOf(integer.intValue()); - } - - @Override - public String marshal(Integer value){ - - if(value == null){ - return null; - } - - return DatatypeConverter.printInteger(BigInteger.valueOf(value.intValue())); - } - - public static final Integer ZERO = Integer.valueOf(0); - public static final Integer ONE = Integer.valueOf(1); - - protected static final BigInteger MIN_VALUE = BigInteger.valueOf(Integer.MIN_VALUE); - protected static final BigInteger MAX_VALUE = BigInteger.valueOf(Integer.MAX_VALUE); -} \ No newline at end of file diff --git a/pmml-model/src/main/java/org/dmg/pmml/adapters/ValueUtil.java b/pmml-model/src/main/java/org/dmg/pmml/adapters/ValueUtil.java deleted file mode 100644 index bc2e5936..00000000 --- a/pmml-model/src/main/java/org/dmg/pmml/adapters/ValueUtil.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (c) 2014 Villu Ruusmann - */ -package org.dmg.pmml.adapters; - -public class ValueUtil { - - private ValueUtil(){ - } - - static - public > boolean checkRange(E value, E min, E max){ - - if(min != null && (value).compareTo(min) < 0){ - return false; - } // End if - - if(max != null && (value).compareTo(max) > 0){ - return false; - } - - return true; - } -} \ No newline at end of file diff --git a/pmml-model/src/main/schema/pmml.xjb b/pmml-model/src/main/schema/pmml.xjb index f5fa7f86..eb619119 100644 --- a/pmml-model/src/main/schema/pmml.xjb +++ b/pmml-model/src/main/schema/pmml.xjb @@ -14,24 +14,6 @@ Copyright (c) 2009 University of Tartu /> - - - - - - @@ -2866,4 +2848,4 @@ Copyright (c) 2009 University of Tartu /> - \ No newline at end of file + diff --git a/pmml-model/src/main/xsl/pmml.xsl b/pmml-model/src/main/xsl/pmml.xsl index 9e6f7f9c..691efd9a 100644 --- a/pmml-model/src/main/xsl/pmml.xsl +++ b/pmml-model/src/main/xsl/pmml.xsl @@ -159,4 +159,18 @@ Copyright (c) 2009 University of Tartu NUMBER - \ No newline at end of file + + + + xs:int + + + + + xs:double + + diff --git a/pmml-model/src/test/java/org/dmg/pmml/adapters/DecimalAdapterTest.java b/pmml-model/src/test/java/org/dmg/pmml/adapters/DecimalAdapterTest.java deleted file mode 100644 index 5d1dd9b6..00000000 --- a/pmml-model/src/test/java/org/dmg/pmml/adapters/DecimalAdapterTest.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (c) 2014 Villu Ruusmann - */ -package org.dmg.pmml.adapters; - -import org.junit.Test; - -import static org.junit.Assert.assertEquals; - -public class DecimalAdapterTest { - - @Test - public void unmarshal(){ - DecimalAdapter adapter = new DecimalAdapter(); - - assertEquals((Double)0.0d, adapter.unmarshal("0.0")); - } - - @Test - public void marshal(){ - DecimalAdapter adapter = new DecimalAdapter(); - - assertEquals("0.0", adapter.marshal(0.0d)); - } -} \ No newline at end of file diff --git a/pmml-model/src/test/java/org/dmg/pmml/adapters/IntegerAdapterTest.java b/pmml-model/src/test/java/org/dmg/pmml/adapters/IntegerAdapterTest.java deleted file mode 100644 index 366fff25..00000000 --- a/pmml-model/src/test/java/org/dmg/pmml/adapters/IntegerAdapterTest.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2014 Villu Ruusmann - */ -package org.dmg.pmml.adapters; - -import org.junit.Test; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; - -public class IntegerAdapterTest { - - @Test - public void unmarshal(){ - IntegerAdapter adapter = new IntegerAdapter(); - - assertEquals((Integer)0, adapter.unmarshal("0")); - - try { - adapter.unmarshal("0.0"); - - fail(); - } catch(NumberFormatException nfe){ - // Ignored - } - } - - @Test - public void marshal(){ - IntegerAdapter adapter = new IntegerAdapter(); - - assertEquals("0", adapter.marshal(0)); - } -} \ No newline at end of file diff --git a/pmml-model/src/test/java/org/dmg/pmml/adapters/ValueUtilTest.java b/pmml-model/src/test/java/org/dmg/pmml/adapters/ValueUtilTest.java deleted file mode 100644 index cffc173b..00000000 --- a/pmml-model/src/test/java/org/dmg/pmml/adapters/ValueUtilTest.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2014 Villu Ruusmann - */ -package org.dmg.pmml.adapters; - -import java.math.BigDecimal; -import java.math.BigInteger; - -import org.junit.Test; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - -public class ValueUtilTest { - - @Test - public void checkDecimalRange(){ - BigDecimal min = DecimalAdapter.MIN_VALUE; - BigDecimal max = DecimalAdapter.MAX_VALUE; - - assertTrue(ValueUtil.checkRange(BigDecimal.ZERO, min, max)); - - assertTrue(ValueUtil.checkRange(min, min, max)); - assertFalse(ValueUtil.checkRange(min.subtract(BigDecimal.ONE), min, max)); - - assertTrue(ValueUtil.checkRange(max, min, max)); - assertFalse(ValueUtil.checkRange(max.add(BigDecimal.ONE), min, max)); - } - - @Test - public void checkIntegerRange(){ - BigInteger min = IntegerAdapter.MIN_VALUE; - BigInteger max = IntegerAdapter.MAX_VALUE; - - assertTrue(ValueUtil.checkRange(BigInteger.ZERO, min, max)); - - assertTrue(ValueUtil.checkRange(min, min, max)); - assertFalse(ValueUtil.checkRange(min.subtract(BigInteger.ONE), min, max)); - - assertTrue(ValueUtil.checkRange(max, min, max)); - assertFalse(ValueUtil.checkRange(max.add(BigInteger.ONE), min, max)); - } -} \ No newline at end of file