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.DeclarationReference;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration;
return new AugmentIdentifierStatementImpl(ctx.getArgument(), substatements);
}
+ @Override
+ protected AugmentIdentifierStatement attachDeclarationReference(final AugmentIdentifierStatement stmt,
+ final DeclarationReference reference) {
+ return new RefAugmentIdentifierStatement(stmt, reference);
+ }
+
@Override
protected AugmentIdentifierEffectiveStatement createEffective(
final Current<UnqualifiedQName, AugmentIdentifierStatement> stmt,
import org.opendaylight.yangtools.odlext.model.api.ContextInstanceStatement;
import org.opendaylight.yangtools.odlext.model.api.OpenDaylightExtensionsStatements;
import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
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.stmt.IdentityEffectiveStatement;
return new ContextInstanceStatementImpl(ctx.getRawArgument(), ctx.getArgument(), substatements);
}
+ @Override
+ protected ContextInstanceStatement attachDeclarationReference(final ContextInstanceStatement stmt,
+ final DeclarationReference reference) {
+ return new RefContextInstanceStatement(stmt, reference);
+ }
+
@Override
ContextInstanceEffectiveStatement createEffective(final ContextInstanceStatement declared,
final IdentityEffectiveStatement identity,
import org.opendaylight.yangtools.odlext.model.api.ContextReferenceStatement;
import org.opendaylight.yangtools.odlext.model.api.OpenDaylightExtensionsStatements;
import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
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.stmt.IdentityEffectiveStatement;
return new ContextReferenceStatementImpl(ctx.rawArgument(), ctx.getArgument(), substatements);
}
+ @Override
+ protected ContextReferenceStatement attachDeclarationReference(final ContextReferenceStatement stmt,
+ final DeclarationReference reference) {
+ return new RefContextReferenceStatement(stmt, reference);
+ }
+
@Override
ContextReferenceEffectiveStatement createEffective(final ContextReferenceStatement declared,
final IdentityEffectiveStatement identity,
import org.opendaylight.yangtools.odlext.model.api.InstanceTargetEffectiveStatement;
import org.opendaylight.yangtools.odlext.model.api.InstanceTargetStatement;
import org.opendaylight.yangtools.odlext.model.api.OpenDaylightExtensionsStatements;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration;
return new InstanceTargetStatementImpl(ctx.getArgument(), substatements);
}
+ @Override
+ protected InstanceTargetStatement attachDeclarationReference(final InstanceTargetStatement stmt,
+ final DeclarationReference reference) {
+ return new RefInstanceTargetStatement(stmt, reference);
+ }
+
@Override
protected InstanceTargetEffectiveStatement createEffective(final Current<String, InstanceTargetStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
--- /dev/null
+/*
+ * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.odlext.parser;
+
+import org.opendaylight.yangtools.odlext.model.api.AugmentIdentifierStatement;
+import org.opendaylight.yangtools.yang.common.UnqualifiedQName;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractRefStatement;
+
+final class RefAugmentIdentifierStatement extends AbstractRefStatement<UnqualifiedQName, AugmentIdentifierStatement>
+ implements AugmentIdentifierStatement {
+ RefAugmentIdentifierStatement(final AugmentIdentifierStatement delegate, final DeclarationReference ref) {
+ super(delegate, ref);
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.odlext.parser;
+
+import org.opendaylight.yangtools.odlext.model.api.ContextInstanceStatement;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractRefStatement;
+
+final class RefContextInstanceStatement extends AbstractRefStatement<QName, ContextInstanceStatement>
+ implements ContextInstanceStatement {
+ RefContextInstanceStatement(final ContextInstanceStatement delegate, final DeclarationReference ref) {
+ super(delegate, ref);
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.odlext.parser;
+
+import org.opendaylight.yangtools.odlext.model.api.ContextReferenceStatement;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractRefStatement;
+
+final class RefContextReferenceStatement extends AbstractRefStatement<QName, ContextReferenceStatement>
+ implements ContextReferenceStatement {
+ RefContextReferenceStatement(final ContextReferenceStatement delegate, final DeclarationReference ref) {
+ super(delegate, ref);
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.odlext.parser;
+
+import org.opendaylight.yangtools.odlext.model.api.InstanceTargetStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractRefStatement;
+
+final class RefInstanceTargetStatement extends AbstractRefStatement<String, InstanceTargetStatement>
+ implements InstanceTargetStatement {
+ RefInstanceTargetStatement(final InstanceTargetStatement delegate, final DeclarationReference ref) {
+ super(delegate, ref);
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.odlext.parser;
+
+import org.opendaylight.yangtools.odlext.model.api.RpcContextReferenceStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractRefStatement;
+
+final class RefRpcContextReferenceStatement extends AbstractRefStatement<String, RpcContextReferenceStatement>
+ implements RpcContextReferenceStatement {
+ RefRpcContextReferenceStatement(final RpcContextReferenceStatement delegate, final DeclarationReference ref) {
+ super(delegate, ref);
+ }
+}
import org.opendaylight.yangtools.odlext.model.api.OpenDaylightExtensionsStatements;
import org.opendaylight.yangtools.odlext.model.api.RpcContextReferenceEffectiveStatement;
import org.opendaylight.yangtools.odlext.model.api.RpcContextReferenceStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration;
return new RpcContextReferenceStatementImpl(ctx.getArgument(), substatements);
}
+ @Override
+ protected RpcContextReferenceStatement attachDeclarationReference(final RpcContextReferenceStatement stmt,
+ final DeclarationReference reference) {
+ return new RefRpcContextReferenceStatement(stmt, reference);
+ }
+
@Override
protected RpcContextReferenceEffectiveStatement createEffective(
final Current<String, RpcContextReferenceStatement> stmt,
*/
package org.opendaylight.yangtools.openconfig.parser;
-import static java.util.Objects.requireNonNull;
-
import com.google.common.collect.ImmutableList;
-import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.concepts.Immutable;
import org.opendaylight.yangtools.openconfig.model.api.OpenConfigHashedValueEffectiveStatement;
import org.opendaylight.yangtools.openconfig.model.api.OpenConfigHashedValueStatement;
import org.opendaylight.yangtools.yang.common.Empty;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
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.model.spi.meta.AbstractDeclaredStatement.WithoutArgument.WithSubstatements;
import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractEmptyStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
-import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
abstract class AbstractHashedValueStatementSupport
extends AbstractEmptyStatementSupport<OpenConfigHashedValueStatement, OpenConfigHashedValueEffectiveStatement> {
-
- private static final class Declared extends WithSubstatements implements OpenConfigHashedValueStatement {
- private final @NonNull StatementDefinition definition;
-
- Declared(final StatementDefinition definition,
- final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- super(substatements);
- this.definition = requireNonNull(definition);
- }
-
- @Override
- public StatementDefinition statementDefinition() {
- return definition;
- }
- }
-
- private static final class Effective
- extends UnknownEffectiveStatementBase<Empty, OpenConfigHashedValueStatement>
- implements OpenConfigHashedValueEffectiveStatement {
- private final @NonNull StatementDefinition definition;
- private final @NonNull Immutable path;
-
- Effective(final Current<Empty, OpenConfigHashedValueStatement> stmt,
- final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- super(stmt, substatements);
- definition = stmt.publicDefinition();
- path = SchemaPathSupport.toEffectivePath(stmt.getEffectiveParent().getSchemaPath()
- .createChild(stmt.publicDefinition().getStatementName()));
- }
-
- @Override
- public QName getQName() {
- return SchemaNodeDefaults.extractQName(path);
- }
-
- @Override
- @Deprecated
- public SchemaPath getPath() {
- return SchemaNodeDefaults.extractPath(this, path);
- }
-
- @Override
- public StatementDefinition statementDefinition() {
- return definition;
- }
-
- @Override
- public OpenConfigHashedValueEffectiveStatement asEffectiveStatement() {
- return this;
- }
- }
-
private final SubstatementValidator validator;
AbstractHashedValueStatementSupport(final StatementDefinition definition, final YangParserConfiguration config) {
protected final OpenConfigHashedValueStatement createDeclared(
final StmtContext<Empty, OpenConfigHashedValueStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new Declared(getPublicView(), substatements);
+ return new OpenConfigHashedValueStatementImpl(getPublicView(), substatements);
+ }
+
+ @Override
+ protected final OpenConfigHashedValueStatement attachDeclarationReference(
+ final OpenConfigHashedValueStatement stmt, final DeclarationReference reference) {
+ return new RefOpenConfigHashedValueStatement(stmt, reference);
}
@Override
protected OpenConfigHashedValueEffectiveStatement createEffective(
final Current<Empty, OpenConfigHashedValueStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- return new Effective(stmt, substatements);
+ return new OpenConfigHashedValueEffectiveStatementImpl(stmt, substatements);
}
}
--- /dev/null
+/*
+ * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.openconfig.parser;
+
+import com.google.common.collect.ImmutableList;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.concepts.Immutable;
+import org.opendaylight.yangtools.openconfig.model.api.OpenConfigHashedValueEffectiveStatement;
+import org.opendaylight.yangtools.openconfig.model.api.OpenConfigHashedValueStatement;
+import org.opendaylight.yangtools.yang.common.Empty;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults;
+import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
+import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
+import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport;
+
+final class OpenConfigHashedValueEffectiveStatementImpl
+ extends UnknownEffectiveStatementBase<Empty, OpenConfigHashedValueStatement>
+ implements OpenConfigHashedValueEffectiveStatement {
+ private final @NonNull StatementDefinition definition;
+ private final @NonNull Immutable path;
+
+ OpenConfigHashedValueEffectiveStatementImpl(final Current<Empty, OpenConfigHashedValueStatement> stmt,
+ final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+ super(stmt, substatements);
+ definition = stmt.publicDefinition();
+ path = SchemaPathSupport.toEffectivePath(stmt.getEffectiveParent().getSchemaPath()
+ .createChild(stmt.publicDefinition().getStatementName()));
+ }
+
+ @Override
+ public QName getQName() {
+ return SchemaNodeDefaults.extractQName(path);
+ }
+
+ @Override
+ @Deprecated
+ public SchemaPath getPath() {
+ return SchemaNodeDefaults.extractPath(this, path);
+ }
+
+ @Override
+ public StatementDefinition statementDefinition() {
+ return definition;
+ }
+
+ @Override
+ public OpenConfigHashedValueEffectiveStatement asEffectiveStatement() {
+ return this;
+ }
+}
\ No newline at end of file
--- /dev/null
+/*
+ * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.openconfig.parser;
+
+import static java.util.Objects.requireNonNull;
+
+import com.google.common.collect.ImmutableList;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.openconfig.model.api.OpenConfigHashedValueStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithoutArgument.WithSubstatements;
+
+final class OpenConfigHashedValueStatementImpl extends WithSubstatements implements OpenConfigHashedValueStatement {
+ private final @NonNull StatementDefinition definition;
+
+ OpenConfigHashedValueStatementImpl(final StatementDefinition definition,
+ final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ super(substatements);
+ this.definition = requireNonNull(definition);
+ }
+
+ @Override
+ public StatementDefinition statementDefinition() {
+ return definition;
+ }
+}
\ No newline at end of file
--- /dev/null
+/*
+ * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.openconfig.parser;
+
+import org.opendaylight.yangtools.openconfig.model.api.OpenConfigHashedValueStatement;
+import org.opendaylight.yangtools.yang.common.Empty;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractRefStatement;
+
+final class RefOpenConfigHashedValueStatement extends AbstractRefStatement<Empty, OpenConfigHashedValueStatement>
+ implements OpenConfigHashedValueStatement {
+ RefOpenConfigHashedValueStatement(final OpenConfigHashedValueStatement delegate, final DeclarationReference ref) {
+ super(delegate, ref);
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.rfc6241.parser;
+
+import com.google.common.collect.ImmutableList;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.concepts.Immutable;
+import org.opendaylight.yangtools.rfc6241.model.api.GetFilterElementAttributesEffectiveStatement;
+import org.opendaylight.yangtools.rfc6241.model.api.GetFilterElementAttributesSchemaNode;
+import org.opendaylight.yangtools.rfc6241.model.api.GetFilterElementAttributesStatement;
+import org.opendaylight.yangtools.yang.common.Empty;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults;
+import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
+import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
+import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport;
+
+final class GetFilterElementAttributesEffectiveStatementImpl
+ extends UnknownEffectiveStatementBase<Empty, GetFilterElementAttributesStatement>
+ implements GetFilterElementAttributesEffectiveStatement, GetFilterElementAttributesSchemaNode {
+ private final @NonNull Immutable path;
+
+ GetFilterElementAttributesEffectiveStatementImpl(final Current<Empty, GetFilterElementAttributesStatement> stmt,
+ final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+ super(stmt, substatements);
+ path = SchemaPathSupport.toEffectivePath(stmt.getEffectiveParent().getSchemaPath()
+ .createChild(stmt.publicDefinition().getStatementName()));
+ }
+
+ @Override
+ public QName getQName() {
+ return SchemaNodeDefaults.extractQName(path);
+ }
+
+ @Override
+ @Deprecated
+ public SchemaPath getPath() {
+ return SchemaNodeDefaults.extractPath(this, path);
+ }
+
+ @Override
+ public GetFilterElementAttributesEffectiveStatement asEffectiveStatement() {
+ return this;
+ }
+}
\ No newline at end of file
--- /dev/null
+/*
+ * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.rfc6241.parser;
+
+import com.google.common.collect.ImmutableList;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.rfc6241.model.api.GetFilterElementAttributesStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithoutArgument.WithSubstatements;
+
+final class GetFilterElementAttributesStatementImpl extends WithSubstatements
+ implements GetFilterElementAttributesStatement {
+ static final @NonNull GetFilterElementAttributesStatementImpl EMPTY =
+ new GetFilterElementAttributesStatementImpl(ImmutableList.of());
+
+ GetFilterElementAttributesStatementImpl(final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ super(substatements);
+ }
+}
\ No newline at end of file
import com.google.common.annotations.Beta;
import com.google.common.collect.ImmutableList;
-import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.concepts.Immutable;
import org.opendaylight.yangtools.rfc6241.model.api.GetFilterElementAttributesEffectiveStatement;
-import org.opendaylight.yangtools.rfc6241.model.api.GetFilterElementAttributesSchemaNode;
import org.opendaylight.yangtools.rfc6241.model.api.GetFilterElementAttributesStatement;
import org.opendaylight.yangtools.rfc6241.model.api.NetconfStatements;
import org.opendaylight.yangtools.yang.common.Empty;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
-import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithoutArgument.WithSubstatements;
import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractEmptyStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
-import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext.Mutable;
import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
@Beta
public final class GetFilterElementAttributesStatementSupport extends AbstractEmptyStatementSupport<
GetFilterElementAttributesStatement, GetFilterElementAttributesEffectiveStatement> {
-
- private static final class Declared extends WithSubstatements implements GetFilterElementAttributesStatement {
- static final @NonNull Declared EMPTY = new Declared(ImmutableList.of());
-
- Declared(final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- super(substatements);
- }
- }
-
- private static final class Effective
- extends UnknownEffectiveStatementBase<Empty, GetFilterElementAttributesStatement>
- implements GetFilterElementAttributesEffectiveStatement, GetFilterElementAttributesSchemaNode {
- private final @NonNull Immutable path;
-
- Effective(final Current<Empty, GetFilterElementAttributesStatement> stmt,
- final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- super(stmt, substatements);
- path = SchemaPathSupport.toEffectivePath(stmt.getEffectiveParent().getSchemaPath()
- .createChild(stmt.publicDefinition().getStatementName()));
- }
-
- @Override
- public QName getQName() {
- return SchemaNodeDefaults.extractQName(path);
- }
-
- @Override
- @Deprecated
- public SchemaPath getPath() {
- return SchemaNodeDefaults.extractPath(this, path);
- }
-
- @Override
- public GetFilterElementAttributesEffectiveStatement asEffectiveStatement() {
- return this;
- }
- }
-
private static final Logger LOG = LoggerFactory.getLogger(GetFilterElementAttributesStatementSupport.class);
private static final SubstatementValidator VALIDATOR =
SubstatementValidator.builder(NetconfStatements.GET_FILTER_ELEMENT_ATTRIBUTES).build();
protected GetFilterElementAttributesStatement createDeclared(
final StmtContext<Empty, GetFilterElementAttributesStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return substatements.isEmpty() ? Declared.EMPTY : new Declared(substatements);
+ return substatements.isEmpty() ? GetFilterElementAttributesStatementImpl.EMPTY
+ : new GetFilterElementAttributesStatementImpl(substatements);
+ }
+
+ @Override
+ protected GetFilterElementAttributesStatement attachDeclarationReference(
+ final GetFilterElementAttributesStatement stmt, final DeclarationReference reference) {
+ return new RefGetFilterElementAttributesStatement(stmt, reference);
}
@Override
protected GetFilterElementAttributesEffectiveStatement createEffective(
final Current<Empty, GetFilterElementAttributesStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- return new Effective(stmt, substatements);
+ return new GetFilterElementAttributesEffectiveStatementImpl(stmt, substatements);
}
private static boolean computeSupported(final StmtContext<?, ?, ?> stmt) {
--- /dev/null
+/*
+ * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.rfc6241.parser;
+
+import org.opendaylight.yangtools.rfc6241.model.api.GetFilterElementAttributesStatement;
+import org.opendaylight.yangtools.yang.common.Empty;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractRefStatement;
+
+final class RefGetFilterElementAttributesStatement
+ extends AbstractRefStatement<Empty, GetFilterElementAttributesStatement>
+ implements GetFilterElementAttributesStatement {
+ RefGetFilterElementAttributesStatement(final GetFilterElementAttributesStatement delegate,
+ final DeclarationReference ref) {
+ super(delegate, ref);
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.rfc6536.parser;
+
+import com.google.common.collect.ImmutableList;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.concepts.Immutable;
+import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyAllEffectiveStatement;
+import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyAllSchemaNode;
+import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyAllStatement;
+import org.opendaylight.yangtools.yang.common.Empty;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults;
+import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
+import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
+import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport;
+
+final class DefaultDenyAllEffectiveStatementImpl extends UnknownEffectiveStatementBase<Empty, DefaultDenyAllStatement>
+ implements DefaultDenyAllEffectiveStatement, DefaultDenyAllSchemaNode {
+ private final @NonNull Immutable path;
+
+ DefaultDenyAllEffectiveStatementImpl(final Current<Empty, DefaultDenyAllStatement> stmt,
+ final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+ super(stmt, substatements);
+ path = SchemaPathSupport.toEffectivePath(stmt.getEffectiveParent().getSchemaPath()
+ .createChild(stmt.publicDefinition().getStatementName()));
+ }
+
+ @Override
+ public QName getQName() {
+ return SchemaNodeDefaults.extractQName(path);
+ }
+
+ @Override
+ @Deprecated
+ public SchemaPath getPath() {
+ return SchemaNodeDefaults.extractPath(this, path);
+ }
+
+ @Override
+ public DefaultDenyAllEffectiveStatement asEffectiveStatement() {
+ return this;
+ }
+}
\ No newline at end of file
--- /dev/null
+/*
+ * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.rfc6536.parser;
+
+import com.google.common.collect.ImmutableList;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyAllStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithoutArgument.WithSubstatements;
+
+final class DefaultDenyAllStatementImpl extends WithSubstatements implements DefaultDenyAllStatement {
+ static final @NonNull DefaultDenyAllStatementImpl EMPTY = new DefaultDenyAllStatementImpl(ImmutableList.of());
+
+ DefaultDenyAllStatementImpl(final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ super(substatements);
+ }
+}
\ No newline at end of file
package org.opendaylight.yangtools.rfc6536.parser;
import com.google.common.collect.ImmutableList;
-import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.concepts.Immutable;
import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyAllEffectiveStatement;
-import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyAllSchemaNode;
import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyAllStatement;
import org.opendaylight.yangtools.rfc6536.model.api.NACMStatements;
import org.opendaylight.yangtools.yang.common.Empty;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
-import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithoutArgument.WithSubstatements;
import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractEmptyStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
-import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
public final class DefaultDenyAllStatementSupport
extends AbstractEmptyStatementSupport<DefaultDenyAllStatement, DefaultDenyAllEffectiveStatement> {
- private static final class Declared extends WithSubstatements implements DefaultDenyAllStatement {
- static final @NonNull Declared EMPTY = new Declared(ImmutableList.of());
-
- Declared(final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- super(substatements);
- }
- }
-
- private static final class Effective extends UnknownEffectiveStatementBase<Empty, DefaultDenyAllStatement>
- implements DefaultDenyAllEffectiveStatement, DefaultDenyAllSchemaNode {
- private final @NonNull Immutable path;
-
- Effective(final Current<Empty, DefaultDenyAllStatement> stmt,
- final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- super(stmt, substatements);
- path = SchemaPathSupport.toEffectivePath(stmt.getEffectiveParent().getSchemaPath()
- .createChild(stmt.publicDefinition().getStatementName()));
- }
-
- @Override
- public QName getQName() {
- return SchemaNodeDefaults.extractQName(path);
- }
-
- @Override
- @Deprecated
- public SchemaPath getPath() {
- return SchemaNodeDefaults.extractPath(this, path);
- }
-
- @Override
- public DefaultDenyAllEffectiveStatement asEffectiveStatement() {
- return this;
- }
- }
-
private static final SubstatementValidator VALIDATOR =
SubstatementValidator.builder(NACMStatements.DEFAULT_DENY_ALL).build();
@Override
protected DefaultDenyAllStatement createDeclared(final StmtContext<Empty, DefaultDenyAllStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return substatements.isEmpty() ? Declared.EMPTY : new Declared(substatements);
+ return substatements.isEmpty() ? DefaultDenyAllStatementImpl.EMPTY
+ : new DefaultDenyAllStatementImpl(substatements);
+ }
+
+ @Override
+ protected DefaultDenyAllStatement attachDeclarationReference(final DefaultDenyAllStatement stmt,
+ final DeclarationReference reference) {
+ return new RefDefaultDenyAllStatement(stmt, reference);
}
@Override
protected DefaultDenyAllEffectiveStatement createEffective(final Current<Empty, DefaultDenyAllStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- return new Effective(stmt, substatements);
+ return new DefaultDenyAllEffectiveStatementImpl(stmt, substatements);
}
}
--- /dev/null
+/*
+ * Copyright (c) 2020 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.rfc6536.parser;
+
+import com.google.common.collect.ImmutableList;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.concepts.Immutable;
+import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyWriteEffectiveStatement;
+import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyWriteSchemaNode;
+import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyWriteStatement;
+import org.opendaylight.yangtools.yang.common.Empty;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults;
+import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
+import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
+import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport;
+
+final class DefaultDenyWriteEffectiveStatementImpl
+ extends UnknownEffectiveStatementBase<Empty, DefaultDenyWriteStatement>
+ implements DefaultDenyWriteEffectiveStatement, DefaultDenyWriteSchemaNode {
+ private final @NonNull Immutable path;
+
+ DefaultDenyWriteEffectiveStatementImpl(final Current<Empty, DefaultDenyWriteStatement> stmt,
+ final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+ super(stmt, substatements);
+ path = SchemaPathSupport.toEffectivePath(stmt.getEffectiveParent().getSchemaPath()
+ .createChild(stmt.publicDefinition().getStatementName()));
+ }
+
+ @Override
+ public QName getQName() {
+ return SchemaNodeDefaults.extractQName(path);
+ }
+
+ @Override
+ @Deprecated
+ public SchemaPath getPath() {
+ return SchemaNodeDefaults.extractPath(this, path);
+ }
+
+ @Override
+ public DefaultDenyWriteEffectiveStatement asEffectiveStatement() {
+ return this;
+ }
+}
\ No newline at end of file
--- /dev/null
+/*
+ * Copyright (c) 2020 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.rfc6536.parser;
+
+import com.google.common.collect.ImmutableList;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyWriteStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithoutArgument.WithSubstatements;
+
+final class DefaultDenyWriteStatementImpl extends WithSubstatements implements DefaultDenyWriteStatement {
+ static final @NonNull DefaultDenyWriteStatementImpl EMPTY = new DefaultDenyWriteStatementImpl(ImmutableList.of());
+
+ DefaultDenyWriteStatementImpl(final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ super(substatements);
+ }
+}
\ No newline at end of file
package org.opendaylight.yangtools.rfc6536.parser;
import com.google.common.collect.ImmutableList;
-import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.concepts.Immutable;
import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyWriteEffectiveStatement;
-import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyWriteSchemaNode;
import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyWriteStatement;
import org.opendaylight.yangtools.rfc6536.model.api.NACMStatements;
import org.opendaylight.yangtools.yang.common.Empty;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
-import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithoutArgument.WithSubstatements;
import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractEmptyStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
-import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
public final class DefaultDenyWriteStatementSupport
extends AbstractEmptyStatementSupport<DefaultDenyWriteStatement, DefaultDenyWriteEffectiveStatement> {
- private static final class Declared extends WithSubstatements implements DefaultDenyWriteStatement {
- static final @NonNull Declared EMPTY = new Declared(ImmutableList.of());
-
- Declared(final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- super(substatements);
- }
- }
-
- private static final class Effective extends UnknownEffectiveStatementBase<Empty, DefaultDenyWriteStatement>
- implements DefaultDenyWriteEffectiveStatement, DefaultDenyWriteSchemaNode {
- private final @NonNull Immutable path;
-
- Effective(final Current<Empty, DefaultDenyWriteStatement> stmt,
- final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- super(stmt, substatements);
- path = SchemaPathSupport.toEffectivePath(stmt.getEffectiveParent().getSchemaPath()
- .createChild(stmt.publicDefinition().getStatementName()));
- }
-
- @Override
- public QName getQName() {
- return SchemaNodeDefaults.extractQName(path);
- }
-
- @Override
- @Deprecated
- public SchemaPath getPath() {
- return SchemaNodeDefaults.extractPath(this, path);
- }
-
- @Override
- public DefaultDenyWriteEffectiveStatement asEffectiveStatement() {
- return this;
- }
- }
-
private static final SubstatementValidator VALIDATOR =
SubstatementValidator.builder(NACMStatements.DEFAULT_DENY_WRITE).build();
@Override
protected DefaultDenyWriteStatement createDeclared(final StmtContext<Empty, DefaultDenyWriteStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return substatements.isEmpty() ? Declared.EMPTY : new Declared(substatements);
+ return substatements.isEmpty() ? DefaultDenyWriteStatementImpl.EMPTY
+ : new DefaultDenyWriteStatementImpl(substatements);
+ }
+
+ @Override
+ protected DefaultDenyWriteStatement attachDeclarationReference(final DefaultDenyWriteStatement stmt,
+ final DeclarationReference reference) {
+ return new RefDefaultDenyWriteStatement(stmt, reference);
}
@Override
protected DefaultDenyWriteEffectiveStatement createEffective(final Current<Empty, DefaultDenyWriteStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- return new Effective(stmt, substatements);
+ return new DefaultDenyWriteEffectiveStatementImpl(stmt, substatements);
}
}
--- /dev/null
+/*
+ * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.rfc6536.parser;
+
+import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyAllStatement;
+import org.opendaylight.yangtools.yang.common.Empty;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractRefStatement;
+
+final class RefDefaultDenyAllStatement extends AbstractRefStatement<Empty, DefaultDenyAllStatement>
+ implements DefaultDenyAllStatement {
+ RefDefaultDenyAllStatement(final DefaultDenyAllStatement delegate, final DeclarationReference ref) {
+ super(delegate, ref);
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.rfc6536.parser;
+
+import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyWriteStatement;
+import org.opendaylight.yangtools.yang.common.Empty;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractRefStatement;
+
+final class RefDefaultDenyWriteStatement extends AbstractRefStatement<Empty, DefaultDenyWriteStatement>
+ implements DefaultDenyWriteStatement {
+ RefDefaultDenyWriteStatement(final DefaultDenyWriteStatement delegate, final DeclarationReference ref) {
+ super(delegate, ref);
+ }
+}
import org.opendaylight.yangtools.rfc6643.model.api.AliasStatement;
import org.opendaylight.yangtools.rfc6643.model.api.IetfYangSmiv2ExtensionsMapping;
import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration;
return new AliasStatementImpl(ctx.getRawArgument(), substatements);
}
+ @Override
+ protected AliasStatement attachDeclarationReference(final AliasStatement stmt,
+ final DeclarationReference reference) {
+ return new RefAliasStatement(stmt, reference);
+ }
+
@Override
protected AliasEffectiveStatement createEffective(final Current<String, AliasStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
import org.opendaylight.yangtools.rfc6643.model.api.DefValEffectiveStatement;
import org.opendaylight.yangtools.rfc6643.model.api.DefValStatement;
import org.opendaylight.yangtools.rfc6643.model.api.IetfYangSmiv2ExtensionsMapping;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration;
return new DefValStatementImpl(ctx.getRawArgument(), substatements);
}
+ @Override
+ protected DefValStatement attachDeclarationReference(final DefValStatement stmt,
+ final DeclarationReference reference) {
+ return new RefDefValStatement(stmt, reference);
+ }
+
@Override
protected DefValEffectiveStatement createEffective(final Current<String, DefValStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
import org.opendaylight.yangtools.rfc6643.model.api.DisplayHintEffectiveStatement;
import org.opendaylight.yangtools.rfc6643.model.api.DisplayHintStatement;
import org.opendaylight.yangtools.rfc6643.model.api.IetfYangSmiv2ExtensionsMapping;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration;
return new DisplayHintStatementImpl(ctx.getRawArgument(), substatements);
}
+ @Override
+ protected DisplayHintStatement attachDeclarationReference(final DisplayHintStatement stmt,
+ final DeclarationReference reference) {
+ return new RefDisplayHintStatement(stmt, reference);
+ }
+
@Override
protected DisplayHintEffectiveStatement createEffective(final Current<String, DisplayHintStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
import org.opendaylight.yangtools.rfc6643.model.api.IetfYangSmiv2ExtensionsMapping;
import org.opendaylight.yangtools.rfc6643.model.api.ImpliedEffectiveStatement;
import org.opendaylight.yangtools.rfc6643.model.api.ImpliedStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration;
return new ImpliedStatementImpl(ctx.getRawArgument(), substatements);
}
+ @Override
+ protected ImpliedStatement attachDeclarationReference(final ImpliedStatement stmt,
+ final DeclarationReference reference) {
+ return new RefImpliedStatement(stmt, reference);
+ }
+
@Override
protected ImpliedEffectiveStatement createEffective(final Current<String, ImpliedStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
import org.opendaylight.yangtools.rfc6643.model.api.MaxAccess;
import org.opendaylight.yangtools.rfc6643.model.api.MaxAccessEffectiveStatement;
import org.opendaylight.yangtools.rfc6643.model.api.MaxAccessStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration;
return new MaxAccessStatementImpl(ctx.getArgument(), substatements);
}
+ @Override
+ protected MaxAccessStatement attachDeclarationReference(final MaxAccessStatement stmt,
+ final DeclarationReference reference) {
+ return new RefMaxAccessStatement(stmt, reference);
+ }
+
@Override
protected MaxAccessEffectiveStatement createEffective(final Current<MaxAccess, MaxAccessStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.ArgumentToString.WithSubstatements;
-final class OidIdStatementImpl extends WithSubstatements<ObjectIdentifier> implements OidStatement {
- OidIdStatementImpl(final ObjectIdentifier argument,
+final class OidStatementImpl extends WithSubstatements<ObjectIdentifier> implements OidStatement {
+ OidStatementImpl(final ObjectIdentifier argument,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
super(argument, substatements);
}
import org.opendaylight.yangtools.rfc6643.model.api.ObjectIdentifier;
import org.opendaylight.yangtools.rfc6643.model.api.OidEffectiveStatement;
import org.opendaylight.yangtools.rfc6643.model.api.OidStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration;
@Override
protected OidStatement createDeclared(final StmtContext<ObjectIdentifier, OidStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new OidIdStatementImpl(ctx.getArgument(), substatements);
+ return new OidStatementImpl(ctx.getArgument(), substatements);
+ }
+
+ @Override
+ protected OidStatement attachDeclarationReference(final OidStatement stmt, final DeclarationReference reference) {
+ return new RefOidStatement(stmt, reference);
}
@Override
--- /dev/null
+/*
+ * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.rfc6643.parser;
+
+import org.opendaylight.yangtools.rfc6643.model.api.AliasStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractRefStatement;
+
+final class RefAliasStatement extends AbstractRefStatement<String, AliasStatement> implements AliasStatement {
+ RefAliasStatement(final AliasStatement delegate, final DeclarationReference ref) {
+ super(delegate, ref);
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.rfc6643.parser;
+
+import org.opendaylight.yangtools.rfc6643.model.api.DefValStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractRefStatement;
+
+final class RefDefValStatement extends AbstractRefStatement<String, DefValStatement> implements DefValStatement {
+ RefDefValStatement(final DefValStatement delegate, final DeclarationReference ref) {
+ super(delegate, ref);
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.rfc6643.parser;
+
+import org.opendaylight.yangtools.rfc6643.model.api.DisplayHintStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractRefStatement;
+
+final class RefDisplayHintStatement extends AbstractRefStatement<String, DisplayHintStatement>
+ implements DisplayHintStatement {
+ RefDisplayHintStatement(final DisplayHintStatement delegate, final DeclarationReference ref) {
+ super(delegate, ref);
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.rfc6643.parser;
+
+import org.opendaylight.yangtools.rfc6643.model.api.ImpliedStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractRefStatement;
+
+final class RefImpliedStatement extends AbstractRefStatement<String, ImpliedStatement> implements ImpliedStatement {
+ RefImpliedStatement(final ImpliedStatement delegate, final DeclarationReference ref) {
+ super(delegate, ref);
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.rfc6643.parser;
+
+import org.opendaylight.yangtools.rfc6643.model.api.MaxAccess;
+import org.opendaylight.yangtools.rfc6643.model.api.MaxAccessStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractRefStatement;
+
+final class RefMaxAccessStatement extends AbstractRefStatement<MaxAccess, MaxAccessStatement>
+ implements MaxAccessStatement {
+ RefMaxAccessStatement(final MaxAccessStatement delegate, final DeclarationReference ref) {
+ super(delegate, ref);
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.rfc6643.parser;
+
+import org.opendaylight.yangtools.rfc6643.model.api.ObjectIdentifier;
+import org.opendaylight.yangtools.rfc6643.model.api.OidStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractRefStatement;
+
+final class RefOidStatement extends AbstractRefStatement<ObjectIdentifier, OidStatement> implements OidStatement {
+ RefOidStatement(final OidStatement delegate, final DeclarationReference ref) {
+ super(delegate, ref);
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.rfc6643.parser;
+
+import org.opendaylight.yangtools.rfc6643.model.api.SubIdStatement;
+import org.opendaylight.yangtools.yang.common.Uint32;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractRefStatement;
+
+final class RefSubIdStatement extends AbstractRefStatement<Uint32, SubIdStatement> implements SubIdStatement {
+ RefSubIdStatement(final SubIdStatement delegate, final DeclarationReference ref) {
+ super(delegate, ref);
+ }
+}
import org.opendaylight.yangtools.rfc6643.model.api.SubIdEffectiveStatement;
import org.opendaylight.yangtools.rfc6643.model.api.SubIdStatement;
import org.opendaylight.yangtools.yang.common.Uint32;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration;
return new SubIdStatementImpl(ctx.getArgument(), substatements);
}
+ @Override
+ protected SubIdStatement attachDeclarationReference(final SubIdStatement stmt,
+ final DeclarationReference reference) {
+ return new RefSubIdStatement(stmt, reference);
+ }
+
@Override
protected SubIdEffectiveStatement createEffective(final Current<Uint32, SubIdStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
--- /dev/null
+/*
+ * Copyright (c) 2020 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.rfc7952.parser;
+
+import static com.google.common.base.Verify.verifyNotNull;
+
+import com.google.common.collect.ImmutableList;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
+import org.opendaylight.yangtools.rfc7952.model.api.AnnotationEffectiveStatement;
+import org.opendaylight.yangtools.rfc7952.model.api.AnnotationSchemaNode;
+import org.opendaylight.yangtools.rfc7952.model.api.AnnotationStatement;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults;
+import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
+import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.TypeEffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.UnitsEffectiveStatement;
+import org.opendaylight.yangtools.yang.model.ri.type.ConcreteTypeBuilder;
+import org.opendaylight.yangtools.yang.model.ri.type.ConcreteTypes;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
+import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
+import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport;
+import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
+
+final class AnnotationEffectiveStatementImpl extends UnknownEffectiveStatementBase<QName, AnnotationStatement>
+ implements AnnotationEffectiveStatement, AnnotationSchemaNode {
+ private final @NonNull TypeDefinition<?> type;
+ private final @Nullable SchemaPath path;
+
+ AnnotationEffectiveStatementImpl(final Current<QName, AnnotationStatement> stmt,
+ final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+ super(stmt, substatements);
+ final QName qname = stmt.getArgument();
+
+ // FIXME: move this into onFullDefinitionDeclared()
+ final TypeEffectiveStatement<?> typeStmt = SourceException.throwIfNull(
+ firstSubstatementOfType(TypeEffectiveStatement.class), stmt,
+ "AnnotationStatementSupport %s is missing a 'type' statement", qname);
+
+ final ConcreteTypeBuilder<?> builder = ConcreteTypes.concreteTypeBuilder(typeStmt.getTypeDefinition(),
+ qname);
+ final UnitsEffectiveStatement unitsStmt = firstSubstatementOfType(UnitsEffectiveStatement.class);
+ if (unitsStmt != null) {
+ builder.setUnits(unitsStmt.argument());
+ }
+ type = builder.build();
+
+ path = SchemaPathSupport.toOptionalPath(stmt.getEffectiveParent().getSchemaPath().createChild(qname));
+ }
+
+ @Override
+ public QName getQName() {
+ return verifyNotNull(argument());
+ }
+
+ @Override
+ @Deprecated
+ public SchemaPath getPath() {
+ return SchemaNodeDefaults.throwUnsupportedIfNull(this, path);
+ }
+
+ @Override
+ public TypeDefinition<?> getType() {
+ return type;
+ }
+
+ @Override
+ public TypeDefinition<?> getTypeDefinition() {
+ return type;
+ }
+
+ @Override
+ public AnnotationEffectiveStatement asEffectiveStatement() {
+ return this;
+ }
+}
\ No newline at end of file
--- /dev/null
+/*
+ * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.rfc7952.parser;
+
+import com.google.common.collect.ImmutableList;
+import org.opendaylight.yangtools.rfc7952.model.api.AnnotationStatement;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithQNameArgument.WithSubstatements;
+
+final class AnnotationStatementImpl extends WithSubstatements implements AnnotationStatement {
+ AnnotationStatementImpl(final QName argument, final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ super(argument, substatements);
+ }
+}
\ No newline at end of file
*/
package org.opendaylight.yangtools.rfc7952.parser;
-import static com.google.common.base.Verify.verifyNotNull;
-
import com.google.common.collect.ImmutableList;
-import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.jdt.annotation.Nullable;
import org.opendaylight.yangtools.rfc7952.model.api.AnnotationEffectiveStatement;
-import org.opendaylight.yangtools.rfc7952.model.api.AnnotationSchemaNode;
import org.opendaylight.yangtools.rfc7952.model.api.AnnotationStatement;
import org.opendaylight.yangtools.rfc7952.model.api.MetadataStatements;
import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
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.model.api.stmt.TypeEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.UnitsEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.ri.type.ConcreteTypeBuilder;
-import org.opendaylight.yangtools.yang.model.ri.type.ConcreteTypes;
-import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithQNameArgument.WithSubstatements;
import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
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.SchemaPathSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext.Mutable;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils;
public final class AnnotationStatementSupport
extends AbstractStatementSupport<QName, AnnotationStatement, AnnotationEffectiveStatement> {
-
- private static final class Declared extends WithSubstatements implements AnnotationStatement {
- Declared(final QName argument, final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- super(argument, substatements);
- }
- }
-
- private static final class Effective extends UnknownEffectiveStatementBase<QName, AnnotationStatement>
- implements AnnotationEffectiveStatement, AnnotationSchemaNode {
-
- private final @NonNull TypeDefinition<?> type;
- private final @Nullable SchemaPath path;
-
- Effective(final Current<QName, AnnotationStatement> stmt,
- final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- super(stmt, substatements);
- final QName qname = stmt.getArgument();
-
- // FIXME: move this into onFullDefinitionDeclared()
- final TypeEffectiveStatement<?> typeStmt = SourceException.throwIfNull(
- firstSubstatementOfType(TypeEffectiveStatement.class), stmt,
- "AnnotationStatementSupport %s is missing a 'type' statement", qname);
-
- final ConcreteTypeBuilder<?> builder = ConcreteTypes.concreteTypeBuilder(typeStmt.getTypeDefinition(),
- qname);
- final UnitsEffectiveStatement unitsStmt = firstSubstatementOfType(UnitsEffectiveStatement.class);
- if (unitsStmt != null) {
- builder.setUnits(unitsStmt.argument());
- }
- type = builder.build();
-
- path = SchemaPathSupport.toOptionalPath(stmt.getEffectiveParent().getSchemaPath().createChild(qname));
- }
-
- @Override
- public QName getQName() {
- return verifyNotNull(argument());
- }
-
- @Override
- @Deprecated
- public SchemaPath getPath() {
- return SchemaNodeDefaults.throwUnsupportedIfNull(this, path);
- }
-
- @Override
- public TypeDefinition<?> getType() {
- return type;
- }
-
- @Override
- public TypeDefinition<?> getTypeDefinition() {
- return type;
- }
-
- @Override
- public AnnotationEffectiveStatement asEffectiveStatement() {
- return this;
- }
- }
-
private static final SubstatementValidator VALIDATOR = SubstatementValidator.builder(MetadataStatements.ANNOTATION)
.addMandatory(YangStmtMapping.TYPE)
.addOptional(YangStmtMapping.DESCRIPTION)
@Override
protected AnnotationStatement createDeclared(final StmtContext<QName, AnnotationStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new Declared(ctx.getArgument(), substatements);
+ return new AnnotationStatementImpl(ctx.getArgument(), substatements);
+ }
+
+ @Override
+ protected AnnotationStatement attachDeclarationReference(final AnnotationStatement stmt,
+ final DeclarationReference reference) {
+ return new RefAnnotationStatement(stmt, reference);
}
@Override
protected AnnotationEffectiveStatement createEffective(final Current<QName, AnnotationStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- return new Effective(stmt, substatements);
+ return new AnnotationEffectiveStatementImpl(stmt, substatements);
}
}
--- /dev/null
+/*
+ * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.rfc7952.parser;
+
+import org.opendaylight.yangtools.rfc7952.model.api.AnnotationStatement;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractRefStatement;
+
+final class RefAnnotationStatement extends AbstractRefStatement<QName, AnnotationStatement>
+ implements AnnotationStatement {
+ RefAnnotationStatement(final AnnotationStatement delegate, final DeclarationReference ref) {
+ super(delegate, ref);
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.rfc8040.parser;
+
+import org.opendaylight.yangtools.rfc8040.model.api.YangDataStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractRefStatement;
+
+final class RefYangDataStatement extends AbstractRefStatement<String, YangDataStatement> implements YangDataStatement {
+ RefYangDataStatement(final YangDataStatement delegate, final DeclarationReference ref) {
+ super(delegate, ref);
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.rfc8040.parser;
+
+import com.google.common.collect.ImmutableList;
+import org.opendaylight.yangtools.rfc8040.model.api.YangDataStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithRawStringArgument.WithSubstatements;
+
+/**
+ * Declared statement representation of 'yang-data' extension defined in
+ * <a href="https://tools.ietf.org/html/rfc8040#section-8">RFC 8040</a>.
+ */
+final class YangDataStatementImpl extends WithSubstatements implements YangDataStatement {
+ YangDataStatementImpl(final String rawArgument, final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+ super(rawArgument, substatements);
+ }
+}
\ No newline at end of file
import org.opendaylight.yangtools.yang.common.Empty;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
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.stmt.DataTreeEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithRawStringArgument.WithSubstatements;
import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStringStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
@Beta
public final class YangDataStatementSupport
extends AbstractStringStatementSupport<YangDataStatement, YangDataEffectiveStatement> {
- /**
- * Declared statement representation of 'yang-data' extension defined in
- * <a href="https://tools.ietf.org/html/rfc8040#section-8">RFC 8040</a>.
- */
- private static final class Declared extends WithSubstatements implements YangDataStatement {
- Declared(final String rawArgument, final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- super(rawArgument, substatements);
- }
- }
-
private final SubstatementValidator declaredValidator;
public YangDataStatementSupport(final YangParserConfiguration config) {
@Override
protected YangDataStatement createDeclared(@NonNull final StmtContext<String, YangDataStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new Declared(ctx.getRawArgument(), substatements);
+ return new YangDataStatementImpl(ctx.getRawArgument(), substatements);
+ }
+
+ @Override
+ protected YangDataStatement attachDeclarationReference(final YangDataStatement stmt,
+ final DeclarationReference reference) {
+ return new RefYangDataStatement(stmt, reference);
}
@Override
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.QNameModule;
import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
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;
return new MountPointStatementImpl(ctx.getArgument(), substatements);
}
+ @Override
+ protected MountPointStatement attachDeclarationReference(final MountPointStatement stmt,
+ final DeclarationReference reference) {
+ return new RefMountPointStatement(stmt, reference);
+ }
+
@Override
protected MountPointEffectiveStatement createEffective(final Current<QName, MountPointStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
--- /dev/null
+/*
+ * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.rfc8528.parser;
+
+import org.opendaylight.yangtools.rfc8528.model.api.MountPointStatement;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractRefStatement;
+
+final class RefMountPointStatement extends AbstractRefStatement<QName, MountPointStatement>
+ implements MountPointStatement {
+ RefMountPointStatement(final MountPointStatement delegate, final DeclarationReference ref) {
+ super(delegate, ref);
+ }
+}
import java.util.Optional;
import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.concepts.Delegator;
import org.opendaylight.yangtools.yang.common.Empty;
import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
* @param <D> Class representing declared version of this statement.
*/
public abstract class AbstractRefStatement<A, D extends DeclaredStatement<A>>
- extends ForwardingDeclaredStatement<A, D> {
+ extends ForwardingDeclaredStatement<A, D> implements Delegator<D> {
private final @NonNull DeclarationReference ref;
private final @NonNull D delegate;
return Optional.of(ref);
}
+ @Override
+ public final D getDelegate() {
+ return delegate;
+ }
+
@Override
protected final D delegate() {
return delegate;
* @param reference {@link DeclarationReference} to attach
* @return Equivalent of stmt, potentially with specified reference attached.
*/
- // FIXME: make this method abstract
- protected @NonNull D attachDeclarationReference(final @NonNull D stmt,
- final @NonNull DeclarationReference reference) {
- return stmt;
- }
+ protected abstract @NonNull D attachDeclarationReference(@NonNull D stmt, @NonNull DeclarationReference reference);
@Override
public final E createEffective(final Current<A, D> stmt,