package org.opendaylight.yangtools.odlext.model.api;
import com.google.common.annotations.Beta;
+import org.opendaylight.yangtools.yang.common.UnqualifiedQName;
import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
import org.opendaylight.yangtools.yang.model.api.stmt.UnknownEffectiveStatement;
@Beta
public interface AugmentIdentifierEffectiveStatement
- extends UnknownEffectiveStatement<String, AugmentIdentifierStatement> {
+ extends UnknownEffectiveStatement<UnqualifiedQName, AugmentIdentifierStatement> {
@Override
default StatementDefinition statementDefinition() {
return OpenDaylightExtensionsStatements.AUGMENT_IDENTIFIER;
import com.google.common.collect.ImmutableList;
import org.opendaylight.yangtools.odlext.model.api.AugmentIdentifierEffectiveStatement;
import org.opendaylight.yangtools.odlext.model.api.AugmentIdentifierStatement;
+import org.opendaylight.yangtools.yang.common.UnqualifiedQName;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements;
-final class AugmentIdentifierEffectiveStatementImpl extends WithSubstatements<String, AugmentIdentifierStatement>
+final class AugmentIdentifierEffectiveStatementImpl
+ extends WithSubstatements<UnqualifiedQName, AugmentIdentifierStatement>
implements AugmentIdentifierEffectiveStatement {
AugmentIdentifierEffectiveStatementImpl(final AugmentIdentifierStatement declared,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
import com.google.common.collect.ImmutableList;
import org.opendaylight.yangtools.odlext.model.api.AugmentIdentifierStatement;
+import org.opendaylight.yangtools.yang.common.UnqualifiedQName;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
-import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithRawStringArgument.WithSubstatements;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithArgument.WithSubstatements;
-final class AugmentIdentifierStatementImpl extends WithSubstatements implements AugmentIdentifierStatement {
- AugmentIdentifierStatementImpl(final String argument,
+final class AugmentIdentifierStatementImpl extends WithSubstatements<UnqualifiedQName>
+ implements AugmentIdentifierStatement {
+ AugmentIdentifierStatementImpl(final UnqualifiedQName argument,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- super(argument, substatements);
+ super(argument.getLocalName(), argument, substatements);
}
}
import org.opendaylight.yangtools.odlext.model.api.AugmentIdentifierEffectiveStatement;
import org.opendaylight.yangtools.odlext.model.api.AugmentIdentifierStatement;
import org.opendaylight.yangtools.odlext.model.api.OpenDaylightExtensionsStatements;
+import org.opendaylight.yangtools.yang.common.UnqualifiedQName;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
-import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStringStatementSupport;
+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.meta.SubstatementValidator;
+import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
@Beta
public final class AugmentIdentifierStatementSupport
- extends AbstractStringStatementSupport<AugmentIdentifierStatement, AugmentIdentifierEffectiveStatement> {
+ extends AbstractStatementSupport<UnqualifiedQName, AugmentIdentifierStatement,
+ AugmentIdentifierEffectiveStatement> {
public static final @NonNull AugmentIdentifierStatementSupport INSTANCE = new AugmentIdentifierStatementSupport();
private static final SubstatementValidator VALIDATOR =
super(OpenDaylightExtensionsStatements.AUGMENT_IDENTIFIER, StatementPolicy.contextIndependent());
}
+ @Override
+ public UnqualifiedQName parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
+ try {
+ return UnqualifiedQName.of(value).intern();
+ } catch (IllegalArgumentException e) {
+ throw new SourceException(ctx, e, "Invalid identifier \"%s\"", value);
+ }
+ }
+
@Override
protected SubstatementValidator getSubstatementValidator() {
return VALIDATOR;
}
@Override
- protected AugmentIdentifierStatement createDeclared(final StmtContext<String, AugmentIdentifierStatement, ?> ctx,
+ protected AugmentIdentifierStatement createDeclared(
+ final StmtContext<UnqualifiedQName, AugmentIdentifierStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
return new AugmentIdentifierStatementImpl(ctx.getArgument(), substatements);
}
@Override
protected AugmentIdentifierEffectiveStatement createEffective(
- final Current<String, AugmentIdentifierStatement> stmt,
+ final Current<UnqualifiedQName, AugmentIdentifierStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
return new AugmentIdentifierEffectiveStatementImpl(stmt.declared(), substatements);
}