From 5b20a9f51f915e53180f1ff5612be8c999cd554c Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Tue, 6 Jun 2017 10:13:19 +0200 Subject: [PATCH] Do not throw IllegalArgumentException We have enough information to throw a SourceException, so do that to propagate relevant diagnostics. Change-Id: I5d7b5db1cba00fc3bea6f63025091086c6d2ed34 Signed-off-by: Robert Varga --- .../yang/parser/stmt/rfc6020/UsesStatementImpl.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/UsesStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/UsesStatementImpl.java index 532d70fcbf..32ace4cbc8 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/UsesStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/UsesStatementImpl.java @@ -7,7 +7,6 @@ */ package org.opendaylight.yangtools.yang.parser.stmt.rfc6020; -import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableSet; import java.util.ArrayList; import java.util.Collection; @@ -287,15 +286,17 @@ public class UsesStatementImpl extends AbstractDeclaredStatement implemen final StatementContextBase usesParentCtx) { final Object refineArgument = refineCtx.getStatementArgument(); - Preconditions.checkArgument(refineArgument instanceof SchemaNodeIdentifier, - "Invalid refine argument %s. It must be instance of SchemaNodeIdentifier. At %s", refineArgument, - refineCtx.getStatementSourceReference()); + InferenceException.throwIf(!(refineArgument instanceof SchemaNodeIdentifier), + refineCtx.getStatementSourceReference(), + "Invalid refine argument %s. It must be instance of SchemaNodeIdentifier.", refineArgument); final SchemaNodeIdentifier refineTargetNodeIdentifier = (SchemaNodeIdentifier) refineArgument; final StatementContextBase refineTargetNodeCtx = Utils.findNode(usesParentCtx, refineTargetNodeIdentifier); - Preconditions.checkArgument(refineTargetNodeCtx != null, "Refine target node %s not found. At %s", - refineTargetNodeIdentifier, refineCtx.getStatementSourceReference()); + + InferenceException.throwIfNull(refineTargetNodeCtx, refineCtx.getStatementSourceReference(), + "Refine target node %s not found.", refineTargetNodeIdentifier); + if (StmtContextUtils.isUnknownStatement(refineTargetNodeCtx)) { LOG.debug( "Refine node '{}' in uses '{}' has target node unknown statement '{}'. Refine has been skipped. At line: {}", -- 2.36.6