Committed by
Gerrit Code Review
[ONOS-4670] Removal of Data Model dependencies on Linker
Change-Id: I3f9c5af30198ea31d743e06cea1764dcb306ec32
Showing
50 changed files
with
460 additions
and
334 deletions
| ... | @@ -14,7 +14,7 @@ | ... | @@ -14,7 +14,7 @@ |
| 14 | * limitations under the License. | 14 | * limitations under the License. |
| 15 | */ | 15 | */ |
| 16 | 16 | ||
| 17 | -package org.onosproject.yangutils.linker; | 17 | +package org.onosproject.yangutils.datamodel; |
| 18 | 18 | ||
| 19 | /** | 19 | /** |
| 20 | * Type of the resolvable info. | 20 | * Type of the resolvable info. | ... | ... |
| ... | @@ -18,7 +18,6 @@ package org.onosproject.yangutils.datamodel; | ... | @@ -18,7 +18,6 @@ package org.onosproject.yangutils.datamodel; |
| 18 | import java.util.Set; | 18 | import java.util.Set; |
| 19 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | 19 | 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.plugin.manager.YangFileInfo; | ||
| 22 | import org.onosproject.yangutils.utils.YangConstructType; | 21 | import org.onosproject.yangutils.utils.YangConstructType; |
| 23 | 22 | ||
| 24 | import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.findReferredNode; | 23 | import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.findReferredNode; |
| ... | @@ -194,13 +193,13 @@ public class YangBelongsTo implements Parsable, LocationInfo { | ... | @@ -194,13 +193,13 @@ public class YangBelongsTo implements Parsable, LocationInfo { |
| 194 | /** | 193 | /** |
| 195 | * Links the belongs to with a module. | 194 | * Links the belongs to with a module. |
| 196 | * | 195 | * |
| 197 | - * @param yangFileInfoSet YANG file information set | 196 | + * @param yangNodeSet YANG file information set |
| 198 | * @throws DataModelException a violation in data model rule | 197 | * @throws DataModelException a violation in data model rule |
| 199 | */ | 198 | */ |
| 200 | - public void linkWithModule(Set<YangFileInfo> yangFileInfoSet) | 199 | + public void linkWithModule(Set<YangNode> yangNodeSet) |
| 201 | throws DataModelException { | 200 | throws DataModelException { |
| 202 | String belongsToModuleName = getBelongsToModuleName(); | 201 | String belongsToModuleName = getBelongsToModuleName(); |
| 203 | - YangNode moduleNode = findReferredNode(yangFileInfoSet, belongsToModuleName); | 202 | + YangNode moduleNode = findReferredNode(yangNodeSet, belongsToModuleName); |
| 204 | if (moduleNode != null) { | 203 | if (moduleNode != null) { |
| 205 | if (moduleNode instanceof YangModule) { | 204 | if (moduleNode instanceof YangModule) { |
| 206 | setModuleNode(moduleNode); | 205 | setModuleNode(moduleNode); | ... | ... |
| ... | @@ -33,9 +33,9 @@ import static org.onosproject.yangutils.datamodel.YangDataTypes.STRING; | ... | @@ -33,9 +33,9 @@ import static org.onosproject.yangutils.datamodel.YangDataTypes.STRING; |
| 33 | import static org.onosproject.yangutils.datamodel.YangDataTypes.UNION; | 33 | import static org.onosproject.yangutils.datamodel.YangDataTypes.UNION; |
| 34 | import static org.onosproject.yangutils.linker.ResolvableStatus.INTRA_FILE_RESOLVED; | 34 | import static org.onosproject.yangutils.linker.ResolvableStatus.INTRA_FILE_RESOLVED; |
| 35 | import static org.onosproject.yangutils.linker.ResolvableStatus.RESOLVED; | 35 | import static org.onosproject.yangutils.linker.ResolvableStatus.RESOLVED; |
| 36 | -import static org.onosproject.yangutils.utils.RestrictionResolver.isOfRangeRestrictedType; | 36 | +import static org.onosproject.yangutils.datamodel.utils.RestrictionResolver.isOfRangeRestrictedType; |
| 37 | -import static org.onosproject.yangutils.utils.RestrictionResolver.processLengthRestriction; | 37 | +import static org.onosproject.yangutils.datamodel.utils.RestrictionResolver.processLengthRestriction; |
| 38 | -import static org.onosproject.yangutils.utils.RestrictionResolver.processRangeRestriction; | 38 | +import static org.onosproject.yangutils.datamodel.utils.RestrictionResolver.processRangeRestriction; |
| 39 | 39 | ||
| 40 | /** | 40 | /** |
| 41 | * Represents the derived information. | 41 | * Represents the derived information. | ... | ... |
utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangEntityToResolveInfo.java
0 → 100644
| 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 information about entity being resolved. | ||
| 21 | + * | ||
| 22 | + * @param <T> type of entity being resolved, uses / grouping | ||
| 23 | + */ | ||
| 24 | +public interface YangEntityToResolveInfo<T> { | ||
| 25 | + | ||
| 26 | + /** | ||
| 27 | + * Retrieves the entity to be resolved. | ||
| 28 | + * | ||
| 29 | + * @return entity to be resolved | ||
| 30 | + */ | ||
| 31 | + T getEntityToResolve(); | ||
| 32 | + | ||
| 33 | + /** | ||
| 34 | + * Sets entity to be resolved. | ||
| 35 | + * | ||
| 36 | + * @param entityToResolve entity to be resolved | ||
| 37 | + */ | ||
| 38 | + void setEntityToResolve(T entityToResolve); | ||
| 39 | + | ||
| 40 | + /** | ||
| 41 | + * Retrieves the parent node which contains the entity to be resolved. | ||
| 42 | + * | ||
| 43 | + * @return parent node which contains the entity to be resolved | ||
| 44 | + */ | ||
| 45 | + YangNode getHolderOfEntityToResolve(); | ||
| 46 | + | ||
| 47 | + /** | ||
| 48 | + * Sets parent node which contains the entity to be resolved. | ||
| 49 | + * | ||
| 50 | + * @param holderOfEntityToResolve parent node which contains the entity to | ||
| 51 | + * be resolved | ||
| 52 | + */ | ||
| 53 | + void setHolderOfEntityToResolve(YangNode holderOfEntityToResolve); | ||
| 54 | +} |
| ... | @@ -18,7 +18,6 @@ package org.onosproject.yangutils.datamodel; | ... | @@ -18,7 +18,6 @@ package org.onosproject.yangutils.datamodel; |
| 18 | import java.util.Set; | 18 | import java.util.Set; |
| 19 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | 19 | 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.plugin.manager.YangFileInfo; | ||
| 22 | import org.onosproject.yangutils.utils.YangConstructType; | 21 | import org.onosproject.yangutils.utils.YangConstructType; |
| 23 | 22 | ||
| 24 | import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.findReferredNode; | 23 | import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.findReferredNode; |
| ... | @@ -237,10 +236,10 @@ public class YangImport | ... | @@ -237,10 +236,10 @@ public class YangImport |
| 237 | /** | 236 | /** |
| 238 | * Adds reference to an import. | 237 | * Adds reference to an import. |
| 239 | * | 238 | * |
| 240 | - * @param yangFileInfoSet YANG file info set | 239 | + * @param yangNodeSet YANG file info set |
| 241 | * @throws DataModelException a violation of data model rules | 240 | * @throws DataModelException a violation of data model rules |
| 242 | */ | 241 | */ |
| 243 | - public void addReferenceToImport(Set<YangFileInfo> yangFileInfoSet) throws DataModelException { | 242 | + public void addReferenceToImport(Set<YangNode> yangNodeSet) throws DataModelException { |
| 244 | String importedModuleName = getModuleName(); | 243 | String importedModuleName = getModuleName(); |
| 245 | String importedModuleRevision = getRevision(); | 244 | String importedModuleRevision = getRevision(); |
| 246 | YangNode moduleNode = null; | 245 | YangNode moduleNode = null; |
| ... | @@ -250,7 +249,7 @@ public class YangImport | ... | @@ -250,7 +249,7 @@ public class YangImport |
| 250 | */ | 249 | */ |
| 251 | if (importedModuleRevision != null) { | 250 | if (importedModuleRevision != null) { |
| 252 | String importedModuleNameWithRevision = importedModuleName + "@" + importedModuleRevision; | 251 | String importedModuleNameWithRevision = importedModuleName + "@" + importedModuleRevision; |
| 253 | - moduleNode = findReferredNode(yangFileInfoSet, importedModuleNameWithRevision); | 252 | + moduleNode = findReferredNode(yangNodeSet, importedModuleNameWithRevision); |
| 254 | } | 253 | } |
| 255 | 254 | ||
| 256 | /* | 255 | /* |
| ... | @@ -258,7 +257,7 @@ public class YangImport | ... | @@ -258,7 +257,7 @@ public class YangImport |
| 258 | * without revision if can't find with revision. | 257 | * without revision if can't find with revision. |
| 259 | */ | 258 | */ |
| 260 | if (moduleNode == null) { | 259 | if (moduleNode == null) { |
| 261 | - moduleNode = findReferredNode(yangFileInfoSet, importedModuleName); | 260 | + moduleNode = findReferredNode(yangNodeSet, importedModuleName); |
| 262 | } | 261 | } |
| 263 | 262 | ||
| 264 | if (moduleNode != null) { | 263 | if (moduleNode != null) { | ... | ... |
| ... | @@ -18,7 +18,6 @@ package org.onosproject.yangutils.datamodel; | ... | @@ -18,7 +18,6 @@ package org.onosproject.yangutils.datamodel; |
| 18 | import java.util.Set; | 18 | import java.util.Set; |
| 19 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | 19 | 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.plugin.manager.YangFileInfo; | ||
| 22 | import org.onosproject.yangutils.utils.YangConstructType; | 21 | import org.onosproject.yangutils.utils.YangConstructType; |
| 23 | 22 | ||
| 24 | import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.findReferredNode; | 23 | import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.findReferredNode; |
| ... | @@ -173,11 +172,11 @@ public class YangInclude | ... | @@ -173,11 +172,11 @@ public class YangInclude |
| 173 | /** | 172 | /** |
| 174 | * Adds reference to an include. | 173 | * Adds reference to an include. |
| 175 | * | 174 | * |
| 176 | - * @param yangFileInfoSet YANG file info set | 175 | + * @param yangNodeSet YANG node set |
| 177 | * @return YANG sub module node | 176 | * @return YANG sub module node |
| 178 | * @throws DataModelException a violation of data model rules | 177 | * @throws DataModelException a violation of data model rules |
| 179 | */ | 178 | */ |
| 180 | - public YangSubModule addReferenceToInclude(Set<YangFileInfo> yangFileInfoSet) throws DataModelException { | 179 | + public YangSubModule addReferenceToInclude(Set<YangNode> yangNodeSet) throws DataModelException { |
| 181 | String includedSubModuleName = getSubModuleName(); | 180 | String includedSubModuleName = getSubModuleName(); |
| 182 | String includedSubModuleRevision = getRevision(); | 181 | String includedSubModuleRevision = getRevision(); |
| 183 | YangNode subModuleNode = null; | 182 | YangNode subModuleNode = null; |
| ... | @@ -188,7 +187,7 @@ public class YangInclude | ... | @@ -188,7 +187,7 @@ public class YangInclude |
| 188 | */ | 187 | */ |
| 189 | if (includedSubModuleRevision != null) { | 188 | if (includedSubModuleRevision != null) { |
| 190 | String includedSubModuleNameWithRevision = includedSubModuleName + "@" + includedSubModuleRevision; | 189 | String includedSubModuleNameWithRevision = includedSubModuleName + "@" + includedSubModuleRevision; |
| 191 | - subModuleNode = findReferredNode(yangFileInfoSet, includedSubModuleNameWithRevision); | 190 | + subModuleNode = findReferredNode(yangNodeSet, includedSubModuleNameWithRevision); |
| 192 | } | 191 | } |
| 193 | 192 | ||
| 194 | /* | 193 | /* |
| ... | @@ -196,7 +195,7 @@ public class YangInclude | ... | @@ -196,7 +195,7 @@ public class YangInclude |
| 196 | * without revision if can't find with revision. | 195 | * without revision if can't find with revision. |
| 197 | */ | 196 | */ |
| 198 | if (subModuleNode == null) { | 197 | if (subModuleNode == null) { |
| 199 | - subModuleNode = findReferredNode(yangFileInfoSet, includedSubModuleName); | 198 | + subModuleNode = findReferredNode(yangNodeSet, includedSubModuleName); |
| 200 | } | 199 | } |
| 201 | 200 | ||
| 202 | if (subModuleNode != null) { | 201 | if (subModuleNode != null) { | ... | ... |
| ... | @@ -26,7 +26,7 @@ package org.onosproject.yangutils.datamodel; | ... | @@ -26,7 +26,7 @@ package org.onosproject.yangutils.datamodel; |
| 26 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | 26 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; |
| 27 | import org.onosproject.yangutils.parser.Parsable; | 27 | import org.onosproject.yangutils.parser.Parsable; |
| 28 | import org.onosproject.yangutils.utils.YangConstructType; | 28 | import org.onosproject.yangutils.utils.YangConstructType; |
| 29 | -import org.onosproject.yangutils.utils.builtindatatype.YangUint64; | 29 | +import org.onosproject.yangutils.datamodel.utils.builtindatatype.YangUint64; |
| 30 | 30 | ||
| 31 | /** | 31 | /** |
| 32 | * Represents the restriction for length data type. | 32 | * Represents the restriction for length data type. | ... | ... |
| ... | @@ -19,14 +19,8 @@ import java.util.Iterator; | ... | @@ -19,14 +19,8 @@ import java.util.Iterator; |
| 19 | import java.util.LinkedList; | 19 | import java.util.LinkedList; |
| 20 | import java.util.List; | 20 | import java.util.List; |
| 21 | import java.util.Set; | 21 | import java.util.Set; |
| 22 | - | ||
| 23 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | 22 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; |
| 24 | -import org.onosproject.yangutils.linker.exceptions.LinkerException; | ||
| 25 | -import org.onosproject.yangutils.linker.ResolvableType; | ||
| 26 | -import org.onosproject.yangutils.linker.YangReferenceResolver; | ||
| 27 | -import org.onosproject.yangutils.linker.impl.YangResolutionInfo; | ||
| 28 | import org.onosproject.yangutils.parser.Parsable; | 23 | import org.onosproject.yangutils.parser.Parsable; |
| 29 | -import org.onosproject.yangutils.plugin.manager.YangFileInfo; | ||
| 30 | import org.onosproject.yangutils.utils.YangConstructType; | 24 | import org.onosproject.yangutils.utils.YangConstructType; |
| 31 | 25 | ||
| 32 | import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.detectCollidingChildUtil; | 26 | import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.detectCollidingChildUtil; |
| ... | @@ -88,7 +82,7 @@ public class YangModule | ... | @@ -88,7 +82,7 @@ public class YangModule |
| 88 | 82 | ||
| 89 | /** | 83 | /** |
| 90 | * Reference:RFC 6020. | 84 | * Reference:RFC 6020. |
| 91 | - * | 85 | + * <p> |
| 92 | * The "contact" statement provides contact information for the module. The | 86 | * The "contact" statement provides contact information for the module. The |
| 93 | * argument is a string that is used to specify contact information for the | 87 | * argument is a string that is used to specify contact information for the |
| 94 | * person or persons to whom technical queries concerning this module should | 88 | * person or persons to whom technical queries concerning this module should |
| ... | @@ -99,7 +93,7 @@ public class YangModule | ... | @@ -99,7 +93,7 @@ public class YangModule |
| 99 | 93 | ||
| 100 | /** | 94 | /** |
| 101 | * Reference:RFC 6020. | 95 | * Reference:RFC 6020. |
| 102 | - * | 96 | + * <p> |
| 103 | * The "description" statement takes as an argument a string that contains a | 97 | * The "description" statement takes as an argument a string that contains a |
| 104 | * human-readable textual description of this definition. The text is | 98 | * human-readable textual description of this definition. The text is |
| 105 | * provided in a language (or languages) chosen by the module developer; for | 99 | * provided in a language (or languages) chosen by the module developer; for |
| ... | @@ -134,7 +128,7 @@ public class YangModule | ... | @@ -134,7 +128,7 @@ public class YangModule |
| 134 | 128 | ||
| 135 | /** | 129 | /** |
| 136 | * Reference:RFC 6020. | 130 | * Reference:RFC 6020. |
| 137 | - * | 131 | + * <p> |
| 138 | * The "organization" statement defines the party responsible for this | 132 | * The "organization" statement defines the party responsible for this |
| 139 | * module. The argument is a string that is used to specify a textual | 133 | * module. The argument is a string that is used to specify a textual |
| 140 | * description of the organization(s) under whose auspices this module was | 134 | * description of the organization(s) under whose auspices this module was |
| ... | @@ -209,8 +203,8 @@ public class YangModule | ... | @@ -209,8 +203,8 @@ public class YangModule |
| 209 | public YangModule() { | 203 | public YangModule() { |
| 210 | 204 | ||
| 211 | super(YangNodeType.MODULE_NODE); | 205 | super(YangNodeType.MODULE_NODE); |
| 212 | - derivedTypeResolutionList = new LinkedList<YangResolutionInfo>(); | 206 | + derivedTypeResolutionList = new LinkedList<>(); |
| 213 | - usesResolutionList = new LinkedList<YangResolutionInfo>(); | 207 | + usesResolutionList = new LinkedList<>(); |
| 214 | importList = new LinkedList<YangImport>(); | 208 | importList = new LinkedList<YangImport>(); |
| 215 | includeList = new LinkedList<YangInclude>(); | 209 | includeList = new LinkedList<YangInclude>(); |
| 216 | listOfLeaf = new LinkedList<YangLeaf>(); | 210 | listOfLeaf = new LinkedList<YangLeaf>(); |
| ... | @@ -569,7 +563,7 @@ public class YangModule | ... | @@ -569,7 +563,7 @@ public class YangModule |
| 569 | 563 | ||
| 570 | @Override | 564 | @Override |
| 571 | public void addToResolutionList(YangResolutionInfo resolutionInfo, | 565 | public void addToResolutionList(YangResolutionInfo resolutionInfo, |
| 572 | - ResolvableType type) { | 566 | + ResolvableType type) { |
| 573 | if (type == ResolvableType.YANG_DERIVED_DATA_TYPE) { | 567 | if (type == ResolvableType.YANG_DERIVED_DATA_TYPE) { |
| 574 | derivedTypeResolutionList.add(resolutionInfo); | 568 | derivedTypeResolutionList.add(resolutionInfo); |
| 575 | } else if (type == ResolvableType.YANG_USES) { | 569 | } else if (type == ResolvableType.YANG_USES) { |
| ... | @@ -579,7 +573,7 @@ public class YangModule | ... | @@ -579,7 +573,7 @@ public class YangModule |
| 579 | 573 | ||
| 580 | @Override | 574 | @Override |
| 581 | public void setResolutionList(List<YangResolutionInfo> resolutionList, | 575 | public void setResolutionList(List<YangResolutionInfo> resolutionList, |
| 582 | - ResolvableType type) { | 576 | + ResolvableType type) { |
| 583 | if (type == ResolvableType.YANG_DERIVED_DATA_TYPE) { | 577 | if (type == ResolvableType.YANG_DERIVED_DATA_TYPE) { |
| 584 | derivedTypeResolutionList = resolutionList; | 578 | derivedTypeResolutionList = resolutionList; |
| 585 | } else if (type == ResolvableType.YANG_USES) { | 579 | } else if (type == ResolvableType.YANG_USES) { |
| ... | @@ -589,40 +583,32 @@ public class YangModule | ... | @@ -589,40 +583,32 @@ public class YangModule |
| 589 | } | 583 | } |
| 590 | 584 | ||
| 591 | @Override | 585 | @Override |
| 592 | - public void addReferencesToImportList(Set<YangFileInfo> yangFileInfoSet) | 586 | + public void addReferencesToImportList(Set<YangNode> yangNodeSet) |
| 593 | - throws LinkerException { | 587 | + throws DataModelException { |
| 594 | Iterator<YangImport> importInfoIterator = getImportList().iterator(); | 588 | Iterator<YangImport> importInfoIterator = getImportList().iterator(); |
| 595 | // Run through the imported list to add references. | 589 | // Run through the imported list to add references. |
| 596 | while (importInfoIterator.hasNext()) { | 590 | while (importInfoIterator.hasNext()) { |
| 597 | YangImport yangImport = importInfoIterator.next(); | 591 | YangImport yangImport = importInfoIterator.next(); |
| 598 | - try { | 592 | + yangImport.addReferenceToImport(yangNodeSet); |
| 599 | - yangImport.addReferenceToImport(yangFileInfoSet); | ||
| 600 | - } catch (DataModelException e) { | ||
| 601 | - throw new LinkerException(e.getMessage()); | ||
| 602 | - } | ||
| 603 | } | 593 | } |
| 604 | } | 594 | } |
| 605 | 595 | ||
| 606 | @Override | 596 | @Override |
| 607 | - public void addReferencesToIncludeList(Set<YangFileInfo> yangFileInfoSet) | 597 | + public void addReferencesToIncludeList(Set<YangNode> yangNodeSet) |
| 608 | - throws LinkerException { | 598 | + throws DataModelException { |
| 609 | Iterator<YangInclude> includeInfoIterator = getIncludeList().iterator(); | 599 | Iterator<YangInclude> includeInfoIterator = getIncludeList().iterator(); |
| 610 | // Run through the included list to add references. | 600 | // Run through the included list to add references. |
| 611 | while (includeInfoIterator.hasNext()) { | 601 | while (includeInfoIterator.hasNext()) { |
| 612 | YangInclude yangInclude = includeInfoIterator.next(); | 602 | YangInclude yangInclude = includeInfoIterator.next(); |
| 613 | YangSubModule subModule = null; | 603 | YangSubModule subModule = null; |
| 614 | try { | 604 | try { |
| 615 | - subModule = yangInclude.addReferenceToInclude(yangFileInfoSet); | 605 | + subModule = yangInclude.addReferenceToInclude(yangNodeSet); |
| 616 | } catch (DataModelException e) { | 606 | } catch (DataModelException e) { |
| 617 | - throw new LinkerException(e.getMessage()); | 607 | + throw e; |
| 618 | } | 608 | } |
| 619 | // Check if the referred sub-modules parent is self | 609 | // Check if the referred sub-modules parent is self |
| 620 | if (!(subModule.getBelongsTo().getModuleNode() == this)) { | 610 | if (!(subModule.getBelongsTo().getModuleNode() == this)) { |
| 621 | - try { | 611 | + yangInclude.reportIncludeError(); |
| 622 | - yangInclude.reportIncludeError(); | ||
| 623 | - } catch (DataModelException e) { | ||
| 624 | - throw new LinkerException(e.getMessage()); | ||
| 625 | - } | ||
| 626 | } | 612 | } |
| 627 | } | 613 | } |
| 628 | } | 614 | } | ... | ... |
| ... | @@ -13,7 +13,7 @@ See the License for the specific language governing permissions and | ... | @@ -13,7 +13,7 @@ See the License for the specific language governing permissions and |
| 13 | limitations under the License.*/ | 13 | limitations under the License.*/ |
| 14 | package org.onosproject.yangutils.datamodel; | 14 | package org.onosproject.yangutils.datamodel; |
| 15 | 15 | ||
| 16 | -import org.onosproject.yangutils.utils.builtindatatype.YangBuiltInDataTypeInfo; | 16 | +import org.onosproject.yangutils.datamodel.utils.builtindatatype.YangBuiltInDataTypeInfo; |
| 17 | 17 | ||
| 18 | /** | 18 | /** |
| 19 | * Represents single interval information of a range. | 19 | * Represents single interval information of a range. | ... | ... |
| ... | @@ -21,9 +21,9 @@ import java.util.List; | ... | @@ -21,9 +21,9 @@ import java.util.List; |
| 21 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | 21 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; |
| 22 | import org.onosproject.yangutils.parser.Parsable; | 22 | import org.onosproject.yangutils.parser.Parsable; |
| 23 | import org.onosproject.yangutils.utils.YangConstructType; | 23 | import org.onosproject.yangutils.utils.YangConstructType; |
| 24 | -import org.onosproject.yangutils.utils.builtindatatype.YangBuiltInDataTypeInfo; | 24 | +import org.onosproject.yangutils.datamodel.utils.builtindatatype.YangBuiltInDataTypeInfo; |
| 25 | 25 | ||
| 26 | -import static org.onosproject.yangutils.utils.builtindatatype.BuiltInTypeObjectFactory.getDataObjectFromString; | 26 | +import static org.onosproject.yangutils.datamodel.utils.builtindatatype.BuiltInTypeObjectFactory.getDataObjectFromString; |
| 27 | import static com.google.common.base.Preconditions.checkNotNull; | 27 | import static com.google.common.base.Preconditions.checkNotNull; |
| 28 | 28 | ||
| 29 | /*- | 29 | /*- | ... | ... |
| ... | @@ -14,17 +14,11 @@ | ... | @@ -14,17 +14,11 @@ |
| 14 | * limitations under the License. | 14 | * limitations under the License. |
| 15 | */ | 15 | */ |
| 16 | 16 | ||
| 17 | -package org.onosproject.yangutils.linker; | 17 | +package org.onosproject.yangutils.datamodel; |
| 18 | 18 | ||
| 19 | import java.util.List; | 19 | import java.util.List; |
| 20 | import java.util.Set; | 20 | import java.util.Set; |
| 21 | - | ||
| 22 | -import org.onosproject.yangutils.datamodel.YangImport; | ||
| 23 | -import org.onosproject.yangutils.datamodel.YangInclude; | ||
| 24 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | 21 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; |
| 25 | -import org.onosproject.yangutils.linker.exceptions.LinkerException; | ||
| 26 | -import org.onosproject.yangutils.linker.impl.YangResolutionInfo; | ||
| 27 | -import org.onosproject.yangutils.plugin.manager.YangFileInfo; | ||
| 28 | 22 | ||
| 29 | /** | 23 | /** |
| 30 | * Abstraction of YANG dependency resolution information. Abstracted to obtain the | 24 | * Abstraction of YANG dependency resolution information. Abstracted to obtain the |
| ... | @@ -133,18 +127,18 @@ public interface YangReferenceResolver { | ... | @@ -133,18 +127,18 @@ public interface YangReferenceResolver { |
| 133 | /** | 127 | /** |
| 134 | * Adds references to include. | 128 | * Adds references to include. |
| 135 | * | 129 | * |
| 136 | - * @param yangFileInfoSet YANG file info set | 130 | + * @param yangNodeSet YANG node info set |
| 137 | - * @throws LinkerException a violation of linker rules | 131 | + * @throws DataModelException a violation of data model rules |
| 138 | */ | 132 | */ |
| 139 | - void addReferencesToIncludeList(Set<YangFileInfo> yangFileInfoSet) | 133 | + void addReferencesToIncludeList(Set<YangNode> yangNodeSet) |
| 140 | - throws LinkerException; | 134 | + throws DataModelException; |
| 141 | 135 | ||
| 142 | /** | 136 | /** |
| 143 | * Adds references to import. | 137 | * Adds references to import. |
| 144 | * | 138 | * |
| 145 | - * @param yangFileInfoSet YANG file info set | 139 | + * @param yangNodeSet YANG node info set |
| 146 | - * @throws LinkerException a violation of linker rules | 140 | + * @throws DataModelException a violation of data model rules |
| 147 | */ | 141 | */ |
| 148 | - void addReferencesToImportList(Set<YangFileInfo> yangFileInfoSet) | 142 | + void addReferencesToImportList(Set<YangNode> yangNodeSet) |
| 149 | - throws LinkerException; | 143 | + throws DataModelException; |
| 150 | } | 144 | } | ... | ... |
utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangResolutionInfo.java
0 → 100644
| 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 | +import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | ||
| 20 | + | ||
| 21 | +/** | ||
| 22 | + * Abstraction of resolution object which will be resolved by linker. | ||
| 23 | + * | ||
| 24 | + * @param <T> type of resolution entity uses / type | ||
| 25 | + */ | ||
| 26 | +public interface YangResolutionInfo<T> extends LocationInfo { | ||
| 27 | + | ||
| 28 | + /** | ||
| 29 | + * Resolves linking with all the ancestors node for a resolution info. | ||
| 30 | + * | ||
| 31 | + * @param dataModelRootNode module/sub-module node | ||
| 32 | + * @throws DataModelException DataModelException a violation of data model | ||
| 33 | + * rules | ||
| 34 | + */ | ||
| 35 | + void resolveLinkingForResolutionInfo(YangReferenceResolver dataModelRootNode) | ||
| 36 | + throws DataModelException; | ||
| 37 | + | ||
| 38 | + /** | ||
| 39 | + * Retrieves information about the entity that needs to be resolved. | ||
| 40 | + * | ||
| 41 | + * @return information about the entity that needs to be resolved | ||
| 42 | + */ | ||
| 43 | + YangEntityToResolveInfo<T> getEntityToResolveInfo(); | ||
| 44 | + | ||
| 45 | + /** | ||
| 46 | + * Performs inter file linking of uses/type referring to typedef/grouping | ||
| 47 | + * of other YANG file. | ||
| 48 | + * | ||
| 49 | + * @param dataModelRootNode module/sub-module node | ||
| 50 | + * @throws DataModelException a violation in data model rule | ||
| 51 | + */ | ||
| 52 | + void linkInterFile(YangReferenceResolver dataModelRootNode) | ||
| 53 | + throws DataModelException; | ||
| 54 | +} |
| ... | @@ -19,7 +19,7 @@ package org.onosproject.yangutils.datamodel; | ... | @@ -19,7 +19,7 @@ package org.onosproject.yangutils.datamodel; |
| 19 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | 19 | 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 | -import org.onosproject.yangutils.utils.builtindatatype.YangUint64; | 22 | +import org.onosproject.yangutils.datamodel.utils.builtindatatype.YangUint64; |
| 23 | 23 | ||
| 24 | /*- | 24 | /*- |
| 25 | * Reference RFC 6020. | 25 | * Reference RFC 6020. | ... | ... |
| ... | @@ -19,14 +19,8 @@ import java.util.Iterator; | ... | @@ -19,14 +19,8 @@ import java.util.Iterator; |
| 19 | import java.util.LinkedList; | 19 | import java.util.LinkedList; |
| 20 | import java.util.List; | 20 | import java.util.List; |
| 21 | import java.util.Set; | 21 | import java.util.Set; |
| 22 | - | ||
| 23 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | 22 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; |
| 24 | -import org.onosproject.yangutils.linker.exceptions.LinkerException; | ||
| 25 | -import org.onosproject.yangutils.linker.ResolvableType; | ||
| 26 | -import org.onosproject.yangutils.linker.YangReferenceResolver; | ||
| 27 | -import org.onosproject.yangutils.linker.impl.YangResolutionInfo; | ||
| 28 | import org.onosproject.yangutils.parser.Parsable; | 23 | import org.onosproject.yangutils.parser.Parsable; |
| 29 | -import org.onosproject.yangutils.plugin.manager.YangFileInfo; | ||
| 30 | import org.onosproject.yangutils.utils.YangConstructType; | 24 | import org.onosproject.yangutils.utils.YangConstructType; |
| 31 | 25 | ||
| 32 | import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.detectCollidingChildUtil; | 26 | import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.detectCollidingChildUtil; |
| ... | @@ -206,8 +200,8 @@ public class YangSubModule | ... | @@ -206,8 +200,8 @@ public class YangSubModule |
| 206 | */ | 200 | */ |
| 207 | public YangSubModule() { | 201 | public YangSubModule() { |
| 208 | super(YangNodeType.SUB_MODULE_NODE); | 202 | super(YangNodeType.SUB_MODULE_NODE); |
| 209 | - derivedTypeResolutionList = new LinkedList<YangResolutionInfo>(); | 203 | + derivedTypeResolutionList = new LinkedList<>(); |
| 210 | - usesResolutionList = new LinkedList<YangResolutionInfo>(); | 204 | + usesResolutionList = new LinkedList<>(); |
| 211 | importList = new LinkedList<YangImport>(); | 205 | importList = new LinkedList<YangImport>(); |
| 212 | includeList = new LinkedList<YangInclude>(); | 206 | includeList = new LinkedList<YangInclude>(); |
| 213 | listOfLeaf = new LinkedList<YangLeaf>(); | 207 | listOfLeaf = new LinkedList<YangLeaf>(); |
| ... | @@ -548,7 +542,7 @@ public class YangSubModule | ... | @@ -548,7 +542,7 @@ public class YangSubModule |
| 548 | 542 | ||
| 549 | @Override | 543 | @Override |
| 550 | public void addToResolutionList(YangResolutionInfo resolutionInfo, | 544 | public void addToResolutionList(YangResolutionInfo resolutionInfo, |
| 551 | - ResolvableType type) { | 545 | + ResolvableType type) { |
| 552 | if (type == ResolvableType.YANG_DERIVED_DATA_TYPE) { | 546 | if (type == ResolvableType.YANG_DERIVED_DATA_TYPE) { |
| 553 | derivedTypeResolutionList.add(resolutionInfo); | 547 | derivedTypeResolutionList.add(resolutionInfo); |
| 554 | } else if (type == ResolvableType.YANG_USES) { | 548 | } else if (type == ResolvableType.YANG_USES) { |
| ... | @@ -558,7 +552,7 @@ public class YangSubModule | ... | @@ -558,7 +552,7 @@ public class YangSubModule |
| 558 | 552 | ||
| 559 | @Override | 553 | @Override |
| 560 | public void setResolutionList(List<YangResolutionInfo> resolutionList, | 554 | public void setResolutionList(List<YangResolutionInfo> resolutionList, |
| 561 | - ResolvableType type) { | 555 | + ResolvableType type) { |
| 562 | if (type == ResolvableType.YANG_DERIVED_DATA_TYPE) { | 556 | if (type == ResolvableType.YANG_DERIVED_DATA_TYPE) { |
| 563 | derivedTypeResolutionList = resolutionList; | 557 | derivedTypeResolutionList = resolutionList; |
| 564 | } else if (type == ResolvableType.YANG_USES) { | 558 | } else if (type == ResolvableType.YANG_USES) { |
| ... | @@ -570,50 +564,38 @@ public class YangSubModule | ... | @@ -570,50 +564,38 @@ public class YangSubModule |
| 570 | /** | 564 | /** |
| 571 | * Links the sub-module with module. | 565 | * Links the sub-module with module. |
| 572 | * | 566 | * |
| 573 | - * @param yangFileInfoSet YANG file information set | 567 | + * @param yangNodeSet YANG file information set |
| 574 | * @throws DataModelException a violation in data model rule | 568 | * @throws DataModelException a violation in data model rule |
| 575 | */ | 569 | */ |
| 576 | - public void linkWithModule(Set<YangFileInfo> yangFileInfoSet) | 570 | + public void linkWithModule(Set<YangNode> yangNodeSet) |
| 577 | throws DataModelException { | 571 | throws DataModelException { |
| 578 | - getBelongsTo().linkWithModule(yangFileInfoSet); | 572 | + getBelongsTo().linkWithModule(yangNodeSet); |
| 579 | } | 573 | } |
| 580 | 574 | ||
| 581 | @Override | 575 | @Override |
| 582 | - public void addReferencesToIncludeList(Set<YangFileInfo> yangFileInfoSet) | 576 | + public void addReferencesToIncludeList(Set<YangNode> yangNodeSet) |
| 583 | - throws LinkerException { | 577 | + throws DataModelException { |
| 584 | Iterator<YangInclude> includeInfoIterator = getIncludeList().iterator(); | 578 | Iterator<YangInclude> includeInfoIterator = getIncludeList().iterator(); |
| 585 | // Run through the included list to add references. | 579 | // Run through the included list to add references. |
| 586 | while (includeInfoIterator.hasNext()) { | 580 | while (includeInfoIterator.hasNext()) { |
| 587 | YangInclude yangInclude = includeInfoIterator.next(); | 581 | YangInclude yangInclude = includeInfoIterator.next(); |
| 588 | YangSubModule subModule = null; | 582 | YangSubModule subModule = null; |
| 589 | - try { | 583 | + subModule = yangInclude.addReferenceToInclude(yangNodeSet); |
| 590 | - subModule = yangInclude.addReferenceToInclude(yangFileInfoSet); | ||
| 591 | - } catch (DataModelException e) { | ||
| 592 | - throw new LinkerException(e.getMessage()); | ||
| 593 | - } | ||
| 594 | // Check if the referred sub-modules parent is self | 584 | // Check if the referred sub-modules parent is self |
| 595 | if (!(subModule.getBelongsTo().getModuleNode() == getBelongsTo().getModuleNode())) { | 585 | if (!(subModule.getBelongsTo().getModuleNode() == getBelongsTo().getModuleNode())) { |
| 596 | - try { | 586 | + yangInclude.reportIncludeError(); |
| 597 | - yangInclude.reportIncludeError(); | ||
| 598 | - } catch (DataModelException e) { | ||
| 599 | - throw new LinkerException(e.getMessage()); | ||
| 600 | - } | ||
| 601 | } | 587 | } |
| 602 | } | 588 | } |
| 603 | } | 589 | } |
| 604 | 590 | ||
| 605 | @Override | 591 | @Override |
| 606 | - public void addReferencesToImportList(Set<YangFileInfo> yangFileInfoSet) | 592 | + public void addReferencesToImportList(Set<YangNode> yangNodeSet) |
| 607 | - throws LinkerException { | 593 | + throws DataModelException { |
| 608 | Iterator<YangImport> importInfoIterator = getImportList().iterator(); | 594 | Iterator<YangImport> importInfoIterator = getImportList().iterator(); |
| 609 | // Run through the imported list to add references. | 595 | // Run through the imported list to add references. |
| 610 | while (importInfoIterator.hasNext()) { | 596 | while (importInfoIterator.hasNext()) { |
| 611 | YangImport yangImport = importInfoIterator.next(); | 597 | YangImport yangImport = importInfoIterator.next(); |
| 612 | - try { | 598 | + yangImport.addReferenceToImport(yangNodeSet); |
| 613 | - yangImport.addReferenceToImport(yangFileInfoSet); | ||
| 614 | - } catch (DataModelException e) { | ||
| 615 | - throw new LinkerException(e.getMessage()); | ||
| 616 | - } | ||
| 617 | } | 599 | } |
| 618 | } | 600 | } |
| 619 | } | 601 | } | ... | ... |
| ... | @@ -19,7 +19,6 @@ package org.onosproject.yangutils.datamodel; | ... | @@ -19,7 +19,6 @@ package org.onosproject.yangutils.datamodel; |
| 19 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | 19 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; |
| 20 | import org.onosproject.yangutils.linker.Resolvable; | 20 | import org.onosproject.yangutils.linker.Resolvable; |
| 21 | import org.onosproject.yangutils.linker.ResolvableStatus; | 21 | import org.onosproject.yangutils.linker.ResolvableStatus; |
| 22 | -import org.onosproject.yangutils.linker.exceptions.LinkerException; | ||
| 23 | import org.onosproject.yangutils.parser.Parsable; | 22 | import org.onosproject.yangutils.parser.Parsable; |
| 24 | import org.onosproject.yangutils.utils.YangConstructType; | 23 | import org.onosproject.yangutils.utils.YangConstructType; |
| 25 | 24 | ||
| ... | @@ -248,25 +247,25 @@ public class YangType<T> | ... | @@ -248,25 +247,25 @@ public class YangType<T> |
| 248 | 247 | ||
| 249 | @Override | 248 | @Override |
| 250 | public void resolve() | 249 | public void resolve() |
| 251 | - throws LinkerException { | 250 | + throws DataModelException { |
| 252 | /* | 251 | /* |
| 253 | * Check whether the data type is derived. | 252 | * Check whether the data type is derived. |
| 254 | */ | 253 | */ |
| 255 | if (getDataType() != DERIVED) { | 254 | if (getDataType() != DERIVED) { |
| 256 | - throw new LinkerException("Linker Error: Resolve should only be called for derived data types."); | 255 | + throw new DataModelException("Linker Error: Resolve should only be called for derived data types."); |
| 257 | } | 256 | } |
| 258 | 257 | ||
| 259 | // Check if the derived info is present. | 258 | // Check if the derived info is present. |
| 260 | YangDerivedInfo<?> derivedInfo = (YangDerivedInfo<?>) getDataTypeExtendedInfo(); | 259 | YangDerivedInfo<?> derivedInfo = (YangDerivedInfo<?>) getDataTypeExtendedInfo(); |
| 261 | if (derivedInfo == null) { | 260 | if (derivedInfo == null) { |
| 262 | - throw new LinkerException("Linker Error: Derived information is missing."); | 261 | + throw new DataModelException("Linker Error: Derived information is missing."); |
| 263 | } | 262 | } |
| 264 | 263 | ||
| 265 | // Initiate the resolution | 264 | // Initiate the resolution |
| 266 | try { | 265 | try { |
| 267 | setResolvableStatus(derivedInfo.resolve()); | 266 | setResolvableStatus(derivedInfo.resolve()); |
| 268 | } catch (DataModelException e) { | 267 | } catch (DataModelException e) { |
| 269 | - throw new LinkerException(e.getMessage()); | 268 | + throw new DataModelException(e.getMessage()); |
| 270 | } | 269 | } |
| 271 | } | 270 | } |
| 272 | } | 271 | } | ... | ... |
| ... | @@ -17,11 +17,9 @@ package org.onosproject.yangutils.datamodel; | ... | @@ -17,11 +17,9 @@ package org.onosproject.yangutils.datamodel; |
| 17 | 17 | ||
| 18 | import java.util.LinkedList; | 18 | import java.util.LinkedList; |
| 19 | import java.util.List; | 19 | import java.util.List; |
| 20 | - | ||
| 21 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | 20 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; |
| 22 | import org.onosproject.yangutils.linker.Resolvable; | 21 | import org.onosproject.yangutils.linker.Resolvable; |
| 23 | import org.onosproject.yangutils.linker.ResolvableStatus; | 22 | import org.onosproject.yangutils.linker.ResolvableStatus; |
| 24 | -import org.onosproject.yangutils.linker.exceptions.LinkerException; | ||
| 25 | import org.onosproject.yangutils.parser.Parsable; | 23 | import org.onosproject.yangutils.parser.Parsable; |
| 26 | import org.onosproject.yangutils.utils.YangConstructType; | 24 | import org.onosproject.yangutils.utils.YangConstructType; |
| 27 | 25 | ||
| ... | @@ -283,18 +281,18 @@ public class YangUses | ... | @@ -283,18 +281,18 @@ public class YangUses |
| 283 | 281 | ||
| 284 | @Override | 282 | @Override |
| 285 | public void resolve() | 283 | public void resolve() |
| 286 | - throws LinkerException { | 284 | + throws DataModelException { |
| 287 | 285 | ||
| 288 | YangGrouping referredGrouping = getRefGroup(); | 286 | YangGrouping referredGrouping = getRefGroup(); |
| 289 | 287 | ||
| 290 | if (referredGrouping == null) { | 288 | if (referredGrouping == null) { |
| 291 | - throw new LinkerException("Linker Exception: YANG uses linker error, cannot resolve uses"); | 289 | + throw new DataModelException("YANG uses linker error, cannot resolve uses"); |
| 292 | } | 290 | } |
| 293 | 291 | ||
| 294 | YangNode usesParentNode = getParentNodeInGenCode(this); | 292 | YangNode usesParentNode = getParentNodeInGenCode(this); |
| 295 | if (!(usesParentNode instanceof YangLeavesHolder) | 293 | if (!(usesParentNode instanceof YangLeavesHolder) |
| 296 | || !(usesParentNode instanceof CollisionDetector)) { | 294 | || !(usesParentNode instanceof CollisionDetector)) { |
| 297 | - throw new LinkerException("Linker Exception: YANG uses holder construct is wrong"); | 295 | + throw new DataModelException("YANG uses holder construct is wrong"); |
| 298 | } | 296 | } |
| 299 | 297 | ||
| 300 | YangLeavesHolder usesParentLeavesHolder = (YangLeavesHolder) usesParentNode; | 298 | YangLeavesHolder usesParentLeavesHolder = (YangLeavesHolder) usesParentNode; |
| ... | @@ -343,7 +341,7 @@ public class YangUses | ... | @@ -343,7 +341,7 @@ public class YangUses |
| 343 | * @param usesHolder holder of uses | 341 | * @param usesHolder holder of uses |
| 344 | */ | 342 | */ |
| 345 | private void addResolvedUsesInfoOfGrouping(YangUses usesInGrouping, | 343 | private void addResolvedUsesInfoOfGrouping(YangUses usesInGrouping, |
| 346 | - YangLeavesHolder usesHolder) { | 344 | + YangLeavesHolder usesHolder) throws DataModelException { |
| 347 | for (YangNode usesResolvedNode : | 345 | for (YangNode usesResolvedNode : |
| 348 | usesInGrouping.getUsesResolvedNodeList()) { | 346 | usesInGrouping.getUsesResolvedNodeList()) { |
| 349 | addNodeOfGrouping(usesResolvedNode); | 347 | addNodeOfGrouping(usesResolvedNode); |
| ... | @@ -367,11 +365,12 @@ public class YangUses | ... | @@ -367,11 +365,12 @@ public class YangUses |
| 367 | * @param listOfLeaves list of leaves to be cloned | 365 | * @param listOfLeaves list of leaves to be cloned |
| 368 | * @param usesParentNode parent of the cloned location | 366 | * @param usesParentNode parent of the cloned location |
| 369 | * @return cloned list of leaves | 367 | * @return cloned list of leaves |
| 368 | + * @throws DataModelException a violation in data model rule | ||
| 370 | */ | 369 | */ |
| 371 | private List<YangLeaf> cloneLeavesList(List<YangLeaf> listOfLeaves, | 370 | private List<YangLeaf> cloneLeavesList(List<YangLeaf> listOfLeaves, |
| 372 | - YangLeavesHolder usesParentNode) { | 371 | + YangLeavesHolder usesParentNode) throws DataModelException { |
| 373 | if ((listOfLeaves == null) || listOfLeaves.size() == 0) { | 372 | if ((listOfLeaves == null) || listOfLeaves.size() == 0) { |
| 374 | - throw new LinkerException("No leaves to clone"); | 373 | + throw new DataModelException("No leaves to clone"); |
| 375 | } | 374 | } |
| 376 | 375 | ||
| 377 | List<YangLeaf> newLeavesList = new LinkedList<YangLeaf>(); | 376 | List<YangLeaf> newLeavesList = new LinkedList<YangLeaf>(); |
| ... | @@ -382,7 +381,7 @@ public class YangUses | ... | @@ -382,7 +381,7 @@ public class YangUses |
| 382 | YangConstructType.LEAF_DATA); | 381 | YangConstructType.LEAF_DATA); |
| 383 | clonedLeaf = leaf.clone(); | 382 | clonedLeaf = leaf.clone(); |
| 384 | } catch (CloneNotSupportedException | DataModelException e) { | 383 | } catch (CloneNotSupportedException | DataModelException e) { |
| 385 | - throw new LinkerException(e.getMessage()); | 384 | + throw new DataModelException(e.getMessage()); |
| 386 | } | 385 | } |
| 387 | 386 | ||
| 388 | clonedLeaf.setContainedIn(usesParentNode); | 387 | clonedLeaf.setContainedIn(usesParentNode); |
| ... | @@ -400,9 +399,9 @@ public class YangUses | ... | @@ -400,9 +399,9 @@ public class YangUses |
| 400 | * @return cloned list of leaf list | 399 | * @return cloned list of leaf list |
| 401 | */ | 400 | */ |
| 402 | private List<YangLeafList> cloneListOfLeafList(List<YangLeafList> listOfLeafList, | 401 | private List<YangLeafList> cloneListOfLeafList(List<YangLeafList> listOfLeafList, |
| 403 | - YangLeavesHolder usesParentNode) { | 402 | + YangLeavesHolder usesParentNode) throws DataModelException { |
| 404 | if ((listOfLeafList == null) || listOfLeafList.size() == 0) { | 403 | if ((listOfLeafList == null) || listOfLeafList.size() == 0) { |
| 405 | - throw new LinkerException("No leaf lists to clone"); | 404 | + throw new DataModelException("No leaf lists to clone"); |
| 406 | } | 405 | } |
| 407 | 406 | ||
| 408 | List<YangLeafList> newListOfLeafList = new LinkedList<YangLeafList>(); | 407 | List<YangLeafList> newListOfLeafList = new LinkedList<YangLeafList>(); |
| ... | @@ -413,7 +412,7 @@ public class YangUses | ... | @@ -413,7 +412,7 @@ public class YangUses |
| 413 | YangConstructType.LEAF_LIST_DATA); | 412 | YangConstructType.LEAF_LIST_DATA); |
| 414 | clonedLeafList = leafList.clone(); | 413 | clonedLeafList = leafList.clone(); |
| 415 | } catch (CloneNotSupportedException | DataModelException e) { | 414 | } catch (CloneNotSupportedException | DataModelException e) { |
| 416 | - throw new LinkerException(e.getMessage()); | 415 | + throw new DataModelException(e.getMessage()); |
| 417 | } | 416 | } |
| 418 | 417 | ||
| 419 | clonedLeafList.setContainedIn(usesParentNode); | 418 | clonedLeafList.setContainedIn(usesParentNode); | ... | ... |
| ... | @@ -18,20 +18,18 @@ package org.onosproject.yangutils.datamodel.utils; | ... | @@ -18,20 +18,18 @@ package org.onosproject.yangutils.datamodel.utils; |
| 18 | 18 | ||
| 19 | import java.util.List; | 19 | import java.util.List; |
| 20 | import java.util.Set; | 20 | import java.util.Set; |
| 21 | - | ||
| 22 | import org.onosproject.yangutils.datamodel.CollisionDetector; | 21 | import org.onosproject.yangutils.datamodel.CollisionDetector; |
| 22 | +import org.onosproject.yangutils.datamodel.ResolvableType; | ||
| 23 | import org.onosproject.yangutils.datamodel.YangLeaf; | 23 | import org.onosproject.yangutils.datamodel.YangLeaf; |
| 24 | import org.onosproject.yangutils.datamodel.YangLeafList; | 24 | import org.onosproject.yangutils.datamodel.YangLeafList; |
| 25 | import org.onosproject.yangutils.datamodel.YangLeavesHolder; | 25 | import org.onosproject.yangutils.datamodel.YangLeavesHolder; |
| 26 | import org.onosproject.yangutils.datamodel.YangNode; | 26 | import org.onosproject.yangutils.datamodel.YangNode; |
| 27 | +import org.onosproject.yangutils.datamodel.YangReferenceResolver; | ||
| 28 | +import org.onosproject.yangutils.datamodel.YangResolutionInfo; | ||
| 27 | import org.onosproject.yangutils.datamodel.YangRpc; | 29 | import org.onosproject.yangutils.datamodel.YangRpc; |
| 28 | import org.onosproject.yangutils.datamodel.YangType; | 30 | import org.onosproject.yangutils.datamodel.YangType; |
| 29 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | 31 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; |
| 30 | -import org.onosproject.yangutils.linker.ResolvableType; | ||
| 31 | -import org.onosproject.yangutils.linker.YangReferenceResolver; | ||
| 32 | -import org.onosproject.yangutils.linker.impl.YangResolutionInfo; | ||
| 33 | import org.onosproject.yangutils.parser.Parsable; | 32 | import org.onosproject.yangutils.parser.Parsable; |
| 34 | -import org.onosproject.yangutils.plugin.manager.YangFileInfo; | ||
| 35 | import org.onosproject.yangutils.utils.YangConstructType; | 33 | import org.onosproject.yangutils.utils.YangConstructType; |
| 36 | 34 | ||
| 37 | /** | 35 | /** |
| ... | @@ -179,7 +177,7 @@ public final class DataModelUtils { | ... | @@ -179,7 +177,7 @@ public final class DataModelUtils { |
| 179 | * @throws DataModelException a violation of data model rules | 177 | * @throws DataModelException a violation of data model rules |
| 180 | */ | 178 | */ |
| 181 | public static void resolveLinkingForResolutionList(List<YangResolutionInfo> resolutionList, | 179 | public static void resolveLinkingForResolutionList(List<YangResolutionInfo> resolutionList, |
| 182 | - YangReferenceResolver dataModelRootNode) | 180 | + YangReferenceResolver dataModelRootNode) |
| 183 | throws DataModelException { | 181 | throws DataModelException { |
| 184 | 182 | ||
| 185 | for (YangResolutionInfo resolutionInfo : resolutionList) { | 183 | for (YangResolutionInfo resolutionInfo : resolutionList) { |
| ... | @@ -195,7 +193,7 @@ public final class DataModelUtils { | ... | @@ -195,7 +193,7 @@ public final class DataModelUtils { |
| 195 | * @throws DataModelException a violation of data model rules | 193 | * @throws DataModelException a violation of data model rules |
| 196 | */ | 194 | */ |
| 197 | public static void linkInterFileReferences(List<YangResolutionInfo> resolutionList, | 195 | public static void linkInterFileReferences(List<YangResolutionInfo> resolutionList, |
| 198 | - YangReferenceResolver dataModelRootNode) | 196 | + YangReferenceResolver dataModelRootNode) |
| 199 | throws DataModelException { | 197 | throws DataModelException { |
| 200 | /* | 198 | /* |
| 201 | * Run through the resolution list, find type/uses referring to | 199 | * Run through the resolution list, find type/uses referring to |
| ... | @@ -226,19 +224,18 @@ public final class DataModelUtils { | ... | @@ -226,19 +224,18 @@ public final class DataModelUtils { |
| 226 | /** | 224 | /** |
| 227 | * Returns referred node in a given set. | 225 | * Returns referred node in a given set. |
| 228 | * | 226 | * |
| 229 | - * @param yangFileInfoSet YANG file info set | 227 | + * @param yangNodeSet YANG node set |
| 230 | - * @param refNodeName name of the node which is referred | 228 | + * @param refNodeName name of the node which is referred |
| 231 | * @return referred node's reference | 229 | * @return referred node's reference |
| 232 | */ | 230 | */ |
| 233 | - public static YangNode findReferredNode(Set<YangFileInfo> yangFileInfoSet, String refNodeName) { | 231 | + public static YangNode findReferredNode(Set<YangNode> yangNodeSet, String refNodeName) { |
| 234 | /* | 232 | /* |
| 235 | * Run through the YANG files to see which YANG file matches the | 233 | * Run through the YANG files to see which YANG file matches the |
| 236 | * referred node name. | 234 | * referred node name. |
| 237 | */ | 235 | */ |
| 238 | - for (YangFileInfo yangFileInfo : yangFileInfoSet) { | 236 | + for (YangNode yangNode : yangNodeSet) { |
| 239 | - YangNode yangNode = yangFileInfo.getRootNode(); | ||
| 240 | if (yangNode.getName().equals(refNodeName)) { | 237 | if (yangNode.getName().equals(refNodeName)) { |
| 241 | - return yangFileInfo.getRootNode(); | 238 | + return yangNode; |
| 242 | } | 239 | } |
| 243 | } | 240 | } |
| 244 | return null; | 241 | return null; | ... | ... |
| ... | @@ -14,16 +14,15 @@ | ... | @@ -14,16 +14,15 @@ |
| 14 | * limitations under the License. | 14 | * limitations under the License. |
| 15 | */ | 15 | */ |
| 16 | 16 | ||
| 17 | -package org.onosproject.yangutils.utils; | 17 | +package org.onosproject.yangutils.datamodel.utils; |
| 18 | 18 | ||
| 19 | import java.util.regex.Pattern; | 19 | import java.util.regex.Pattern; |
| 20 | import org.onosproject.yangutils.datamodel.YangDataTypes; | 20 | import org.onosproject.yangutils.datamodel.YangDataTypes; |
| 21 | import org.onosproject.yangutils.datamodel.YangRangeInterval; | 21 | import org.onosproject.yangutils.datamodel.YangRangeInterval; |
| 22 | import org.onosproject.yangutils.datamodel.YangRangeRestriction; | 22 | import org.onosproject.yangutils.datamodel.YangRangeRestriction; |
| 23 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | 23 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; |
| 24 | -import org.onosproject.yangutils.parser.exceptions.ParserException; | 24 | +import org.onosproject.yangutils.utils.YangConstructType; |
| 25 | -import org.onosproject.yangutils.utils.builtindatatype.DataTypeException; | 25 | +import org.onosproject.yangutils.datamodel.utils.builtindatatype.YangBuiltInDataTypeInfo; |
| 26 | -import org.onosproject.yangutils.utils.builtindatatype.YangBuiltInDataTypeInfo; | ||
| 27 | 26 | ||
| 28 | import static org.onosproject.yangutils.datamodel.YangDataTypes.DECIMAL64; | 27 | import static org.onosproject.yangutils.datamodel.YangDataTypes.DECIMAL64; |
| 29 | import static org.onosproject.yangutils.datamodel.YangDataTypes.INT16; | 28 | import static org.onosproject.yangutils.datamodel.YangDataTypes.INT16; |
| ... | @@ -34,13 +33,11 @@ import static org.onosproject.yangutils.datamodel.YangDataTypes.UINT16; | ... | @@ -34,13 +33,11 @@ import static org.onosproject.yangutils.datamodel.YangDataTypes.UINT16; |
| 34 | import static org.onosproject.yangutils.datamodel.YangDataTypes.UINT32; | 33 | import static org.onosproject.yangutils.datamodel.YangDataTypes.UINT32; |
| 35 | import static org.onosproject.yangutils.datamodel.YangDataTypes.UINT64; | 34 | import static org.onosproject.yangutils.datamodel.YangDataTypes.UINT64; |
| 36 | import static org.onosproject.yangutils.datamodel.YangDataTypes.UINT8; | 35 | import static org.onosproject.yangutils.datamodel.YangDataTypes.UINT8; |
| 37 | -import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY; | 36 | +import static org.onosproject.yangutils.utils.UtilConstants.ADD; |
| 38 | -import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructExtendedListenerErrorMessage; | 37 | +import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING; |
| 39 | -import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.UNHANDLED_PARSED_DATA; | ||
| 40 | -import static org.onosproject.yangutils.parser.impl.parserutils.ListenerUtil.removeQuotesAndHandleConcat; | ||
| 41 | import static org.onosproject.yangutils.utils.YangConstructType.LENGTH_DATA; | 38 | import static org.onosproject.yangutils.utils.YangConstructType.LENGTH_DATA; |
| 42 | import static org.onosproject.yangutils.utils.YangConstructType.RANGE_DATA; | 39 | import static org.onosproject.yangutils.utils.YangConstructType.RANGE_DATA; |
| 43 | -import static org.onosproject.yangutils.utils.builtindatatype.BuiltInTypeObjectFactory.getDataObjectFromString; | 40 | +import static org.onosproject.yangutils.datamodel.utils.builtindatatype.BuiltInTypeObjectFactory.getDataObjectFromString; |
| 44 | 41 | ||
| 45 | /** | 42 | /** |
| 46 | * Represents restriction resolver which provide common utility used by parser | 43 | * Represents restriction resolver which provide common utility used by parser |
| ... | @@ -71,11 +68,13 @@ public final class RestrictionResolver { | ... | @@ -71,11 +68,13 @@ public final class RestrictionResolver { |
| 71 | * @param curRangeString caller type's range string | 68 | * @param curRangeString caller type's range string |
| 72 | * @param effectiveType effective type, when called from linker | 69 | * @param effectiveType effective type, when called from linker |
| 73 | * @return YANG range restriction | 70 | * @return YANG range restriction |
| 71 | + * @throws DataModelException a violation in data model rule | ||
| 74 | */ | 72 | */ |
| 75 | public static YangRangeRestriction processRangeRestriction(YangRangeRestriction refRangeRestriction, | 73 | public static YangRangeRestriction processRangeRestriction(YangRangeRestriction refRangeRestriction, |
| 76 | int lineNumber, int charPositionInLine, | 74 | int lineNumber, int charPositionInLine, |
| 77 | boolean hasReferredRestriction, | 75 | boolean hasReferredRestriction, |
| 78 | - String curRangeString, YangDataTypes effectiveType) { | 76 | + String curRangeString, YangDataTypes effectiveType) |
| 77 | + throws DataModelException { | ||
| 79 | YangBuiltInDataTypeInfo<?> startValue; | 78 | YangBuiltInDataTypeInfo<?> startValue; |
| 80 | YangBuiltInDataTypeInfo<?> endValue; | 79 | YangBuiltInDataTypeInfo<?> endValue; |
| 81 | YangRangeRestriction rangeRestriction = new YangRangeRestriction(); | 80 | YangRangeRestriction rangeRestriction = new YangRangeRestriction(); |
| ... | @@ -90,12 +89,12 @@ public final class RestrictionResolver { | ... | @@ -90,12 +89,12 @@ public final class RestrictionResolver { |
| 90 | String[] rangeBoundary = rangePart.trim().split(Pattern.quote(INTERVAL)); | 89 | String[] rangeBoundary = rangePart.trim().split(Pattern.quote(INTERVAL)); |
| 91 | 90 | ||
| 92 | if (rangeBoundary.length > MAX_RANGE_BOUNDARY) { | 91 | if (rangeBoundary.length > MAX_RANGE_BOUNDARY) { |
| 93 | - ParserException parserException = new ParserException("YANG file error : " + | 92 | + DataModelException dataModelException = new DataModelException("YANG file error : " + |
| 94 | YangConstructType.getYangConstructType(RANGE_DATA) + " " + rangeArgument + | 93 | YangConstructType.getYangConstructType(RANGE_DATA) + " " + rangeArgument + |
| 95 | " is not valid."); | 94 | " is not valid."); |
| 96 | - parserException.setLine(lineNumber); | 95 | + dataModelException.setLine(lineNumber); |
| 97 | - parserException.setCharPosition(charPositionInLine); | 96 | + dataModelException.setCharPosition(charPositionInLine); |
| 98 | - throw parserException; | 97 | + throw dataModelException; |
| 99 | } | 98 | } |
| 100 | 99 | ||
| 101 | if (rangeBoundary.length == MIN_RANGE_BOUNDARY) { | 100 | if (rangeBoundary.length == MIN_RANGE_BOUNDARY) { |
| ... | @@ -125,11 +124,11 @@ public final class RestrictionResolver { | ... | @@ -125,11 +124,11 @@ public final class RestrictionResolver { |
| 125 | } else { | 124 | } else { |
| 126 | endValue = getDataObjectFromString(endInterval, effectiveType); | 125 | endValue = getDataObjectFromString(endInterval, effectiveType); |
| 127 | } | 126 | } |
| 128 | - } catch (DataTypeException | DataModelException e) { | 127 | + } catch (Exception e) { |
| 129 | - ParserException parserException = new ParserException(e.getMessage()); | 128 | + DataModelException dataModelException = new DataModelException(e.getMessage()); |
| 130 | - parserException.setLine(lineNumber); | 129 | + dataModelException.setLine(lineNumber); |
| 131 | - parserException.setCharPosition(charPositionInLine); | 130 | + dataModelException.setCharPosition(charPositionInLine); |
| 132 | - throw parserException; | 131 | + throw dataModelException; |
| 133 | } | 132 | } |
| 134 | 133 | ||
| 135 | rangeInterval.setStartValue(startValue); | 134 | rangeInterval.setStartValue(startValue); |
| ... | @@ -137,12 +136,10 @@ public final class RestrictionResolver { | ... | @@ -137,12 +136,10 @@ public final class RestrictionResolver { |
| 137 | 136 | ||
| 138 | try { | 137 | try { |
| 139 | rangeRestriction.addRangeRestrictionInterval(rangeInterval); | 138 | rangeRestriction.addRangeRestrictionInterval(rangeInterval); |
| 140 | - } catch (DataModelException e) { | 139 | + } catch (DataModelException dataModelException) { |
| 141 | - ParserException parserException = new ParserException(constructExtendedListenerErrorMessage( | 140 | + dataModelException.setLine(lineNumber); |
| 142 | - UNHANDLED_PARSED_DATA, RANGE_DATA, rangeArgument, ENTRY, e.getMessage())); | 141 | + dataModelException.setCharPosition(charPositionInLine); |
| 143 | - parserException.setLine(lineNumber); | 142 | + throw dataModelException; |
| 144 | - parserException.setCharPosition(charPositionInLine); | ||
| 145 | - throw parserException; | ||
| 146 | } | 143 | } |
| 147 | } | 144 | } |
| 148 | return rangeRestriction; | 145 | return rangeRestriction; |
| ... | @@ -157,11 +154,12 @@ public final class RestrictionResolver { | ... | @@ -157,11 +154,12 @@ public final class RestrictionResolver { |
| 157 | * @param hasReferredRestriction whether has referred restriction | 154 | * @param hasReferredRestriction whether has referred restriction |
| 158 | * @param curLengthString caller type's length string | 155 | * @param curLengthString caller type's length string |
| 159 | * @return YANG range restriction | 156 | * @return YANG range restriction |
| 157 | + * @throws DataModelException a violation in data model rule | ||
| 160 | */ | 158 | */ |
| 161 | public static YangRangeRestriction processLengthRestriction(YangRangeRestriction refLengthRestriction, | 159 | public static YangRangeRestriction processLengthRestriction(YangRangeRestriction refLengthRestriction, |
| 162 | int lineNumber, int charPositionInLine, | 160 | int lineNumber, int charPositionInLine, |
| 163 | boolean hasReferredRestriction, | 161 | boolean hasReferredRestriction, |
| 164 | - String curLengthString) { | 162 | + String curLengthString) throws DataModelException { |
| 165 | 163 | ||
| 166 | YangBuiltInDataTypeInfo<?> startValue; | 164 | YangBuiltInDataTypeInfo<?> startValue; |
| 167 | YangBuiltInDataTypeInfo<?> endValue; | 165 | YangBuiltInDataTypeInfo<?> endValue; |
| ... | @@ -177,12 +175,12 @@ public final class RestrictionResolver { | ... | @@ -177,12 +175,12 @@ public final class RestrictionResolver { |
| 177 | String[] rangeBoundary = rangePart.trim().split(Pattern.quote(INTERVAL)); | 175 | String[] rangeBoundary = rangePart.trim().split(Pattern.quote(INTERVAL)); |
| 178 | 176 | ||
| 179 | if (rangeBoundary.length > MAX_RANGE_BOUNDARY) { | 177 | if (rangeBoundary.length > MAX_RANGE_BOUNDARY) { |
| 180 | - ParserException parserException = new ParserException("YANG file error : " + | 178 | + DataModelException dataModelException = new DataModelException("YANG file error : " + |
| 181 | YangConstructType.getYangConstructType(LENGTH_DATA) + " " + rangeArgument + | 179 | YangConstructType.getYangConstructType(LENGTH_DATA) + " " + rangeArgument + |
| 182 | " is not valid."); | 180 | " is not valid."); |
| 183 | - parserException.setLine(lineNumber); | 181 | + dataModelException.setLine(lineNumber); |
| 184 | - parserException.setCharPosition(charPositionInLine); | 182 | + dataModelException.setCharPosition(charPositionInLine); |
| 185 | - throw parserException; | 183 | + throw dataModelException; |
| 186 | } | 184 | } |
| 187 | 185 | ||
| 188 | if (rangeBoundary.length == MIN_RANGE_BOUNDARY) { | 186 | if (rangeBoundary.length == MIN_RANGE_BOUNDARY) { |
| ... | @@ -212,11 +210,11 @@ public final class RestrictionResolver { | ... | @@ -212,11 +210,11 @@ public final class RestrictionResolver { |
| 212 | } else { | 210 | } else { |
| 213 | endValue = getDataObjectFromString(endInterval, YangDataTypes.UINT64); | 211 | endValue = getDataObjectFromString(endInterval, YangDataTypes.UINT64); |
| 214 | } | 212 | } |
| 215 | - } catch (DataTypeException | DataModelException e) { | 213 | + } catch (Exception e) { |
| 216 | - ParserException parserException = new ParserException(e.getMessage()); | 214 | + DataModelException dataModelException = new DataModelException(e.getMessage()); |
| 217 | - parserException.setLine(lineNumber); | 215 | + dataModelException.setLine(lineNumber); |
| 218 | - parserException.setCharPosition(charPositionInLine); | 216 | + dataModelException.setCharPosition(charPositionInLine); |
| 219 | - throw parserException; | 217 | + throw dataModelException; |
| 220 | } | 218 | } |
| 221 | 219 | ||
| 222 | rangeInterval.setStartValue(startValue); | 220 | rangeInterval.setStartValue(startValue); |
| ... | @@ -224,12 +222,10 @@ public final class RestrictionResolver { | ... | @@ -224,12 +222,10 @@ public final class RestrictionResolver { |
| 224 | 222 | ||
| 225 | try { | 223 | try { |
| 226 | lengthRestriction.addRangeRestrictionInterval(rangeInterval); | 224 | lengthRestriction.addRangeRestrictionInterval(rangeInterval); |
| 227 | - } catch (DataModelException e) { | 225 | + } catch (DataModelException dataModelException) { |
| 228 | - ParserException parserException = new ParserException(constructExtendedListenerErrorMessage( | 226 | + dataModelException.setLine(lineNumber); |
| 229 | - UNHANDLED_PARSED_DATA, LENGTH_DATA, rangeArgument, ENTRY, e.getMessage())); | 227 | + dataModelException.setCharPosition(charPositionInLine); |
| 230 | - parserException.setLine(lineNumber); | 228 | + throw dataModelException; |
| 231 | - parserException.setCharPosition(charPositionInLine); | ||
| 232 | - throw parserException; | ||
| 233 | } | 229 | } |
| 234 | } | 230 | } |
| 235 | return lengthRestriction; | 231 | return lengthRestriction; |
| ... | @@ -252,4 +248,21 @@ public final class RestrictionResolver { | ... | @@ -252,4 +248,21 @@ public final class RestrictionResolver { |
| 252 | || dataType == UINT64 | 248 | || dataType == UINT64 |
| 253 | || dataType == DECIMAL64); | 249 | || dataType == DECIMAL64); |
| 254 | } | 250 | } |
| 251 | + | ||
| 252 | + /** | ||
| 253 | + * Removes doubles quotes and concatenates if string has plus symbol. | ||
| 254 | + * | ||
| 255 | + * @param yangStringData string from yang file | ||
| 256 | + * @return concatenated string after removing double quotes | ||
| 257 | + */ | ||
| 258 | + private static String removeQuotesAndHandleConcat(String yangStringData) { | ||
| 259 | + | ||
| 260 | + yangStringData = yangStringData.replace("\"", EMPTY_STRING); | ||
| 261 | + String[] tmpData = yangStringData.split(Pattern.quote(ADD)); | ||
| 262 | + StringBuilder builder = new StringBuilder(); | ||
| 263 | + for (String yangString : tmpData) { | ||
| 264 | + builder.append(yangString); | ||
| 265 | + } | ||
| 266 | + return builder.toString(); | ||
| 267 | + } | ||
| 255 | } | 268 | } | ... | ... |
| ... | @@ -13,7 +13,7 @@ | ... | @@ -13,7 +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 | -package org.onosproject.yangutils.utils.builtindatatype; | 16 | +package org.onosproject.yangutils.datamodel.utils.builtindatatype; |
| 17 | 17 | ||
| 18 | import org.onosproject.yangutils.datamodel.YangDataTypes; | 18 | import org.onosproject.yangutils.datamodel.YangDataTypes; |
| 19 | 19 | ||
| ... | @@ -32,13 +32,13 @@ public final class BuiltInTypeObjectFactory { | ... | @@ -32,13 +32,13 @@ public final class BuiltInTypeObjectFactory { |
| 32 | * Given the value represented in string return the corresponding types | 32 | * Given the value represented in string return the corresponding types |
| 33 | * object with the value initialized. | 33 | * object with the value initialized. |
| 34 | * | 34 | * |
| 35 | - * @param valueInStr value represented in string | 35 | + * @param valueInStr value represented in string |
| 36 | * @param builtInType built in data type | 36 | * @param builtInType built in data type |
| 37 | + * @param <T> the data type of the target object | ||
| 37 | * @return the target data type object with the value initialized | 38 | * @return the target data type object with the value initialized |
| 38 | - * @param <T> the data type of the target object | ||
| 39 | */ | 39 | */ |
| 40 | public static <T extends YangBuiltInDataTypeInfo<?>> T getDataObjectFromString(String valueInStr, | 40 | public static <T extends YangBuiltInDataTypeInfo<?>> T getDataObjectFromString(String valueInStr, |
| 41 | - YangDataTypes builtInType) { | 41 | + YangDataTypes builtInType) { |
| 42 | 42 | ||
| 43 | switch (builtInType) { | 43 | switch (builtInType) { |
| 44 | case INT8: { | 44 | case INT8: { | ... | ... |
| ... | @@ -14,7 +14,7 @@ | ... | @@ -14,7 +14,7 @@ |
| 14 | * limitations under the License. | 14 | * limitations under the License. |
| 15 | */ | 15 | */ |
| 16 | 16 | ||
| 17 | -package org.onosproject.yangutils.utils.builtindatatype; | 17 | +package org.onosproject.yangutils.datamodel.utils.builtindatatype; |
| 18 | 18 | ||
| 19 | /** | 19 | /** |
| 20 | * Base class for exceptions in data type. | 20 | * Base class for exceptions in data type. |
| ... | @@ -43,7 +43,7 @@ public class DataTypeException extends RuntimeException { | ... | @@ -43,7 +43,7 @@ public class DataTypeException extends RuntimeException { |
| 43 | * Creates a new data type exception from given message and cause. | 43 | * Creates a new data type exception from given message and cause. |
| 44 | * | 44 | * |
| 45 | * @param message the detail of exception in string | 45 | * @param message the detail of exception in string |
| 46 | - * @param cause underlying cause of the error | 46 | + * @param cause underlying cause of the error |
| 47 | */ | 47 | */ |
| 48 | public DataTypeException(final String message, final Throwable cause) { | 48 | public DataTypeException(final String message, final Throwable cause) { |
| 49 | super(message, cause); | 49 | super(message, cause); | ... | ... |
| ... | @@ -14,10 +14,9 @@ | ... | @@ -14,10 +14,9 @@ |
| 14 | * limitations under the License. | 14 | * limitations under the License. |
| 15 | */ | 15 | */ |
| 16 | 16 | ||
| 17 | -package org.onosproject.yangutils.utils.builtindatatype; | 17 | +package org.onosproject.yangutils.datamodel.utils.builtindatatype; |
| 18 | 18 | ||
| 19 | import java.util.Objects; | 19 | import java.util.Objects; |
| 20 | - | ||
| 21 | import com.google.common.base.MoreObjects; | 20 | import com.google.common.base.MoreObjects; |
| 22 | 21 | ||
| 23 | /** | 22 | /** | ... | ... |
| ... | @@ -14,10 +14,9 @@ | ... | @@ -14,10 +14,9 @@ |
| 14 | * limitations under the License. | 14 | * limitations under the License. |
| 15 | */ | 15 | */ |
| 16 | 16 | ||
| 17 | -package org.onosproject.yangutils.utils.builtindatatype; | 17 | +package org.onosproject.yangutils.datamodel.utils.builtindatatype; |
| 18 | 18 | ||
| 19 | import java.util.Objects; | 19 | import java.util.Objects; |
| 20 | - | ||
| 21 | import com.google.common.base.MoreObjects; | 20 | import com.google.common.base.MoreObjects; |
| 22 | 21 | ||
| 23 | /** | 22 | /** | ... | ... |
| ... | @@ -13,7 +13,7 @@ | ... | @@ -13,7 +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 | -package org.onosproject.yangutils.utils.builtindatatype; | 16 | +package org.onosproject.yangutils.datamodel.utils.builtindatatype; |
| 17 | 17 | ||
| 18 | import org.onosproject.yangutils.datamodel.YangDataTypes; | 18 | import org.onosproject.yangutils.datamodel.YangDataTypes; |
| 19 | 19 | ... | ... |
| ... | @@ -14,10 +14,9 @@ | ... | @@ -14,10 +14,9 @@ |
| 14 | * limitations under the License. | 14 | * limitations under the License. |
| 15 | */ | 15 | */ |
| 16 | 16 | ||
| 17 | -package org.onosproject.yangutils.utils.builtindatatype; | 17 | +package org.onosproject.yangutils.datamodel.utils.builtindatatype; |
| 18 | 18 | ||
| 19 | import java.util.Objects; | 19 | import java.util.Objects; |
| 20 | - | ||
| 21 | import com.google.common.base.MoreObjects; | 20 | import com.google.common.base.MoreObjects; |
| 22 | 21 | ||
| 23 | /** | 22 | /** | ... | ... |
| ... | @@ -14,7 +14,7 @@ | ... | @@ -14,7 +14,7 @@ |
| 14 | * limitations under the License. | 14 | * limitations under the License. |
| 15 | */ | 15 | */ |
| 16 | 16 | ||
| 17 | -package org.onosproject.yangutils.utils.builtindatatype; | 17 | +package org.onosproject.yangutils.datamodel.utils.builtindatatype; |
| 18 | 18 | ||
| 19 | import org.onosproject.yangutils.datamodel.YangDataTypes; | 19 | import org.onosproject.yangutils.datamodel.YangDataTypes; |
| 20 | 20 | ... | ... |
| ... | @@ -14,7 +14,7 @@ | ... | @@ -14,7 +14,7 @@ |
| 14 | * limitations under the License. | 14 | * limitations under the License. |
| 15 | */ | 15 | */ |
| 16 | 16 | ||
| 17 | -package org.onosproject.yangutils.utils.builtindatatype; | 17 | +package org.onosproject.yangutils.datamodel.utils.builtindatatype; |
| 18 | 18 | ||
| 19 | import org.onosproject.yangutils.datamodel.YangDataTypes; | 19 | import org.onosproject.yangutils.datamodel.YangDataTypes; |
| 20 | 20 | ... | ... |
| ... | @@ -14,7 +14,7 @@ | ... | @@ -14,7 +14,7 @@ |
| 14 | * limitations under the License. | 14 | * limitations under the License. |
| 15 | */ | 15 | */ |
| 16 | 16 | ||
| 17 | -package org.onosproject.yangutils.utils.builtindatatype; | 17 | +package org.onosproject.yangutils.datamodel.utils.builtindatatype; |
| 18 | 18 | ||
| 19 | import org.onosproject.yangutils.datamodel.YangDataTypes; | 19 | import org.onosproject.yangutils.datamodel.YangDataTypes; |
| 20 | 20 | ... | ... |
| ... | @@ -14,7 +14,7 @@ | ... | @@ -14,7 +14,7 @@ |
| 14 | * limitations under the License. | 14 | * limitations under the License. |
| 15 | */ | 15 | */ |
| 16 | 16 | ||
| 17 | -package org.onosproject.yangutils.utils.builtindatatype; | 17 | +package org.onosproject.yangutils.datamodel.utils.builtindatatype; |
| 18 | 18 | ||
| 19 | import org.onosproject.yangutils.datamodel.YangDataTypes; | 19 | import org.onosproject.yangutils.datamodel.YangDataTypes; |
| 20 | 20 | ... | ... |
| ... | @@ -14,7 +14,7 @@ | ... | @@ -14,7 +14,7 @@ |
| 14 | * limitations under the License. | 14 | * limitations under the License. |
| 15 | */ | 15 | */ |
| 16 | 16 | ||
| 17 | -package org.onosproject.yangutils.utils.builtindatatype; | 17 | +package org.onosproject.yangutils.datamodel.utils.builtindatatype; |
| 18 | 18 | ||
| 19 | import org.onosproject.yangutils.datamodel.YangDataTypes; | 19 | import org.onosproject.yangutils.datamodel.YangDataTypes; |
| 20 | 20 | ... | ... |
| ... | @@ -14,7 +14,7 @@ | ... | @@ -14,7 +14,7 @@ |
| 14 | * limitations under the License. | 14 | * limitations under the License. |
| 15 | */ | 15 | */ |
| 16 | 16 | ||
| 17 | -package org.onosproject.yangutils.utils.builtindatatype; | 17 | +package org.onosproject.yangutils.datamodel.utils.builtindatatype; |
| 18 | 18 | ||
| 19 | import org.onosproject.yangutils.datamodel.YangDataTypes; | 19 | import org.onosproject.yangutils.datamodel.YangDataTypes; |
| 20 | 20 | ... | ... |
| ... | @@ -14,7 +14,7 @@ | ... | @@ -14,7 +14,7 @@ |
| 14 | * limitations under the License. | 14 | * limitations under the License. |
| 15 | */ | 15 | */ |
| 16 | 16 | ||
| 17 | -package org.onosproject.yangutils.utils.builtindatatype; | 17 | +package org.onosproject.yangutils.datamodel.utils.builtindatatype; |
| 18 | 18 | ||
| 19 | import java.math.BigInteger; | 19 | import java.math.BigInteger; |
| 20 | import java.util.regex.Pattern; | 20 | import java.util.regex.Pattern; | ... | ... |
| ... | @@ -14,7 +14,7 @@ | ... | @@ -14,7 +14,7 @@ |
| 14 | * limitations under the License. | 14 | * limitations under the License. |
| 15 | */ | 15 | */ |
| 16 | 16 | ||
| 17 | -package org.onosproject.yangutils.utils.builtindatatype; | 17 | +package org.onosproject.yangutils.datamodel.utils.builtindatatype; |
| 18 | 18 | ||
| 19 | import org.onosproject.yangutils.datamodel.YangDataTypes; | 19 | import org.onosproject.yangutils.datamodel.YangDataTypes; |
| 20 | 20 | ... | ... |
| ... | @@ -16,7 +16,7 @@ | ... | @@ -16,7 +16,7 @@ |
| 16 | 16 | ||
| 17 | package org.onosproject.yangutils.linker; | 17 | package org.onosproject.yangutils.linker; |
| 18 | 18 | ||
| 19 | -import org.onosproject.yangutils.linker.exceptions.LinkerException; | 19 | +import org.onosproject.yangutils.datamodel.exceptions.DataModelException; |
| 20 | 20 | ||
| 21 | /** | 21 | /** |
| 22 | * Abstraction of YANG resolvable information. Abstracted to obtain the | 22 | * Abstraction of YANG resolvable information. Abstracted to obtain the |
| ... | @@ -47,8 +47,8 @@ public interface Resolvable { | ... | @@ -47,8 +47,8 @@ public interface Resolvable { |
| 47 | /** | 47 | /** |
| 48 | * Resolves the linking. | 48 | * Resolves the linking. |
| 49 | * | 49 | * |
| 50 | - * @throws LinkerException linker error | 50 | + * @throws DataModelException data model exception |
| 51 | */ | 51 | */ |
| 52 | void resolve() | 52 | void resolve() |
| 53 | - throws LinkerException; | 53 | + throws DataModelException; |
| 54 | } | 54 | } | ... | ... |
| ... | @@ -15,17 +15,18 @@ | ... | @@ -15,17 +15,18 @@ |
| 15 | */ | 15 | */ |
| 16 | package org.onosproject.yangutils.linker.impl; | 16 | package org.onosproject.yangutils.linker.impl; |
| 17 | 17 | ||
| 18 | +import org.onosproject.yangutils.datamodel.YangEntityToResolveInfo; | ||
| 18 | import org.onosproject.yangutils.datamodel.YangNode; | 19 | import org.onosproject.yangutils.datamodel.YangNode; |
| 19 | import org.onosproject.yangutils.datamodel.YangType; | 20 | import org.onosproject.yangutils.datamodel.YangType; |
| 20 | import org.onosproject.yangutils.datamodel.YangUses; | 21 | import org.onosproject.yangutils.datamodel.YangUses; |
| 21 | import org.onosproject.yangutils.linker.exceptions.LinkerException; | 22 | import org.onosproject.yangutils.linker.exceptions.LinkerException; |
| 22 | 23 | ||
| 23 | /** | 24 | /** |
| 24 | - * Represents information about entity being resolved. | 25 | + * Represents implementation of information about entity being resolved. |
| 25 | * | 26 | * |
| 26 | * @param <T> type of entity being resolved, uses / grouping | 27 | * @param <T> type of entity being resolved, uses / grouping |
| 27 | */ | 28 | */ |
| 28 | -public class YangEntityToResolveInfo<T> { | 29 | +public class YangEntityToResolveInfoImpl<T> implements YangEntityToResolveInfo<T> { |
| 29 | 30 | ||
| 30 | // Parsable node for which resolution is to be performed. | 31 | // Parsable node for which resolution is to be performed. |
| 31 | private T entityToResolve; | 32 | private T entityToResolve; |
| ... | @@ -33,39 +34,22 @@ public class YangEntityToResolveInfo<T> { | ... | @@ -33,39 +34,22 @@ public class YangEntityToResolveInfo<T> { |
| 33 | // Holder of the YANG construct for which resolution has to be carried out. | 34 | // Holder of the YANG construct for which resolution has to be carried out. |
| 34 | private YangNode holderOfEntityToResolve; | 35 | private YangNode holderOfEntityToResolve; |
| 35 | 36 | ||
| 36 | - /** | 37 | + @Override |
| 37 | - * Retrieves the entity to be resolved. | ||
| 38 | - * | ||
| 39 | - * @return entity to be resolved | ||
| 40 | - */ | ||
| 41 | public T getEntityToResolve() { | 38 | public T getEntityToResolve() { |
| 42 | return entityToResolve; | 39 | return entityToResolve; |
| 43 | } | 40 | } |
| 44 | 41 | ||
| 45 | - /** | 42 | + @Override |
| 46 | - * Sets entity to be resolved. | ||
| 47 | - * | ||
| 48 | - * @param entityToResolve entity to be resolved | ||
| 49 | - */ | ||
| 50 | public void setEntityToResolve(T entityToResolve) { | 43 | public void setEntityToResolve(T entityToResolve) { |
| 51 | this.entityToResolve = entityToResolve; | 44 | this.entityToResolve = entityToResolve; |
| 52 | } | 45 | } |
| 53 | 46 | ||
| 54 | - /** | 47 | + @Override |
| 55 | - * Retrieves the parent node which contains the entity to be resolved. | ||
| 56 | - * | ||
| 57 | - * @return parent node which contains the entity to be resolved | ||
| 58 | - */ | ||
| 59 | public YangNode getHolderOfEntityToResolve() { | 48 | public YangNode getHolderOfEntityToResolve() { |
| 60 | return holderOfEntityToResolve; | 49 | return holderOfEntityToResolve; |
| 61 | } | 50 | } |
| 62 | 51 | ||
| 63 | - /** | 52 | + @Override |
| 64 | - * Sets parent node which contains the entity to be resolved. | ||
| 65 | - * | ||
| 66 | - * @param holderOfEntityToResolve parent node which contains the entity to | ||
| 67 | - * be resolved | ||
| 68 | - */ | ||
| 69 | public void setHolderOfEntityToResolve(YangNode holderOfEntityToResolve) { | 53 | public void setHolderOfEntityToResolve(YangNode holderOfEntityToResolve) { |
| 70 | this.holderOfEntityToResolve = holderOfEntityToResolve; | 54 | this.holderOfEntityToResolve = holderOfEntityToResolve; |
| 71 | } | 55 | } | ... | ... |
| ... | @@ -16,14 +16,14 @@ | ... | @@ -16,14 +16,14 @@ |
| 16 | 16 | ||
| 17 | package org.onosproject.yangutils.linker.impl; | 17 | package org.onosproject.yangutils.linker.impl; |
| 18 | 18 | ||
| 19 | +import java.util.HashSet; | ||
| 19 | import java.util.Set; | 20 | import java.util.Set; |
| 20 | - | 21 | +import org.onosproject.yangutils.datamodel.ResolvableType; |
| 21 | import org.onosproject.yangutils.datamodel.YangNode; | 22 | import org.onosproject.yangutils.datamodel.YangNode; |
| 23 | +import org.onosproject.yangutils.datamodel.YangReferenceResolver; | ||
| 22 | import org.onosproject.yangutils.datamodel.YangSubModule; | 24 | import org.onosproject.yangutils.datamodel.YangSubModule; |
| 23 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | 25 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; |
| 24 | -import org.onosproject.yangutils.linker.ResolvableType; | ||
| 25 | import org.onosproject.yangutils.linker.YangLinker; | 26 | import org.onosproject.yangutils.linker.YangLinker; |
| 26 | -import org.onosproject.yangutils.linker.YangReferenceResolver; | ||
| 27 | import org.onosproject.yangutils.linker.exceptions.LinkerException; | 27 | import org.onosproject.yangutils.linker.exceptions.LinkerException; |
| 28 | import org.onosproject.yangutils.plugin.manager.YangFileInfo; | 28 | import org.onosproject.yangutils.plugin.manager.YangFileInfo; |
| 29 | 29 | ||
| ... | @@ -34,9 +34,39 @@ import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE; | ... | @@ -34,9 +34,39 @@ import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE; |
| 34 | */ | 34 | */ |
| 35 | public class YangLinkerManager | 35 | public class YangLinkerManager |
| 36 | implements YangLinker { | 36 | implements YangLinker { |
| 37 | + | ||
| 38 | + /* | ||
| 39 | + * Set of all the YANG nodes, corresponding to the YANG files parsed by | ||
| 40 | + * parser. | ||
| 41 | + */ | ||
| 42 | + Set<YangNode> yangNodeSet = new HashSet<>(); | ||
| 43 | + | ||
| 44 | + /** | ||
| 45 | + * Returns set of YANG node. | ||
| 46 | + * | ||
| 47 | + * @return set of YANG node | ||
| 48 | + */ | ||
| 49 | + public Set<YangNode> getYangNodeSet() { | ||
| 50 | + return yangNodeSet; | ||
| 51 | + } | ||
| 52 | + | ||
| 53 | + /** | ||
| 54 | + * Creates YANG nodes set. | ||
| 55 | + * | ||
| 56 | + * @param yangFileInfoSet YANG file information set | ||
| 57 | + */ | ||
| 58 | + public void createYangNodeSet(Set<YangFileInfo> yangFileInfoSet) { | ||
| 59 | + for (YangFileInfo yangFileInfo : yangFileInfoSet) { | ||
| 60 | + getYangNodeSet().add(yangFileInfo.getRootNode()); | ||
| 61 | + } | ||
| 62 | + } | ||
| 63 | + | ||
| 37 | @Override | 64 | @Override |
| 38 | public void resolveDependencies(Set<YangFileInfo> yangFileInfoSet) { | 65 | public void resolveDependencies(Set<YangFileInfo> yangFileInfoSet) { |
| 39 | 66 | ||
| 67 | + // Create YANG node set. | ||
| 68 | + createYangNodeSet(yangFileInfoSet); | ||
| 69 | + | ||
| 40 | // Carry out linking of sub module with module. | 70 | // Carry out linking of sub module with module. |
| 41 | linkSubModulesToParentModule(yangFileInfoSet); | 71 | linkSubModulesToParentModule(yangFileInfoSet); |
| 42 | 72 | ||
| ... | @@ -64,7 +94,7 @@ public class YangLinkerManager | ... | @@ -64,7 +94,7 @@ public class YangLinkerManager |
| 64 | YangNode yangNode = yangFileInfo.getRootNode(); | 94 | YangNode yangNode = yangFileInfo.getRootNode(); |
| 65 | if (yangNode instanceof YangSubModule) { | 95 | if (yangNode instanceof YangSubModule) { |
| 66 | try { | 96 | try { |
| 67 | - ((YangSubModule) yangNode).linkWithModule(yangFileInfoSet); | 97 | + ((YangSubModule) yangNode).linkWithModule(getYangNodeSet()); |
| 68 | } catch (DataModelException e) { | 98 | } catch (DataModelException e) { |
| 69 | String errorInfo = "YANG file error: " + yangFileInfo.getYangFileName() + " at line: " | 99 | String errorInfo = "YANG file error: " + yangFileInfo.getYangFileName() + " at line: " |
| 70 | + e.getLineNumber() + " at position: " + e.getCharPositionInLine() + NEW_LINE | 100 | + e.getLineNumber() + " at position: " + e.getCharPositionInLine() + NEW_LINE |
| ... | @@ -85,7 +115,14 @@ public class YangLinkerManager | ... | @@ -85,7 +115,14 @@ public class YangLinkerManager |
| 85 | for (YangFileInfo yangFileInfo : yangFileInfoSet) { | 115 | for (YangFileInfo yangFileInfo : yangFileInfoSet) { |
| 86 | YangNode yangNode = yangFileInfo.getRootNode(); | 116 | YangNode yangNode = yangFileInfo.getRootNode(); |
| 87 | if (yangNode instanceof YangReferenceResolver) { | 117 | if (yangNode instanceof YangReferenceResolver) { |
| 88 | - ((YangReferenceResolver) yangNode).addReferencesToImportList(yangFileInfoSet); | 118 | + try { |
| 119 | + ((YangReferenceResolver) yangNode).addReferencesToImportList(getYangNodeSet()); | ||
| 120 | + } catch (DataModelException e) { | ||
| 121 | + String errorInfo = "Error in file: " + yangFileInfo.getYangFileName() + " at line: " | ||
| 122 | + + e.getLineNumber() + " at position: " + e.getCharPositionInLine() + NEW_LINE | ||
| 123 | + + e.getMessage(); | ||
| 124 | + throw new LinkerException(errorInfo); | ||
| 125 | + } | ||
| 89 | } | 126 | } |
| 90 | } | 127 | } |
| 91 | } | 128 | } |
| ... | @@ -100,7 +137,14 @@ public class YangLinkerManager | ... | @@ -100,7 +137,14 @@ public class YangLinkerManager |
| 100 | for (YangFileInfo yangFileInfo : yangFileInfoSet) { | 137 | for (YangFileInfo yangFileInfo : yangFileInfoSet) { |
| 101 | YangNode yangNode = yangFileInfo.getRootNode(); | 138 | YangNode yangNode = yangFileInfo.getRootNode(); |
| 102 | if (yangNode instanceof YangReferenceResolver) { | 139 | if (yangNode instanceof YangReferenceResolver) { |
| 103 | - ((YangReferenceResolver) yangNode).addReferencesToIncludeList(yangFileInfoSet); | 140 | + try { |
| 141 | + ((YangReferenceResolver) yangNode).addReferencesToIncludeList(getYangNodeSet()); | ||
| 142 | + } catch (DataModelException e) { | ||
| 143 | + String errorInfo = "Error in file: " + yangFileInfo.getYangFileName() + " at line: " | ||
| 144 | + + e.getLineNumber() + " at position: " + e.getCharPositionInLine() + NEW_LINE | ||
| 145 | + + e.getMessage(); | ||
| 146 | + throw new LinkerException(errorInfo); | ||
| 147 | + } | ||
| 104 | } | 148 | } |
| 105 | } | 149 | } |
| 106 | } | 150 | } | ... | ... |
| ... | @@ -17,14 +17,14 @@ | ... | @@ -17,14 +17,14 @@ |
| 17 | package org.onosproject.yangutils.linker.impl; | 17 | package org.onosproject.yangutils.linker.impl; |
| 18 | 18 | ||
| 19 | import java.util.Stack; | 19 | import java.util.Stack; |
| 20 | - | ||
| 21 | -import org.onosproject.yangutils.datamodel.LocationInfo; | ||
| 22 | import org.onosproject.yangutils.datamodel.YangDataTypes; | 20 | import org.onosproject.yangutils.datamodel.YangDataTypes; |
| 23 | import org.onosproject.yangutils.datamodel.YangDerivedInfo; | 21 | import org.onosproject.yangutils.datamodel.YangDerivedInfo; |
| 24 | import org.onosproject.yangutils.datamodel.YangGrouping; | 22 | import org.onosproject.yangutils.datamodel.YangGrouping; |
| 25 | import org.onosproject.yangutils.datamodel.YangImport; | 23 | import org.onosproject.yangutils.datamodel.YangImport; |
| 26 | import org.onosproject.yangutils.datamodel.YangInclude; | 24 | import org.onosproject.yangutils.datamodel.YangInclude; |
| 27 | import org.onosproject.yangutils.datamodel.YangNode; | 25 | import org.onosproject.yangutils.datamodel.YangNode; |
| 26 | +import org.onosproject.yangutils.datamodel.YangReferenceResolver; | ||
| 27 | +import org.onosproject.yangutils.datamodel.YangResolutionInfo; | ||
| 28 | import org.onosproject.yangutils.datamodel.YangType; | 28 | import org.onosproject.yangutils.datamodel.YangType; |
| 29 | import org.onosproject.yangutils.datamodel.YangTypeDef; | 29 | import org.onosproject.yangutils.datamodel.YangTypeDef; |
| 30 | import org.onosproject.yangutils.datamodel.YangUses; | 30 | import org.onosproject.yangutils.datamodel.YangUses; |
| ... | @@ -32,7 +32,6 @@ import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | ... | @@ -32,7 +32,6 @@ import org.onosproject.yangutils.datamodel.exceptions.DataModelException; |
| 32 | import org.onosproject.yangutils.linker.Resolvable; | 32 | import org.onosproject.yangutils.linker.Resolvable; |
| 33 | import org.onosproject.yangutils.linker.ResolvableStatus; | 33 | import org.onosproject.yangutils.linker.ResolvableStatus; |
| 34 | import org.onosproject.yangutils.linker.YangLinkingPhase; | 34 | import org.onosproject.yangutils.linker.YangLinkingPhase; |
| 35 | -import org.onosproject.yangutils.linker.YangReferenceResolver; | ||
| 36 | 35 | ||
| 37 | import static org.onosproject.yangutils.linker.ResolvableStatus.INTER_FILE_LINKED; | 36 | import static org.onosproject.yangutils.linker.ResolvableStatus.INTER_FILE_LINKED; |
| 38 | import static org.onosproject.yangutils.linker.ResolvableStatus.INTRA_FILE_RESOLVED; | 37 | import static org.onosproject.yangutils.linker.ResolvableStatus.INTRA_FILE_RESOLVED; |
| ... | @@ -41,21 +40,22 @@ import static org.onosproject.yangutils.linker.ResolvableStatus.RESOLVED; | ... | @@ -41,21 +40,22 @@ import static org.onosproject.yangutils.linker.ResolvableStatus.RESOLVED; |
| 41 | import static org.onosproject.yangutils.linker.ResolvableStatus.UNRESOLVED; | 40 | import static org.onosproject.yangutils.linker.ResolvableStatus.UNRESOLVED; |
| 42 | import static org.onosproject.yangutils.linker.YangLinkingPhase.INTER_FILE; | 41 | import static org.onosproject.yangutils.linker.YangLinkingPhase.INTER_FILE; |
| 43 | import static org.onosproject.yangutils.linker.YangLinkingPhase.INTRA_FILE; | 42 | import static org.onosproject.yangutils.linker.YangLinkingPhase.INTRA_FILE; |
| 44 | -import static org.onosproject.yangutils.utils.UtilConstants.TYPEDEF_LINKER_ERROR; | ||
| 45 | import static org.onosproject.yangutils.utils.UtilConstants.GROUPING_LINKER_ERROR; | 43 | import static org.onosproject.yangutils.utils.UtilConstants.GROUPING_LINKER_ERROR; |
| 44 | +import static org.onosproject.yangutils.utils.UtilConstants.TYPEDEF_LINKER_ERROR; | ||
| 46 | 45 | ||
| 47 | /** | 46 | /** |
| 48 | - * Represents resolution object which will be resolved by linker. | 47 | + * Represents implementation of resolution object which will be resolved by |
| 48 | + * linker. | ||
| 49 | * | 49 | * |
| 50 | * @param <T> type of resolution entity uses / type | 50 | * @param <T> type of resolution entity uses / type |
| 51 | */ | 51 | */ |
| 52 | -public class YangResolutionInfo<T> | 52 | +public class YangResolutionInfoImpl<T> |
| 53 | - implements LocationInfo { | 53 | + implements YangResolutionInfo<T> { |
| 54 | 54 | ||
| 55 | /** | 55 | /** |
| 56 | * Information about the entity that needs to be resolved. | 56 | * Information about the entity that needs to be resolved. |
| 57 | */ | 57 | */ |
| 58 | - private YangEntityToResolveInfo<T> entityToResolveInfo; | 58 | + private YangEntityToResolveInfoImpl<T> entityToResolveInfo; |
| 59 | 59 | ||
| 60 | /** | 60 | /** |
| 61 | * Error line number. | 61 | * Error line number. |
| ... | @@ -77,14 +77,14 @@ public class YangResolutionInfo<T> | ... | @@ -77,14 +77,14 @@ public class YangResolutionInfo<T> |
| 77 | * Stack for type/uses is maintained for hierarchical references, this is | 77 | * Stack for type/uses is maintained for hierarchical references, this is |
| 78 | * used during resolution. | 78 | * used during resolution. |
| 79 | */ | 79 | */ |
| 80 | - private Stack<YangEntityToResolveInfo<T>> partialResolvedStack; | 80 | + private Stack<YangEntityToResolveInfoImpl<T>> partialResolvedStack; |
| 81 | 81 | ||
| 82 | /** | 82 | /** |
| 83 | * It is private to ensure the overloaded method be invoked to create an | 83 | * It is private to ensure the overloaded method be invoked to create an |
| 84 | * object. | 84 | * object. |
| 85 | */ | 85 | */ |
| 86 | @SuppressWarnings("unused") | 86 | @SuppressWarnings("unused") |
| 87 | - private YangResolutionInfo() { | 87 | + private YangResolutionInfoImpl() { |
| 88 | 88 | ||
| 89 | } | 89 | } |
| 90 | 90 | ||
| ... | @@ -96,8 +96,8 @@ public class YangResolutionInfo<T> | ... | @@ -96,8 +96,8 @@ public class YangResolutionInfo<T> |
| 96 | * @param lineNumber error line number | 96 | * @param lineNumber error line number |
| 97 | * @param charPositionInLine error character position in line | 97 | * @param charPositionInLine error character position in line |
| 98 | */ | 98 | */ |
| 99 | - public YangResolutionInfo(T dataNode, YangNode holderNode, int lineNumber, int charPositionInLine) { | 99 | + public YangResolutionInfoImpl(T dataNode, YangNode holderNode, int lineNumber, int charPositionInLine) { |
| 100 | - setEntityToResolveInfo(new YangEntityToResolveInfo<>()); | 100 | + setEntityToResolveInfo(new YangEntityToResolveInfoImpl<>()); |
| 101 | getEntityToResolveInfo().setEntityToResolve(dataNode); | 101 | getEntityToResolveInfo().setEntityToResolve(dataNode); |
| 102 | getEntityToResolveInfo().setHolderOfEntityToResolve(holderNode); | 102 | getEntityToResolveInfo().setHolderOfEntityToResolve(holderNode); |
| 103 | this.setLineNumber(lineNumber); | 103 | this.setLineNumber(lineNumber); |
| ... | @@ -105,13 +105,7 @@ public class YangResolutionInfo<T> | ... | @@ -105,13 +105,7 @@ public class YangResolutionInfo<T> |
| 105 | setPartialResolvedStack(new Stack<>()); | 105 | setPartialResolvedStack(new Stack<>()); |
| 106 | } | 106 | } |
| 107 | 107 | ||
| 108 | - /** | 108 | + @Override |
| 109 | - * Resolves linking with all the ancestors node for a resolution info. | ||
| 110 | - * | ||
| 111 | - * @param dataModelRootNode module/sub-module node | ||
| 112 | - * @throws DataModelException DataModelException a violation of data model | ||
| 113 | - * rules | ||
| 114 | - */ | ||
| 115 | public void resolveLinkingForResolutionInfo(YangReferenceResolver dataModelRootNode) | 109 | public void resolveLinkingForResolutionInfo(YangReferenceResolver dataModelRootNode) |
| 116 | throws DataModelException { | 110 | throws DataModelException { |
| 117 | 111 | ||
| ... | @@ -431,11 +425,12 @@ public class YangResolutionInfo<T> | ... | @@ -431,11 +425,12 @@ public class YangResolutionInfo<T> |
| 431 | if (((YangTypeDef) referredNode).getTypeDefBaseType().getDataType() | 425 | if (((YangTypeDef) referredNode).getTypeDefBaseType().getDataType() |
| 432 | == YangDataTypes.DERIVED) { | 426 | == YangDataTypes.DERIVED) { |
| 433 | 427 | ||
| 434 | - YangEntityToResolveInfo<YangType<?>> unResolvedEntityInfo = new YangEntityToResolveInfo<>(); | 428 | + YangEntityToResolveInfoImpl<YangType<?>> unResolvedEntityInfo |
| 429 | + = new YangEntityToResolveInfoImpl<>(); | ||
| 435 | unResolvedEntityInfo.setEntityToResolve(((YangTypeDef) referredNode) | 430 | unResolvedEntityInfo.setEntityToResolve(((YangTypeDef) referredNode) |
| 436 | .getTypeDefBaseType()); | 431 | .getTypeDefBaseType()); |
| 437 | unResolvedEntityInfo.setHolderOfEntityToResolve(referredNode); | 432 | unResolvedEntityInfo.setHolderOfEntityToResolve(referredNode); |
| 438 | - addInPartialResolvedStack((YangEntityToResolveInfo<T>) unResolvedEntityInfo); | 433 | + addInPartialResolvedStack((YangEntityToResolveInfoImpl<T>) unResolvedEntityInfo); |
| 439 | } | 434 | } |
| 440 | 435 | ||
| 441 | } else if (getCurrentEntityToResolveFromStack() instanceof YangUses) { | 436 | } else if (getCurrentEntityToResolveFromStack() instanceof YangUses) { |
| ... | @@ -462,10 +457,10 @@ public class YangResolutionInfo<T> | ... | @@ -462,10 +457,10 @@ public class YangResolutionInfo<T> |
| 462 | YangNode curNode = node.getChild(); | 457 | YangNode curNode = node.getChild(); |
| 463 | while (curNode != null) { | 458 | while (curNode != null) { |
| 464 | if (curNode instanceof YangUses) { | 459 | if (curNode instanceof YangUses) { |
| 465 | - YangEntityToResolveInfo<YangUses> unResolvedEntityInfo = new YangEntityToResolveInfo<>(); | 460 | + YangEntityToResolveInfoImpl<YangUses> unResolvedEntityInfo = new YangEntityToResolveInfoImpl<>(); |
| 466 | unResolvedEntityInfo.setEntityToResolve((YangUses) curNode); | 461 | unResolvedEntityInfo.setEntityToResolve((YangUses) curNode); |
| 467 | unResolvedEntityInfo.setHolderOfEntityToResolve(node); | 462 | unResolvedEntityInfo.setHolderOfEntityToResolve(node); |
| 468 | - addInPartialResolvedStack((YangEntityToResolveInfo<T>) unResolvedEntityInfo); | 463 | + addInPartialResolvedStack((YangEntityToResolveInfoImpl<T>) unResolvedEntityInfo); |
| 469 | 464 | ||
| 470 | } | 465 | } |
| 471 | curNode = curNode.getNextSibling(); | 466 | curNode = curNode.getNextSibling(); |
| ... | @@ -478,7 +473,7 @@ public class YangResolutionInfo<T> | ... | @@ -478,7 +473,7 @@ public class YangResolutionInfo<T> |
| 478 | * | 473 | * |
| 479 | * @return partial resolved YANG construct stack | 474 | * @return partial resolved YANG construct stack |
| 480 | */ | 475 | */ |
| 481 | - private Stack<YangEntityToResolveInfo<T>> getPartialResolvedStack() { | 476 | + private Stack<YangEntityToResolveInfoImpl<T>> getPartialResolvedStack() { |
| 482 | return partialResolvedStack; | 477 | return partialResolvedStack; |
| 483 | } | 478 | } |
| 484 | 479 | ||
| ... | @@ -487,7 +482,7 @@ public class YangResolutionInfo<T> | ... | @@ -487,7 +482,7 @@ public class YangResolutionInfo<T> |
| 487 | * | 482 | * |
| 488 | * @param partialResolvedStack partial resolved YANG construct stack | 483 | * @param partialResolvedStack partial resolved YANG construct stack |
| 489 | */ | 484 | */ |
| 490 | - private void setPartialResolvedStack(Stack<YangEntityToResolveInfo<T>> partialResolvedStack) { | 485 | + private void setPartialResolvedStack(Stack<YangEntityToResolveInfoImpl<T>> partialResolvedStack) { |
| 491 | this.partialResolvedStack = partialResolvedStack; | 486 | this.partialResolvedStack = partialResolvedStack; |
| 492 | } | 487 | } |
| 493 | 488 | ||
| ... | @@ -496,7 +491,7 @@ public class YangResolutionInfo<T> | ... | @@ -496,7 +491,7 @@ public class YangResolutionInfo<T> |
| 496 | * | 491 | * |
| 497 | * @param partialResolvedInfo partial resolved YANG construct stack | 492 | * @param partialResolvedInfo partial resolved YANG construct stack |
| 498 | */ | 493 | */ |
| 499 | - private void addInPartialResolvedStack(YangEntityToResolveInfo<T> partialResolvedInfo) { | 494 | + private void addInPartialResolvedStack(YangEntityToResolveInfoImpl<T> partialResolvedInfo) { |
| 500 | getPartialResolvedStack().push(partialResolvedInfo); | 495 | getPartialResolvedStack().push(partialResolvedInfo); |
| 501 | } | 496 | } |
| 502 | 497 | ||
| ... | @@ -510,12 +505,8 @@ public class YangResolutionInfo<T> | ... | @@ -510,12 +505,8 @@ public class YangResolutionInfo<T> |
| 510 | return getPartialResolvedStack().peek().getEntityToResolve(); | 505 | return getPartialResolvedStack().peek().getEntityToResolve(); |
| 511 | } | 506 | } |
| 512 | 507 | ||
| 513 | - /** | 508 | + @Override |
| 514 | - * Retrieves information about the entity that needs to be resolved. | 509 | + public YangEntityToResolveInfoImpl<T> getEntityToResolveInfo() { |
| 515 | - * | ||
| 516 | - * @return information about the entity that needs to be resolved | ||
| 517 | - */ | ||
| 518 | - public YangEntityToResolveInfo<T> getEntityToResolveInfo() { | ||
| 519 | return entityToResolveInfo; | 510 | return entityToResolveInfo; |
| 520 | } | 511 | } |
| 521 | 512 | ||
| ... | @@ -525,7 +516,7 @@ public class YangResolutionInfo<T> | ... | @@ -525,7 +516,7 @@ public class YangResolutionInfo<T> |
| 525 | * @param entityToResolveInfo information about the entity that needs to be | 516 | * @param entityToResolveInfo information about the entity that needs to be |
| 526 | * resolved | 517 | * resolved |
| 527 | */ | 518 | */ |
| 528 | - private void setEntityToResolveInfo(YangEntityToResolveInfo<T> entityToResolveInfo) { | 519 | + private void setEntityToResolveInfo(YangEntityToResolveInfoImpl<T> entityToResolveInfo) { |
| 529 | this.entityToResolveInfo = entityToResolveInfo; | 520 | this.entityToResolveInfo = entityToResolveInfo; |
| 530 | } | 521 | } |
| 531 | 522 | ||
| ... | @@ -569,13 +560,7 @@ public class YangResolutionInfo<T> | ... | @@ -569,13 +560,7 @@ public class YangResolutionInfo<T> |
| 569 | this.curReferenceResolver = curReferenceResolver; | 560 | this.curReferenceResolver = curReferenceResolver; |
| 570 | } | 561 | } |
| 571 | 562 | ||
| 572 | - /** | 563 | + @Override |
| 573 | - * Performs inter file linking of uses/type referring to typedef/grouping | ||
| 574 | - * of other YANG file. | ||
| 575 | - * | ||
| 576 | - * @param dataModelRootNode module/sub-module node | ||
| 577 | - * @throws DataModelException a violation in data model rule | ||
| 578 | - */ | ||
| 579 | public void linkInterFile(YangReferenceResolver dataModelRootNode) | 564 | public void linkInterFile(YangReferenceResolver dataModelRootNode) |
| 580 | throws DataModelException { | 565 | throws DataModelException { |
| 581 | 566 | ... | ... |
| ... | @@ -20,6 +20,7 @@ import org.onosproject.yangutils.datamodel.YangDerivedInfo; | ... | @@ -20,6 +20,7 @@ import org.onosproject.yangutils.datamodel.YangDerivedInfo; |
| 20 | import org.onosproject.yangutils.datamodel.YangRangeRestriction; | 20 | import org.onosproject.yangutils.datamodel.YangRangeRestriction; |
| 21 | import org.onosproject.yangutils.datamodel.YangStringRestriction; | 21 | import org.onosproject.yangutils.datamodel.YangStringRestriction; |
| 22 | import org.onosproject.yangutils.datamodel.YangType; | 22 | import org.onosproject.yangutils.datamodel.YangType; |
| 23 | +import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | ||
| 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; |
| ... | @@ -29,6 +30,7 @@ import org.onosproject.yangutils.utils.YangConstructType; | ... | @@ -29,6 +30,7 @@ import org.onosproject.yangutils.utils.YangConstructType; |
| 29 | import static org.onosproject.yangutils.datamodel.YangDataTypes.BINARY; | 30 | import static org.onosproject.yangutils.datamodel.YangDataTypes.BINARY; |
| 30 | import static org.onosproject.yangutils.datamodel.YangDataTypes.DERIVED; | 31 | import static org.onosproject.yangutils.datamodel.YangDataTypes.DERIVED; |
| 31 | import static org.onosproject.yangutils.datamodel.YangDataTypes.STRING; | 32 | import static org.onosproject.yangutils.datamodel.YangDataTypes.STRING; |
| 33 | +import static org.onosproject.yangutils.datamodel.utils.RestrictionResolver.processLengthRestriction; | ||
| 32 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY; | 34 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY; |
| 33 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.EXIT; | 35 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.EXIT; |
| 34 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage; | 36 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage; |
| ... | @@ -36,7 +38,6 @@ import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorTyp | ... | @@ -36,7 +38,6 @@ import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorTyp |
| 36 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_CURRENT_HOLDER; | 38 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_CURRENT_HOLDER; |
| 37 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER; | 39 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER; |
| 38 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty; | 40 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty; |
| 39 | -import static org.onosproject.yangutils.utils.RestrictionResolver.processLengthRestriction; | ||
| 40 | import static org.onosproject.yangutils.utils.YangConstructType.LENGTH_DATA; | 41 | import static org.onosproject.yangutils.utils.YangConstructType.LENGTH_DATA; |
| 41 | import static org.onosproject.yangutils.utils.YangConstructType.TYPE_DATA; | 42 | import static org.onosproject.yangutils.utils.YangConstructType.TYPE_DATA; |
| 42 | 43 | ||
| ... | @@ -125,8 +126,16 @@ public final class LengthRestrictionListener { | ... | @@ -125,8 +126,16 @@ public final class LengthRestrictionListener { |
| 125 | throw parserException; | 126 | throw parserException; |
| 126 | } | 127 | } |
| 127 | 128 | ||
| 128 | - YangRangeRestriction lengthRestriction = processLengthRestriction(null, ctx.getStart().getLine(), | 129 | + YangRangeRestriction lengthRestriction = null; |
| 129 | - ctx.getStart().getCharPositionInLine(), false, ctx.length().getText()); | 130 | + try { |
| 131 | + lengthRestriction = processLengthRestriction(null, ctx.getStart().getLine(), | ||
| 132 | + ctx.getStart().getCharPositionInLine(), false, ctx.length().getText()); | ||
| 133 | + } catch (DataModelException e) { | ||
| 134 | + ParserException parserException = new ParserException(e.getMessage()); | ||
| 135 | + parserException.setCharPosition(e.getCharPositionInLine()); | ||
| 136 | + parserException.setLine(e.getLineNumber()); | ||
| 137 | + throw parserException; | ||
| 138 | + } | ||
| 130 | 139 | ||
| 131 | if (type.getDataType() == STRING) { | 140 | if (type.getDataType() == STRING) { |
| 132 | YangStringRestriction stringRestriction = (YangStringRestriction) type.getDataTypeExtendedInfo(); | 141 | YangStringRestriction stringRestriction = (YangStringRestriction) type.getDataTypeExtendedInfo(); |
| ... | @@ -151,7 +160,7 @@ public final class LengthRestrictionListener { | ... | @@ -151,7 +160,7 @@ public final class LengthRestrictionListener { |
| 151 | * @param ctx context object of the grammar rule | 160 | * @param ctx context object of the grammar rule |
| 152 | */ | 161 | */ |
| 153 | public static void processLengthRestrictionExit(TreeWalkListener listener, | 162 | public static void processLengthRestrictionExit(TreeWalkListener listener, |
| 154 | - GeneratedYangParser.LengthStatementContext ctx) { | 163 | + GeneratedYangParser.LengthStatementContext ctx) { |
| 155 | 164 | ||
| 156 | // Check for stack to be non empty. | 165 | // Check for stack to be non empty. |
| 157 | checkStackIsNotEmpty(listener, MISSING_HOLDER, LENGTH_DATA, ctx.length().getText(), EXIT); | 166 | checkStackIsNotEmpty(listener, MISSING_HOLDER, LENGTH_DATA, ctx.length().getText(), EXIT); | ... | ... |
| ... | @@ -16,11 +16,12 @@ | ... | @@ -16,11 +16,12 @@ |
| 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.ResolvableType; | ||
| 19 | import org.onosproject.yangutils.datamodel.YangModule; | 20 | import org.onosproject.yangutils.datamodel.YangModule; |
| 21 | +import org.onosproject.yangutils.datamodel.YangReferenceResolver; | ||
| 20 | import org.onosproject.yangutils.datamodel.YangRevision; | 22 | import org.onosproject.yangutils.datamodel.YangRevision; |
| 21 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | 23 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; |
| 22 | -import org.onosproject.yangutils.linker.ResolvableType; | 24 | +import org.onosproject.yangutils.linker.exceptions.LinkerException; |
| 23 | -import org.onosproject.yangutils.linker.YangReferenceResolver; | ||
| 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; |
| ... | @@ -29,8 +30,7 @@ import static org.onosproject.yangutils.datamodel.utils.GeneratedLanguage.JAVA_G | ... | @@ -29,8 +30,7 @@ import static org.onosproject.yangutils.datamodel.utils.GeneratedLanguage.JAVA_G |
| 29 | import static org.onosproject.yangutils.datamodel.utils.YangDataModelFactory.getYangModuleNode; | 30 | import static org.onosproject.yangutils.datamodel.utils.YangDataModelFactory.getYangModuleNode; |
| 30 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY; | 31 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY; |
| 31 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.EXIT; | 32 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.EXIT; |
| 32 | -import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction | 33 | +import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage; |
| 33 | - .constructListenerErrorMessage; | ||
| 34 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_HOLDER; | 34 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_HOLDER; |
| 35 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_CURRENT_HOLDER; | 35 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_CURRENT_HOLDER; |
| 36 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER; | 36 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER; |
| ... | @@ -75,7 +75,7 @@ public final class ModuleListener { | ... | @@ -75,7 +75,7 @@ public final class ModuleListener { |
| 75 | * (module), perform validations and update the data model tree. | 75 | * (module), perform validations and update the data model tree. |
| 76 | * | 76 | * |
| 77 | * @param listener Listener's object | 77 | * @param listener Listener's object |
| 78 | - * @param ctx context object of the grammar rule | 78 | + * @param ctx context object of the grammar rule |
| 79 | */ | 79 | */ |
| 80 | public static void processModuleEntry(TreeWalkListener listener, GeneratedYangParser.ModuleStatementContext ctx) { | 80 | public static void processModuleEntry(TreeWalkListener listener, GeneratedYangParser.ModuleStatementContext ctx) { |
| 81 | 81 | ||
| ... | @@ -106,7 +106,7 @@ public final class ModuleListener { | ... | @@ -106,7 +106,7 @@ public final class ModuleListener { |
| 106 | * validations and update the data model tree. | 106 | * validations and update the data model tree. |
| 107 | * | 107 | * |
| 108 | * @param listener Listener's object | 108 | * @param listener Listener's object |
| 109 | - * @param ctx context object of the grammar rule | 109 | + * @param ctx context object of the grammar rule |
| 110 | */ | 110 | */ |
| 111 | public static void processModuleExit(TreeWalkListener listener, GeneratedYangParser.ModuleStatementContext ctx) { | 111 | public static void processModuleExit(TreeWalkListener listener, GeneratedYangParser.ModuleStatementContext ctx) { |
| 112 | 112 | ||
| ... | @@ -123,10 +123,10 @@ public final class ModuleListener { | ... | @@ -123,10 +123,10 @@ public final class ModuleListener { |
| 123 | ((YangReferenceResolver) listener.getParsedDataStack() | 123 | ((YangReferenceResolver) listener.getParsedDataStack() |
| 124 | .peek()).resolveSelfFileLinking(ResolvableType.YANG_DERIVED_DATA_TYPE); | 124 | .peek()).resolveSelfFileLinking(ResolvableType.YANG_DERIVED_DATA_TYPE); |
| 125 | } catch (DataModelException e) { | 125 | } catch (DataModelException e) { |
| 126 | - ParserException parserException = new ParserException(e.getMessage()); | 126 | + LinkerException linkerException = new LinkerException(e.getMessage()); |
| 127 | - parserException.setLine(e.getLineNumber()); | 127 | + linkerException.setLine(e.getLineNumber()); |
| 128 | - parserException.setCharPosition(e.getCharPositionInLine()); | 128 | + linkerException.setCharPosition(e.getCharPositionInLine()); |
| 129 | - throw parserException; | 129 | + throw linkerException; |
| 130 | } | 130 | } |
| 131 | } | 131 | } |
| 132 | } | 132 | } | ... | ... |
| ... | @@ -19,12 +19,15 @@ package org.onosproject.yangutils.parser.impl.listeners; | ... | @@ -19,12 +19,15 @@ package org.onosproject.yangutils.parser.impl.listeners; |
| 19 | import org.onosproject.yangutils.datamodel.YangDerivedInfo; | 19 | import org.onosproject.yangutils.datamodel.YangDerivedInfo; |
| 20 | import org.onosproject.yangutils.datamodel.YangRangeRestriction; | 20 | import org.onosproject.yangutils.datamodel.YangRangeRestriction; |
| 21 | import org.onosproject.yangutils.datamodel.YangType; | 21 | import org.onosproject.yangutils.datamodel.YangType; |
| 22 | +import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | ||
| 22 | import org.onosproject.yangutils.parser.Parsable; | 23 | import org.onosproject.yangutils.parser.Parsable; |
| 23 | import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser; | 24 | import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser; |
| 24 | import org.onosproject.yangutils.parser.exceptions.ParserException; | 25 | import org.onosproject.yangutils.parser.exceptions.ParserException; |
| 25 | import org.onosproject.yangutils.parser.impl.TreeWalkListener; | 26 | import org.onosproject.yangutils.parser.impl.TreeWalkListener; |
| 26 | 27 | ||
| 27 | import static org.onosproject.yangutils.datamodel.YangDataTypes.DERIVED; | 28 | import static org.onosproject.yangutils.datamodel.YangDataTypes.DERIVED; |
| 29 | +import static org.onosproject.yangutils.datamodel.utils.RestrictionResolver.isOfRangeRestrictedType; | ||
| 30 | +import static org.onosproject.yangutils.datamodel.utils.RestrictionResolver.processRangeRestriction; | ||
| 28 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY; | 31 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY; |
| 29 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.EXIT; | 32 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.EXIT; |
| 30 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage; | 33 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage; |
| ... | @@ -32,8 +35,6 @@ import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorTyp | ... | @@ -32,8 +35,6 @@ import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorTyp |
| 32 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_CURRENT_HOLDER; | 35 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_CURRENT_HOLDER; |
| 33 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER; | 36 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER; |
| 34 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty; | 37 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty; |
| 35 | -import static org.onosproject.yangutils.utils.RestrictionResolver.isOfRangeRestrictedType; | ||
| 36 | -import static org.onosproject.yangutils.utils.RestrictionResolver.processRangeRestriction; | ||
| 37 | import static org.onosproject.yangutils.utils.YangConstructType.RANGE_DATA; | 38 | import static org.onosproject.yangutils.utils.YangConstructType.RANGE_DATA; |
| 38 | import static org.onosproject.yangutils.utils.YangConstructType.TYPE_DATA; | 39 | import static org.onosproject.yangutils.utils.YangConstructType.TYPE_DATA; |
| 39 | 40 | ||
| ... | @@ -95,8 +96,8 @@ public final class RangeRestrictionListener { | ... | @@ -95,8 +96,8 @@ public final class RangeRestrictionListener { |
| 95 | * Sets the range restriction to type. | 96 | * Sets the range restriction to type. |
| 96 | * | 97 | * |
| 97 | * @param listener listener's object | 98 | * @param listener listener's object |
| 98 | - * @param type YANG type for which range restriction to be added | 99 | + * @param type YANG type for which range restriction to be added |
| 99 | - * @param ctx context object of the grammar rule | 100 | + * @param ctx context object of the grammar rule |
| 100 | */ | 101 | */ |
| 101 | private static void setRangeRestriction(TreeWalkListener listener, YangType type, | 102 | private static void setRangeRestriction(TreeWalkListener listener, YangType type, |
| 102 | GeneratedYangParser.RangeStatementContext ctx) { | 103 | GeneratedYangParser.RangeStatementContext ctx) { |
| ... | @@ -119,8 +120,16 @@ public final class RangeRestrictionListener { | ... | @@ -119,8 +120,16 @@ public final class RangeRestrictionListener { |
| 119 | throw parserException; | 120 | throw parserException; |
| 120 | } | 121 | } |
| 121 | 122 | ||
| 122 | - YangRangeRestriction rangeRestriction = processRangeRestriction(null, ctx.getStart().getLine(), | 123 | + YangRangeRestriction rangeRestriction = null; |
| 123 | - ctx.getStart().getCharPositionInLine(), false, ctx.range().getText(), type.getDataType()); | 124 | + try { |
| 125 | + rangeRestriction = processRangeRestriction(null, ctx.getStart().getLine(), | ||
| 126 | + ctx.getStart().getCharPositionInLine(), false, ctx.range().getText(), type.getDataType()); | ||
| 127 | + } catch (DataModelException e) { | ||
| 128 | + ParserException parserException = new ParserException(e.getMessage()); | ||
| 129 | + parserException.setCharPosition(e.getCharPositionInLine()); | ||
| 130 | + parserException.setLine(e.getLineNumber()); | ||
| 131 | + throw parserException; | ||
| 132 | + } | ||
| 124 | 133 | ||
| 125 | if (rangeRestriction != null) { | 134 | if (rangeRestriction != null) { |
| 126 | type.setDataTypeExtendedInfo(rangeRestriction); | 135 | type.setDataTypeExtendedInfo(rangeRestriction); |
| ... | @@ -133,10 +142,10 @@ public final class RangeRestrictionListener { | ... | @@ -133,10 +142,10 @@ public final class RangeRestrictionListener { |
| 133 | * It is called when parser exits from grammar rule (range). | 142 | * It is called when parser exits from grammar rule (range). |
| 134 | * | 143 | * |
| 135 | * @param listener listener's object | 144 | * @param listener listener's object |
| 136 | - * @param ctx context object of the grammar rule | 145 | + * @param ctx context object of the grammar rule |
| 137 | */ | 146 | */ |
| 138 | public static void processRangeRestrictionExit(TreeWalkListener listener, | 147 | public static void processRangeRestrictionExit(TreeWalkListener listener, |
| 139 | - GeneratedYangParser.RangeStatementContext ctx) { | 148 | + GeneratedYangParser.RangeStatementContext ctx) { |
| 140 | 149 | ||
| 141 | // Check for stack to be non empty. | 150 | // Check for stack to be non empty. |
| 142 | checkStackIsNotEmpty(listener, MISSING_HOLDER, RANGE_DATA, ctx.range().getText(), EXIT); | 151 | checkStackIsNotEmpty(listener, MISSING_HOLDER, RANGE_DATA, ctx.range().getText(), EXIT); |
| ... | @@ -152,4 +161,4 @@ public final class RangeRestrictionListener { | ... | @@ -152,4 +161,4 @@ public final class RangeRestrictionListener { |
| 152 | ctx.range().getText(), EXIT)); | 161 | ctx.range().getText(), EXIT)); |
| 153 | } | 162 | } |
| 154 | } | 163 | } |
| 155 | -} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 164 | +} | ... | ... |
utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/SubModuleListener.java
| ... | @@ -16,11 +16,12 @@ | ... | @@ -16,11 +16,12 @@ |
| 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.ResolvableType; | ||
| 20 | +import org.onosproject.yangutils.datamodel.YangReferenceResolver; | ||
| 19 | import org.onosproject.yangutils.datamodel.YangRevision; | 21 | import org.onosproject.yangutils.datamodel.YangRevision; |
| 20 | import org.onosproject.yangutils.datamodel.YangSubModule; | 22 | import org.onosproject.yangutils.datamodel.YangSubModule; |
| 21 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | 23 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; |
| 22 | -import org.onosproject.yangutils.linker.ResolvableType; | 24 | +import org.onosproject.yangutils.linker.exceptions.LinkerException; |
| 23 | -import org.onosproject.yangutils.linker.YangReferenceResolver; | ||
| 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; |
| ... | @@ -29,8 +30,7 @@ import static org.onosproject.yangutils.datamodel.utils.GeneratedLanguage.JAVA_G | ... | @@ -29,8 +30,7 @@ import static org.onosproject.yangutils.datamodel.utils.GeneratedLanguage.JAVA_G |
| 29 | import static org.onosproject.yangutils.datamodel.utils.YangDataModelFactory.getYangSubModuleNode; | 30 | import static org.onosproject.yangutils.datamodel.utils.YangDataModelFactory.getYangSubModuleNode; |
| 30 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY; | 31 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY; |
| 31 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.EXIT; | 32 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.EXIT; |
| 32 | -import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction | 33 | +import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage; |
| 33 | - .constructListenerErrorMessage; | ||
| 34 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_HOLDER; | 34 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_HOLDER; |
| 35 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_CURRENT_HOLDER; | 35 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_CURRENT_HOLDER; |
| 36 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER; | 36 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER; |
| ... | @@ -76,10 +76,10 @@ public final class SubModuleListener { | ... | @@ -76,10 +76,10 @@ public final class SubModuleListener { |
| 76 | * module), perform validations and update the data model tree. | 76 | * module), perform validations and update the data model tree. |
| 77 | * | 77 | * |
| 78 | * @param listener Listener's object | 78 | * @param listener Listener's object |
| 79 | - * @param ctx context object of the grammar rule | 79 | + * @param ctx context object of the grammar rule |
| 80 | */ | 80 | */ |
| 81 | public static void processSubModuleEntry(TreeWalkListener listener, | 81 | public static void processSubModuleEntry(TreeWalkListener listener, |
| 82 | - GeneratedYangParser.SubModuleStatementContext ctx) { | 82 | + GeneratedYangParser.SubModuleStatementContext ctx) { |
| 83 | 83 | ||
| 84 | // Check if stack is empty. | 84 | // Check if stack is empty. |
| 85 | checkStackIsEmpty(listener, INVALID_HOLDER, SUB_MODULE_DATA, ctx.identifier().getText(), | 85 | checkStackIsEmpty(listener, INVALID_HOLDER, SUB_MODULE_DATA, ctx.identifier().getText(), |
| ... | @@ -109,10 +109,10 @@ public final class SubModuleListener { | ... | @@ -109,10 +109,10 @@ public final class SubModuleListener { |
| 109 | * validations and update the data model tree. | 109 | * validations and update the data model tree. |
| 110 | * | 110 | * |
| 111 | * @param listener Listener's object | 111 | * @param listener Listener's object |
| 112 | - * @param ctx context object of the grammar rule | 112 | + * @param ctx context object of the grammar rule |
| 113 | */ | 113 | */ |
| 114 | public static void processSubModuleExit(TreeWalkListener listener, | 114 | public static void processSubModuleExit(TreeWalkListener listener, |
| 115 | - GeneratedYangParser.SubModuleStatementContext ctx) { | 115 | + GeneratedYangParser.SubModuleStatementContext ctx) { |
| 116 | 116 | ||
| 117 | // Check for stack to be non empty. | 117 | // Check for stack to be non empty. |
| 118 | checkStackIsNotEmpty(listener, MISSING_HOLDER, SUB_MODULE_DATA, ctx.identifier().getText(), | 118 | checkStackIsNotEmpty(listener, MISSING_HOLDER, SUB_MODULE_DATA, ctx.identifier().getText(), |
| ... | @@ -128,10 +128,10 @@ public final class SubModuleListener { | ... | @@ -128,10 +128,10 @@ public final class SubModuleListener { |
| 128 | ((YangReferenceResolver) listener.getParsedDataStack().peek()) | 128 | ((YangReferenceResolver) listener.getParsedDataStack().peek()) |
| 129 | .resolveSelfFileLinking(ResolvableType.YANG_DERIVED_DATA_TYPE); | 129 | .resolveSelfFileLinking(ResolvableType.YANG_DERIVED_DATA_TYPE); |
| 130 | } catch (DataModelException e) { | 130 | } catch (DataModelException e) { |
| 131 | - ParserException parserException = new ParserException(e.getMessage()); | 131 | + LinkerException linkerException = new LinkerException(e.getMessage()); |
| 132 | - parserException.setLine(e.getLineNumber()); | 132 | + linkerException.setLine(e.getLineNumber()); |
| 133 | - parserException.setCharPosition(e.getCharPositionInLine()); | 133 | + linkerException.setCharPosition(e.getCharPositionInLine()); |
| 134 | - throw parserException; | 134 | + throw linkerException; |
| 135 | } | 135 | } |
| 136 | } | 136 | } |
| 137 | } | 137 | } | ... | ... |
| ... | @@ -26,7 +26,7 @@ import org.onosproject.yangutils.datamodel.YangType; | ... | @@ -26,7 +26,7 @@ import org.onosproject.yangutils.datamodel.YangType; |
| 26 | import org.onosproject.yangutils.datamodel.YangTypeDef; | 26 | import org.onosproject.yangutils.datamodel.YangTypeDef; |
| 27 | import org.onosproject.yangutils.datamodel.YangUnion; | 27 | import org.onosproject.yangutils.datamodel.YangUnion; |
| 28 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | 28 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; |
| 29 | -import org.onosproject.yangutils.linker.impl.YangResolutionInfo; | 29 | +import org.onosproject.yangutils.linker.impl.YangResolutionInfoImpl; |
| 30 | import org.onosproject.yangutils.parser.Parsable; | 30 | import org.onosproject.yangutils.parser.Parsable; |
| 31 | import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser; | 31 | import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser; |
| 32 | import org.onosproject.yangutils.parser.exceptions.ParserException; | 32 | import org.onosproject.yangutils.parser.exceptions.ParserException; |
| ... | @@ -131,7 +131,7 @@ public final class TypeListener { | ... | @@ -131,7 +131,7 @@ public final class TypeListener { |
| 131 | type.setResolvableStatus(UNRESOLVED); | 131 | type.setResolvableStatus(UNRESOLVED); |
| 132 | 132 | ||
| 133 | // Add resolution information to the list | 133 | // Add resolution information to the list |
| 134 | - YangResolutionInfo resolutionInfo = new YangResolutionInfo<YangType>(type, | 134 | + YangResolutionInfoImpl resolutionInfo = new YangResolutionInfoImpl<YangType>(type, |
| 135 | (YangNode) parentNodeOfLeaf, errorLine, errorPosition); | 135 | (YangNode) parentNodeOfLeaf, errorLine, errorPosition); |
| 136 | addToResolutionList(resolutionInfo, ctx); | 136 | addToResolutionList(resolutionInfo, ctx); |
| 137 | } | 137 | } |
| ... | @@ -161,8 +161,8 @@ public final class TypeListener { | ... | @@ -161,8 +161,8 @@ public final class TypeListener { |
| 161 | ((YangType<YangDerivedInfo>) type).setDataTypeExtendedInfo(yangDerivedInfo); | 161 | ((YangType<YangDerivedInfo>) type).setDataTypeExtendedInfo(yangDerivedInfo); |
| 162 | 162 | ||
| 163 | // Add resolution information to the list | 163 | // Add resolution information to the list |
| 164 | - YangResolutionInfo resolutionInfo = | 164 | + YangResolutionInfoImpl resolutionInfo = |
| 165 | - new YangResolutionInfo<YangType>(type, (YangNode) parentNodeOfLeafList, errorLine, | 165 | + new YangResolutionInfoImpl<YangType>(type, (YangNode) parentNodeOfLeafList, errorLine, |
| 166 | errorPosition); | 166 | errorPosition); |
| 167 | addToResolutionList(resolutionInfo, ctx); | 167 | addToResolutionList(resolutionInfo, ctx); |
| 168 | } | 168 | } |
| ... | @@ -191,8 +191,8 @@ public final class TypeListener { | ... | @@ -191,8 +191,8 @@ public final class TypeListener { |
| 191 | type.setResolvableStatus(UNRESOLVED); | 191 | type.setResolvableStatus(UNRESOLVED); |
| 192 | 192 | ||
| 193 | // Add resolution information to the list | 193 | // Add resolution information to the list |
| 194 | - YangResolutionInfo resolutionInfo = | 194 | + YangResolutionInfoImpl resolutionInfo = |
| 195 | - new YangResolutionInfo<YangType>(type, unionNode, errorLine, errorPosition); | 195 | + new YangResolutionInfoImpl<YangType>(type, unionNode, errorLine, errorPosition); |
| 196 | addToResolutionList(resolutionInfo, ctx); | 196 | addToResolutionList(resolutionInfo, ctx); |
| 197 | } | 197 | } |
| 198 | 198 | ||
| ... | @@ -214,8 +214,8 @@ public final class TypeListener { | ... | @@ -214,8 +214,8 @@ public final class TypeListener { |
| 214 | type.setResolvableStatus(UNRESOLVED); | 214 | type.setResolvableStatus(UNRESOLVED); |
| 215 | 215 | ||
| 216 | // Add resolution information to the list | 216 | // Add resolution information to the list |
| 217 | - YangResolutionInfo resolutionInfo = | 217 | + YangResolutionInfoImpl resolutionInfo = |
| 218 | - new YangResolutionInfo<YangType>(type, typeDef, errorLine, errorPosition); | 218 | + new YangResolutionInfoImpl<YangType>(type, typeDef, errorLine, errorPosition); |
| 219 | addToResolutionList(resolutionInfo, ctx); | 219 | addToResolutionList(resolutionInfo, ctx); |
| 220 | } | 220 | } |
| 221 | break; | 221 | break; |
| ... | @@ -256,7 +256,7 @@ public final class TypeListener { | ... | @@ -256,7 +256,7 @@ public final class TypeListener { |
| 256 | * @param resolutionInfo resolution information | 256 | * @param resolutionInfo resolution information |
| 257 | * @param ctx context object of the grammar rule | 257 | * @param ctx context object of the grammar rule |
| 258 | */ | 258 | */ |
| 259 | - private static void addToResolutionList(YangResolutionInfo<YangType> resolutionInfo, | 259 | + private static void addToResolutionList(YangResolutionInfoImpl<YangType> resolutionInfo, |
| 260 | GeneratedYangParser.TypeStatementContext ctx) { | 260 | GeneratedYangParser.TypeStatementContext ctx) { |
| 261 | try { | 261 | try { |
| 262 | addResolutionInfo(resolutionInfo); | 262 | addResolutionInfo(resolutionInfo); | ... | ... |
| ... | @@ -26,10 +26,10 @@ import org.onosproject.yangutils.datamodel.YangNode; | ... | @@ -26,10 +26,10 @@ import org.onosproject.yangutils.datamodel.YangNode; |
| 26 | import org.onosproject.yangutils.datamodel.YangNodeIdentifier; | 26 | import org.onosproject.yangutils.datamodel.YangNodeIdentifier; |
| 27 | import org.onosproject.yangutils.datamodel.YangNotification; | 27 | import org.onosproject.yangutils.datamodel.YangNotification; |
| 28 | import org.onosproject.yangutils.datamodel.YangOutput; | 28 | import org.onosproject.yangutils.datamodel.YangOutput; |
| 29 | -import org.onosproject.yangutils.linker.impl.YangResolutionInfo; | ||
| 30 | import org.onosproject.yangutils.datamodel.YangSubModule; | 29 | import org.onosproject.yangutils.datamodel.YangSubModule; |
| 31 | import org.onosproject.yangutils.datamodel.YangUses; | 30 | import org.onosproject.yangutils.datamodel.YangUses; |
| 32 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | 31 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; |
| 32 | +import org.onosproject.yangutils.linker.impl.YangResolutionInfoImpl; | ||
| 33 | import org.onosproject.yangutils.parser.Parsable; | 33 | import org.onosproject.yangutils.parser.Parsable; |
| 34 | import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser; | 34 | import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser; |
| 35 | import org.onosproject.yangutils.parser.exceptions.ParserException; | 35 | import org.onosproject.yangutils.parser.exceptions.ParserException; |
| ... | @@ -110,7 +110,7 @@ public final class UsesListener { | ... | @@ -110,7 +110,7 @@ public final class UsesListener { |
| 110 | * validations and updates the data model tree. | 110 | * validations and updates the data model tree. |
| 111 | * | 111 | * |
| 112 | * @param listener listener's object | 112 | * @param listener listener's object |
| 113 | - * @param ctx context object of the grammar rule | 113 | + * @param ctx context object of the grammar rule |
| 114 | */ | 114 | */ |
| 115 | public static void processUsesEntry(TreeWalkListener listener, GeneratedYangParser.UsesStatementContext ctx) { | 115 | public static void processUsesEntry(TreeWalkListener listener, GeneratedYangParser.UsesStatementContext ctx) { |
| 116 | 116 | ||
| ... | @@ -160,7 +160,7 @@ public final class UsesListener { | ... | @@ -160,7 +160,7 @@ public final class UsesListener { |
| 160 | * @param ctx context object of the grammar rule | 160 | * @param ctx context object of the grammar rule |
| 161 | */ | 161 | */ |
| 162 | public static void processUsesExit(TreeWalkListener listener, | 162 | public static void processUsesExit(TreeWalkListener listener, |
| 163 | - GeneratedYangParser.UsesStatementContext ctx) { | 163 | + GeneratedYangParser.UsesStatementContext ctx) { |
| 164 | 164 | ||
| 165 | // Check for stack to be non empty. | 165 | // Check for stack to be non empty. |
| 166 | checkStackIsNotEmpty(listener, MISSING_HOLDER, USES_DATA, ctx.string().getText(), EXIT); | 166 | checkStackIsNotEmpty(listener, MISSING_HOLDER, USES_DATA, ctx.string().getText(), EXIT); |
| ... | @@ -184,7 +184,7 @@ public final class UsesListener { | ... | @@ -184,7 +184,7 @@ public final class UsesListener { |
| 184 | } | 184 | } |
| 185 | 185 | ||
| 186 | // Add resolution information to the list | 186 | // Add resolution information to the list |
| 187 | - YangResolutionInfo resolutionInfo = new YangResolutionInfo<YangUses>(uses, | 187 | + YangResolutionInfoImpl resolutionInfo = new YangResolutionInfoImpl<YangUses>(uses, |
| 188 | (YangNode) parentNode, errorLine, | 188 | (YangNode) parentNode, errorLine, |
| 189 | errorPosition); | 189 | errorPosition); |
| 190 | addToResolutionList(resolutionInfo, ctx); | 190 | addToResolutionList(resolutionInfo, ctx); |
| ... | @@ -208,10 +208,10 @@ public final class UsesListener { | ... | @@ -208,10 +208,10 @@ public final class UsesListener { |
| 208 | * Add to resolution list. | 208 | * Add to resolution list. |
| 209 | * | 209 | * |
| 210 | * @param resolutionInfo resolution information. | 210 | * @param resolutionInfo resolution information. |
| 211 | - * @param ctx context object of the grammar rule | 211 | + * @param ctx context object of the grammar rule |
| 212 | */ | 212 | */ |
| 213 | - private static void addToResolutionList(YangResolutionInfo<YangUses> resolutionInfo, | 213 | + private static void addToResolutionList(YangResolutionInfoImpl<YangUses> resolutionInfo, |
| 214 | - GeneratedYangParser.UsesStatementContext ctx) { | 214 | + GeneratedYangParser.UsesStatementContext ctx) { |
| 215 | 215 | ||
| 216 | try { | 216 | try { |
| 217 | addResolutionInfo(resolutionInfo); | 217 | addResolutionInfo(resolutionInfo); | ... | ... |
| ... | @@ -1098,7 +1098,7 @@ public final class UtilConstants { | ... | @@ -1098,7 +1098,7 @@ public final class UtilConstants { |
| 1098 | /** | 1098 | /** |
| 1099 | * Static attribute for YANG types package. | 1099 | * Static attribute for YANG types package. |
| 1100 | */ | 1100 | */ |
| 1101 | - public static final String YANG_TYPES_PKG = "org.onosproject.yangutils.utils.builtindatatype"; | 1101 | + public static final String YANG_TYPES_PKG = "org.onosproject.yangutils.datamodel.utils.builtindatatype"; |
| 1102 | 1102 | ||
| 1103 | /** | 1103 | /** |
| 1104 | * Static attribute for MathContext class. | 1104 | * Static attribute for MathContext class. | ... | ... |
| ... | @@ -19,7 +19,6 @@ package org.onosproject.yangutils.linker; | ... | @@ -19,7 +19,6 @@ package org.onosproject.yangutils.linker; |
| 19 | import java.io.IOException; | 19 | import java.io.IOException; |
| 20 | import java.util.Iterator; | 20 | import java.util.Iterator; |
| 21 | import java.util.ListIterator; | 21 | import java.util.ListIterator; |
| 22 | - | ||
| 23 | import org.apache.maven.plugin.MojoExecutionException; | 22 | import org.apache.maven.plugin.MojoExecutionException; |
| 24 | import org.junit.Test; | 23 | import org.junit.Test; |
| 25 | import org.onosproject.yangutils.datamodel.YangDataTypes; | 24 | import org.onosproject.yangutils.datamodel.YangDataTypes; |
| ... | @@ -71,6 +70,9 @@ public class InterFileLinkingTest { | ... | @@ -71,6 +70,9 @@ public class InterFileLinkingTest { |
| 71 | YangNode refNode = null; | 70 | YangNode refNode = null; |
| 72 | YangNode selfNode = null; | 71 | YangNode selfNode = null; |
| 73 | 72 | ||
| 73 | + // Create YANG node set | ||
| 74 | + yangLinkerManager.createYangNodeSet(utilManager.getYangFileInfoSet()); | ||
| 75 | + | ||
| 74 | // Add references to import list. | 76 | // Add references to import list. |
| 75 | yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangFileInfoSet()); | 77 | yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangFileInfoSet()); |
| 76 | 78 | ||
| ... | @@ -137,6 +139,9 @@ public class InterFileLinkingTest { | ... | @@ -137,6 +139,9 @@ public class InterFileLinkingTest { |
| 137 | YangNode refNode = null; | 139 | YangNode refNode = null; |
| 138 | YangNode selfNode = null; | 140 | YangNode selfNode = null; |
| 139 | 141 | ||
| 142 | + // Create YANG node set | ||
| 143 | + yangLinkerManager.createYangNodeSet(utilManager.getYangFileInfoSet()); | ||
| 144 | + | ||
| 140 | // Add references to import list. | 145 | // Add references to import list. |
| 141 | yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangFileInfoSet()); | 146 | yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangFileInfoSet()); |
| 142 | 147 | ||
| ... | @@ -211,6 +216,9 @@ public class InterFileLinkingTest { | ... | @@ -211,6 +216,9 @@ public class InterFileLinkingTest { |
| 211 | YangNode refNode = null; | 216 | YangNode refNode = null; |
| 212 | YangNode selfNode = null; | 217 | YangNode selfNode = null; |
| 213 | 218 | ||
| 219 | + // Create YANG node set | ||
| 220 | + yangLinkerManager.createYangNodeSet(utilManager.getYangFileInfoSet()); | ||
| 221 | + | ||
| 214 | // Carry out linking of sub module with module. | 222 | // Carry out linking of sub module with module. |
| 215 | yangLinkerManager.linkSubModulesToParentModule(utilManager.getYangFileInfoSet()); | 223 | yangLinkerManager.linkSubModulesToParentModule(utilManager.getYangFileInfoSet()); |
| 216 | 224 | ||
| ... | @@ -280,6 +288,9 @@ public class InterFileLinkingTest { | ... | @@ -280,6 +288,9 @@ public class InterFileLinkingTest { |
| 280 | YangNode refNode = null; | 288 | YangNode refNode = null; |
| 281 | YangNode selfNode = null; | 289 | YangNode selfNode = null; |
| 282 | 290 | ||
| 291 | + // Create YANG node set | ||
| 292 | + yangLinkerManager.createYangNodeSet(utilManager.getYangFileInfoSet()); | ||
| 293 | + | ||
| 283 | // Carry out linking of sub module with module. | 294 | // Carry out linking of sub module with module. |
| 284 | yangLinkerManager.linkSubModulesToParentModule(utilManager.getYangFileInfoSet()); | 295 | yangLinkerManager.linkSubModulesToParentModule(utilManager.getYangFileInfoSet()); |
| 285 | 296 | ||
| ... | @@ -357,6 +368,9 @@ public class InterFileLinkingTest { | ... | @@ -357,6 +368,9 @@ public class InterFileLinkingTest { |
| 357 | YangNode refNode = null; | 368 | YangNode refNode = null; |
| 358 | YangNode selfNode = null; | 369 | YangNode selfNode = null; |
| 359 | 370 | ||
| 371 | + // Create YANG node set | ||
| 372 | + yangLinkerManager.createYangNodeSet(utilManager.getYangFileInfoSet()); | ||
| 373 | + | ||
| 360 | // Add references to import list. | 374 | // Add references to import list. |
| 361 | yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangFileInfoSet()); | 375 | yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangFileInfoSet()); |
| 362 | 376 | ||
| ... | @@ -423,6 +437,9 @@ public class InterFileLinkingTest { | ... | @@ -423,6 +437,9 @@ public class InterFileLinkingTest { |
| 423 | YangNode refNode = null; | 437 | YangNode refNode = null; |
| 424 | YangNode selfNode = null; | 438 | YangNode selfNode = null; |
| 425 | 439 | ||
| 440 | + // Create YANG node set | ||
| 441 | + yangLinkerManager.createYangNodeSet(utilManager.getYangFileInfoSet()); | ||
| 442 | + | ||
| 426 | // Add references to import list. | 443 | // Add references to import list. |
| 427 | yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangFileInfoSet()); | 444 | yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangFileInfoSet()); |
| 428 | 445 | ||
| ... | @@ -490,6 +507,9 @@ public class InterFileLinkingTest { | ... | @@ -490,6 +507,9 @@ public class InterFileLinkingTest { |
| 490 | YangNode refNode2 = null; | 507 | YangNode refNode2 = null; |
| 491 | YangNode selfNode = null; | 508 | YangNode selfNode = null; |
| 492 | 509 | ||
| 510 | + // Create YANG node set | ||
| 511 | + yangLinkerManager.createYangNodeSet(utilManager.getYangFileInfoSet()); | ||
| 512 | + | ||
| 493 | // Add references to import list. | 513 | // Add references to import list. |
| 494 | yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangFileInfoSet()); | 514 | yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangFileInfoSet()); |
| 495 | 515 | ||
| ... | @@ -554,6 +574,9 @@ public class InterFileLinkingTest { | ... | @@ -554,6 +574,9 @@ public class InterFileLinkingTest { |
| 554 | YangNode refNode1 = null; | 574 | YangNode refNode1 = null; |
| 555 | YangNode selfNode = null; | 575 | YangNode selfNode = null; |
| 556 | 576 | ||
| 577 | + // Create YANG node set | ||
| 578 | + yangLinkerManager.createYangNodeSet(utilManager.getYangFileInfoSet()); | ||
| 579 | + | ||
| 557 | // Add references to import list. | 580 | // Add references to import list. |
| 558 | yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangFileInfoSet()); | 581 | yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangFileInfoSet()); |
| 559 | 582 | ... | ... |
| ... | @@ -26,6 +26,7 @@ import org.onosproject.yangutils.datamodel.YangList; | ... | @@ -26,6 +26,7 @@ import org.onosproject.yangutils.datamodel.YangList; |
| 26 | import org.onosproject.yangutils.datamodel.YangModule; | 26 | import org.onosproject.yangutils.datamodel.YangModule; |
| 27 | import org.onosproject.yangutils.datamodel.YangNode; | 27 | import org.onosproject.yangutils.datamodel.YangNode; |
| 28 | import org.onosproject.yangutils.datamodel.YangTypeDef; | 28 | import org.onosproject.yangutils.datamodel.YangTypeDef; |
| 29 | +import org.onosproject.yangutils.linker.exceptions.LinkerException; | ||
| 29 | import org.onosproject.yangutils.parser.exceptions.ParserException; | 30 | import org.onosproject.yangutils.parser.exceptions.ParserException; |
| 30 | import org.onosproject.yangutils.parser.impl.YangUtilsParserManager; | 31 | import org.onosproject.yangutils.parser.impl.YangUtilsParserManager; |
| 31 | 32 | ||
| ... | @@ -33,12 +34,12 @@ import static org.hamcrest.CoreMatchers.nullValue; | ... | @@ -33,12 +34,12 @@ import static org.hamcrest.CoreMatchers.nullValue; |
| 33 | import static org.hamcrest.MatcherAssert.assertThat; | 34 | import static org.hamcrest.MatcherAssert.assertThat; |
| 34 | import static org.hamcrest.core.Is.is; | 35 | import static org.hamcrest.core.Is.is; |
| 35 | import static org.onosproject.yangutils.datamodel.YangDataTypes.BINARY; | 36 | import static org.onosproject.yangutils.datamodel.YangDataTypes.BINARY; |
| 36 | -import static org.onosproject.yangutils.linker.ResolvableStatus.INTRA_FILE_RESOLVED; | ||
| 37 | -import static org.onosproject.yangutils.linker.ResolvableStatus.RESOLVED; | ||
| 38 | import static org.onosproject.yangutils.datamodel.YangDataTypes.DERIVED; | 37 | import static org.onosproject.yangutils.datamodel.YangDataTypes.DERIVED; |
| 39 | import static org.onosproject.yangutils.datamodel.YangDataTypes.INT32; | 38 | import static org.onosproject.yangutils.datamodel.YangDataTypes.INT32; |
| 40 | import static org.onosproject.yangutils.datamodel.YangDataTypes.STRING; | 39 | import static org.onosproject.yangutils.datamodel.YangDataTypes.STRING; |
| 41 | import static org.onosproject.yangutils.datamodel.YangNodeType.MODULE_NODE; | 40 | import static org.onosproject.yangutils.datamodel.YangNodeType.MODULE_NODE; |
| 41 | +import static org.onosproject.yangutils.linker.ResolvableStatus.INTRA_FILE_RESOLVED; | ||
| 42 | +import static org.onosproject.yangutils.linker.ResolvableStatus.RESOLVED; | ||
| 42 | 43 | ||
| 43 | /** | 44 | /** |
| 44 | * Test cases for testing "type" intra file linking. | 45 | * Test cases for testing "type" intra file linking. |
| ... | @@ -488,9 +489,9 @@ public class IntraFileTypeLinkingTest { | ... | @@ -488,9 +489,9 @@ public class IntraFileTypeLinkingTest { |
| 488 | * Check self resolution when type referred typedef is not available in | 489 | * Check self resolution when type referred typedef is not available in |
| 489 | * file. | 490 | * file. |
| 490 | */ | 491 | */ |
| 491 | - @Test(expected = ParserException.class) | 492 | + @Test(expected = LinkerException.class) |
| 492 | public void processSelfResolutionWhenTypeReferredTypedefNotDefined() | 493 | public void processSelfResolutionWhenTypeReferredTypedefNotDefined() |
| 493 | - throws IOException, ParserException { | 494 | + throws IOException, LinkerException { |
| 494 | 495 | ||
| 495 | YangNode node = | 496 | YangNode node = |
| 496 | manager.getDataModel("src/test/resources/SelfResolutionWhenTypeReferredTypedefNotDefined.yang"); | 497 | manager.getDataModel("src/test/resources/SelfResolutionWhenTypeReferredTypedefNotDefined.yang"); |
| ... | @@ -500,9 +501,9 @@ public class IntraFileTypeLinkingTest { | ... | @@ -500,9 +501,9 @@ public class IntraFileTypeLinkingTest { |
| 500 | * Checks self resolution when typedef and leaf using type are at different | 501 | * Checks self resolution when typedef and leaf using type are at different |
| 501 | * level where typedef is is not an ancestor of type. | 502 | * level where typedef is is not an ancestor of type. |
| 502 | */ | 503 | */ |
| 503 | - @Test(expected = ParserException.class) | 504 | + @Test(expected = LinkerException.class) |
| 504 | public void processSelfFileLinkingTypedefNotFound() | 505 | public void processSelfFileLinkingTypedefNotFound() |
| 505 | - throws IOException, ParserException { | 506 | + throws IOException, LinkerException { |
| 506 | 507 | ||
| 507 | YangNode node = manager.getDataModel("src/test/resources/SelfFileLinkingTypedefNotFound.yang"); | 508 | YangNode node = manager.getDataModel("src/test/resources/SelfFileLinkingTypedefNotFound.yang"); |
| 508 | } | 509 | } |
| ... | @@ -510,9 +511,9 @@ public class IntraFileTypeLinkingTest { | ... | @@ -510,9 +511,9 @@ public class IntraFileTypeLinkingTest { |
| 510 | /** | 511 | /** |
| 511 | * Checks hierarchical self resolution with self resolution failure scenario. | 512 | * Checks hierarchical self resolution with self resolution failure scenario. |
| 512 | */ | 513 | */ |
| 513 | - @Test(expected = ParserException.class) | 514 | + @Test(expected = LinkerException.class) |
| 514 | public void processSelfFileLinkingWithHierarchicalTypeFailureScenario() | 515 | public void processSelfFileLinkingWithHierarchicalTypeFailureScenario() |
| 515 | - throws IOException, ParserException { | 516 | + throws IOException, LinkerException { |
| 516 | 517 | ||
| 517 | YangNode node = | 518 | YangNode node = |
| 518 | manager.getDataModel("src/test/resources/SelfFileLinkingWithHierarchicalTypeFailureScenario.yang"); | 519 | manager.getDataModel("src/test/resources/SelfFileLinkingWithHierarchicalTypeFailureScenario.yang"); | ... | ... |
| ... | @@ -19,7 +19,6 @@ package org.onosproject.yangutils.linker; | ... | @@ -19,7 +19,6 @@ package org.onosproject.yangutils.linker; |
| 19 | import java.io.IOException; | 19 | import java.io.IOException; |
| 20 | import java.util.List; | 20 | import java.util.List; |
| 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 | import org.junit.rules.ExpectedException; | 24 | import org.junit.rules.ExpectedException; |
| ... | @@ -581,9 +580,9 @@ public class IntraFileUsesLinkingTest { | ... | @@ -581,9 +580,9 @@ public class IntraFileUsesLinkingTest { |
| 581 | */ | 580 | */ |
| 582 | @Test | 581 | @Test |
| 583 | public void processSelfResolutionNestedGroupingWithUnresolvedUses() | 582 | public void processSelfResolutionNestedGroupingWithUnresolvedUses() |
| 584 | - throws IOException, ParserException { | 583 | + throws IOException, LinkerException { |
| 585 | 584 | ||
| 586 | - thrown.expect(ParserException.class); | 585 | + thrown.expect(LinkerException.class); |
| 587 | thrown.expectMessage( | 586 | thrown.expectMessage( |
| 588 | "YANG file error: Unable to find base grouping for given uses"); | 587 | "YANG file error: Unable to find base grouping for given uses"); |
| 589 | 588 | ... | ... |
| ... | @@ -30,21 +30,21 @@ import org.onosproject.yangutils.datamodel.YangRangeRestriction; | ... | @@ -30,21 +30,21 @@ import org.onosproject.yangutils.datamodel.YangRangeRestriction; |
| 30 | import org.onosproject.yangutils.datamodel.YangStringRestriction; | 30 | import org.onosproject.yangutils.datamodel.YangStringRestriction; |
| 31 | import org.onosproject.yangutils.datamodel.YangTypeDef; | 31 | import org.onosproject.yangutils.datamodel.YangTypeDef; |
| 32 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | 32 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; |
| 33 | +import org.onosproject.yangutils.datamodel.utils.builtindatatype.YangInt32; | ||
| 34 | +import org.onosproject.yangutils.datamodel.utils.builtindatatype.YangUint64; | ||
| 33 | import org.onosproject.yangutils.linker.exceptions.LinkerException; | 35 | import org.onosproject.yangutils.linker.exceptions.LinkerException; |
| 34 | import org.onosproject.yangutils.parser.exceptions.ParserException; | 36 | import org.onosproject.yangutils.parser.exceptions.ParserException; |
| 35 | import org.onosproject.yangutils.parser.impl.YangUtilsParserManager; | 37 | import org.onosproject.yangutils.parser.impl.YangUtilsParserManager; |
| 36 | -import org.onosproject.yangutils.utils.builtindatatype.YangInt32; | ||
| 37 | -import org.onosproject.yangutils.utils.builtindatatype.YangUint64; | ||
| 38 | 38 | ||
| 39 | import static org.hamcrest.CoreMatchers.nullValue; | 39 | import static org.hamcrest.CoreMatchers.nullValue; |
| 40 | import static org.hamcrest.MatcherAssert.assertThat; | 40 | import static org.hamcrest.MatcherAssert.assertThat; |
| 41 | import static org.hamcrest.core.Is.is; | 41 | import static org.hamcrest.core.Is.is; |
| 42 | import static org.hamcrest.core.IsNull.notNullValue; | 42 | import static org.hamcrest.core.IsNull.notNullValue; |
| 43 | -import static org.onosproject.yangutils.linker.ResolvableStatus.RESOLVED; | ||
| 44 | import static org.onosproject.yangutils.datamodel.YangDataTypes.DERIVED; | 43 | import static org.onosproject.yangutils.datamodel.YangDataTypes.DERIVED; |
| 45 | import static org.onosproject.yangutils.datamodel.YangDataTypes.INT32; | 44 | import static org.onosproject.yangutils.datamodel.YangDataTypes.INT32; |
| 46 | import static org.onosproject.yangutils.datamodel.YangDataTypes.STRING; | 45 | import static org.onosproject.yangutils.datamodel.YangDataTypes.STRING; |
| 47 | import static org.onosproject.yangutils.datamodel.YangNodeType.MODULE_NODE; | 46 | import static org.onosproject.yangutils.datamodel.YangNodeType.MODULE_NODE; |
| 47 | +import static org.onosproject.yangutils.linker.ResolvableStatus.RESOLVED; | ||
| 48 | 48 | ||
| 49 | /** | 49 | /** |
| 50 | * Test cases for testing restriction resolution. | 50 | * Test cases for testing restriction resolution. |
| ... | @@ -412,7 +412,7 @@ public final class RestrictionResolutionTest { | ... | @@ -412,7 +412,7 @@ public final class RestrictionResolutionTest { |
| 412 | /** | 412 | /** |
| 413 | * Checks range restriction in typedef and not stricter in referred type. | 413 | * Checks range restriction in typedef and not stricter in referred type. |
| 414 | */ | 414 | */ |
| 415 | - @Test(expected = ParserException.class) | 415 | + @Test(expected = LinkerException.class) |
| 416 | public void processRangeRestrictionInRefTypeAndTypedefInValid() | 416 | public void processRangeRestrictionInRefTypeAndTypedefInValid() |
| 417 | throws IOException, ParserException, DataModelException { | 417 | throws IOException, ParserException, DataModelException { |
| 418 | YangNode node = manager.getDataModel("src/test/resources/RangeRestrictionInRefTypeAndTypedefInValid.yang"); | 418 | YangNode node = manager.getDataModel("src/test/resources/RangeRestrictionInRefTypeAndTypedefInValid.yang"); | ... | ... |
| ... | @@ -34,7 +34,7 @@ import org.onosproject.yangutils.datamodel.YangStringRestriction; | ... | @@ -34,7 +34,7 @@ import org.onosproject.yangutils.datamodel.YangStringRestriction; |
| 34 | import org.onosproject.yangutils.datamodel.YangTypeDef; | 34 | import org.onosproject.yangutils.datamodel.YangTypeDef; |
| 35 | import org.onosproject.yangutils.parser.exceptions.ParserException; | 35 | import org.onosproject.yangutils.parser.exceptions.ParserException; |
| 36 | import org.onosproject.yangutils.parser.impl.YangUtilsParserManager; | 36 | import org.onosproject.yangutils.parser.impl.YangUtilsParserManager; |
| 37 | -import org.onosproject.yangutils.utils.builtindatatype.YangUint64; | 37 | +import org.onosproject.yangutils.datamodel.utils.builtindatatype.YangUint64; |
| 38 | 38 | ||
| 39 | import static org.hamcrest.MatcherAssert.assertThat; | 39 | import static org.hamcrest.MatcherAssert.assertThat; |
| 40 | import static org.hamcrest.core.Is.is; | 40 | import static org.hamcrest.core.Is.is; | ... | ... |
| ... | @@ -31,7 +31,7 @@ import org.onosproject.yangutils.datamodel.YangRangeInterval; | ... | @@ -31,7 +31,7 @@ import org.onosproject.yangutils.datamodel.YangRangeInterval; |
| 31 | import org.onosproject.yangutils.datamodel.YangRangeRestriction; | 31 | import org.onosproject.yangutils.datamodel.YangRangeRestriction; |
| 32 | import org.onosproject.yangutils.parser.exceptions.ParserException; | 32 | import org.onosproject.yangutils.parser.exceptions.ParserException; |
| 33 | import org.onosproject.yangutils.parser.impl.YangUtilsParserManager; | 33 | import org.onosproject.yangutils.parser.impl.YangUtilsParserManager; |
| 34 | -import org.onosproject.yangutils.utils.builtindatatype.YangInt32; | 34 | +import org.onosproject.yangutils.datamodel.utils.builtindatatype.YangInt32; |
| 35 | 35 | ||
| 36 | import static org.hamcrest.MatcherAssert.assertThat; | 36 | import static org.hamcrest.MatcherAssert.assertThat; |
| 37 | import static org.hamcrest.core.Is.is; | 37 | import static org.hamcrest.core.Is.is; | ... | ... |
-
Please register or login to post a comment