Update yang-xpath-api design
[yangtools.git] / yang / yang-xpath-api / src / main / java / org / opendaylight / yangtools / yang / xpath / api / YangNumberExpr.java
index 96f6bd7051f393450f643736c0b3fe45e8902e72..f5b5d1b62d57a331c54458e68424c8e2b167d566 100644 (file)
@@ -7,95 +7,20 @@
  */
 package org.opendaylight.yangtools.yang.xpath.api;
 
-import static java.util.Objects.requireNonNull;
-
 import com.google.common.annotations.Beta;
-import java.math.BigDecimal;
-import org.eclipse.jdt.annotation.Nullable;
 
 /**
  * A number-bearing expression.
  */
 @Beta
 public abstract class YangNumberExpr<T extends YangNumberExpr<T, N>, N extends Number> implements YangExpr {
-    public static final class YangBigDecimal extends YangNumberExpr<YangBigDecimal, BigDecimal> {
-        private static final long serialVersionUID = 1L;
-
-        private final BigDecimal number;
-
-        YangBigDecimal(final BigDecimal number) {
-            this.number = requireNonNull(number);
-        }
-
-        @Override
-        public BigDecimal getNumber() {
-            return number;
-        }
-
-        @Override
-        public int hashCode() {
-            return number.hashCode();
-        }
-
-        @Override
-        public boolean equals(final @Nullable Object obj) {
-            return this == obj || obj instanceof YangBigDecimal
-                    && number.equals(((YangBigDecimal) obj).number);
-        }
-
-        @Override
-        public String toString() {
-            return number.toString();
-        }
-    }
-
-    public static final class YangDouble extends YangNumberExpr<YangDouble, Double> {
-        private static final long serialVersionUID = 1L;
-
-        private final double value;
-
-        YangDouble(final double value) {
-            this.value = value;
-        }
-
-        public double getValue() {
-            return value;
-        }
-
-        @Override
-        public Double getNumber() {
-            return value;
-        }
-
-        @Override
-        public int hashCode() {
-            return Double.hashCode(value);
-        }
-
-        @Override
-        public boolean equals(final @Nullable Object obj) {
-            return this == obj || obj instanceof YangDouble && value == ((YangDouble) obj).value;
-        }
-
-        @Override
-        public String toString() {
-            return String.valueOf(value);
-        }
-    }
-
     private static final long serialVersionUID = 1L;
 
     YangNumberExpr() {
         // Hidden to prevent external subclassing
     }
 
-    public static YangBigDecimal of(final BigDecimal number) {
-        return new YangBigDecimal(number);
-    }
-
-    public static YangDouble of(final double value) {
-        return new YangDouble(value);
-    }
-
     public abstract N getNumber();
+
+    public abstract YangXPathMathSupport<T> getSupport();
 }