import java.util.List;
import java.util.regex.Pattern;
import org.checkerframework.checker.regex.qual.Regex;
-import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier;
import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Descendant;
return new BigDecimal(num1.toString()).compareTo(new BigDecimal(num2.toString()));
}
- public static String internBoolean(final String input) {
- if ("true".equals(input)) {
- return "true";
- } else if ("false".equals(input)) {
- return "false";
- } else {
- return input;
- }
- }
-
- public static @NonNull Boolean parseBoolean(final StmtContext<?, ?, ?> ctx, final String input) {
- if ("true".equals(input)) {
- return Boolean.TRUE;
- } else if ("false".equals(input)) {
- return Boolean.FALSE;
- } else {
- final StatementDefinition def = ctx.publicDefinition();
- throw new SourceException(ctx, "Invalid '%s' statement %s '%s', it can be either 'true' or 'false'",
- def.getStatementName(), def.getArgumentDefinition().get().getArgumentName(), input);
- }
- }
-
public static boolean isAbsoluteXPath(final String path) {
return PATH_ABS.matcher(path).matches();
}
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.ConfigEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.ConfigStatement;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseBooleanStatementSupport;
+import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractBooleanStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
public final class ConfigStatementSupport
- extends BaseBooleanStatementSupport<ConfigStatement, ConfigEffectiveStatement> {
+ extends AbstractBooleanStatementSupport<ConfigStatement, ConfigEffectiveStatement> {
private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder(
YangStmtMapping.CONFIG).build();
private static final ConfigStatementSupport INSTANCE = new ConfigStatementSupport();
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.MandatoryEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.MandatoryStatement;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseBooleanStatementSupport;
+import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractBooleanStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
public final class MandatoryStatementSupport extends
- BaseBooleanStatementSupport<MandatoryStatement, MandatoryEffectiveStatement> {
+ AbstractBooleanStatementSupport<MandatoryStatement, MandatoryEffectiveStatement> {
private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder(
YangStmtMapping.MANDATORY).build();
private static final MandatoryStatementSupport INSTANCE = new MandatoryStatementSupport();
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.RequireInstanceEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.RequireInstanceStatement;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseBooleanStatementSupport;
+import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractBooleanStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
public final class RequireInstanceStatementSupport
- extends BaseBooleanStatementSupport<RequireInstanceStatement, RequireInstanceEffectiveStatement> {
+ extends AbstractBooleanStatementSupport<RequireInstanceStatement, RequireInstanceEffectiveStatement> {
private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder(
YangStmtMapping.REQUIRE_INSTANCE).build();
private static final RequireInstanceStatementSupport INSTANCE = new RequireInstanceStatementSupport();
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.YinElementEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.YinElementStatement;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseBooleanStatementSupport;
+import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractBooleanStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
public final class YinElementStatementSupport
- extends BaseBooleanStatementSupport<YinElementStatement, YinElementEffectiveStatement> {
+ extends AbstractBooleanStatementSupport<YinElementStatement, YinElementEffectiveStatement> {
private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder(
YangStmtMapping.YIN_ELEMENT).build();
private static final YinElementStatementSupport INSTANCE = new YinElementStatementSupport();
* 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;
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
* @param <E> Effective Statement representation
*/
@Beta
-public abstract class BaseBooleanStatementSupport<D extends DeclaredStatement<Boolean>,
+public abstract class AbstractBooleanStatementSupport<D extends DeclaredStatement<Boolean>,
E extends EffectiveStatement<Boolean, D>> extends AbstractStatementSupport<Boolean, D, E> {
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<Boolean, D> policy) {
super(publicDefinition, policy);
this.emptyEffectiveFalse = requireNonNull(emptyEffectiveFalse);
@Override
public final Boolean parseArgumentValue(final StmtContext<?, ?, ?> 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