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%2FValueStatementImpl.java;h=4782ea65449d8aa3ad0b4eb08017efa0d03e9f3d;hb=4a6f8307db1a3e9f31608a73924f48ed2ea7dc6e;hp=558f4c079622ff232503768eda1289595a6df00b;hpb=6af38a495f688cbfa0ff2c09db7e62e4d530bb3a;p=yangtools.git diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ValueStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ValueStatementImpl.java index 558f4c0796..4782ea6544 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ValueStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ValueStatementImpl.java @@ -1,4 +1,4 @@ -/** +/* * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the @@ -7,52 +7,60 @@ */ package org.opendaylight.yangtools.yang.parser.stmt.rfc6020; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.ValueEffectiveStatementImpl; - -import org.opendaylight.yangtools.yang.model.api.Rfc6020Mapping; +import org.opendaylight.yangtools.yang.model.api.YangStmtMapping; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.ValueStatement; import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement; import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; +import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator; +import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; +import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.ValueEffectiveStatementImpl; -public class ValueStatementImpl extends AbstractDeclaredStatement - implements ValueStatement { +public class ValueStatementImpl extends AbstractDeclaredStatement implements ValueStatement { + private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder( + YangStmtMapping.VALUE).build(); - protected ValueStatementImpl(StmtContext context) { + protected ValueStatementImpl(final StmtContext context) { super(context); } - public static class Definition - extends - AbstractStatementSupport> { + public static class Definition extends + AbstractStatementSupport> { public Definition() { - super(Rfc6020Mapping.VALUE); + super(YangStmtMapping.VALUE); } @Override - public String parseArgumentValue(StmtContext ctx, String value) { - return value; + public Integer parseArgumentValue(final StmtContext ctx, final String value) { + try { + return Integer.valueOf(value); + } catch (NumberFormatException e) { + throw new SourceException(ctx.getStatementSourceReference(), e, + "%s is not valid value statement integer argument in a range of -2147483648..2147483647", value); + } } @Override - public ValueStatement createDeclared( - StmtContext ctx) { + public ValueStatement createDeclared(final StmtContext ctx) { return new ValueStatementImpl(ctx); } @Override - public EffectiveStatement createEffective( - StmtContext> ctx) { + public EffectiveStatement createEffective( + final StmtContext> ctx) { return new ValueEffectiveStatementImpl(ctx); } + @Override + protected SubstatementValidator getSubstatementValidator() { + return SUBSTATEMENT_VALIDATOR; + } } @Override - public String getValue() { + public int getValue() { return argument(); } - }