X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-parser-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Fstmt%2Frfc6020%2FTypedefStatementImpl.java;h=b96a2708e40be500f94fddbe9c7591e573333cf1;hb=04fa25a4fe8957f6492618aa9a1e9a4f9af39df4;hp=9d3fb3ef1ad936c0e8084c85d8860238852689d3;hpb=bf405586fc69c3781311cfb8ac19ba93b670ec8d;p=yangtools.git diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/TypedefStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/TypedefStatementImpl.java index 9d3fb3ef1a..b96a2708e4 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/TypedefStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/TypedefStatementImpl.java @@ -15,6 +15,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement; import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement; import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement; import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.TypedefEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.TypedefStatement; import org.opendaylight.yangtools.yang.model.api.stmt.UnitsStatement; import org.opendaylight.yangtools.yang.parser.spi.SubstatementValidator; @@ -36,7 +37,7 @@ public class TypedefStatementImpl extends AbstractDeclaredStatement imple .add(Rfc6020Mapping.UNITS, 0, 1) .build(); - protected TypedefStatementImpl(StmtContext context) { + protected TypedefStatementImpl(final StmtContext context) { super(context); } @@ -48,37 +49,36 @@ public class TypedefStatementImpl extends AbstractDeclaredStatement imple } @Override - public QName parseArgumentValue(StmtContext ctx, String value) throws SourceException { + public QName parseArgumentValue(final StmtContext ctx, final String value) { return Utils.qNameFromArgument(ctx, value); } @Override - public TypedefStatement createDeclared(StmtContext ctx) { + public TypedefStatement createDeclared(final StmtContext ctx) { return new TypedefStatementImpl(ctx); } @Override public EffectiveStatement createEffective( - StmtContext> ctx) { + final StmtContext> ctx) { return new TypeDefEffectiveStatementImpl(ctx); } @Override public void onStatementDefinitionDeclared( - StmtContext.Mutable> stmt) - throws SourceException { + final StmtContext.Mutable> stmt) { if (stmt != null && stmt.getParentContext() != null) { - if (stmt.getParentContext().getFromNamespace(TypeNamespace.class, stmt.getStatementArgument()) != null) { - throw new SourceException(String.format("Duplicate name for typedef %s", - stmt.getStatementArgument()), stmt.getStatementSourceReference()); - } + final StmtContext existing = + stmt.getParentContext().getFromNamespace(TypeNamespace.class, stmt.getStatementArgument()); + SourceException.throwIf(existing != null, stmt.getStatementSourceReference(), + "Duplicate name for typedef %s", stmt.getStatementArgument()); stmt.getParentContext().addContext(TypeNamespace.class, stmt.getStatementArgument(), stmt); } } @Override - public void onFullDefinitionDeclared(StmtContext.Mutable> stmt) throws SourceException { super.onFullDefinitionDeclared(stmt); SUBSTATEMENT_VALIDATOR.validate(stmt);