Improve Decimal64 range support
[mdsal.git] / binding / mdsal-binding-java-api-generator / src / main / java / org / opendaylight / mdsal / binding / java / api / generator / AbstractPrimitiveRangeGenerator.java
index c435044aced3d906dac83bf20f9dea85af749f86..e29a9a16be980e86470d01288cd015e586d8cc01 100644 (file)
@@ -23,11 +23,11 @@ import org.slf4j.LoggerFactory;
 
 abstract class AbstractPrimitiveRangeGenerator<T extends Number & Comparable<T>> extends AbstractRangeGenerator<T> {
     private static final Logger LOG = LoggerFactory.getLogger(AbstractPrimitiveRangeGenerator.class);
-    private final String primitiveName;
-    private final T minValue;
-    private final T maxValue;
+    private final @NonNull String primitiveName;
+    private final @NonNull T minValue;
+    private final @NonNull T maxValue;
 
-    protected AbstractPrimitiveRangeGenerator(final Class<T> typeClass, final String primitiveName, final T minValue,
+    AbstractPrimitiveRangeGenerator(final Class<T> typeClass, final String primitiveName, final T minValue,
             final T maxValue) {
         super(typeClass);
         this.primitiveName = requireNonNull(primitiveName);
@@ -94,6 +94,15 @@ abstract class AbstractPrimitiveRangeGenerator<T extends Number & Comparable<T>>
         sb.append("value >= ").append(format(min));
     }
 
+    /**
+     * Format a value into a Java-compilable expression which results in the appropriate
+     * type.
+     *
+     * @param value Number value
+     * @return Java language string representation
+     */
+    protected abstract @NonNull String format(T value);
+
     String codeHelpersThrow() {
         return "throwInvalidRange";
     }