MDSAL-320 Mapping type collisions between yang built-in uint* and int*
[mdsal.git] / binding2 / mdsal-binding2-java-api-generator / src / main / java / org / opendaylight / mdsal / binding / javav2 / java / api / generator / rangeGenerators / AbstractUnsignedIntegerRangeGenerator.java
diff --git a/binding2/mdsal-binding2-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/javav2/java/api/generator/rangeGenerators/AbstractUnsignedIntegerRangeGenerator.java b/binding2/mdsal-binding2-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/javav2/java/api/generator/rangeGenerators/AbstractUnsignedIntegerRangeGenerator.java
new file mode 100644 (file)
index 0000000..66eea90
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2017 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.mdsal.binding.javav2.java.api.generator.rangeGenerators;
+
+import javax.annotation.Nonnull;
+
+abstract class AbstractUnsignedIntegerRangeGenerator<T extends Number & Comparable<T>>
+        extends AbstractPrimitiveRangeGenerator<T> {
+    protected AbstractUnsignedIntegerRangeGenerator(final Class<T> typeClass, final String primitiveName,
+            final T minValue, final T maxValue) {
+        super(typeClass, primitiveName, minValue, maxValue);
+    }
+
+    @Override
+    protected final String format(final T value) {
+        // Make sure the number constant is cast to the corresponding primitive type
+        return getPrimitiveName() + ".valueOf(" + value + ")";
+    }
+
+    @Nonnull
+    @Override
+    protected String gtExpression(T value) {
+        return "value.compareTo(" + format(value) + ") >= 0";
+    }
+
+    @Nonnull
+    @Override
+    protected String ltExpression(T value) {
+        return "value.compareTo(" + format(value) + ") <= 0";
+    }
+}
\ No newline at end of file