Fix checkstyle in mdsal-binding2-java-api-generator
[mdsal.git] / binding2 / mdsal-binding2-java-api-generator / src / main / java / org / opendaylight / mdsal / binding / javav2 / java / api / generator / range_generators / BigDecimalRangeGenerator.java
diff --git a/binding2/mdsal-binding2-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/javav2/java/api/generator/range_generators/BigDecimalRangeGenerator.java b/binding2/mdsal-binding2-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/javav2/java/api/generator/range_generators/BigDecimalRangeGenerator.java
new file mode 100644 (file)
index 0000000..fcdd75b
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * 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.range_generators;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+
+final class BigDecimalRangeGenerator extends AbstractBigRangeGenerator<BigDecimal> {
+    BigDecimalRangeGenerator() {
+        super(BigDecimal.class);
+    }
+
+    @Override
+    protected String format(final BigDecimal value) {
+        if (BigDecimal.ZERO.equals(value)) {
+            return "java.math.BigDecimal.ZERO";
+        }
+        if (BigDecimal.ONE.equals(value)) {
+            return "java.math.BigDecimal.ONE";
+        }
+        if (BigDecimal.TEN.equals(value)) {
+            return "java.math.BigDecimal.TEN";
+        }
+
+        // FIXME: can we do something better?
+        return "new java.math.BigDecimal(\"" + value + "\")";
+    }
+
+    @Override
+    protected BigDecimal convert(final Number value) {
+        if (value instanceof BigInteger) {
+            return new BigDecimal((BigInteger)value);
+        } else if (value instanceof Byte) {
+            return new BigDecimal(value.intValue());
+        } else if (value instanceof Short) {
+            return new BigDecimal(value.intValue());
+        } else if (value instanceof Integer) {
+            return new BigDecimal(value.intValue());
+        } else {
+            return BigDecimal.valueOf(value.longValue());
+        }
+    }
+}
\ No newline at end of file