Committed by
Gerrit Code Review
YANG: Restriction resolution implementation
Change-Id: I69503e8229def07b289a0c8c762bfe0ae5530232
Showing
33 changed files
with
273 additions
and
392 deletions
| 1 | +/* | ||
| 2 | + * Copyright 2016-present Open Networking Laboratory | ||
| 3 | + * | ||
| 4 | + * Licensed under the Apache License, Version 2.0 (the "License"); | ||
| 5 | + * you may not use this file except in compliance with the License. | ||
| 6 | + * You may obtain a copy of the License at | ||
| 7 | + * | ||
| 8 | + * http://www.apache.org/licenses/LICENSE-2.0 | ||
| 9 | + * | ||
| 10 | + * Unless required by applicable law or agreed to in writing, software | ||
| 11 | + * distributed under the License is distributed on an "AS IS" BASIS, | ||
| 12 | + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| 13 | + * See the License for the specific language governing permissions and | ||
| 14 | + * limitations under the License. | ||
| 15 | + */ | ||
| 16 | + | ||
| 17 | +package org.onosproject.yangutils.datamodel; | ||
| 18 | + | ||
| 19 | +/** | ||
| 20 | + * Abstraction of location information, this is used during resolution is | ||
| 21 | + * carried out and line/character position in line is required to point | ||
| 22 | + * out the error location in YANG file. | ||
| 23 | + */ | ||
| 24 | +public interface LocationInfo { | ||
| 25 | + | ||
| 26 | + /** | ||
| 27 | + * Returns the line number YANG construct in file. | ||
| 28 | + * | ||
| 29 | + * @return the line number YANG construct in file | ||
| 30 | + */ | ||
| 31 | + int getLineNumber(); | ||
| 32 | + | ||
| 33 | + /** | ||
| 34 | + * Returns the character position in line. | ||
| 35 | + * | ||
| 36 | + * @return the character position in line | ||
| 37 | + */ | ||
| 38 | + int getCharPosition(); | ||
| 39 | + | ||
| 40 | + /** | ||
| 41 | + * Sets line number of YANG construct. | ||
| 42 | + * | ||
| 43 | + * @param lineNumber the line number of YANG construct in file | ||
| 44 | + */ | ||
| 45 | + void setLineNumber(int lineNumber); | ||
| 46 | + | ||
| 47 | + /** | ||
| 48 | + * Sets character position of YANG construct. | ||
| 49 | + * | ||
| 50 | + * @param charPositionInLine character position of YANG construct in file | ||
| 51 | + */ | ||
| 52 | + void setCharPosition(int charPositionInLine); | ||
| 53 | +} |
| ... | @@ -228,7 +228,7 @@ public enum YangDataTypes { | ... | @@ -228,7 +228,7 @@ public enum YangDataTypes { |
| 228 | public static YangDataTypes getType(String name) { | 228 | public static YangDataTypes getType(String name) { |
| 229 | name = name.replace("\"", ""); | 229 | name = name.replace("\"", ""); |
| 230 | for (YangDataTypes yangDataType : values()) { | 230 | for (YangDataTypes yangDataType : values()) { |
| 231 | - if (yangDataType.name().equalsIgnoreCase(name)) { | 231 | + if (yangDataType.name().toLowerCase().equals(name)) { |
| 232 | return yangDataType; | 232 | return yangDataType; |
| 233 | } | 233 | } |
| 234 | } | 234 | } | ... | ... |
This diff is collapsed. Click to expand it.
| ... | @@ -46,6 +46,7 @@ import java.util.List; | ... | @@ -46,6 +46,7 @@ import java.util.List; |
| 46 | * | reference | 7.19.4 | 0..1 | | 46 | * | reference | 7.19.4 | 0..1 | |
| 47 | * +---------------+---------+-------------+ | 47 | * +---------------+---------+-------------+ |
| 48 | */ | 48 | */ |
| 49 | + | ||
| 49 | /** | 50 | /** |
| 50 | * Represents pattern restriction information. The regular expression restriction on string | 51 | * Represents pattern restriction information. The regular expression restriction on string |
| 51 | * data type. | 52 | * data type. |
| ... | @@ -58,11 +59,6 @@ public class YangPatternRestriction { | ... | @@ -58,11 +59,6 @@ public class YangPatternRestriction { |
| 58 | private List<String> patternList; | 59 | private List<String> patternList; |
| 59 | 60 | ||
| 60 | /** | 61 | /** |
| 61 | - * Effective pattern restriction that needs inherited from base type. | ||
| 62 | - */ | ||
| 63 | - private List<String> basePattern; | ||
| 64 | - | ||
| 65 | - /** | ||
| 66 | * Creates a YANG pattern restriction object. | 62 | * Creates a YANG pattern restriction object. |
| 67 | */ | 63 | */ |
| 68 | public YangPatternRestriction() { | 64 | public YangPatternRestriction() { |
| ... | @@ -95,22 +91,4 @@ public class YangPatternRestriction { | ... | @@ -95,22 +91,4 @@ public class YangPatternRestriction { |
| 95 | public void addPattern(String newPattern) { | 91 | public void addPattern(String newPattern) { |
| 96 | getPatternList().add(newPattern); | 92 | getPatternList().add(newPattern); |
| 97 | } | 93 | } |
| 98 | - | ||
| 99 | - /** | ||
| 100 | - * Returns the pattern restriction defined in base type. | ||
| 101 | - * | ||
| 102 | - * @return pattern restriction defined in base type. | ||
| 103 | - */ | ||
| 104 | - public List<String> getBasePattern() { | ||
| 105 | - return basePattern; | ||
| 106 | - } | ||
| 107 | - | ||
| 108 | - /** | ||
| 109 | - * Sets the pattern restriction defined in base type. | ||
| 110 | - * | ||
| 111 | - * @param basePattern pattern restriction defined in base type. | ||
| 112 | - */ | ||
| 113 | - public void setBasePattern(List<String> basePattern) { | ||
| 114 | - this.basePattern = basePattern; | ||
| 115 | - } | ||
| 116 | } | 94 | } | ... | ... |
| ... | @@ -18,7 +18,6 @@ package org.onosproject.yangutils.datamodel; | ... | @@ -18,7 +18,6 @@ package org.onosproject.yangutils.datamodel; |
| 18 | 18 | ||
| 19 | import java.util.LinkedList; | 19 | import java.util.LinkedList; |
| 20 | import java.util.List; | 20 | import java.util.List; |
| 21 | - | ||
| 22 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | 21 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; |
| 23 | import org.onosproject.yangutils.utils.builtindatatype.YangBuiltInDataTypeInfo; | 22 | import org.onosproject.yangutils.utils.builtindatatype.YangBuiltInDataTypeInfo; |
| 24 | 23 | ||
| ... | @@ -111,8 +110,8 @@ public class YangRangeRestriction<T extends YangBuiltInDataTypeInfo<T>> | ... | @@ -111,8 +110,8 @@ public class YangRangeRestriction<T extends YangBuiltInDataTypeInfo<T>> |
| 111 | /** | 110 | /** |
| 112 | * Returns the minimum valid value as per the restriction. | 111 | * Returns the minimum valid value as per the restriction. |
| 113 | * | 112 | * |
| 114 | - * @throws DataModelException data model exception for minimum restriction | ||
| 115 | * @return minimum restricted value | 113 | * @return minimum restricted value |
| 114 | + * @throws DataModelException data model exception for minimum restriction | ||
| 116 | */ | 115 | */ |
| 117 | public T getMinRestrictedvalue() throws DataModelException { | 116 | public T getMinRestrictedvalue() throws DataModelException { |
| 118 | if (getAscendingRangeIntervals() == null) { | 117 | if (getAscendingRangeIntervals() == null) { |
| ... | @@ -127,8 +126,8 @@ public class YangRangeRestriction<T extends YangBuiltInDataTypeInfo<T>> | ... | @@ -127,8 +126,8 @@ public class YangRangeRestriction<T extends YangBuiltInDataTypeInfo<T>> |
| 127 | /** | 126 | /** |
| 128 | * Returns the maximum valid value as per the restriction. | 127 | * Returns the maximum valid value as per the restriction. |
| 129 | * | 128 | * |
| 130 | - * @throws DataModelException data model exception for maximum restriction | ||
| 131 | * @return minimum maximum value | 129 | * @return minimum maximum value |
| 130 | + * @throws DataModelException data model exception for maximum restriction | ||
| 132 | */ | 131 | */ |
| 133 | public T getMaxRestrictedvalue() throws DataModelException { | 132 | public T getMaxRestrictedvalue() throws DataModelException { |
| 134 | if (getAscendingRangeIntervals() == null) { | 133 | if (getAscendingRangeIntervals() == null) { |
| ... | @@ -175,7 +174,7 @@ public class YangRangeRestriction<T extends YangBuiltInDataTypeInfo<T>> | ... | @@ -175,7 +174,7 @@ public class YangRangeRestriction<T extends YangBuiltInDataTypeInfo<T>> |
| 175 | } | 174 | } |
| 176 | 175 | ||
| 177 | /** | 176 | /** |
| 178 | - * Check if the given value is correct as per the restriction. | 177 | + * Validates if the given value is correct as per the restriction. |
| 179 | * | 178 | * |
| 180 | * @param valueInString value | 179 | * @param valueInString value |
| 181 | * @return true, if the value is confirming to restriction, false otherwise | 180 | * @return true, if the value is confirming to restriction, false otherwise |
| ... | @@ -206,6 +205,32 @@ public class YangRangeRestriction<T extends YangBuiltInDataTypeInfo<T>> | ... | @@ -206,6 +205,32 @@ public class YangRangeRestriction<T extends YangBuiltInDataTypeInfo<T>> |
| 206 | } | 205 | } |
| 207 | 206 | ||
| 208 | /** | 207 | /** |
| 208 | + * Validates if the given interval is correct as per the restriction. | ||
| 209 | + * | ||
| 210 | + * @param rangeInterval range interval | ||
| 211 | + * @return true, if the interval is confirming to restriction, false otherwise | ||
| 212 | + * @throws DataModelException data model error | ||
| 213 | + */ | ||
| 214 | + public boolean isValidInterval(YangRangeInterval rangeInterval) throws DataModelException { | ||
| 215 | + | ||
| 216 | + if (getAscendingRangeIntervals() == null | ||
| 217 | + || getAscendingRangeIntervals().isEmpty()) { | ||
| 218 | + // Throw exception, At least one default range needs to be set in constructor or in linker. | ||
| 219 | + throw new DataModelException("Range interval missing in range restriction."); | ||
| 220 | + } | ||
| 221 | + | ||
| 222 | + for (YangRangeInterval<T> interval : getAscendingRangeIntervals()) { | ||
| 223 | + int rangeStartCompareRes = interval.getStartValue().compareTo((T) rangeInterval.getStartValue()); | ||
| 224 | + int rangeEndCompareRes = interval.getEndValue().compareTo((T) rangeInterval.getEndValue()); | ||
| 225 | + | ||
| 226 | + if (rangeStartCompareRes <= 0 && rangeEndCompareRes >= 0) { | ||
| 227 | + return true; | ||
| 228 | + } | ||
| 229 | + } | ||
| 230 | + throw new DataModelException("Range interval doesn't fall within the referred restriction ranges"); | ||
| 231 | + } | ||
| 232 | + | ||
| 233 | + /** | ||
| 209 | * Returns the textual reference of the length restriction. | 234 | * Returns the textual reference of the length restriction. |
| 210 | * | 235 | * |
| 211 | * @return textual reference of the length restriction | 236 | * @return textual reference of the length restriction | ... | ... |
| ... | @@ -17,7 +17,6 @@ | ... | @@ -17,7 +17,6 @@ |
| 17 | package org.onosproject.yangutils.datamodel; | 17 | package org.onosproject.yangutils.datamodel; |
| 18 | 18 | ||
| 19 | import java.util.Stack; | 19 | import java.util.Stack; |
| 20 | - | ||
| 21 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | 20 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; |
| 22 | 21 | ||
| 23 | import static org.onosproject.yangutils.datamodel.ResolvableStatus.INTRA_FILE_RESOLVED; | 22 | import static org.onosproject.yangutils.datamodel.ResolvableStatus.INTRA_FILE_RESOLVED; |
| ... | @@ -30,7 +29,7 @@ import static org.onosproject.yangutils.datamodel.ResolvableStatus.UNRESOLVED; | ... | @@ -30,7 +29,7 @@ import static org.onosproject.yangutils.datamodel.ResolvableStatus.UNRESOLVED; |
| 30 | * | 29 | * |
| 31 | * @param <T> type of resolution entity uses / type | 30 | * @param <T> type of resolution entity uses / type |
| 32 | */ | 31 | */ |
| 33 | -public class YangResolutionInfo<T> { | 32 | +public class YangResolutionInfo<T> implements LocationInfo { |
| 34 | 33 | ||
| 35 | /** | 34 | /** |
| 36 | * Information about the entity that needs to be resolved. | 35 | * Information about the entity that needs to be resolved. |
| ... | @@ -64,9 +63,9 @@ public class YangResolutionInfo<T> { | ... | @@ -64,9 +63,9 @@ public class YangResolutionInfo<T> { |
| 64 | /** | 63 | /** |
| 65 | * Creates a resolution information object with all the inputs. | 64 | * Creates a resolution information object with all the inputs. |
| 66 | * | 65 | * |
| 67 | - * @param dataNode current parsable data node | 66 | + * @param dataNode current parsable data node |
| 68 | - * @param holderNode parent YANG node | 67 | + * @param holderNode parent YANG node |
| 69 | - * @param lineNumber error line number | 68 | + * @param lineNumber error line number |
| 70 | * @param charPositionInLine error character position in line | 69 | * @param charPositionInLine error character position in line |
| 71 | */ | 70 | */ |
| 72 | public YangResolutionInfo(T dataNode, YangNode holderNode, int lineNumber, int charPositionInLine) { | 71 | public YangResolutionInfo(T dataNode, YangNode holderNode, int lineNumber, int charPositionInLine) { |
| ... | @@ -193,7 +192,6 @@ public class YangResolutionInfo<T> { | ... | @@ -193,7 +192,6 @@ public class YangResolutionInfo<T> { |
| 193 | private void resolveTopOfStack() | 192 | private void resolveTopOfStack() |
| 194 | throws DataModelException { | 193 | throws DataModelException { |
| 195 | ((Resolvable) getCurrentEntityToResolveFromStack()).resolve(); | 194 | ((Resolvable) getCurrentEntityToResolveFromStack()).resolve(); |
| 196 | - | ||
| 197 | if (((Resolvable) getCurrentEntityToResolveFromStack()).getResolvableStatus() | 195 | if (((Resolvable) getCurrentEntityToResolveFromStack()).getResolvableStatus() |
| 198 | != INTRA_FILE_RESOLVED) { | 196 | != INTRA_FILE_RESOLVED) { |
| 199 | // Sets the resolution status in inside the type/uses. | 197 | // Sets the resolution status in inside the type/uses. |
| ... | @@ -453,42 +451,6 @@ public class YangResolutionInfo<T> { | ... | @@ -453,42 +451,6 @@ public class YangResolutionInfo<T> { |
| 453 | } | 451 | } |
| 454 | 452 | ||
| 455 | /** | 453 | /** |
| 456 | - * Returns error position. | ||
| 457 | - * | ||
| 458 | - * @return error position | ||
| 459 | - */ | ||
| 460 | - public int getCharPosition() { | ||
| 461 | - return charPosition; | ||
| 462 | - } | ||
| 463 | - | ||
| 464 | - /** | ||
| 465 | - * Sets error position. | ||
| 466 | - * | ||
| 467 | - * @param charPosition position of error | ||
| 468 | - */ | ||
| 469 | - public void setCharPosition(int charPosition) { | ||
| 470 | - this.charPosition = charPosition; | ||
| 471 | - } | ||
| 472 | - | ||
| 473 | - /** | ||
| 474 | - * Returns error character position in line. | ||
| 475 | - * | ||
| 476 | - * @return error character position in line | ||
| 477 | - */ | ||
| 478 | - public int getLineNumber() { | ||
| 479 | - return lineNumber; | ||
| 480 | - } | ||
| 481 | - | ||
| 482 | - /** | ||
| 483 | - * Sets error character position in line. | ||
| 484 | - * | ||
| 485 | - * @param lineNumber error character position in line | ||
| 486 | - */ | ||
| 487 | - public void setLineNumber(int lineNumber) { | ||
| 488 | - this.lineNumber = lineNumber; | ||
| 489 | - } | ||
| 490 | - | ||
| 491 | - /** | ||
| 492 | * Returns stack of YANG type with partially resolved YANG construct | 454 | * Returns stack of YANG type with partially resolved YANG construct |
| 493 | * hierarchy. | 455 | * hierarchy. |
| 494 | * | 456 | * |
| ... | @@ -539,9 +501,29 @@ public class YangResolutionInfo<T> { | ... | @@ -539,9 +501,29 @@ public class YangResolutionInfo<T> { |
| 539 | * Sets information about the entity that needs to be resolved. | 501 | * Sets information about the entity that needs to be resolved. |
| 540 | * | 502 | * |
| 541 | * @param entityToResolveInfo information about the entity that needs to be | 503 | * @param entityToResolveInfo information about the entity that needs to be |
| 542 | - * resolved | 504 | + * resolved |
| 543 | */ | 505 | */ |
| 544 | public void setEntityToResolveInfo(YangEntityToResolveInfo<T> entityToResolveInfo) { | 506 | public void setEntityToResolveInfo(YangEntityToResolveInfo<T> entityToResolveInfo) { |
| 545 | this.entityToResolveInfo = entityToResolveInfo; | 507 | this.entityToResolveInfo = entityToResolveInfo; |
| 546 | } | 508 | } |
| 509 | + | ||
| 510 | + @Override | ||
| 511 | + public int getLineNumber() { | ||
| 512 | + return lineNumber; | ||
| 513 | + } | ||
| 514 | + | ||
| 515 | + @Override | ||
| 516 | + public int getCharPosition() { | ||
| 517 | + return charPosition; | ||
| 518 | + } | ||
| 519 | + | ||
| 520 | + @Override | ||
| 521 | + public void setLineNumber(int lineNumber) { | ||
| 522 | + this.lineNumber = lineNumber; | ||
| 523 | + } | ||
| 524 | + | ||
| 525 | + @Override | ||
| 526 | + public void setCharPosition(int charPositionInLine) { | ||
| 527 | + this.charPosition = charPositionInLine; | ||
| 528 | + } | ||
| 547 | } | 529 | } | ... | ... |
| ... | @@ -24,6 +24,7 @@ import org.onosproject.yangutils.utils.builtindatatype.YangUint64; | ... | @@ -24,6 +24,7 @@ import org.onosproject.yangutils.utils.builtindatatype.YangUint64; |
| 24 | * A string can be restricted with the "length" and "pattern" statements. | 24 | * A string can be restricted with the "length" and "pattern" statements. |
| 25 | * | 25 | * |
| 26 | */ | 26 | */ |
| 27 | + | ||
| 27 | /** | 28 | /** |
| 28 | * Represents the restriction for string data type. | 29 | * Represents the restriction for string data type. |
| 29 | */ | 30 | */ |
| ... | @@ -113,7 +114,7 @@ public class YangStringRestriction { | ... | @@ -113,7 +114,7 @@ public class YangStringRestriction { |
| 113 | * | 114 | * |
| 114 | * @param patternRestriction pattern restriction for the type | 115 | * @param patternRestriction pattern restriction for the type |
| 115 | */ | 116 | */ |
| 116 | - private void setPatternRestriction(YangPatternRestriction patternRestriction) { | 117 | + public void setPatternRestriction(YangPatternRestriction patternRestriction) { |
| 117 | this.patternRestriction = patternRestriction; | 118 | this.patternRestriction = patternRestriction; |
| 118 | } | 119 | } |
| 119 | 120 | ... | ... |
| ... | @@ -20,7 +20,6 @@ import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | ... | @@ -20,7 +20,6 @@ import org.onosproject.yangutils.datamodel.exceptions.DataModelException; |
| 20 | import org.onosproject.yangutils.parser.Parsable; | 20 | import org.onosproject.yangutils.parser.Parsable; |
| 21 | import org.onosproject.yangutils.utils.YangConstructType; | 21 | import org.onosproject.yangutils.utils.YangConstructType; |
| 22 | 22 | ||
| 23 | -import static org.onosproject.yangutils.datamodel.ResolvableStatus.INTRA_FILE_RESOLVED; | ||
| 24 | import static org.onosproject.yangutils.datamodel.YangDataTypes.DERIVED; | 23 | import static org.onosproject.yangutils.datamodel.YangDataTypes.DERIVED; |
| 25 | 24 | ||
| 26 | /* | 25 | /* |
| ... | @@ -78,18 +77,6 @@ public class YangType<T> | ... | @@ -78,18 +77,6 @@ public class YangType<T> |
| 78 | private T dataTypeExtendedInfo; | 77 | private T dataTypeExtendedInfo; |
| 79 | 78 | ||
| 80 | /** | 79 | /** |
| 81 | - * Effective built-in type, requried in case type of typedef is again a | ||
| 82 | - * derived type. This information is to be added during linking. | ||
| 83 | - */ | ||
| 84 | - private YangDataTypes effectiveBuiltInType; | ||
| 85 | - | ||
| 86 | - /** | ||
| 87 | - * Effective pattern restriction, requried in case type of typedef is again | ||
| 88 | - * a derived type. This information is to be added during linking. | ||
| 89 | - */ | ||
| 90 | - private YangPatternRestriction effectivePatternRestriction; | ||
| 91 | - | ||
| 92 | - /** | ||
| 93 | * Status of resolution. If completely resolved enum value is "RESOLVED", | 80 | * Status of resolution. If completely resolved enum value is "RESOLVED", |
| 94 | * if not enum value is "UNRESOLVED", in case reference of grouping/typedef | 81 | * if not enum value is "UNRESOLVED", in case reference of grouping/typedef |
| 95 | * is added to uses/type but it's not resolved value of enum should be | 82 | * is added to uses/type but it's not resolved value of enum should be |
| ... | @@ -215,42 +202,6 @@ public class YangType<T> | ... | @@ -215,42 +202,6 @@ public class YangType<T> |
| 215 | } | 202 | } |
| 216 | 203 | ||
| 217 | /** | 204 | /** |
| 218 | - * Return effective built-in type. | ||
| 219 | - * | ||
| 220 | - * @return effective built-in type | ||
| 221 | - */ | ||
| 222 | - public YangDataTypes getEffectiveBuiltInType() { | ||
| 223 | - return effectiveBuiltInType; | ||
| 224 | - } | ||
| 225 | - | ||
| 226 | - /** | ||
| 227 | - * Sets effective built-in type. | ||
| 228 | - * | ||
| 229 | - * @param effectiveBuiltInType effective built-in type | ||
| 230 | - */ | ||
| 231 | - public void setEffectiveBuiltInType(YangDataTypes effectiveBuiltInType) { | ||
| 232 | - this.effectiveBuiltInType = effectiveBuiltInType; | ||
| 233 | - } | ||
| 234 | - | ||
| 235 | - /** | ||
| 236 | - * Returns effective pattern restriction. | ||
| 237 | - * | ||
| 238 | - * @return effective pattern restriction | ||
| 239 | - */ | ||
| 240 | - public YangPatternRestriction getEffectivePatternRestriction() { | ||
| 241 | - return effectivePatternRestriction; | ||
| 242 | - } | ||
| 243 | - | ||
| 244 | - /** | ||
| 245 | - * Sets effective pattern restriction. | ||
| 246 | - * | ||
| 247 | - * @param effectivePatternRestriction effective pattern restriction | ||
| 248 | - */ | ||
| 249 | - public void setEffectivePatternRestriction(YangPatternRestriction effectivePatternRestriction) { | ||
| 250 | - this.effectivePatternRestriction = effectivePatternRestriction; | ||
| 251 | - } | ||
| 252 | - | ||
| 253 | - /** | ||
| 254 | * Returns the type of the parsed data. | 205 | * Returns the type of the parsed data. |
| 255 | * | 206 | * |
| 256 | * @return returns TYPE_DATA | 207 | * @return returns TYPE_DATA |
| ... | @@ -269,7 +220,6 @@ public class YangType<T> | ... | @@ -269,7 +220,6 @@ public class YangType<T> |
| 269 | public void validateDataOnEntry() | 220 | public void validateDataOnEntry() |
| 270 | throws DataModelException { | 221 | throws DataModelException { |
| 271 | // TODO auto-generated method stub, to be implemented by parser | 222 | // TODO auto-generated method stub, to be implemented by parser |
| 272 | - | ||
| 273 | } | 223 | } |
| 274 | 224 | ||
| 275 | /** | 225 | /** |
| ... | @@ -281,7 +231,6 @@ public class YangType<T> | ... | @@ -281,7 +231,6 @@ public class YangType<T> |
| 281 | public void validateDataOnExit() | 231 | public void validateDataOnExit() |
| 282 | throws DataModelException { | 232 | throws DataModelException { |
| 283 | // TODO auto-generated method stub, to be implemented by parser | 233 | // TODO auto-generated method stub, to be implemented by parser |
| 284 | - | ||
| 285 | } | 234 | } |
| 286 | 235 | ||
| 287 | @Override | 236 | @Override |
| ... | @@ -297,17 +246,19 @@ public class YangType<T> | ... | @@ -297,17 +246,19 @@ public class YangType<T> |
| 297 | @Override | 246 | @Override |
| 298 | public void resolve() throws DataModelException { | 247 | public void resolve() throws DataModelException { |
| 299 | /* | 248 | /* |
| 300 | - Inherit the Restriction from the referred typedef definition. | 249 | + * Check whether the data type is derived. |
| 301 | */ | 250 | */ |
| 302 | if (getDataType() != DERIVED) { | 251 | if (getDataType() != DERIVED) { |
| 303 | - throw new DataModelException("Resolve should only be called for derived data types"); | 252 | + throw new DataModelException("Linker Error: Resolve should only be called for derived data types."); |
| 304 | } | 253 | } |
| 305 | 254 | ||
| 306 | - YangDerivedInfo<?> derrivedInfo = (YangDerivedInfo<?>) getDataTypeExtendedInfo(); | 255 | + // Check if the derived info is present. |
| 307 | - YangType<?> baseType = derrivedInfo.getReferredTypeDef().getTypeDefBaseType(); | 256 | + YangDerivedInfo<?> derivedInfo = (YangDerivedInfo<?>) getDataTypeExtendedInfo(); |
| 308 | - if (DERIVED == baseType.getDataType() && baseType.getResolvableStatus() == INTRA_FILE_RESOLVED) { | 257 | + if (derivedInfo == null) { |
| 309 | - setResolvableStatus(INTRA_FILE_RESOLVED); | 258 | + throw new DataModelException("Linker Error: Derived information is missing."); |
| 310 | } | 259 | } |
| 311 | - //TODO: | 260 | + |
| 261 | + // Initiate the resolution | ||
| 262 | + setResolvableStatus(derivedInfo.resolve()); | ||
| 312 | } | 263 | } |
| 313 | } | 264 | } | ... | ... |
| ... | @@ -83,11 +83,6 @@ public class YangTypeDef extends YangNode implements YangCommonInfo, Parsable, Y | ... | @@ -83,11 +83,6 @@ public class YangTypeDef extends YangNode implements YangCommonInfo, Parsable, Y |
| 83 | private String name; | 83 | private String name; |
| 84 | 84 | ||
| 85 | /** | 85 | /** |
| 86 | - * Maintain the data type information. | ||
| 87 | - */ | ||
| 88 | - private YangType<?> dataType; | ||
| 89 | - | ||
| 90 | - /** | ||
| 91 | * Units of the data type. | 86 | * Units of the data type. |
| 92 | */ | 87 | */ |
| 93 | private String units; | 88 | private String units; | ... | ... |
| 1 | /* | 1 | /* |
| 2 | - * Copyright 2016 Open Networking Laboratory | 2 | + * Copyright 2016-present Open Networking Laboratory |
| 3 | * | 3 | * |
| 4 | * Licensed under the Apache License, Version 2.0 (the "License"); | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 | * you may not use this file except in compliance with the License. | 5 | * you may not use this file except in compliance with the License. |
| ... | @@ -16,34 +16,26 @@ | ... | @@ -16,34 +16,26 @@ |
| 16 | 16 | ||
| 17 | package org.onosproject.yangutils.parser.impl.listeners; | 17 | package org.onosproject.yangutils.parser.impl.listeners; |
| 18 | 18 | ||
| 19 | -import java.util.regex.Pattern; | 19 | +import org.onosproject.yangutils.datamodel.YangDataTypes; |
| 20 | - | 20 | +import org.onosproject.yangutils.datamodel.YangDerivedInfo; |
| 21 | import org.onosproject.yangutils.datamodel.YangRangeRestriction; | 21 | import org.onosproject.yangutils.datamodel.YangRangeRestriction; |
| 22 | -import org.onosproject.yangutils.datamodel.YangRangeInterval; | ||
| 23 | import org.onosproject.yangutils.datamodel.YangStringRestriction; | 22 | import org.onosproject.yangutils.datamodel.YangStringRestriction; |
| 24 | import org.onosproject.yangutils.datamodel.YangType; | 23 | import org.onosproject.yangutils.datamodel.YangType; |
| 25 | -import org.onosproject.yangutils.datamodel.YangDataTypes; | ||
| 26 | -import org.onosproject.yangutils.datamodel.YangDerivedInfo; | ||
| 27 | -import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | ||
| 28 | import org.onosproject.yangutils.parser.Parsable; | 24 | import org.onosproject.yangutils.parser.Parsable; |
| 29 | import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser; | 25 | import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser; |
| 30 | import org.onosproject.yangutils.parser.exceptions.ParserException; | 26 | import org.onosproject.yangutils.parser.exceptions.ParserException; |
| 31 | import org.onosproject.yangutils.parser.impl.TreeWalkListener; | 27 | import org.onosproject.yangutils.parser.impl.TreeWalkListener; |
| 32 | import org.onosproject.yangutils.utils.YangConstructType; | 28 | import org.onosproject.yangutils.utils.YangConstructType; |
| 33 | -import org.onosproject.yangutils.utils.builtindatatype.DataTypeException; | ||
| 34 | -import org.onosproject.yangutils.utils.builtindatatype.YangBuiltInDataTypeInfo; | ||
| 35 | 29 | ||
| 36 | -import static org.onosproject.yangutils.parser.impl.parserutils.ListenerUtil.removeQuotesAndHandleConcat; | 30 | +import static org.onosproject.yangutils.datamodel.YangDataTypes.DERIVED; |
| 37 | -import static org.onosproject.yangutils.utils.YangConstructType.LENGTH_DATA; | ||
| 38 | -import static org.onosproject.yangutils.utils.YangConstructType.TYPE_DATA; | ||
| 39 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY; | 31 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY; |
| 40 | -import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructExtendedListenerErrorMessage; | ||
| 41 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage; | 32 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage; |
| 42 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_HOLDER; | 33 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_HOLDER; |
| 43 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER; | 34 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER; |
| 44 | -import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.UNHANDLED_PARSED_DATA; | ||
| 45 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty; | 35 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty; |
| 46 | -import static org.onosproject.yangutils.utils.builtindatatype.BuiltInTypeObjectFactory.getDataObjectFromString; | 36 | +import static org.onosproject.yangutils.utils.RestrictionResolver.processLengthRestriction; |
| 37 | +import static org.onosproject.yangutils.utils.YangConstructType.LENGTH_DATA; | ||
| 38 | +import static org.onosproject.yangutils.utils.YangConstructType.TYPE_DATA; | ||
| 47 | 39 | ||
| 48 | /* | 40 | /* |
| 49 | * Reference: RFC6020 and YANG ANTLR Grammar | 41 | * Reference: RFC6020 and YANG ANTLR Grammar |
| ... | @@ -71,11 +63,6 @@ import static org.onosproject.yangutils.utils.builtindatatype.BuiltInTypeObjectF | ... | @@ -71,11 +63,6 @@ import static org.onosproject.yangutils.utils.builtindatatype.BuiltInTypeObjectF |
| 71 | */ | 63 | */ |
| 72 | public final class LengthRestrictionListener { | 64 | public final class LengthRestrictionListener { |
| 73 | 65 | ||
| 74 | - private static final String PIPE = "|"; | ||
| 75 | - private static final String LENGTH_INTERVAL = ".."; | ||
| 76 | - private static final int MAX_RANGE_BOUNDARY = 2; | ||
| 77 | - private static final int MIN_RANGE_BOUNDARY = 1; | ||
| 78 | - | ||
| 79 | /** | 66 | /** |
| 80 | * Creates a new length restriction listener. | 67 | * Creates a new length restriction listener. |
| 81 | */ | 68 | */ |
| ... | @@ -88,10 +75,10 @@ public final class LengthRestrictionListener { | ... | @@ -88,10 +75,10 @@ public final class LengthRestrictionListener { |
| 88 | * tree. | 75 | * tree. |
| 89 | * | 76 | * |
| 90 | * @param listener listener's object | 77 | * @param listener listener's object |
| 91 | - * @param ctx context object of the grammar rule | 78 | + * @param ctx context object of the grammar rule |
| 92 | */ | 79 | */ |
| 93 | public static void processLengthRestrictionEntry(TreeWalkListener listener, | 80 | public static void processLengthRestrictionEntry(TreeWalkListener listener, |
| 94 | - GeneratedYangParser.LengthStatementContext ctx) { | 81 | + GeneratedYangParser.LengthStatementContext ctx) { |
| 95 | 82 | ||
| 96 | // Check for stack to be non empty. | 83 | // Check for stack to be non empty. |
| 97 | checkStackIsNotEmpty(listener, MISSING_HOLDER, LENGTH_DATA, ctx.length().getText(), ENTRY); | 84 | checkStackIsNotEmpty(listener, MISSING_HOLDER, LENGTH_DATA, ctx.length().getText(), ENTRY); |
| ... | @@ -110,18 +97,22 @@ public final class LengthRestrictionListener { | ... | @@ -110,18 +97,22 @@ public final class LengthRestrictionListener { |
| 110 | * Sets the length restriction to type. | 97 | * Sets the length restriction to type. |
| 111 | * | 98 | * |
| 112 | * @param type Yang type for which length restriction to be set | 99 | * @param type Yang type for which length restriction to be set |
| 113 | - * @param ctx context object of the grammar rule | 100 | + * @param ctx context object of the grammar rule |
| 114 | */ | 101 | */ |
| 115 | private static void setLengthRestriction(YangType type, | 102 | private static void setLengthRestriction(YangType type, |
| 116 | - GeneratedYangParser.LengthStatementContext ctx) { | 103 | + GeneratedYangParser.LengthStatementContext ctx) { |
| 117 | - | 104 | + |
| 118 | - YangStringRestriction stringRestriction; | 105 | + if (type.getDataType() == DERIVED) { |
| 119 | - YangBuiltInDataTypeInfo<?> startValue; | 106 | + ((YangDerivedInfo<YangRangeRestriction>) type.getDataTypeExtendedInfo()) |
| 120 | - YangBuiltInDataTypeInfo<?> endValue; | 107 | + .setLengthRestrictionString(ctx.length().getText()); |
| 121 | - YangRangeRestriction lengthRestriction = new YangRangeRestriction<>(); | 108 | + ((YangDerivedInfo<YangRangeRestriction>) type.getDataTypeExtendedInfo()) |
| 122 | - | 109 | + .setLineNumber(ctx.getStart().getLine()); |
| 123 | - if (type.getDataType() != YangDataTypes.STRING && type.getDataType() != YangDataTypes.DERIVED) { | 110 | + ((YangDerivedInfo<YangRangeRestriction>) type.getDataTypeExtendedInfo()) |
| 111 | + .setCharPosition(ctx.getStart().getCharPositionInLine()); | ||
| 112 | + return; | ||
| 113 | + } | ||
| 124 | 114 | ||
| 115 | + if (type.getDataType() != YangDataTypes.STRING) { | ||
| 125 | ParserException parserException = new ParserException("YANG file error : " + | 116 | ParserException parserException = new ParserException("YANG file error : " + |
| 126 | YangConstructType.getYangConstructType(LENGTH_DATA) + " name " + ctx.length().getText() + | 117 | YangConstructType.getYangConstructType(LENGTH_DATA) + " name " + ctx.length().getText() + |
| 127 | " can be used to restrict the built-in type string or types derived from string."); | 118 | " can be used to restrict the built-in type string or types derived from string."); |
| ... | @@ -130,71 +121,14 @@ public final class LengthRestrictionListener { | ... | @@ -130,71 +121,14 @@ public final class LengthRestrictionListener { |
| 130 | throw parserException; | 121 | throw parserException; |
| 131 | } | 122 | } |
| 132 | 123 | ||
| 133 | - if (type.getDataType() == YangDataTypes.STRING) { | 124 | + YangRangeRestriction lengthRestriction = processLengthRestriction(null, ctx.getStart().getLine(), |
| 134 | - stringRestriction = (YangStringRestriction) type.getDataTypeExtendedInfo(); | 125 | + ctx.getStart().getCharPositionInLine(), false, ctx.length().getText()); |
| 135 | - } else { | 126 | + |
| 136 | - stringRestriction = (YangStringRestriction) ((YangDerivedInfo<?>) type | 127 | + YangStringRestriction stringRestriction = (YangStringRestriction) type.getDataTypeExtendedInfo(); |
| 137 | - .getDataTypeExtendedInfo()).getExtendedInfo(); | ||
| 138 | - } | ||
| 139 | 128 | ||
| 140 | if (stringRestriction == null) { | 129 | if (stringRestriction == null) { |
| 141 | stringRestriction = new YangStringRestriction(); | 130 | stringRestriction = new YangStringRestriction(); |
| 142 | - if (type.getDataType() == YangDataTypes.STRING) { | 131 | + type.setDataTypeExtendedInfo(stringRestriction); |
| 143 | - type.setDataTypeExtendedInfo(stringRestriction); | ||
| 144 | - } else { | ||
| 145 | - ((YangDerivedInfo<YangStringRestriction>) type.getDataTypeExtendedInfo()) | ||
| 146 | - .setExtendedInfo(stringRestriction); | ||
| 147 | - } | ||
| 148 | - } | ||
| 149 | - | ||
| 150 | - String rangeArgument = removeQuotesAndHandleConcat(ctx.length().getText()); | ||
| 151 | - String[] rangeArguments = rangeArgument.trim().split(Pattern.quote(PIPE)); | ||
| 152 | - | ||
| 153 | - for (String rangePart : rangeArguments) { | ||
| 154 | - String startInterval; | ||
| 155 | - String endInterval; | ||
| 156 | - YangRangeInterval rangeInterval = new YangRangeInterval<>(); | ||
| 157 | - String[] rangeBoundary = rangePart.trim().split(Pattern.quote(LENGTH_INTERVAL)); | ||
| 158 | - | ||
| 159 | - if (rangeBoundary.length > MAX_RANGE_BOUNDARY) { | ||
| 160 | - ParserException parserException = new ParserException("YANG file error : " + | ||
| 161 | - YangConstructType.getYangConstructType(LENGTH_DATA) + " " + rangeArgument + | ||
| 162 | - " is not valid."); | ||
| 163 | - parserException.setLine(ctx.getStart().getLine()); | ||
| 164 | - parserException.setCharPosition(ctx.getStart().getCharPositionInLine()); | ||
| 165 | - throw parserException; | ||
| 166 | - } | ||
| 167 | - | ||
| 168 | - if (rangeBoundary.length == MIN_RANGE_BOUNDARY) { | ||
| 169 | - startInterval = rangeBoundary[0]; | ||
| 170 | - endInterval = rangeBoundary[0]; | ||
| 171 | - } else { | ||
| 172 | - startInterval = rangeBoundary[0]; | ||
| 173 | - endInterval = rangeBoundary[1]; | ||
| 174 | - } | ||
| 175 | - | ||
| 176 | - try { | ||
| 177 | - startValue = getDataObjectFromString(startInterval, YangDataTypes.UINT64); | ||
| 178 | - endValue = getDataObjectFromString(endInterval, YangDataTypes.UINT64); | ||
| 179 | - } catch (DataTypeException e) { | ||
| 180 | - ParserException parserException = new ParserException(e.getMessage()); | ||
| 181 | - parserException.setLine(ctx.getStart().getLine()); | ||
| 182 | - parserException.setCharPosition(ctx.getStart().getCharPositionInLine()); | ||
| 183 | - throw parserException; | ||
| 184 | - } | ||
| 185 | - | ||
| 186 | - rangeInterval.setStartValue(startValue); | ||
| 187 | - rangeInterval.setEndValue(endValue); | ||
| 188 | - | ||
| 189 | - try { | ||
| 190 | - lengthRestriction.addRangeRestrictionInterval(rangeInterval); | ||
| 191 | - } catch (DataModelException e) { | ||
| 192 | - ParserException parserException = new ParserException(constructExtendedListenerErrorMessage( | ||
| 193 | - UNHANDLED_PARSED_DATA, LENGTH_DATA, rangeArgument, ENTRY, e.getMessage())); | ||
| 194 | - parserException.setLine(ctx.getStart().getLine()); | ||
| 195 | - parserException.setCharPosition(ctx.getStart().getCharPositionInLine()); | ||
| 196 | - throw parserException; | ||
| 197 | - } | ||
| 198 | } | 132 | } |
| 199 | 133 | ||
| 200 | stringRestriction.setLengthRestriction(lengthRestriction); | 134 | stringRestriction.setLengthRestriction(lengthRestriction); | ... | ... |
| 1 | /* | 1 | /* |
| 2 | - * Copyright 2016 Open Networking Laboratory | 2 | + * Copyright 2016-present Open Networking Laboratory |
| 3 | * | 3 | * |
| 4 | * Licensed under the Apache License, Version 2.0 (the "License"); | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 | * you may not use this file except in compliance with the License. | 5 | * you may not use this file except in compliance with the License. |
| ... | @@ -16,23 +16,24 @@ | ... | @@ -16,23 +16,24 @@ |
| 16 | 16 | ||
| 17 | package org.onosproject.yangutils.parser.impl.listeners; | 17 | package org.onosproject.yangutils.parser.impl.listeners; |
| 18 | 18 | ||
| 19 | +import org.onosproject.yangutils.datamodel.YangDataTypes; | ||
| 19 | import org.onosproject.yangutils.datamodel.YangDerivedInfo; | 20 | import org.onosproject.yangutils.datamodel.YangDerivedInfo; |
| 20 | -import org.onosproject.yangutils.datamodel.YangType; | 21 | +import org.onosproject.yangutils.datamodel.YangPatternRestriction; |
| 21 | import org.onosproject.yangutils.datamodel.YangStringRestriction; | 22 | import org.onosproject.yangutils.datamodel.YangStringRestriction; |
| 22 | -import org.onosproject.yangutils.datamodel.YangDataTypes; | 23 | +import org.onosproject.yangutils.datamodel.YangType; |
| 23 | import org.onosproject.yangutils.parser.Parsable; | 24 | import org.onosproject.yangutils.parser.Parsable; |
| 24 | import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser; | 25 | import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser; |
| 25 | import org.onosproject.yangutils.parser.exceptions.ParserException; | 26 | import org.onosproject.yangutils.parser.exceptions.ParserException; |
| 26 | import org.onosproject.yangutils.parser.impl.TreeWalkListener; | 27 | import org.onosproject.yangutils.parser.impl.TreeWalkListener; |
| 27 | import org.onosproject.yangutils.utils.YangConstructType; | 28 | import org.onosproject.yangutils.utils.YangConstructType; |
| 28 | 29 | ||
| 29 | -import static org.onosproject.yangutils.utils.YangConstructType.PATTERN_DATA; | ||
| 30 | -import static org.onosproject.yangutils.utils.YangConstructType.TYPE_DATA; | ||
| 31 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY; | 30 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY; |
| 32 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage; | 31 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage; |
| 33 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_HOLDER; | 32 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_HOLDER; |
| 34 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER; | 33 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER; |
| 35 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty; | 34 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty; |
| 35 | +import static org.onosproject.yangutils.utils.YangConstructType.PATTERN_DATA; | ||
| 36 | +import static org.onosproject.yangutils.utils.YangConstructType.TYPE_DATA; | ||
| 36 | 37 | ||
| 37 | /* | 38 | /* |
| 38 | * Reference: RFC6020 and YANG ANTLR Grammar | 39 | * Reference: RFC6020 and YANG ANTLR Grammar |
| ... | @@ -72,10 +73,10 @@ public final class PatternRestrictionListener { | ... | @@ -72,10 +73,10 @@ public final class PatternRestrictionListener { |
| 72 | * tree. | 73 | * tree. |
| 73 | * | 74 | * |
| 74 | * @param listener listener's object | 75 | * @param listener listener's object |
| 75 | - * @param ctx context object of the grammar rule | 76 | + * @param ctx context object of the grammar rule |
| 76 | */ | 77 | */ |
| 77 | public static void processPatternRestrictionEntry(TreeWalkListener listener, | 78 | public static void processPatternRestrictionEntry(TreeWalkListener listener, |
| 78 | - GeneratedYangParser.PatternStatementContext ctx) { | 79 | + GeneratedYangParser.PatternStatementContext ctx) { |
| 79 | 80 | ||
| 80 | // Check for stack to be non empty. | 81 | // Check for stack to be non empty. |
| 81 | checkStackIsNotEmpty(listener, MISSING_HOLDER, PATTERN_DATA, ctx.string().getText(), ENTRY); | 82 | checkStackIsNotEmpty(listener, MISSING_HOLDER, PATTERN_DATA, ctx.string().getText(), ENTRY); |
| ... | @@ -94,13 +95,11 @@ public final class PatternRestrictionListener { | ... | @@ -94,13 +95,11 @@ public final class PatternRestrictionListener { |
| 94 | * Sets the pattern restriction to type. | 95 | * Sets the pattern restriction to type. |
| 95 | * | 96 | * |
| 96 | * @param type Yang type for which pattern restriction to be set | 97 | * @param type Yang type for which pattern restriction to be set |
| 97 | - * @param ctx context object of the grammar rule | 98 | + * @param ctx context object of the grammar rule |
| 98 | */ | 99 | */ |
| 99 | private static void setPatternRestriction(YangType type, | 100 | private static void setPatternRestriction(YangType type, |
| 100 | GeneratedYangParser.PatternStatementContext ctx) { | 101 | GeneratedYangParser.PatternStatementContext ctx) { |
| 101 | 102 | ||
| 102 | - YangStringRestriction stringRestriction; | ||
| 103 | - | ||
| 104 | if (type.getDataType() != YangDataTypes.STRING && type.getDataType() != YangDataTypes.DERIVED) { | 103 | if (type.getDataType() != YangDataTypes.STRING && type.getDataType() != YangDataTypes.DERIVED) { |
| 105 | 104 | ||
| 106 | ParserException parserException = new ParserException("YANG file error : " + | 105 | ParserException parserException = new ParserException("YANG file error : " + |
| ... | @@ -111,24 +110,28 @@ public final class PatternRestrictionListener { | ... | @@ -111,24 +110,28 @@ public final class PatternRestrictionListener { |
| 111 | throw parserException; | 110 | throw parserException; |
| 112 | } | 111 | } |
| 113 | 112 | ||
| 114 | - if (type.getDataType() == YangDataTypes.STRING) { | 113 | + String patternArgument = ctx.string().getText().replace("\"", EMPTY_STRING); |
| 115 | - stringRestriction = (YangStringRestriction) type.getDataTypeExtendedInfo(); | ||
| 116 | - } else { | ||
| 117 | - stringRestriction = (YangStringRestriction) ((YangDerivedInfo<?>) type | ||
| 118 | - .getDataTypeExtendedInfo()).getExtendedInfo(); | ||
| 119 | - } | ||
| 120 | 114 | ||
| 121 | - if (stringRestriction == null) { | 115 | + if (type.getDataType() == YangDataTypes.STRING) { |
| 122 | - stringRestriction = new YangStringRestriction(); | 116 | + YangStringRestriction stringRestriction = (YangStringRestriction) type.getDataTypeExtendedInfo(); |
| 123 | - if (type.getDataType() == YangDataTypes.STRING) { | 117 | + if (stringRestriction == null) { |
| 118 | + stringRestriction = new YangStringRestriction(); | ||
| 124 | type.setDataTypeExtendedInfo(stringRestriction); | 119 | type.setDataTypeExtendedInfo(stringRestriction); |
| 120 | + stringRestriction.addPattern(patternArgument); | ||
| 125 | } else { | 121 | } else { |
| 126 | - ((YangDerivedInfo<YangStringRestriction>) type.getDataTypeExtendedInfo()) | 122 | + stringRestriction.addPattern(patternArgument); |
| 127 | - .setExtendedInfo(stringRestriction); | 123 | + } |
| 124 | + } else { | ||
| 125 | + YangPatternRestriction patternRestriction = (YangPatternRestriction) ((YangDerivedInfo<?>) type | ||
| 126 | + .getDataTypeExtendedInfo()).getPatternRestriction(); | ||
| 127 | + if (patternRestriction == null) { | ||
| 128 | + patternRestriction = new YangPatternRestriction(); | ||
| 129 | + ((YangDerivedInfo<?>) type.getDataTypeExtendedInfo()).setPatternRestriction(patternRestriction); | ||
| 130 | + patternRestriction.addPattern(patternArgument); | ||
| 131 | + } else { | ||
| 132 | + ((YangDerivedInfo<?>) type.getDataTypeExtendedInfo()).setPatternRestriction(patternRestriction); | ||
| 133 | + patternRestriction.addPattern(patternArgument); | ||
| 128 | } | 134 | } |
| 129 | } | 135 | } |
| 130 | - | ||
| 131 | - String patternArgument = ctx.string().getText().replace("\"", EMPTY_STRING); | ||
| 132 | - stringRestriction.addPattern(patternArgument); | ||
| 133 | } | 136 | } |
| 134 | } | 137 | } | ... | ... |
| ... | @@ -16,33 +16,24 @@ | ... | @@ -16,33 +16,24 @@ |
| 16 | 16 | ||
| 17 | package org.onosproject.yangutils.parser.impl.listeners; | 17 | package org.onosproject.yangutils.parser.impl.listeners; |
| 18 | 18 | ||
| 19 | -import java.util.regex.Pattern; | 19 | +import org.onosproject.yangutils.datamodel.YangDerivedInfo; |
| 20 | - | ||
| 21 | -import org.onosproject.yangutils.datamodel.YangRangeInterval; | ||
| 22 | import org.onosproject.yangutils.datamodel.YangRangeRestriction; | 20 | import org.onosproject.yangutils.datamodel.YangRangeRestriction; |
| 23 | import org.onosproject.yangutils.datamodel.YangType; | 21 | import org.onosproject.yangutils.datamodel.YangType; |
| 24 | -import org.onosproject.yangutils.datamodel.YangDerivedInfo; | ||
| 25 | -import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | ||
| 26 | -import org.onosproject.yangutils.datamodel.YangDataTypes; | ||
| 27 | import org.onosproject.yangutils.parser.Parsable; | 22 | import org.onosproject.yangutils.parser.Parsable; |
| 28 | import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser; | 23 | import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser; |
| 29 | import org.onosproject.yangutils.parser.exceptions.ParserException; | 24 | import org.onosproject.yangutils.parser.exceptions.ParserException; |
| 30 | import org.onosproject.yangutils.parser.impl.TreeWalkListener; | 25 | import org.onosproject.yangutils.parser.impl.TreeWalkListener; |
| 31 | -import org.onosproject.yangutils.utils.YangConstructType; | ||
| 32 | -import org.onosproject.yangutils.utils.builtindatatype.DataTypeException; | ||
| 33 | -import org.onosproject.yangutils.utils.builtindatatype.YangBuiltInDataTypeInfo; | ||
| 34 | 26 | ||
| 27 | +import static org.onosproject.yangutils.datamodel.YangDataTypes.DERIVED; | ||
| 35 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY; | 28 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY; |
| 36 | -import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructExtendedListenerErrorMessage; | ||
| 37 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage; | 29 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage; |
| 38 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_HOLDER; | 30 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_HOLDER; |
| 39 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER; | 31 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER; |
| 40 | -import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.UNHANDLED_PARSED_DATA; | ||
| 41 | -import static org.onosproject.yangutils.parser.impl.parserutils.ListenerUtil.removeQuotesAndHandleConcat; | ||
| 42 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty; | 32 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty; |
| 43 | -import static org.onosproject.yangutils.utils.YangConstructType.TYPE_DATA; | 33 | +import static org.onosproject.yangutils.utils.RestrictionResolver.isOfRangeRestrictedType; |
| 34 | +import static org.onosproject.yangutils.utils.RestrictionResolver.processRangeRestriction; | ||
| 44 | import static org.onosproject.yangutils.utils.YangConstructType.RANGE_DATA; | 35 | import static org.onosproject.yangutils.utils.YangConstructType.RANGE_DATA; |
| 45 | -import static org.onosproject.yangutils.utils.builtindatatype.BuiltInTypeObjectFactory.getDataObjectFromString; | 36 | +import static org.onosproject.yangutils.utils.YangConstructType.TYPE_DATA; |
| 46 | 37 | ||
| 47 | /* | 38 | /* |
| 48 | * Reference: RFC6020 and YANG ANTLR Grammar | 39 | * Reference: RFC6020 and YANG ANTLR Grammar |
| ... | @@ -68,11 +59,6 @@ import static org.onosproject.yangutils.utils.builtindatatype.BuiltInTypeObjectF | ... | @@ -68,11 +59,6 @@ import static org.onosproject.yangutils.utils.builtindatatype.BuiltInTypeObjectF |
| 68 | */ | 59 | */ |
| 69 | public final class RangeRestrictionListener { | 60 | public final class RangeRestrictionListener { |
| 70 | 61 | ||
| 71 | - private static final String PIPE = "|"; | ||
| 72 | - private static final String RANGE_INTERVAL = ".."; | ||
| 73 | - private static final int MAX_RANGE_BOUNDARY = 2; | ||
| 74 | - private static final int MIN_RANGE_BOUNDARY = 1; | ||
| 75 | - | ||
| 76 | /** | 62 | /** |
| 77 | * Creates a new range restriction listener. | 63 | * Creates a new range restriction listener. |
| 78 | */ | 64 | */ |
| ... | @@ -85,10 +71,10 @@ public final class RangeRestrictionListener { | ... | @@ -85,10 +71,10 @@ public final class RangeRestrictionListener { |
| 85 | * tree. | 71 | * tree. |
| 86 | * | 72 | * |
| 87 | * @param listener listener's object | 73 | * @param listener listener's object |
| 88 | - * @param ctx context object of the grammar rule | 74 | + * @param ctx context object of the grammar rule |
| 89 | */ | 75 | */ |
| 90 | public static void processRangeRestrictionEntry(TreeWalkListener listener, | 76 | public static void processRangeRestrictionEntry(TreeWalkListener listener, |
| 91 | - GeneratedYangParser.RangeStatementContext ctx) { | 77 | + GeneratedYangParser.RangeStatementContext ctx) { |
| 92 | 78 | ||
| 93 | // Check for stack to be non empty. | 79 | // Check for stack to be non empty. |
| 94 | checkStackIsNotEmpty(listener, MISSING_HOLDER, RANGE_DATA, ctx.range().getText(), ENTRY); | 80 | checkStackIsNotEmpty(listener, MISSING_HOLDER, RANGE_DATA, ctx.range().getText(), ENTRY); |
| ... | @@ -107,73 +93,34 @@ public final class RangeRestrictionListener { | ... | @@ -107,73 +93,34 @@ public final class RangeRestrictionListener { |
| 107 | * Sets the range restriction to type. | 93 | * Sets the range restriction to type. |
| 108 | * | 94 | * |
| 109 | * @param type YANG type for which range restriction to be added | 95 | * @param type YANG type for which range restriction to be added |
| 110 | - * @param ctx context object of the grammar rule | 96 | + * @param ctx context object of the grammar rule |
| 111 | */ | 97 | */ |
| 112 | private static void setRangeRestriction(YangType type, | 98 | private static void setRangeRestriction(YangType type, |
| 113 | - GeneratedYangParser.RangeStatementContext ctx) { | 99 | + GeneratedYangParser.RangeStatementContext ctx) { |
| 114 | - | 100 | + |
| 115 | - YangBuiltInDataTypeInfo<?> startValue; | 101 | + if (type.getDataType() == DERIVED) { |
| 116 | - YangBuiltInDataTypeInfo<?> endValue; | 102 | + ((YangDerivedInfo<YangRangeRestriction>) type.getDataTypeExtendedInfo()) |
| 117 | - YangRangeRestriction rangeRestriction = new YangRangeRestriction(); | 103 | + .setRangeRestrictionString(ctx.range().getText()); |
| 118 | - | 104 | + ((YangDerivedInfo<YangRangeRestriction>) type.getDataTypeExtendedInfo()) |
| 119 | - String rangeArgument = removeQuotesAndHandleConcat(ctx.range().getText()); | 105 | + .setLineNumber(ctx.getStart().getLine()); |
| 120 | - String[] rangeArguments = rangeArgument.trim().split(Pattern.quote(PIPE)); | 106 | + ((YangDerivedInfo<YangRangeRestriction>) type.getDataTypeExtendedInfo()) |
| 121 | - | 107 | + .setCharPosition(ctx.getStart().getCharPositionInLine()); |
| 122 | - for (String rangePart : rangeArguments) { | 108 | + return; |
| 123 | - String startInterval; | 109 | + } |
| 124 | - String endInterval; | ||
| 125 | - YangRangeInterval rangeInterval = new YangRangeInterval(); | ||
| 126 | - String[] rangeBoundary = rangePart.trim().split(Pattern.quote(RANGE_INTERVAL)); | ||
| 127 | - | ||
| 128 | - if (rangeBoundary.length > MAX_RANGE_BOUNDARY) { | ||
| 129 | - ParserException parserException = new ParserException("YANG file error : " + | ||
| 130 | - YangConstructType.getYangConstructType(RANGE_DATA) + " " + rangeArgument + | ||
| 131 | - " is not valid."); | ||
| 132 | - parserException.setLine(ctx.getStart().getLine()); | ||
| 133 | - parserException.setCharPosition(ctx.getStart().getCharPositionInLine()); | ||
| 134 | - throw parserException; | ||
| 135 | - } | ||
| 136 | - | ||
| 137 | - if (rangeBoundary.length == MIN_RANGE_BOUNDARY) { | ||
| 138 | - startInterval = rangeBoundary[0]; | ||
| 139 | - endInterval = rangeBoundary[0]; | ||
| 140 | - } else { | ||
| 141 | - startInterval = rangeBoundary[0]; | ||
| 142 | - endInterval = rangeBoundary[1]; | ||
| 143 | - } | ||
| 144 | - | ||
| 145 | - try { | ||
| 146 | - startValue = getDataObjectFromString(startInterval, type.getDataType()); | ||
| 147 | - endValue = getDataObjectFromString(endInterval, type.getDataType()); | ||
| 148 | - } catch (DataTypeException e) { | ||
| 149 | - ParserException parserException = new ParserException(e.getMessage()); | ||
| 150 | - parserException.setLine(ctx.getStart().getLine()); | ||
| 151 | - parserException.setCharPosition(ctx.getStart().getCharPositionInLine()); | ||
| 152 | - throw parserException; | ||
| 153 | - } | ||
| 154 | - | ||
| 155 | - rangeInterval.setStartValue(startValue); | ||
| 156 | - rangeInterval.setEndValue(endValue); | ||
| 157 | 110 | ||
| 158 | - try { | 111 | + if (!(isOfRangeRestrictedType(type.getDataType()))) { |
| 159 | - rangeRestriction.addRangeRestrictionInterval(rangeInterval); | 112 | + ParserException parserException = new ParserException("YANG file error: Range restriction can't be " + |
| 160 | - } catch (DataModelException e) { | 113 | + "applied to a given type"); |
| 161 | - ParserException parserException = new ParserException(constructExtendedListenerErrorMessage( | 114 | + parserException.setLine(ctx.getStart().getLine()); |
| 162 | - UNHANDLED_PARSED_DATA, RANGE_DATA, rangeArgument, ENTRY, e.getMessage())); | 115 | + parserException.setCharPosition(ctx.getStart().getCharPositionInLine()); |
| 163 | - parserException.setLine(ctx.getStart().getLine()); | 116 | + throw parserException; |
| 164 | - parserException.setCharPosition(ctx.getStart().getCharPositionInLine()); | ||
| 165 | - throw parserException; | ||
| 166 | - } | ||
| 167 | } | 117 | } |
| 168 | 118 | ||
| 119 | + YangRangeRestriction rangeRestriction = processRangeRestriction(null, ctx.getStart().getLine(), | ||
| 120 | + ctx.getStart().getCharPositionInLine(), false, ctx.range().getText(), type.getDataType()); | ||
| 121 | + | ||
| 169 | if (rangeRestriction != null) { | 122 | if (rangeRestriction != null) { |
| 170 | - if (type.getDataType() == YangDataTypes.DERIVED) { | 123 | + type.setDataTypeExtendedInfo(rangeRestriction); |
| 171 | - ((YangDerivedInfo<YangRangeRestriction>) type.getDataTypeExtendedInfo()) | ||
| 172 | - .setExtendedInfo(rangeRestriction); | ||
| 173 | - } else { | ||
| 174 | - type.setDataTypeExtendedInfo(rangeRestriction); | ||
| 175 | - } | ||
| 176 | } | 124 | } |
| 177 | - | ||
| 178 | } | 125 | } |
| 179 | } | 126 | } |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
This diff is collapsed. Click to expand it.
| 1 | /* | 1 | /* |
| 2 | - * Copyright 2016 Open Networking Laboratory | 2 | + * Copyright 2016-present Open Networking Laboratory |
| 3 | * | 3 | * |
| 4 | * Licensed under the Apache License, Version 2.0 (the "License"); | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 | * you may not use this file except in compliance with the License. | 5 | * you may not use this file except in compliance with the License. |
| ... | @@ -13,6 +13,7 @@ | ... | @@ -13,6 +13,7 @@ |
| 13 | * See the License for the specific language governing permissions and | 13 | * See the License for the specific language governing permissions and |
| 14 | * limitations under the License. | 14 | * limitations under the License. |
| 15 | */ | 15 | */ |
| 16 | + | ||
| 16 | package org.onosproject.yangutils.utils.builtindatatype; | 17 | package org.onosproject.yangutils.utils.builtindatatype; |
| 17 | 18 | ||
| 18 | import org.onosproject.yangutils.datamodel.YangDataTypes; | 19 | import org.onosproject.yangutils.datamodel.YangDataTypes; |
| ... | @@ -66,7 +67,8 @@ public class YangInt16 implements YangBuiltInDataTypeInfo<YangInt16> { | ... | @@ -66,7 +67,8 @@ public class YangInt16 implements YangBuiltInDataTypeInfo<YangInt16> { |
| 66 | try { | 67 | try { |
| 67 | value = Short.parseShort(valueInString); | 68 | value = Short.parseShort(valueInString); |
| 68 | } catch (Exception e) { | 69 | } catch (Exception e) { |
| 69 | - throw new DataTypeException("YANG file error : " + valueInString + " is not valid."); | 70 | + throw new DataTypeException("YANG file error : Input value \"" + valueInString + "\" is not a valid " + |
| 71 | + "int16."); | ||
| 70 | } | 72 | } |
| 71 | } | 73 | } |
| 72 | } | 74 | } | ... | ... |
| 1 | /* | 1 | /* |
| 2 | - * Copyright 2016 Open Networking Laboratory | 2 | + * Copyright 2016-present Open Networking Laboratory |
| 3 | * | 3 | * |
| 4 | * Licensed under the Apache License, Version 2.0 (the "License"); | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 | * you may not use this file except in compliance with the License. | 5 | * you may not use this file except in compliance with the License. |
| ... | @@ -13,6 +13,7 @@ | ... | @@ -13,6 +13,7 @@ |
| 13 | * See the License for the specific language governing permissions and | 13 | * See the License for the specific language governing permissions and |
| 14 | * limitations under the License. | 14 | * limitations under the License. |
| 15 | */ | 15 | */ |
| 16 | + | ||
| 16 | package org.onosproject.yangutils.utils.builtindatatype; | 17 | package org.onosproject.yangutils.utils.builtindatatype; |
| 17 | 18 | ||
| 18 | import org.onosproject.yangutils.datamodel.YangDataTypes; | 19 | import org.onosproject.yangutils.datamodel.YangDataTypes; |
| ... | @@ -65,7 +66,8 @@ public class YangInt32 implements YangBuiltInDataTypeInfo<YangInt32> { | ... | @@ -65,7 +66,8 @@ public class YangInt32 implements YangBuiltInDataTypeInfo<YangInt32> { |
| 65 | try { | 66 | try { |
| 66 | value = Integer.parseInt(valueInString); | 67 | value = Integer.parseInt(valueInString); |
| 67 | } catch (Exception e) { | 68 | } catch (Exception e) { |
| 68 | - throw new DataTypeException("YANG file error : " + valueInString + " is not valid."); | 69 | + throw new DataTypeException("YANG file error : Input value \"" + valueInString + "\" is not a valid " + |
| 70 | + "int32."); | ||
| 69 | } | 71 | } |
| 70 | } | 72 | } |
| 71 | } | 73 | } | ... | ... |
| 1 | /* | 1 | /* |
| 2 | - * Copyright 2016 Open Networking Laboratory | 2 | + * Copyright 2016-present Open Networking Laboratory |
| 3 | * | 3 | * |
| 4 | * Licensed under the Apache License, Version 2.0 (the "License"); | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 | * you may not use this file except in compliance with the License. | 5 | * you may not use this file except in compliance with the License. |
| ... | @@ -13,6 +13,7 @@ | ... | @@ -13,6 +13,7 @@ |
| 13 | * See the License for the specific language governing permissions and | 13 | * See the License for the specific language governing permissions and |
| 14 | * limitations under the License. | 14 | * limitations under the License. |
| 15 | */ | 15 | */ |
| 16 | + | ||
| 16 | package org.onosproject.yangutils.utils.builtindatatype; | 17 | package org.onosproject.yangutils.utils.builtindatatype; |
| 17 | 18 | ||
| 18 | import org.onosproject.yangutils.datamodel.YangDataTypes; | 19 | import org.onosproject.yangutils.datamodel.YangDataTypes; |
| ... | @@ -65,7 +66,8 @@ public class YangInt64 implements YangBuiltInDataTypeInfo<YangInt64> { | ... | @@ -65,7 +66,8 @@ public class YangInt64 implements YangBuiltInDataTypeInfo<YangInt64> { |
| 65 | try { | 66 | try { |
| 66 | value = Long.parseLong(valueInString); | 67 | value = Long.parseLong(valueInString); |
| 67 | } catch (Exception e) { | 68 | } catch (Exception e) { |
| 68 | - throw new DataTypeException("YANG file error : " + valueInString + " is not valid."); | 69 | + throw new DataTypeException("YANG file error : Input value \"" + valueInString + "\" is not a valid " + |
| 70 | + "int64."); | ||
| 69 | } | 71 | } |
| 70 | } | 72 | } |
| 71 | } | 73 | } | ... | ... |
| 1 | /* | 1 | /* |
| 2 | - * Copyright 2016 Open Networking Laboratory | 2 | + * Copyright 2016-present Open Networking Laboratory |
| 3 | * | 3 | * |
| 4 | * Licensed under the Apache License, Version 2.0 (the "License"); | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 | * you may not use this file except in compliance with the License. | 5 | * you may not use this file except in compliance with the License. |
| ... | @@ -13,6 +13,7 @@ | ... | @@ -13,6 +13,7 @@ |
| 13 | * See the License for the specific language governing permissions and | 13 | * See the License for the specific language governing permissions and |
| 14 | * limitations under the License. | 14 | * limitations under the License. |
| 15 | */ | 15 | */ |
| 16 | + | ||
| 16 | package org.onosproject.yangutils.utils.builtindatatype; | 17 | package org.onosproject.yangutils.utils.builtindatatype; |
| 17 | 18 | ||
| 18 | import org.onosproject.yangutils.datamodel.YangDataTypes; | 19 | import org.onosproject.yangutils.datamodel.YangDataTypes; |
| ... | @@ -65,7 +66,8 @@ public class YangInt8 implements YangBuiltInDataTypeInfo<YangInt8> { | ... | @@ -65,7 +66,8 @@ public class YangInt8 implements YangBuiltInDataTypeInfo<YangInt8> { |
| 65 | try { | 66 | try { |
| 66 | value = Byte.parseByte(valueInString); | 67 | value = Byte.parseByte(valueInString); |
| 67 | } catch (Exception e) { | 68 | } catch (Exception e) { |
| 68 | - throw new DataTypeException("YANG file error : " + valueInString + " is not valid."); | 69 | + throw new DataTypeException("YANG file error : Input value \"" + valueInString + "\" is not a valid " + |
| 70 | + "int8."); | ||
| 69 | } | 71 | } |
| 70 | } | 72 | } |
| 71 | } | 73 | } | ... | ... |
| 1 | /* | 1 | /* |
| 2 | - * Copyright 2016 Open Networking Laboratory | 2 | + * Copyright 2016-present Open Networking Laboratory |
| 3 | * | 3 | * |
| 4 | * Licensed under the Apache License, Version 2.0 (the "License"); | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 | * you may not use this file except in compliance with the License. | 5 | * you may not use this file except in compliance with the License. |
| ... | @@ -13,6 +13,7 @@ | ... | @@ -13,6 +13,7 @@ |
| 13 | * See the License for the specific language governing permissions and | 13 | * See the License for the specific language governing permissions and |
| 14 | * limitations under the License. | 14 | * limitations under the License. |
| 15 | */ | 15 | */ |
| 16 | + | ||
| 16 | package org.onosproject.yangutils.utils.builtindatatype; | 17 | package org.onosproject.yangutils.utils.builtindatatype; |
| 17 | 18 | ||
| 18 | import org.onosproject.yangutils.datamodel.YangDataTypes; | 19 | import org.onosproject.yangutils.datamodel.YangDataTypes; |
| ... | @@ -65,7 +66,8 @@ public class YangUint16 implements YangBuiltInDataTypeInfo<YangUint16> { | ... | @@ -65,7 +66,8 @@ public class YangUint16 implements YangBuiltInDataTypeInfo<YangUint16> { |
| 65 | try { | 66 | try { |
| 66 | value = Integer.parseInt(valueInString); | 67 | value = Integer.parseInt(valueInString); |
| 67 | } catch (Exception e) { | 68 | } catch (Exception e) { |
| 68 | - throw new DataTypeException("YANG file error : " + valueInString + " is not valid."); | 69 | + throw new DataTypeException("YANG file error : Input value \"" + valueInString + "\" is not a valid " + |
| 70 | + "uint16."); | ||
| 69 | } | 71 | } |
| 70 | } | 72 | } |
| 71 | 73 | ... | ... |
| 1 | /* | 1 | /* |
| 2 | - * Copyright 2016 Open Networking Laboratory | 2 | + * Copyright 2016-present Open Networking Laboratory |
| 3 | * | 3 | * |
| 4 | * Licensed under the Apache License, Version 2.0 (the "License"); | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 | * you may not use this file except in compliance with the License. | 5 | * you may not use this file except in compliance with the License. |
| ... | @@ -13,6 +13,7 @@ | ... | @@ -13,6 +13,7 @@ |
| 13 | * See the License for the specific language governing permissions and | 13 | * See the License for the specific language governing permissions and |
| 14 | * limitations under the License. | 14 | * limitations under the License. |
| 15 | */ | 15 | */ |
| 16 | + | ||
| 16 | package org.onosproject.yangutils.utils.builtindatatype; | 17 | package org.onosproject.yangutils.utils.builtindatatype; |
| 17 | 18 | ||
| 18 | import org.onosproject.yangutils.datamodel.YangDataTypes; | 19 | import org.onosproject.yangutils.datamodel.YangDataTypes; |
| ... | @@ -58,7 +59,8 @@ public class YangUint32 implements YangBuiltInDataTypeInfo<YangUint32> { | ... | @@ -58,7 +59,8 @@ public class YangUint32 implements YangBuiltInDataTypeInfo<YangUint32> { |
| 58 | try { | 59 | try { |
| 59 | value = Long.parseLong(valueInString); | 60 | value = Long.parseLong(valueInString); |
| 60 | } catch (Exception e) { | 61 | } catch (Exception e) { |
| 61 | - throw new DataTypeException("YANG file error : " + valueInString + " is not valid."); | 62 | + throw new DataTypeException("YANG file error : Input value \"" + valueInString + "\" is not a valid " + |
| 63 | + "uint32."); | ||
| 62 | } | 64 | } |
| 63 | } | 65 | } |
| 64 | 66 | ... | ... |
| 1 | /* | 1 | /* |
| 2 | - * Copyright 2016 Open Networking Laboratory | 2 | + * Copyright 2016-present Open Networking Laboratory |
| 3 | * | 3 | * |
| 4 | * Licensed under the Apache License, Version 2.0 (the "License"); | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 | * you may not use this file except in compliance with the License. | 5 | * you may not use this file except in compliance with the License. |
| ... | @@ -13,6 +13,7 @@ | ... | @@ -13,6 +13,7 @@ |
| 13 | * See the License for the specific language governing permissions and | 13 | * See the License for the specific language governing permissions and |
| 14 | * limitations under the License. | 14 | * limitations under the License. |
| 15 | */ | 15 | */ |
| 16 | + | ||
| 16 | package org.onosproject.yangutils.utils.builtindatatype; | 17 | package org.onosproject.yangutils.utils.builtindatatype; |
| 17 | 18 | ||
| 18 | import java.math.BigInteger; | 19 | import java.math.BigInteger; |
| ... | @@ -71,7 +72,8 @@ public class YangUint64 implements YangBuiltInDataTypeInfo<YangUint64> { | ... | @@ -71,7 +72,8 @@ public class YangUint64 implements YangBuiltInDataTypeInfo<YangUint64> { |
| 71 | } else if (NON_NEGATIVE_INTEGER_PATTERN.matcher(valueInString).matches()) { | 72 | } else if (NON_NEGATIVE_INTEGER_PATTERN.matcher(valueInString).matches()) { |
| 72 | value = new BigInteger(valueInString); | 73 | value = new BigInteger(valueInString); |
| 73 | } else { | 74 | } else { |
| 74 | - throw new DataTypeException("YANG file error : " + valueInString + " is not valid."); | 75 | + throw new DataTypeException("YANG file error : Input value \"" + valueInString + "\" is not a valid " + |
| 76 | + "uint64."); | ||
| 75 | } | 77 | } |
| 76 | 78 | ||
| 77 | if (value.compareTo(MIN_VALUE) < 0) { | 79 | if (value.compareTo(MIN_VALUE) < 0) { | ... | ... |
| 1 | /* | 1 | /* |
| 2 | - * Copyright 2016 Open Networking Laboratory | 2 | + * Copyright 2016-present Open Networking Laboratory |
| 3 | * | 3 | * |
| 4 | * Licensed under the Apache License, Version 2.0 (the "License"); | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 | * you may not use this file except in compliance with the License. | 5 | * you may not use this file except in compliance with the License. |
| ... | @@ -13,6 +13,7 @@ | ... | @@ -13,6 +13,7 @@ |
| 13 | * See the License for the specific language governing permissions and | 13 | * See the License for the specific language governing permissions and |
| 14 | * limitations under the License. | 14 | * limitations under the License. |
| 15 | */ | 15 | */ |
| 16 | + | ||
| 16 | package org.onosproject.yangutils.utils.builtindatatype; | 17 | package org.onosproject.yangutils.utils.builtindatatype; |
| 17 | 18 | ||
| 18 | import org.onosproject.yangutils.datamodel.YangDataTypes; | 19 | import org.onosproject.yangutils.datamodel.YangDataTypes; |
| ... | @@ -65,7 +66,8 @@ public class YangUint8 implements YangBuiltInDataTypeInfo<YangUint8> { | ... | @@ -65,7 +66,8 @@ public class YangUint8 implements YangBuiltInDataTypeInfo<YangUint8> { |
| 65 | try { | 66 | try { |
| 66 | value = Short.parseShort(valueInString); | 67 | value = Short.parseShort(valueInString); |
| 67 | } catch (Exception e) { | 68 | } catch (Exception e) { |
| 68 | - throw new DataTypeException("YANG file error : " + valueInString + " is not valid."); | 69 | + throw new DataTypeException("YANG file error : Input value \"" + valueInString + "\" is not a valid " + |
| 70 | + "uint8."); | ||
| 69 | } | 71 | } |
| 70 | } | 72 | } |
| 71 | 73 | ... | ... |
This diff is collapsed. Click to expand it.
| ... | @@ -18,7 +18,6 @@ package org.onosproject.yangutils.linker; | ... | @@ -18,7 +18,6 @@ package org.onosproject.yangutils.linker; |
| 18 | 18 | ||
| 19 | import java.io.IOException; | 19 | import java.io.IOException; |
| 20 | import java.util.ListIterator; | 20 | import java.util.ListIterator; |
| 21 | - | ||
| 22 | import org.junit.Rule; | 21 | import org.junit.Rule; |
| 23 | import org.junit.Test; | 22 | import org.junit.Test; |
| 24 | import org.junit.rules.ExpectedException; | 23 | import org.junit.rules.ExpectedException; |
| ... | @@ -81,7 +80,7 @@ public class IntraFileUsesLinkingTest { | ... | @@ -81,7 +80,7 @@ public class IntraFileUsesLinkingTest { |
| 81 | 80 | ||
| 82 | // Check whether the information in the leaf is correct under grouping. | 81 | // Check whether the information in the leaf is correct under grouping. |
| 83 | assertThat(leafInfo.getName(), is("hello")); | 82 | assertThat(leafInfo.getName(), is("hello")); |
| 84 | - assertThat(leafInfo.getDataType().getDataTypeName(), is("String")); | 83 | + assertThat(leafInfo.getDataType().getDataTypeName(), is("string")); |
| 85 | assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); | 84 | assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); |
| 86 | 85 | ||
| 87 | // Check whether uses is module's child. | 86 | // Check whether uses is module's child. |
| ... | @@ -97,7 +96,7 @@ public class IntraFileUsesLinkingTest { | ... | @@ -97,7 +96,7 @@ public class IntraFileUsesLinkingTest { |
| 97 | 96 | ||
| 98 | // Check whether the information in the leaf is correct under module. | 97 | // Check whether the information in the leaf is correct under module. |
| 99 | assertThat(leafInfo.getName(), is("hello")); | 98 | assertThat(leafInfo.getName(), is("hello")); |
| 100 | - assertThat(leafInfo.getDataType().getDataTypeName(), is("String")); | 99 | + assertThat(leafInfo.getDataType().getDataTypeName(), is("string")); |
| 101 | assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); | 100 | assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); |
| 102 | 101 | ||
| 103 | } | 102 | } |
| ... | @@ -135,7 +134,7 @@ public class IntraFileUsesLinkingTest { | ... | @@ -135,7 +134,7 @@ public class IntraFileUsesLinkingTest { |
| 135 | 134 | ||
| 136 | // Check whether the information in the leaf is correct under grouping. | 135 | // Check whether the information in the leaf is correct under grouping. |
| 137 | assertThat(leafInfo.getName(), is("treat")); | 136 | assertThat(leafInfo.getName(), is("treat")); |
| 138 | - assertThat(leafInfo.getDataType().getDataTypeName(), is("String")); | 137 | + assertThat(leafInfo.getDataType().getDataTypeName(), is("string")); |
| 139 | assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); | 138 | assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); |
| 140 | 139 | ||
| 141 | // Check whether container is the child of grouping. | 140 | // Check whether container is the child of grouping. |
| ... | @@ -150,7 +149,7 @@ public class IntraFileUsesLinkingTest { | ... | @@ -150,7 +149,7 @@ public class IntraFileUsesLinkingTest { |
| 150 | 149 | ||
| 151 | // Check whether the information in the leaf is correct under container which is under grouping. | 150 | // Check whether the information in the leaf is correct under container which is under grouping. |
| 152 | assertThat(leafInfo.getName(), is("leaf2")); | 151 | assertThat(leafInfo.getName(), is("leaf2")); |
| 153 | - assertThat(leafInfo.getDataType().getDataTypeName(), is("String")); | 152 | + assertThat(leafInfo.getDataType().getDataTypeName(), is("string")); |
| 154 | assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); | 153 | assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); |
| 155 | 154 | ||
| 156 | // Check whether uses is module's child. | 155 | // Check whether uses is module's child. |
| ... | @@ -166,7 +165,7 @@ public class IntraFileUsesLinkingTest { | ... | @@ -166,7 +165,7 @@ public class IntraFileUsesLinkingTest { |
| 166 | 165 | ||
| 167 | // Check whether the information in the leaf is correct under module. | 166 | // Check whether the information in the leaf is correct under module. |
| 168 | assertThat(leafInfo.getName(), is("treat")); | 167 | assertThat(leafInfo.getName(), is("treat")); |
| 169 | - assertThat(leafInfo.getDataType().getDataTypeName(), is("String")); | 168 | + assertThat(leafInfo.getDataType().getDataTypeName(), is("string")); |
| 170 | assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); | 169 | assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); |
| 171 | 170 | ||
| 172 | // Check whether container is the child of module. | 171 | // Check whether container is the child of module. |
| ... | @@ -181,7 +180,7 @@ public class IntraFileUsesLinkingTest { | ... | @@ -181,7 +180,7 @@ public class IntraFileUsesLinkingTest { |
| 181 | 180 | ||
| 182 | // Check whether the information in the leaf is correct under container which is under module. | 181 | // Check whether the information in the leaf is correct under container which is under module. |
| 183 | assertThat(leafInfo.getName(), is("leaf2")); | 182 | assertThat(leafInfo.getName(), is("leaf2")); |
| 184 | - assertThat(leafInfo.getDataType().getDataTypeName(), is("String")); | 183 | + assertThat(leafInfo.getDataType().getDataTypeName(), is("string")); |
| 185 | assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); | 184 | assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); |
| 186 | } | 185 | } |
| 187 | 186 | ||
| ... | @@ -688,7 +687,7 @@ public class IntraFileUsesLinkingTest { | ... | @@ -688,7 +687,7 @@ public class IntraFileUsesLinkingTest { |
| 688 | 687 | ||
| 689 | // Check whether the information in the leaf is correct under grouping. | 688 | // Check whether the information in the leaf is correct under grouping. |
| 690 | assertThat(leafInfo.getName(), is("hello")); | 689 | assertThat(leafInfo.getName(), is("hello")); |
| 691 | - assertThat(leafInfo.getDataType().getDataTypeName(), is("String")); | 690 | + assertThat(leafInfo.getDataType().getDataTypeName(), is("string")); |
| 692 | assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); | 691 | assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); |
| 693 | 692 | ||
| 694 | } | 693 | } |
| ... | @@ -762,7 +761,7 @@ public class IntraFileUsesLinkingTest { | ... | @@ -762,7 +761,7 @@ public class IntraFileUsesLinkingTest { |
| 762 | 761 | ||
| 763 | // Check whether the information in the leaf is correct under grouping. | 762 | // Check whether the information in the leaf is correct under grouping. |
| 764 | assertThat(leafInfo.getName(), is("hello")); | 763 | assertThat(leafInfo.getName(), is("hello")); |
| 765 | - assertThat(leafInfo.getDataType().getDataTypeName(), is("String")); | 764 | + assertThat(leafInfo.getDataType().getDataTypeName(), is("string")); |
| 766 | assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); | 765 | assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); |
| 767 | } | 766 | } |
| 768 | 767 | ... | ... |
| ... | @@ -19,20 +19,18 @@ package org.onosproject.yangutils.parser.impl.listeners; | ... | @@ -19,20 +19,18 @@ package org.onosproject.yangutils.parser.impl.listeners; |
| 19 | import java.io.IOException; | 19 | import java.io.IOException; |
| 20 | import java.math.BigInteger; | 20 | import java.math.BigInteger; |
| 21 | import java.util.ListIterator; | 21 | import java.util.ListIterator; |
| 22 | - | ||
| 23 | import org.junit.Rule; | 22 | import org.junit.Rule; |
| 24 | import org.junit.Test; | 23 | import org.junit.Test; |
| 25 | - | ||
| 26 | import org.junit.rules.ExpectedException; | 24 | import org.junit.rules.ExpectedException; |
| 27 | -import org.onosproject.yangutils.datamodel.YangNode; | 25 | +import org.onosproject.yangutils.datamodel.YangDataTypes; |
| 28 | -import org.onosproject.yangutils.datamodel.YangModule; | ||
| 29 | -import org.onosproject.yangutils.datamodel.YangNodeType; | ||
| 30 | import org.onosproject.yangutils.datamodel.YangLeaf; | 26 | import org.onosproject.yangutils.datamodel.YangLeaf; |
| 31 | import org.onosproject.yangutils.datamodel.YangLeafList; | 27 | import org.onosproject.yangutils.datamodel.YangLeafList; |
| 32 | -import org.onosproject.yangutils.datamodel.YangDataTypes; | 28 | +import org.onosproject.yangutils.datamodel.YangModule; |
| 33 | -import org.onosproject.yangutils.datamodel.YangStringRestriction; | 29 | +import org.onosproject.yangutils.datamodel.YangNode; |
| 30 | +import org.onosproject.yangutils.datamodel.YangNodeType; | ||
| 34 | import org.onosproject.yangutils.datamodel.YangRangeInterval; | 31 | import org.onosproject.yangutils.datamodel.YangRangeInterval; |
| 35 | import org.onosproject.yangutils.datamodel.YangRangeRestriction; | 32 | import org.onosproject.yangutils.datamodel.YangRangeRestriction; |
| 33 | +import org.onosproject.yangutils.datamodel.YangStringRestriction; | ||
| 36 | import org.onosproject.yangutils.datamodel.YangTypeDef; | 34 | import org.onosproject.yangutils.datamodel.YangTypeDef; |
| 37 | import org.onosproject.yangutils.parser.exceptions.ParserException; | 35 | import org.onosproject.yangutils.parser.exceptions.ParserException; |
| 38 | import org.onosproject.yangutils.parser.impl.YangUtilsParserManager; | 36 | import org.onosproject.yangutils.parser.impl.YangUtilsParserManager; |
| ... | @@ -71,11 +69,11 @@ public class LengthRestrictionListenerTest { | ... | @@ -71,11 +69,11 @@ public class LengthRestrictionListenerTest { |
| 71 | assertThat(leafInfo.getDataType().getDataTypeName(), is("string")); | 69 | assertThat(leafInfo.getDataType().getDataTypeName(), is("string")); |
| 72 | assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); | 70 | assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); |
| 73 | YangStringRestriction stringRestriction = (YangStringRestriction) leafInfo | 71 | YangStringRestriction stringRestriction = (YangStringRestriction) leafInfo |
| 74 | - .getDataType().getDataTypeExtendedInfo(); | 72 | + .getDataType().getDataTypeExtendedInfo(); |
| 75 | YangRangeRestriction lengthRestriction = stringRestriction.getLengthRestriction(); | 73 | YangRangeRestriction lengthRestriction = stringRestriction.getLengthRestriction(); |
| 76 | 74 | ||
| 77 | ListIterator<YangRangeInterval> lengthListIterator = lengthRestriction.getAscendingRangeIntervals() | 75 | ListIterator<YangRangeInterval> lengthListIterator = lengthRestriction.getAscendingRangeIntervals() |
| 78 | - .listIterator(); | 76 | + .listIterator(); |
| 79 | 77 | ||
| 80 | YangRangeInterval rangeInterval = lengthListIterator.next(); | 78 | YangRangeInterval rangeInterval = lengthListIterator.next(); |
| 81 | 79 | ||
| ... | @@ -220,7 +218,7 @@ public class LengthRestrictionListenerTest { | ... | @@ -220,7 +218,7 @@ public class LengthRestrictionListenerTest { |
| 220 | @Test | 218 | @Test |
| 221 | public void processLengthWithInvalidIntegerPattern() throws IOException, ParserException { | 219 | public void processLengthWithInvalidIntegerPattern() throws IOException, ParserException { |
| 222 | thrown.expect(ParserException.class); | 220 | thrown.expect(ParserException.class); |
| 223 | - thrown.expectMessage("YANG file error : a is not valid."); | 221 | + thrown.expectMessage("YANG file error : Input value \"a\" is not a valid uint64."); |
| 224 | YangNode node = manager.getDataModel("src/test/resources/LengthWithInvalidIntegerPattern.yang"); | 222 | YangNode node = manager.getDataModel("src/test/resources/LengthWithInvalidIntegerPattern.yang"); |
| 225 | } | 223 | } |
| 226 | 224 | ... | ... |
| ... | @@ -18,18 +18,17 @@ package org.onosproject.yangutils.parser.impl.listeners; | ... | @@ -18,18 +18,17 @@ package org.onosproject.yangutils.parser.impl.listeners; |
| 18 | 18 | ||
| 19 | import java.io.IOException; | 19 | import java.io.IOException; |
| 20 | import java.util.ListIterator; | 20 | import java.util.ListIterator; |
| 21 | - | ||
| 22 | import org.junit.Rule; | 21 | import org.junit.Rule; |
| 23 | import org.junit.Test; | 22 | import org.junit.Test; |
| 24 | import org.junit.rules.ExpectedException; | 23 | import org.junit.rules.ExpectedException; |
| 25 | -import org.onosproject.yangutils.datamodel.YangNode; | 24 | +import org.onosproject.yangutils.datamodel.YangDataTypes; |
| 26 | import org.onosproject.yangutils.datamodel.YangLeaf; | 25 | import org.onosproject.yangutils.datamodel.YangLeaf; |
| 27 | import org.onosproject.yangutils.datamodel.YangLeafList; | 26 | import org.onosproject.yangutils.datamodel.YangLeafList; |
| 28 | -import org.onosproject.yangutils.datamodel.YangRangeRestriction; | ||
| 29 | -import org.onosproject.yangutils.datamodel.YangRangeInterval; | ||
| 30 | import org.onosproject.yangutils.datamodel.YangModule; | 27 | import org.onosproject.yangutils.datamodel.YangModule; |
| 28 | +import org.onosproject.yangutils.datamodel.YangNode; | ||
| 31 | import org.onosproject.yangutils.datamodel.YangNodeType; | 29 | import org.onosproject.yangutils.datamodel.YangNodeType; |
| 32 | -import org.onosproject.yangutils.datamodel.YangDataTypes; | 30 | +import org.onosproject.yangutils.datamodel.YangRangeInterval; |
| 31 | +import org.onosproject.yangutils.datamodel.YangRangeRestriction; | ||
| 33 | import org.onosproject.yangutils.parser.exceptions.ParserException; | 32 | import org.onosproject.yangutils.parser.exceptions.ParserException; |
| 34 | import org.onosproject.yangutils.parser.impl.YangUtilsParserManager; | 33 | import org.onosproject.yangutils.parser.impl.YangUtilsParserManager; |
| 35 | import org.onosproject.yangutils.utils.builtindatatype.YangInt32; | 34 | import org.onosproject.yangutils.utils.builtindatatype.YangInt32; |
| ... | @@ -70,7 +69,7 @@ public class RangeRestrictionListenerTest { | ... | @@ -70,7 +69,7 @@ public class RangeRestrictionListenerTest { |
| 70 | .getDataType().getDataTypeExtendedInfo(); | 69 | .getDataType().getDataTypeExtendedInfo(); |
| 71 | 70 | ||
| 72 | ListIterator<YangRangeInterval> rangeListIterator = rangeRestriction.getAscendingRangeIntervals() | 71 | ListIterator<YangRangeInterval> rangeListIterator = rangeRestriction.getAscendingRangeIntervals() |
| 73 | - .listIterator(); | 72 | + .listIterator(); |
| 74 | YangRangeInterval rangeInterval = rangeListIterator.next(); | 73 | YangRangeInterval rangeInterval = rangeListIterator.next(); |
| 75 | assertThat(((YangInt32) rangeInterval.getStartValue()).getValue(), is(1)); | 74 | assertThat(((YangInt32) rangeInterval.getStartValue()).getValue(), is(1)); |
| 76 | assertThat(((YangInt32) rangeInterval.getEndValue()).getValue(), is(4)); | 75 | assertThat(((YangInt32) rangeInterval.getEndValue()).getValue(), is(4)); |
| ... | @@ -172,7 +171,7 @@ public class RangeRestrictionListenerTest { | ... | @@ -172,7 +171,7 @@ public class RangeRestrictionListenerTest { |
| 172 | @Test | 171 | @Test |
| 173 | public void processRangeWithInvalidIntegerPattern() throws IOException, ParserException { | 172 | public void processRangeWithInvalidIntegerPattern() throws IOException, ParserException { |
| 174 | thrown.expect(ParserException.class); | 173 | thrown.expect(ParserException.class); |
| 175 | - thrown.expectMessage("YANG file error : a is not valid."); | 174 | + thrown.expectMessage("YANG file error : Input value \"a\" is not a valid int32."); |
| 176 | YangNode node = manager.getDataModel("src/test/resources/RangeWithInvalidIntegerPattern.yang"); | 175 | YangNode node = manager.getDataModel("src/test/resources/RangeWithInvalidIntegerPattern.yang"); |
| 177 | } | 176 | } |
| 178 | } | 177 | } | ... | ... |
| ... | @@ -3,7 +3,7 @@ module Test { | ... | @@ -3,7 +3,7 @@ module Test { |
| 3 | namespace http://huawei.com; | 3 | namespace http://huawei.com; |
| 4 | prefix Ant; | 4 | prefix Ant; |
| 5 | typedef hello { | 5 | typedef hello { |
| 6 | - type String; | 6 | + type string; |
| 7 | } | 7 | } |
| 8 | container ospf { | 8 | container ospf { |
| 9 | list valid { | 9 | list valid { | ... | ... |
| ... | @@ -7,14 +7,14 @@ module Test { | ... | @@ -7,14 +7,14 @@ module Test { |
| 7 | } | 7 | } |
| 8 | grouping Percentage { | 8 | grouping Percentage { |
| 9 | leaf hello{ | 9 | leaf hello{ |
| 10 | - type String; | 10 | + type string; |
| 11 | } | 11 | } |
| 12 | } | 12 | } |
| 13 | container ospf { | 13 | container ospf { |
| 14 | list valid { | 14 | list valid { |
| 15 | key "invalid"; | 15 | key "invalid"; |
| 16 | - leaf invalid{ | 16 | + leaf invalid{ |
| 17 | - type String; | 17 | + type string; |
| 18 | } | 18 | } |
| 19 | uses Ant:FirstClass; | 19 | uses Ant:FirstClass; |
| 20 | grouping FirstClass { | 20 | grouping FirstClass { | ... | ... |
| ... | @@ -3,15 +3,15 @@ module Test { | ... | @@ -3,15 +3,15 @@ module Test { |
| 3 | namespace http://huawei.com; | 3 | namespace http://huawei.com; |
| 4 | prefix Ant; | 4 | prefix Ant; |
| 5 | grouping Percentage { | 5 | grouping Percentage { |
| 6 | - leaf hello{ | 6 | + leaf hello{ |
| 7 | - type String; | 7 | + type string; |
| 8 | } | 8 | } |
| 9 | } | 9 | } |
| 10 | container ospf { | 10 | container ospf { |
| 11 | list valid { | 11 | list valid { |
| 12 | key "invalid"; | 12 | key "invalid"; |
| 13 | - leaf invalid{ | 13 | + leaf invalid{ |
| 14 | - type String; | 14 | + type string; |
| 15 | } | 15 | } |
| 16 | uses Ant:FirstClass; | 16 | uses Ant:FirstClass; |
| 17 | grouping FirstClass { | 17 | grouping FirstClass { | ... | ... |
| ... | @@ -4,12 +4,12 @@ module Test { | ... | @@ -4,12 +4,12 @@ module Test { |
| 4 | prefix Ant; | 4 | prefix Ant; |
| 5 | uses treat; | 5 | uses treat; |
| 6 | grouping treat { | 6 | grouping treat { |
| 7 | - leaf treat{ | 7 | + leaf treat{ |
| 8 | - type String; | 8 | + type string; |
| 9 | } | 9 | } |
| 10 | container test{ | 10 | container test{ |
| 11 | leaf leaf2{ | 11 | leaf leaf2{ |
| 12 | - type String; | 12 | + type string; |
| 13 | } | 13 | } |
| 14 | } | 14 | } |
| 15 | } | 15 | } | ... | ... |
-
Please register or login to post a comment