From 498eee8e8d61845c442f3a6666b4700de9f3e4a5 Mon Sep 17 00:00:00 2001 From: Martin Vitez Date: Fri, 16 Aug 2013 13:45:51 +0200 Subject: [PATCH] Fixed types range validation. Change-Id: Ife21296868c198f6c78eb189da651eb2872c77cc Signed-off-by: Martin Vitez --- .../yangtools/yang/parser/util/TypeConstraints.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/TypeConstraints.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/TypeConstraints.java index 8575c4ec2e..995493e50a 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/TypeConstraints.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/TypeConstraints.java @@ -7,6 +7,7 @@ */ package org.opendaylight.yangtools.yang.parser.util; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -270,8 +271,8 @@ public final class TypeConstraints { if (range.getMin() instanceof UnknownBoundaryNumber || range.getMax() instanceof UnknownBoundaryNumber) { throw new YangParseException(moduleName, line, "Unresolved range constraints"); } - final long min = range.getMin().longValue(); - final long max = range.getMax().longValue(); + final BigDecimal min = new BigDecimal(range.getMin().toString()); + final BigDecimal max = new BigDecimal(range.getMax().toString()); List parentRanges = ranges.get(1); boolean check = false; @@ -280,15 +281,15 @@ public final class TypeConstraints { if (parentMinNumber instanceof UnknownBoundaryNumber) { parentMinNumber = resolveMinRange(parentMinNumber); } - long parentMin = parentMinNumber.longValue(); + BigDecimal parentMin = new BigDecimal(parentMinNumber.toString()); Number parentMaxNumber = r.getMax(); if (parentMaxNumber instanceof UnknownBoundaryNumber) { parentMaxNumber = resolveMaxRange(parentMaxNumber); } - long parentMax = parentMaxNumber.longValue(); + BigDecimal parentMax = new BigDecimal(parentMaxNumber.toString()); - if (parentMin <= min && parentMax >= max) { + if(parentMin.compareTo(min) <=0 && parentMax.compareTo(max) >= 0) { check = true; break; } -- 2.36.6