X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-parser-spi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Fspi%2Fmeta%2FAbstractBooleanStatementSupport.java;fp=yang%2Fyang-parser-rfc7950%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Frfc7950%2Fstmt%2FBaseBooleanStatementSupport.java;h=5b225509cd63d2ff95c720182858497f861153df;hb=8b7baccf66f61a19e984ee54c3c8e8f75fa0e7bf;hp=9e9c5986e2205886dbb491324277cfc4b0af133a;hpb=4335e0275cf96773318caebba42d1b95cec82912;p=yangtools.git diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/BaseBooleanStatementSupport.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/AbstractBooleanStatementSupport.java similarity index 77% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/BaseBooleanStatementSupport.java rename to yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/AbstractBooleanStatementSupport.java index 9e9c5986e2..5b225509cd 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/BaseBooleanStatementSupport.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/AbstractBooleanStatementSupport.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt; +package org.opendaylight.yangtools.yang.parser.spi.meta; import static java.util.Objects.requireNonNull; @@ -15,9 +15,8 @@ import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition; -import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current; -import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; +import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; /** * Specialization of {@link AbstractStatementSupport} for statements which carry a Boolean argument and are essentially @@ -27,14 +26,14 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; * @param Effective Statement representation */ @Beta -public abstract class BaseBooleanStatementSupport, +public abstract class AbstractBooleanStatementSupport, E extends EffectiveStatement> extends AbstractStatementSupport { private final @NonNull E emptyEffectiveFalse; private final @NonNull E emptyEffectiveTrue; private final @NonNull D emptyDeclaredFalse; private final @NonNull D emptyDeclaredTrue; - protected BaseBooleanStatementSupport(final StatementDefinition publicDefinition, + protected AbstractBooleanStatementSupport(final StatementDefinition publicDefinition, final E emptyEffectiveFalse, final E emptyEffectiveTrue, final StatementPolicy policy) { super(publicDefinition, policy); this.emptyEffectiveFalse = requireNonNull(emptyEffectiveFalse); @@ -45,12 +44,25 @@ public abstract class BaseBooleanStatementSupport ctx, final String value) { - return ArgumentUtils.parseBoolean(ctx, value); + if ("true".equals(value)) { + return Boolean.TRUE; + } else if ("false".equals(value)) { + return Boolean.FALSE; + } else { + throw new SourceException(ctx, "Invalid '%s' statement %s '%s', it can be either 'true' or 'false'", + getStatementName(), getArgumentDefinition().get().getArgumentName(), value); + } } @Override public final String internArgument(final String rawArgument) { - return ArgumentUtils.internBoolean(rawArgument); + if ("true".equals(rawArgument)) { + return "true"; + } else if ("false".equals(rawArgument)) { + return "false"; + } else { + return rawArgument; + } } @Override