Initial opendaylight infrastructure commit!!
[controller.git] / opendaylight / sal / yang-prototype / yang / yang-model-util / src / main / java / org / opendaylight / controller / model / util / Decimal64.java
diff --git a/opendaylight/sal/yang-prototype/yang/yang-model-util/src/main/java/org/opendaylight/controller/model/util/Decimal64.java b/opendaylight/sal/yang-prototype/yang/yang-model-util/src/main/java/org/opendaylight/controller/model/util/Decimal64.java
new file mode 100644 (file)
index 0000000..5c6eac1
--- /dev/null
@@ -0,0 +1,125 @@
+/*\r
+  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
+  *\r
+  * This program and the accompanying materials are made available under the\r
+  * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
+  * and is available at http://www.eclipse.org/legal/epl-v10.html\r
+  */\r
+package org.opendaylight.controller.model.util;\r
+\r
+import java.math.BigDecimal;\r
+import java.util.ArrayList;\r
+import java.util.Collections;\r
+import java.util.List;\r
+\r
+import org.opendaylight.controller.model.api.type.DecimalTypeDefinition;\r
+import org.opendaylight.controller.model.api.type.RangeConstraint;\r
+import org.opendaylight.controller.yang.common.QName;\r
+import org.opendaylight.controller.yang.model.api.ExtensionDefinition;\r
+import org.opendaylight.controller.yang.model.api.SchemaPath;\r
+import org.opendaylight.controller.yang.model.api.Status;\r
+\r
+public class Decimal64 implements DecimalTypeDefinition {\r
+\r
+    private final QName name = BaseTypes.constructQName("decimal64");\r
+    private final SchemaPath path;\r
+    private String units = "";\r
+    private BigDecimal defaultValue = null;\r
+\r
+    private final String description = "The decimal64 type represents a subset of the real numbers, which can "\r
+            + "be represented by decimal numerals.  The value space of decimal64 is the set of numbers that can "\r
+            + "be obtained by multiplying a 64-bit signed integer by a negative power of ten, i.e., expressible as "\r
+            + "'i x 10^-n' where i is an integer64 and n is an integer between 1 and 18, inclusively.";\r
+\r
+    private final String reference = "https://tools.ietf.org/html/rfc6020#section-9.3";\r
+\r
+    private final List<RangeConstraint> rangeStatements;\r
+    private final Integer fractionDigits;\r
+\r
+    public Decimal64(final Integer fractionDigits) {\r
+        super();\r
+        this.fractionDigits = fractionDigits;\r
+        rangeStatements = new ArrayList<RangeConstraint>();\r
+        this.path = BaseTypes.schemaPath(name);\r
+    }\r
+\r
+    public Decimal64(final List<RangeConstraint> rangeStatements,\r
+            Integer fractionDigits) {\r
+        super();\r
+        this.rangeStatements = rangeStatements;\r
+        this.fractionDigits = fractionDigits;\r
+        this.path = BaseTypes.schemaPath(name);\r
+    }\r
+\r
+    public Decimal64(final String units, final BigDecimal defaultValue,\r
+            final List<RangeConstraint> rangeStatements,\r
+            final Integer fractionDigits) {\r
+        super();\r
+        this.units = units;\r
+        this.defaultValue = defaultValue;\r
+        this.rangeStatements = rangeStatements;\r
+        this.fractionDigits = fractionDigits;\r
+        this.path = BaseTypes.schemaPath(name);\r
+    }\r
+\r
+    @Override\r
+    public DecimalTypeDefinition getBaseType() {\r
+        return this;\r
+    }\r
+\r
+    @Override\r
+    public String getUnits() {\r
+        return units;\r
+    }\r
+\r
+    @Override\r
+    public Object getDefaultValue() {\r
+        return defaultValue;\r
+    }\r
+\r
+    @Override\r
+    public QName getQName() {\r
+        return name;\r
+    }\r
+\r
+    @Override\r
+    public SchemaPath getPath() {\r
+        return path;\r
+    }\r
+\r
+    @Override\r
+    public String getDescription() {\r
+        return description;\r
+    }\r
+\r
+    @Override\r
+    public String getReference() {\r
+        return reference;\r
+    }\r
+\r
+    @Override\r
+    public Status getStatus() {\r
+        return Status.CURRENT;\r
+    }\r
+\r
+    @Override\r
+    public List<ExtensionDefinition> getExtensionSchemaNodes() {\r
+        return Collections.emptyList();\r
+    }\r
+\r
+    @Override\r
+    public List<RangeConstraint> getRangeStatements() {\r
+        return rangeStatements;\r
+    }\r
+\r
+    @Override\r
+    public Integer getFractionDigits() {\r
+        return fractionDigits;\r
+    }\r
+\r
+    @Override\r
+    public String toString() {\r
+        return Decimal64.class.getSimpleName() + "[qname=" + name\r
+                + ", fractionDigits=" + fractionDigits + "]";\r
+    }\r
+}\r