*/
package org.opendaylight.yangtools.yang.model.api.type;
+import java.math.BigDecimal;
+import java.util.Objects;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.YangConstants;
+
/**
* Contains methods for getting data from the YANG <code>type</code> substatement for <code>decimal64</code> built-in
* type.
*/
-public interface DecimalTypeDefinition extends RangeRestrictedTypeDefinition<DecimalTypeDefinition> {
+public interface DecimalTypeDefinition extends RangeRestrictedTypeDefinition<DecimalTypeDefinition, BigDecimal> {
+ /**
+ * Well-known QName of the {@code decimal64} built-in type.
+ */
+ QName QNAME = QName.create(YangConstants.RFC6020_YANG_MODULE, "decimal64").intern();
+
/**
* Returns integer between 1 and 18 inclusively.
*
* <p>
- * The "fraction-digits" statement controls the size of the minimum
- * difference between values of a decimal64 type, by restricting the value
- * space to numbers that are expressible as "i x 10^-n" where n is the
- * fraction-digits argument.
+ * The "fraction-digits" statement controls the size of the minimum difference between values of a decimal64 type,
+ * by restricting the value space to numbers that are expressible as "i x 10^-n" where n is the fraction-digits
+ * argument.
*
* @return number of fraction digits
*/
int getFractionDigits();
+
+ static int hashCode(final DecimalTypeDefinition type) {
+ return Objects.hash(type.getQName(), type.getUnknownSchemaNodes(), type.getBaseType(),
+ type.getUnits().orElse(null), type.getDefaultValue().orElse(null), type.getFractionDigits(),
+ type.getRangeConstraint().orElse(null));
+ }
+
+ static boolean equals(final DecimalTypeDefinition type, final Object obj) {
+ if (type == obj) {
+ return true;
+ }
+
+ final DecimalTypeDefinition other = TypeDefinitions.castIfEquals(DecimalTypeDefinition.class, type, obj);
+ return other != null && type.getFractionDigits() == other.getFractionDigits()
+ && type.getRangeConstraint().equals(other.getRangeConstraint());
+ }
+
+ static String toString(final DecimalTypeDefinition type) {
+ return TypeDefinitions.toStringHelper(type).add("fractionDigits", type.getFractionDigits()).toString();
+ }
}